Процесс платежа
Как можно проводить платежи
- с оплатой через платежную форму (если нет PCI DSS);
- с открытыми данными (если у вас есть PCI DSS);
- c холдированием.
Платежная сессия
В рамках платежной сессии PaymentSession
проходят все операции в API. Одна платежная сессия может объединять несколько
операций, например, платеж и возврат.
Вы можете отправлять платежи двумя способами:
- с одновременным стартом сессии и платежа (одним запросом
session/init/payment
); - или сначала создать сессию, а потом отправить платеж (двумя запросами:
session/create
иsession/start/payment
). Например, чтобы вызвать виджет платежной формы или просто сразу получить идентификатор сессии и следить по нему за тем, что происходит с платежом.
Основной сценарий платежа
- Вы создаете платежную сессию:
- отдельно от платежа (
session/create
) — это обязательно, если будете проводить платеж с виджетом платежной формы; - или одновременно с платежом (
session/init/payment
).
Эти шаги нужны только для оплаты с виджетом
- Если будете подключать виджет платежной формы, отправляете запрос на создание токена для доступа к JavaScript-библиотеке.
- Показываете виджет пользователю и получаете данные карты.
- Если не используете виджет и создавали сессию отдельно от старта платежа,
отправляете запрос
session/start/payment
. - Получаете от Банка 131 вебхук
ready_to_confirm
— это значит, что Банк готов провести платеж и ждет вашего подтверждения. - Подтверждаете проведение платежа (
confirm_request
) или отменяете его (cancel_request
).
Эти шаги нужны только для оплаты без виджета
- Если проводите оплату без платежной формы, получаете вебхук
action_required
от Банка 131. Это значит, что для проведения платежа нужны дополнительные действия. Например, пользователю нужно пройти 3-D Secure. - Перенаправляете пользователя на адрес для подтверждения платежа (3-D Secure).
Эти шаги нужны только для платежа с холдированием
При платеже с холдированием деньги блокриуются на карте пользователя и списываются по вашей команде. Если вы не хотите проводить платежи с холдированием, эти шаги можно пропускать. Чтобы использовать такой сценарий, напишите менеджеру в Банке 131.
- Получаете вебхук
ready_to_capture
от Банка 131. Это значит, что деньги для оплаты заблокированы на банковской карте пользователя. - Списываете захолдированную сумму (
session/capture
) или разблокируете деньги (cancel_request
).
- Получаете от Банка 131 вебхук
payment_finished
с результатом проведения платежа. Статусsucceeded
сообщает вам, что платеж успешно проведен.
Статусы платежа
Статус платежа возвращается в поле status
в объекте AcquiringPayment
. Чтобы его узнать,
дождитесь вебхука от Банка 131 или отправьте запрос session/status
с идентификатором сессии, в которую входит этот платеж.
Возможные статусы платежа
in_progress
— в обработке;pending
— ожидает подтверждения;succeeded
— платеж прошел успешно;failed
— при оплате возникла ошибка.