Specification of interaction protocol between the Alif Bank system and Partners
Адрес: /api/emvqr/partner/invoiceqr/create
Заголовок: Token=hash_hmac(‘sha256’, user_id + amount + callback_url, password)
Password генерируется и передается приватно Партнеру со стороны Алиф
Запрос:
Имя поля | Тип | Значение | Описание |
---|---|---|---|
user_id | string | uuid | Генерируется и передается приватно Партнеру со стороны Алиф |
amount | integer | integer | Сумма QR-кода в дирамах |
callback_url | string | string | Адрес API партнёра, на который отправляются запросы подтверждения платежа и проверки статуса |
Ответ:
Имя поля | Тип | Значение | Описание |
---|---|---|---|
code | integer | numeric | Код ответа |
message | string | string | Текст ответа |
payload | struct | struct | Структура с данными QR-кода |
payload.qrLink | string | string | Адрес QR-кода |
payload.invoiceId | string | string | ID QR-кода |
Метод: POST
Пример запроса:
curl --location 'https://HOST/api/emvqr/partner/invoiceqr/create' \
--header 'Token: 2d7eb885b4a1c3127f3dde6a1469b68031cc8341696a7fd64ea90ee198673f12' \
--header 'Content-Type: application/json' \
--data '{
"user_id": "bbff4aa6-c3d8-4083-bb1d- fffb6060a055",
"amount": 1234,
"callback_url": "https://PARTNER_ADDRESS/api/ qr/callback"
}'
Пример ответа: Метод: POST
{
"code": 200,
"message": "Успешно",
"payload": {
"qrLink": "https://HOST/api/mobi/v0/external/qr/?data=18880",
"invoiceId": "18880"
}
}
Адрес: берётся из значения callback_url при создании QR-кода
Заголовок: Token=hash_hmac(‘sha256’, action + user_id + amount + invoiceId, password)
PASSWORD генерируется и передается приватно Партнеру со стороны Алиф
Запрос:
Имя поля | Тип | Значение | Описание |
---|---|---|---|
action | string | “pay” | оплата |
user_id | string | uuid | Генерируется и передается приватно Партнеру со стороны Алиф |
amount | integer | integer | Сумма QR-кода в дирамах |
invoiceId | string | string | ID QR-кода |
Ответ:
Имя поля | Тип | Значение | Описание |
---|---|---|---|
code | integer | numeric | Код ответа |
message | string | string | Текст ответа |
Метод: POST
Пример запроса:
curl --location 'https://PARTNER_ADDRESS/api/qr/callback' \
--header 'Token: 0a3596a20c21d551d01b70abb2e2814f73e404c953b3e6dba5c92a39d6c21fa7' \
--header 'Content-Type: application/json' \
--data '{
"action": "pay",
"user_id": "bbff4aa6-c3d8-4083-bb1d- fffb6060a055",
"amount": 1234,
"invoiceId": 18880
}'
Пример ответа:
{
"code": 200,
"message": "Успешно"
}
Адрес: берётся из значения callback_url при создании QR-кода
Заголовок: Token=hash_hmac(‘sha256’, action + user_id + amount + invoiceId, password)
PASSWORD генерируется и передается приватно Партнеру со стороны Алиф
Запрос:
Имя поля | Тип | Значение | Описание |
---|---|---|---|
action | string | “status” | Проверка статуса платежа |
user_id | string | uuid | Генерируется и передается приватно Партнеру со стороны Алиф |
amount | integer | integer | Сумма QR-кода в дирамах |
invoiceId | string | string | ID QR-кода |
Ответ:
Имя поля | Тип | Значение | Описание |
---|---|---|---|
code | integer | numeric | Код ответа |
message | string | string | Текст ответа |
Метод: POST
Пример запроса:
curl --location 'https://PARTNER_ADDRESS/api/qr/callback' \
--header 'Token: 53ae182dd399098f2aa70babef4265492461efd622e64a78d40b48d1e75380c5' \
--header 'Content-Type: application/json' \
--data '{
"action": "status",
"user_id": "bbff4aa6-c3d8-4083-bb1d- fffb6060a055",
"amount": 1234,
"invoiceId": 18880
}'
Пример ответа:
{
"code": 200,
"message": "Успешно"
}
Адрес: /api/emvqr/partner/invoiceqr/cancel
Заголовок: Token=hash_hmac(‘sha256’, user_id + id, password)
PASSWORD генерируется и передается приватно Партнеру со стороны Алиф
Запрос:
Имя поля | Тип | Значение | Описание |
---|---|---|---|
id | integer | integer | Id-транзакций |
user_id | string | uuid | Генерируется и передается приватно Партнеру со стороны Алиф |
Ответ:
Имя поля | Тип | Значение | Описание |
---|---|---|---|
code | integer | numeric | Код ответа |
message | string | string | Текст ответа |
Метод: POST
Пример запроса:
curl --location 'https://HOST/api/emvqr/partner/invoiceqr/cancel' \
--header 'Token: 2d7eb885b4a1c3127f3dde6a1469b68031cc8341696a7fd64ea90ee198673f12' \
--header 'Content-Type: application/json' \
--data '{
"user_id": "bbff4aa6-c3d8-4083-bb1d- fffb6060a055",
"id": 1234
}'
Пример ответа:
{
"code": 200,
"message":"Транзакция успешно отменена"
"txn_id": 0,
"payload": null
}
code | message |
---|---|
200 | OK |
208 | Дублированный запрос |
209 | Повторный платеж |
400 | Неверный запрос |
401 | Доступ запрещен |
404 | Терминал не найден |
405 | Инвойс не найден |
406 | QR не найден |
407 | Агент не найден |
408 | Транзакция не найдена |
500 | Внутренняя ошибка системы |
code | message |
---|---|
200 | Успешно |
400 | Неверный запрос |
404 | Платёж не существует |
410 | Неуспешный платёж |
500 | Сервис временно не работает. Попробуйте отправить запрос позже |