Перейти к основному содержимому

Платеж одним запросом

Вы можете отправить платеж одним запросом, без промежуточных шагов (если без них можно обойтись). Результат платежа сразу вернется вам в ответ.

Этот вариант подходит, если:

Здесь описан платеж без холдирования. Подробнее о платежах с холдированием

Как подключить

Для таких платежей есть специальный метод session/init/payment/sync. Сообщите менеджеру Банка 131, что хотите его использовать.

В этом случае вы не будете получать вебхуки от Банка 131. Узнавать о статусе операций можно будет с помощью запроса session/status.

Как провести платеж

Отправьте запрос session/init/payment/sync.

Данный метод не рекомендуется к использованию, кроме тех случаев, когда он уже был реализован вами ранее.

В поле payment_method.type передайте значение card. В объекте bank_card передайте данные банковской карты пользователя. В поле payment_options.return_url обязательно передайте адрес, на который нужно вернуть пользователя, когда платеж пройдет.

Результат платежа вернется в ответ на запрос в поле payment.status:

  • succeeded— оплата прошла успешно;
  • failed — оплата не прошла из-за ошибки;
  • pending — пользователю нужно пройти аутентификацию по 3D Secure.

Подробнее о статусах платежа

Пример запроса на оплату

curl --location --request POST 'https://proxy.bank131.ru/api/v1/session/init/payment/sync' \
--header 'Content-Type: application/json' \
--header 'X-PARTNER-SIGN: signature' \
--header 'X-PARTNER-PROJECT: your_project_name' \
--data-raw '{
"payment_details": {
"type": "card",
"card": {
"type": "bank_card",
"bank_card": {
"number": "4242424242424242",
"expiration_month": "01",
"expiration_year": "22",
"security_code": "123"
}
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"customer": {
"reference": "lucky"
},
"payment_options": {
"return_url": "https://131.ru"
}
}'

Когда не приходит результат

Иногда в ответ на запрос не приходит окончательный статус платежа. Например, если платеж проходит слишком долго или карта пользователя требует 3D Secure.

Слишком долгий платеж

Если платеж проходит не сразу (дольше 40 секунд), в ответ вернется промежуточный статус платежа — in_progress.

Чтобы узнать окончательный статус платежа, отправьте запрос session/status.

Карта с 3D Secure

Если карта пользователя требует 3D Secure, в ответ на запрос придут данные для редиректа. Перенаправьте пользователя на адрес customer_interaction.redirect.url.

После этого отправьте запрос session/status, чтобы узнать окончательный статус платежа.