Платеж банковской картой Humo или Uzcard
Если вы не получаете вебхуки, пользуйтесь методом session/status
для получения информации по транзакции.
Платежи по узбекским картам доступны только тем, у кого есть сертификат PCI DSS.
Чтобы провести платеж картой Humo или Uzcard, выполните следующие шаги:
Создайте платежную сессию (
session/create
).В качестве альтернативы вы можете создать сессию и платеж одновременно при помощи метода
session/init/payment
.Пример
- Пример запроса
- Пример ответа
curl -X POST \
https://proxy.bank131.ru/api/v1/session/create \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"amount_details": {
"amount": 2499900,
"currency": "UZS"
},
"customer": {
"reference": "1234567890"
},
"payment_details": {
"type": "card",
"card": {
"type": "bank_card",
"bank_card": {
"number": "8600780422601850",
"expiration_month": "11",
"expiration_year": "28",
}
}
}
}'{
"status": "ok",
"session": {
"id": "ps_3230",
"status": "created",
"created_at": "2024-10-08T11:51:12.213675Z",
"updated_at": "2024-10-08T11:51:12.213675Z"
}
}Отправьте запрос
session/start/payment
.Чтобы получить токен для рекуррентных платежей, передайте
recurrent=true
в объектеpayment_options
.Пример
- Пример запроса
- Пример ответа
curl -X POST \
https://proxy.bank131.ru/api/v1/session/start/payment \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_3230",
"payment_options": {
"return_url": "return url",
"recurrent": false
}
}'{
"status": "ok",
"session": {
"id": "ps_3230",
"status": "in_progress",
"created_at": "2024-10-08T11:51:12.213675Z",
"updated_at": "2024-10-08T11:51:12.581086Z",
"acquiring_payments": [
{
"id": "pm_2501",
"status": "in_progress",
"created_at": "2024-10-08T11:51:12.626283Z",
"customer": {
"reference": "1234567890"
},
"payment_details": {
"type": "card",
"card": {
"brand": "humo",
"last4": "1850",
"country_iso3": "UZB"
}
},
"amount_details": {
"amount": 2499900,
"currency": "UZS"
}
}]
}
}'Дождитесь от Банка 131 вебхука
ready_to_confirm
— это значит, что Банк готов провести платеж и ждет вашего подтверждения.Подтвердите проведение платежа (
session/confirm
) или отмените его (session/cancel
).Пример
- Пример подтверждения
- Пример отмены
curl -X POST \
https://proxy.bank131.ru/api/v1/session/confirm \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_3230"
}'curl -X POST \
https://proxy.bank131.ru/api/v1/session/cancel \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_3230"
}'Если вы получите вебхук
action_required
от Банка 131, это значит, что нужно отправить код аутентификации по адресу, указанному вcallback_url
в объектеaccept_code
.Пример
{
"type": "action_required",
"session": {
"id": "ps_3230",
"status": "in_progress",
"created_at": "2024-10-08T11:51:12.213675Z",
"updated_at": "2024-10-08T11:51:15.526791Z",
"acquiring_payments": [
{
"id": "pm_2501",
"status": "pending",
"created_at": "2024-10-08T11:51:12.626283Z",
"customer": {
"reference": "1234567890"
},
"payment_details": {
"type": "card",
"card": {
"brand": "humo",
"last4": "1850",
"country_iso3": "UZB"
}
},
"amount_details": {
"amount": 2499900,
"currency": "UZS"
},
"customer_interaction": {
"type": "redirect",
"redirect": {
"url": "url address",
"base_url": "base url address",
"method": "GET",
"params": {}
}
},
"customer_authorization": {
"suspend_key": "suspend key value",
"accept_code": {
"rest_of_attempts": 3,
"active_to": "2024-10-08T11:52:14+00:00",
"callback_url": "https://proxy.bank131.ru/provider/v1/public/ZPlatProvider/verify/_hash_code"
},
"resend_sms": {
"rest_of_attempts": 2,
"allowed_from": "2024-10-08T11:52:14+00:00",
"callback_url": "https://proxy.bank131.ru/provider/v1/public/ZPlatProvider/resend/_hash_code"
},
"type": "sms"
},
"payment_options": {
"return_url": "return url",
"recurrent": false
}
}
],
"actions": {
"confirm": "2024-10-08T11:51:12.697715Z"
}
}
}Запросите код у плательщика (6 цифр) и отправьте его в поле
otp
, а также отправьте полеsuspend_key
(скопируйте его значение из вебхука) на указанный адрес.Пример отправки кода
- Пример запроса
- Пример успешного ответа
- Пример неуспешного ответа
curl -X POST \
https://proxy.bank131.ru/provider/v1/public/ZPlatProvider/verify/_hash_code \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"suspend_key": "suspend key value",
"otp": "999999"
}'{
}{
"status": "error",
"error": {
"description": "Internal error",
"code": "internal_error"
}
}Перешлите код еще раз (всего 3 попытки), если:
- получили неуспешный ответ,
- не получили вебхук
ready_to_capture
илиpayment_finished
.
Запросите новый код, используя адрес из объекта
resend_sms
, если:- СМС не пришло,
- срок действия кода истек,
- закончились попытки отправки кода и пришел вебхук
payment_finished
.
Пример запроса кода
curl -X POST \
https://proxy.bank131.ru/provider/v1/public/ZPlatProvider/resend/_hash_code \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
}'Важно!Если плательщик введет неправильный код:
- Банк пришлет новый вебхук
action_required
, в котором статус в объектеacquiring_payments
будетpending
. - Вернется ошибка по транзакции
provider_internal_error
, означающая, что верификация не пройдена.
В этом случае запросите новый код.
При получении от Банка 131 вебхука
ready_to_capture
отправьте запросsession/capture
, чтобы продолжить операцию, или запросsession/cancel
, чтобы ее отменить.Пример
- Пример подтверждения
- Пример отмены
curl -X POST \
https://proxy.bank131.ru/api/v1/session/capture \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_3230"
}'curl -X POST \
https://proxy.bank131.ru/api/v1/session/cancel \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_3230"
}'Дождитесь от Банка 131 вебхука
payment_finished
с результатом проведения платежа. Статусsucceeded
означает, что платеж успешно проведен.Пример
{
"type": "payment_finished",
"session": {
"id": "ps_3230",
"status": "accepted",
"created_at": "2024-10-08T11:51:12.213675Z",
"updated_at": "2024-10-08T11:51:51.344550Z",
"acquiring_payments": [
{
"id": "pm_2501",
"status": "succeeded",
"created_at": "2024-10-08T11:51:12.626283Z",
"finished_at": "2024-10-08T11:51:50.668491Z",
"customer": {
"reference": "1234567890"
},
"payment_details": {
"type": "card",
"card": {
"brand": "humo",
"last4": "1850",
"country_iso3": "UZB"
}
},
"amount_details": {
"amount": 2499900,
"currency": "UZS"
},
"payment_options": {
"return_url": "return url",
"recurrent": false
}
}
],
"actions": {
"confirm": "2024-10-08T11:51:12.697715Z",
"capture": "2024-10-08T11:51:44.460417Z"
}
}
}