Към съдържанието

One Touch No Reg API

Преди да продължите:

  1. Трябва да сте се свързали с Търговския ни отдел
  2. Трябва да сте получили APPID & SECRET

Плащане от нерегистриран потребител

При плащане от потребител без регистрация се генерира токен, на който валидността се определя от опцията за запазване на картата за бъдещи плащания savecard = 0|1.

При savecard = 0 токенът е валиден само за текущото плащане
При savecard = 1 токенът е валиден за всички бъдещи плащания

noreg payment diagram

Генериране на чексума

Заявките за плащане от потребител без регистрация изискват Hexadecimal HMAC SHA-1 CHECKSUM

Параметър Описание
request_data Параметрите и стойностите им в заявката, сортирани във възходящ ред по името на параметъра, конкатенирани с \n (newline)
SECRET Уникален ключ, който получавате от ePay.bg при регистриране на приложение

Примерни параметри на заявката

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
  "AMOUNT":"10",
  "APPID":"2143960160650364377823089976443473298565779337965372776022890068",
  "DESCRIPTION":"some descr",
  "DEVICEID":"1231234",
  "ID":"124345678",
  "RCPT":"8897458022",
  "RCPT_TYPE":"KIN",
  "REASON":"reason",
  "SAVECARD":1
}

Пример на request_data

request_data="AMOUNT10\nAPPID2143960160650364377823089976443473298565779337965372776022890068\nDESCRIPTIONsome descr\nDEVICEID1231234\nID124345678\nRCPT8897458022\nRCPT_TYPEKIN\nREASONreason\nSAVECARD1\n"

Пример за генериране на чексума

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
my $amount     = '10';
my $appid      = '2143960160650364377823089976443473298565779337965372776022890068';
my $descr      = 'some descr';
my $deviceid   = '1231234';
my $id         = '124345678';
my $rcpt       = '8897458022';
my $rcpt_type  = 'KIN';
my $reason     = 'reason';
my $savecard   = '1';
my $secret     = '012345678909876543210';

my $data = <<DATA;
AMOUNT$amount
APPID$appid
DESCRIPTION$descr
DEVICEID$deviceid
ID$id
RCPT$rcpt
RCPT_TYPE$rcpt_type
REASON$reason
SAVECARD$savecard
DATA
my

my $CHECKSUM = hmac_hex($data, $secret, \&sha1);

#Checksum: 98a395b01ec69d049528d8971b8546aaa4adac16

Резултат от кодирането

Kодиране на request_data с параметър SECRET="012345678909876543210"

Резултат:

  • CHECKSUM = "98a395b01ec69d049528d8971b8546aaa4adac16"

GET /api/payment/noreg/send

Метод Система
GET API_BASE_WEB

Потребителят въвежда данни за картата и избира дали да я запази за бъдещи плащания.

Това генерира потребителски идентификатор TOKEN, след което потребителят може да извърши плащане.

demo-system

Валидност на токен при незапазена карта

При savecard = 0, токенът е валиден само за текущото плащане.

Параметри на заявката

Параметър Тип Описание Опционалност
AMOUNT int Сума за плащане в стотинки Задължителен
APPID string Идентификатор на приложението Задължителен
DESCRIPTION string Описание на превода Задължителен
DEVICEID string Идентификатор на устройството Задължителен
ID string Уникален ключ, чрез който в последствие търсите резултата от заявката Задължителен
RCPT string КИН на получателя Задължителен
RCPT_TYPE string Винаги е KIN Задължителен
REASON string Описана причина за превода Задължителен
CHECKSUM string Hexadecimal HMAC SHA-1 e чексума, удостоверяваща, че заявката идва от вас Задължителен
SAVECARD int 0|1 Опция за запазване на картата за бъдещи плащания SAVECARD = 1 Опционален

Примерна заявка

API_BASE_WEB/api/payment/noreg/send?APPID=2143960160650364377823089976443473298565779337965372776022890068&DEVICEID=1231234&ID=124345678&AMOUNT=10&RCPT=8897458022&RCPT_TYPE=KIN&DESCRIPTION=some descr&REASON=reason&checksum=93bb9753b17205f94b184bc5a94f55b3d1d2afca
API_BASE_WEB/api/payment/noreg/send?APPID=2143960160650364377823089976443473298565779337965372776022890068&DEVICEID=1231234&ID=124345678&AMOUNT=10&RCPT=8897458022&RCPT_TYPE=KIN&DESCRIPTION=some descr&REASON=reason&SAVECARD=1&checksum=98a395b01ec69d049528d8971b8546aaa4adac16

След въвеждане на данни за картата, клиентът се пренасочва към REPLY_ADDRESS.

GET /api/payment/noreg/send/status

Метод Система
GET API_BASE

Проверка на плащане от нерегистриран потребител

Параметър Тип Описание Опционалност
APPID string Уникален идентификатор на приложението Задължителен
DEVICEID string Уникален идентификатор на устройството Задължителен
ID string Уникален ключ, чрез който впоследствие търсите резултата от заявката Задължителен
RCPT_TYPE string Винаги е KIN Задължителен
RCPT string КИН на получателя Задължителен

Примерна заявка

https://demo.epay.bg/xdev/api/api/payment/noreg/send/status?AMOUNT=666&APPID=6609898197243081281733444125044765054179316360618564706359682755&CHECKSUM=24f946e2d30ea5c184c788539cf8f06fe996cc18&DESCRIPTION=test&DEVICEID=TestTestov123&ID=TestTestov123&RCPT=2945322142&RCPT_TYPE=KIN&REASON=test

Отговор при успешно плащане

При savecard=1 се връща токен, който може да бъде използван за бъдещи плащания. Връща се и ID на платежния инструмент, който при последващи плащания трябва да се подава в параметър PINS.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
    "payment": {
        "REASON":"причина за превода",
        "DESCRIPTION":"описание на превода",
        "AMOUNT":10,
        "TAX":100,
        "TOTAL":110,
        "RCPT_TYPE":"KIN",
        "RCPT":"8897458022",
        "PAYER_KIN":"5112074184",
        "STATE":3,
        "STATE.TEXT":"Извършено плащане",
        "TOKEN": "99823906809141864859059099131376",
        "NO":"2000000000032229",
    },
    "payment_instrument": {
        "ID": "UsYGw8-pTlZU4DJOAYT911cDTSmYoCcPYIAaLZp-1FQ",
        "CARD_REF": "c8fb30bdaed9d9721b4ac215251333900548cca18575ae1f017566c12f8ee626",
        "NAME": "Visa***1111",
        "CARD_TYPE": "4",
        "TYPE": 1,
        "CARD_TYPE_DESCR": "Visa",
        "EXPIRES": "04/2020",
        "VERIFIED": 0,
        "CARD_TYPE_COUNTRY": "BG"
    },
    "savecard": 1,
    "status":"OK"
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
    "payment":{
        "AMOUNT":10,
        "TAX":100,
        "TOTAL":110,
        "REASON":"причина за превода",
        "DESCRIPTION":"описание на превода",
        "RCPT":"8897458022",
        "RCPT_TYPE":"KIN",
        "PAYER_KIN":"5112074184",
        "STATE":3,
        "STATE.TEXT":"Извършено плащане",
        "TOKEN": "99823906809141864859059099131376",
        "NO":"2000000000032229",
    },
    "paid_with": {
        "CARD_TYPE": "4",
        "TYPE": 1,
        "CARD_TYPE_DESCR": "Visa",
        "CARD_TYPE_COUNTRY": ""
    },
    "savecard": 0,
    "status":"OK"
}

Описание на параметрите на отговора

payment

Параметър Тип Описание
АMOUNT int Сума на плащането в стотинки
TAX int Такса за плащането в стотинки
TOTAL int AMOUNT + TAX в стотинки
REASON string Допълнително описание на плащането
DESCRIPTION string Описание на плащането
RCPT string КИН на получателя
RCPT_TYPE string Винаги е KIN
PAYER_KIN string КИН на наредителя на плащането
STATE int Резултата от плащането 2|3|4
2 - Обработва се
3 - Успешно плащане
4 - Неуспешно плащане
STATE.TEXT string Грешка, която може да бъде показана на потребителя
TOKEN string Уникален потребителски идентификатор
NO string Системен код на плащането

payment_instrument

Съдържа се savecard=1, когато потребителят е запазил платежния инструмент по време на плащането.

Параметър Тип Описание
ID int Ключ на картата
NAME string Име на картата
CARD_TYPE string Първата цифра от номера на картата
CARD_TYPE_DESCR string Информация за платежния инструмент
TYPE int 0|1 TYPE = 1 (банкова карта)
EXPIRES string MM/YYYY Дата на валидност на картата
VERIFIED int 0|1 Потвърдена ли е картата
0 - не
1 - да
CARD_TYPE_COUNTRY string Страна на издаване на картата

paid_with

Съдържа се savecard=0, когато потребителят НЕ е запазил платежния инструмент по време на плащането.

Параметър Тип Описание
CARD_TYPE_COUNTRY string Страна на издаване на картата
CARD_TYPE_DESCR string Информация за платежния инструмент
CARD_TYPE string Първата цифра от номера на картата, ако е банкова карта
TYPE int 0|1 TYPE = 1 (банкова карта)

Отговор при неуспешно плащане

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
    "payment": {
        "REASON": "reasondominos",
        "DESCRIPTION": "descrdominos",
        "AMOUNT": 140,
        "TAX": 0,
        "TOTAL": 140,
        "RCPT_TYPE": "KIN",
        "RCPT": "4303137865",
        "PAYER_KIN": "3099545641",
        "STATE": 4,
        "STATE.TEXT": "Неуспешно плащане(Временно не може да бъде извършена. Моля, опитайте по-късно. (1))",
        "TOKEN": "00000000000000000480783218379645",
        "NO": "2000000000039033",
    },
    "paid_with": {
        "CARD_TYPE_DESCR": "Visa",
        "TYPE": 1,
        "CARD_TYPE": "4",
        "CARD_TYPE_COUNTRY": "BG"
    },
    "savecard": 0, 
    "status": "OK"
}
1
2
3
4
{
    "status":"OK",
    "msg":"NOT PAID",
}

Този статус показва текущото състояние на заявката, клиентът може все още да не е платил заявката.

1
2
3
4
{
    "status":"OK",
    "msg":"EXPIRED",
}

Връща се, когато заявката не е платена в рамките на 15 минути

1
2
3
4
5
{
    "status": "ERR",
    "err": "NO_DATA",
    "errm": "Неуспешна заявка. Моля, свържете се с поддръжка"
} 

Описание на параметрите на отговора

Параметър Тип Описание
status string Статус
msg string Съобщение на грешката
err string Tип на грешката
errm string Oписание на грешката