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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

curl --location --request POST 'https://proxy.bank131.ru/api/v1/session/init/payment/sync' \
--header 'Content-Type: application/json' \
--header 'X-PARTNER-SIGN: sign' \
--header 'X-PARTNER-PROJECT: project' \
--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"
}
}'

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

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

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

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

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

Карта с 3-D Secure

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

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