Выплаты на банковскую карту
Этот сценарий описывает отправку выплаты на банковскую карту, если вы приняли решение получать и хранить данные банковских карт на своей стороне (необходимо выполнять дополнительные требования стандарта PCI DSS).
В этом случае у вас есть два варианта:
- создать платежную сессию и отправить выплату одним запросом,
- сначала создать платежную сессию, а потом отправить выплату.
Здесь описан только один вариант — с отдельным созданием сессии.
Выплата на карту с отдельным созданием сессии
Шаг 1. Создайте платежную сессию
Отправьте запрос на создание сессии session/create. В ответе придет
идентификатор платежной сессии.
В заголовках запроса следует передать идентификатор вашего проекта и подпись запроса.
Пример запроса на создание сессии
curl -X POST \
https://proxy-demo.pikepayments.com/api/v1/session/create \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "order123"
}'
Шаг 2. Начните выплату
Отправьте запрос на проведение выплаты с помощью метода session/start/payout
(этот метод подходит, если сессия уже была создана). В параметре session_id
передайте идентификатор сессии, созданной на первом шаге. В параметре
type в объекте payment_method/payout_details передайте значение card. В объекте bank_card
передайте данные банковской карты получателя.
Пример запроса
curl -X POST \
https://proxy-demo.pikepayments.com/api/v1/session/start \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "3230",
"payment_method": {
"type": "card",
"card": {
"type": "bank_card",
"bank_card": {
"number": "4242424242424242"
}
}
},
"participant_details": {
"recipient": {
"full_name": "Ivanov Ivan"
}
},
"metadata": "good"
}'
Шаг 3. Дождитесь уведомления о готовности сделать выплату
Pike отправит вам вебхук ready_to_confirm. Это значит,
что выплату можно провести и Pike ждет вашего подтверждения (или отмены).
В теле вебхука придут все данные для выплаты.
В ответ следует отдавать HTTP-код 200.
Пример вебхука ready_to_confirm
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "ready_to_confirm",
"session": {
"id": "ps_3230",
"status": "in_progress",
"created_at": "2024-05-27T02:03:00.000000Z",
"updated_at": "2024-05-27T02:03:00.000000Z",
"next_action": "confirm",
"payments": [{
"id": "po_1234",
"status": "pending",
"created_at": "2024-05-27T02:03:00.000000Z",
"customer": {
"reference": "user",
"contacts": [{
"email": "user@gmail.com"
}]
},
"payment_method": {
"type": "card",
"card": {
"last4": "4242",
"brand": "visa"
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "good"
}]
}
}'
Шаг 4. Подтвердите или отмените выплату
Проверьте данные для выплаты и подтвердите, что готовы её провести (с помощью
запроса session/confirm) или отмените (отправьте запрос session/cancel).
Примеры
- Подтверждение выплаты
- Отмена выплаты
curl -X POST \
https://proxy-demo.pikepayments.com/api/v1/session/confirm \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "3230"
}'
curl -X POST \
https://proxy-demo.pikepayments.com/api/v1/session/cancel \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "3230"
}'
Шаг 5. Дождитесь уведомления о результате выплаты
Pike отправит вам обязательный вебхук payment_finished.
В теле вебхука придут все данные, с которыми
проводилась выплата. Результат выплаты приходит в поле status в массиве payments/payout_list.
Если статус succeeded, значит, выплата прошла успешно.