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

Рекуррентные платежи CIT

Рекуррентный платеж CIT (Customer Initialized Transaction) — это возможность проводить оплату по рекуррентному токену с верификацией плательщика посредством 3DS.

Для гарантии успешной оплаты платежей CIT мы рекомендуем использовать идентификатор проекта, предназначенный для платежей с 3DS.

Как сделать рекуррентный платеж CIT

  1. Инициируйте платежную сессию методом session/init/payment, в запросе передайте значение payment_details.recurrent.initiator:client и URL для возврата плательщика после прохождения верификации 3DS в параметре return_url;
  2. Получите от Банка 131 вебхук action_required с данными для редиректа на страницу прохождения 3DS.
  3. Перенаправьте пользователя на адрес, который получили в поле customer_interaction.redirect.url. Обратите внимание на метод для перенаправления пользователя в поле customer_interaction.redirect.method: он может быть как GET, так и POST.
  4. Получите от Банка 131 вебхук payment_finished с результатом проведения рекуррентного платежа.
  5. Обратите внимание, что после прохождения верификации 3DS плательщик будет возвращен на return_url. Вызов return_url может быть произведен при помощи как метода GET, так и POST, от вас может потребоваться настроить преобразование (редирект) запроса POST в GET.

Пример запроса на оплату с указанием создать рекуррентный платеж CIT

curl --location --request POST 'https://demo.bank131.ru/api/v1/session/init/payment' \
--header 'Content-Type: application/json' \
--header 'X-PARTNER-SIGN: sign' \
--header 'X-PARTNER-PROJECT: your_project_name' \
--data-raw '{
"payment_details": {
"type": "recurrent",
"recurrent": {
"token": "token_value",
"initiator": "client"
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"customer": {
"reference": "lucky"
},
"payment_options": {
"return_url": "https://131.ru"
}
}'

Пример вебхука action_required

curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: a4f1698616d6ad7b8b73a9d72d281eeb443b64dee3f38df430eeed6aa29e1dc' \
-d '{
"type": "action_required",
"session": {
"id": "ps_3230",
"status": "in_progress",
"created_at": "2018-05-27T02:03:00.000000Z",
"updated_at": "2018-05-27T02:03:00.000000Z",
"acquiring_payments": [{
"id": "131",
"status": "pending",
"created_at": "2018-05-27T02:03:00.000000Z",
"customer": {
"reference":"user@131.ru"
},
"payment_details": {
"type": "recurrent",
"recurrent": {
"token": "token_value",
"initiator": "client"
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"amounts": {
"fee": {
"merchant_fee": {
"amount": 10,
"currency": "RUB"
}
}
},
"customer_interaction": {
"type": "redirect",
"redirect": {
"url": "https://bank131.ru?foo=bar",
"base_url": "https://bank131.ru",
"method": "GET",
"qs": {
"foo": "bar"
},
"params": {
"paReq": "sdfew^//asdhbv",
"MD": "abc75daefnn"
}
}
}
}]
}
}'

Пример вебхука payment_finished

{
"type": "payment_finished",
"session": {
"id": "ps_3230",
"status": "accepted",
"created_at": "2018-05-27T02:03:00.000000Z",
"updated_at": "2018-05-27T02:03:00.000000Z",
"acquiring_payments": [{
"id": "pm_2705",
"status": "succeeded",
"created_at": "2018-05-27T02:03:00.000000Z",
"finished_at": "2018-05-27T02:03:00.000000Z",
"customer": {
"reference":"lucky"
},
"payment_details": {
"type": "recurrent",
"recurrent": {
"token": "token_value",
"initiator": "client"
}
},
"recurrent": {
"token": "feda2b2106a2e8747bbdc4c9f53c7f5f6ab845ffa1b7cc68ca839720af99b3d1",
"created_at": "2020-07-14T13:17:11+03:00",
"finished_at": "2020-07-31T16:05:42+03:00",
"is_active": true
},
"amount_details": {
"amount": 10000,
"currency": "rub"
}
}]
}
}

Схема рекуррентного платежа CIT