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

Процесс платежа

Как можно проводить платежи

  • с оплатой через платежную форму (если нет PCI DSS);
  • с открытыми данными (если у вас есть PCI DSS);
  • c холдированием.

Платежная сессия

В рамках платежной сессии PaymentSession проходят все операции в API. Одна платежная сессия может объединять несколько операций, например, платеж и возврат.

Вы можете отправлять платежи двумя способами:

  • с одновременным стартом сессии и платежа (одним запросом session/init/payment);
  • или сначала создать сессию, а потом отправить платеж (двумя запросами: session/create и session/start/payment). Например, чтобы вызвать виджет платежной формы или просто сразу получить идентификатор сессии и следить по нему за тем, что происходит с платежом.
 

Основной сценарий платежа

  1. Вы создаете платежную сессию:
  • отдельно от платежа (session/create) — это обязательно, если будете проводить платеж с виджетом платежной формы;
  • или одновременно с платежом (session/init/payment).

Эти шаги нужны только для оплаты с виджетом

  1. Если будете подключать виджет платежной формы, отправляете запрос на создание токена для доступа к JavaScript-библиотеке.
  2. Показываете виджет пользователю и получаете данные карты.
  1. Если не используете виджет и создавали сессию отдельно от старта платежа, отправляете запрос session/start/payment.
  2. Получаете от Банка 131 вебхук ready_to_confirm — это значит, что Банк готов провести платеж и ждет вашего подтверждения.
  3. Подтверждаете проведение платежа (confirm_request) или отменяете его (cancel_request).

Эти шаги нужны только для оплаты без виджета

  1. Если проводите оплату без платежной формы, получаете вебхук action_required от Банка 131. Это значит, что для проведения платежа нужны дополнительные действия. Например, пользователю нужно пройти 3-D Secure.
  2. Перенаправляете пользователя на адрес для подтверждения платежа (3-D Secure).

Эти шаги нужны только для платежа с холдированием

При платеже с холдированием деньги блокриуются на карте пользователя и списываются по вашей команде. Если вы не хотите проводить платежи с холдированием, эти шаги можно пропускать. Чтобы использовать такой сценарий, напишите менеджеру в Банке 131.

  1. Получаете вебхук ready_to_capture от Банка 131. Это значит, что деньги для оплаты заблокированы на банковской карте пользователя.
  2. Списываете захолдированную сумму (session/capture) или разблокируете деньги (cancel_request).
  1. Получаете от Банка 131 вебхук payment_finished с результатом проведения платежа. Статус succeeded сообщает вам, что платеж успешно проведен.

Статусы платежа

Статус платежа возвращается в поле status в объекте AcquiringPayment. Чтобы его узнать, дождитесь вебхука от Банка 131 или отправьте запрос session/status с идентификатором сессии, в которую входит этот платеж.