Процесс платежа
Как можно проводить платежи
- с оплатой через платежную форму;
- с открытыми данными;
- с холдированием.
Платежная сессия
В рамках платежной сессии 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/payment_list. Чтобы его узнать,
дождитесь вебхука от Банка 131 или отправьте запрос session/status
с идентификатором сессии, в которую входит этот платеж.