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