Выплаты на банковскую карту по токену
Этот способ подходит, если:
- У вас уже есть токенизированный номер карты.
- Вы принимаете платежи и создаете рекуррентные платежи.
В таком случае вы можете использовать рекуррентные токены для совершения выплат.
Возможность выплаты не зависит от проекта (
X-Project-Idв header запроса), на котором был получен токен.
Как сделать выплату на карту по токену
1. Создайте платежную сессию
Отправьте запрос на создание сессии transaction/initiate. В ответе придет
идентификатор платежной сессии.
Пример
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/transaction/initiate \
-H 'Content-Type: application/json' \
-H 'X-Project-Id: your_project_name' \
-H 'X-Signature: signature' \
-d '{}'
2. Начните выплату
Отправьте запрос на проведение выплаты с помощью метода transaction/start/transfer.
В запросе передайте:
- В параметре
session_id— идентификатор сессии, созданной на предыдущем шаге. - Один из следующих параметров, в зависимости от типа имеющихся у вас данных:
- Токен — в объекте
tokenized_card. - Хеш — в объекте
hashed_card_details. - Токен для рекуррентных выплат — в объекте
recurring_token_info.
- Токен — в объекте
Уточнить информацию о токене или карте получится с помощью метода
token/state. Например, оттуда можно извлечь последние 4 цифры номера карты, чтобы показать клиенту, куда придет выплата.
Пример
- С токеном
- С хешем
- С токеном для рекуррентных выплат
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/session/start \
-H 'Content-Type: application/json' \
-H 'X-Project-Id: your_project_name' \
-H 'X-Signature: signature' \
-d '{
"session_id": "3230",
"payout_info": {
"type": "card_info",
"card_info": {
"type": "tokenized_card",
"tokenized_card": {
"token": "759c9852dde2211d7531b3d905c1d513fbfb914bee87fb567d99c7b2f2c2ad44"
}
}
},
"participant_info": {
"payee_info": {
"full_name": "Ivanov Ivan"
}
},
"extra_info": "good"
}'
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/session/start \
-H 'Content-Type: application/json' \
-H 'X-Project-Id: your_project_name' \
-H 'X-Signature: signature' \
-d '{
"session_id": "3230",
"payout_info": {
"type": "card_info",
"card_info": {
"type": "hashed_card_details",
"hashed_card_details": {
"hashed_card_number": "064e7045a239e2d5d0448c2f72be84beb8d6dc47020f5b1174bccb6f3b9b2f1b"
}
}
},
"participant_info": {
"payee_info": {
"full_name": "Ivanov Ivan"
}
},
"extra_info": "good"
}'
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/session/start \
-H 'Content-Type: application/json' \
-H 'X-Project-Id: your_project_name' \
-H 'X-Signature: signature' \
-d '{
"session_id": "3230",
"payout_info": {
"type": "recurring_token_info",
"recurring_token_info": {
"token": "9a8a650c49de69eb98549027c5bc366f5bda51efe59bb8c0e02eb8a8a4e359da"
}
},
"participant_info": {
"payee_info": {
"full_name": "Ivanov Ivan"
}
},
"extra_info": "good"
}'
3. Дождитесь вебхука для выплаты
Zetplat отправит вам вебхук approve_pending и будет ждать подтверждения или отмены.
Пример
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-Signature: signature' \
-d '{
"type": "approve_pending",
"session_info": {
"id": "ps_3230",
"transaction_status": "ongoing",
"created_date": "2024-05-27T02:03:00.000000Z",
"updated_at": "2024-05-27T02:03:00.000000Z",
"next_step": "approve",
"payouts": [{
"id": "po_1234",
"transaction_status": "pending",
"created_date": "2024-05-27T02:03:00.000000Z",
"user_info": {
"user_id": "user",
"contact_info": [{
"email_address": "user@test.ru"
}]
},
"payout_info": {
"type": "card_info",
"card_info": {
"type": "tokenized_card",
"tokenized_card": {
"token": "759c9852dde2211d7531b3d905c1d513fbfb914bee87fb567d99c7b2f2c2ad44"
}
}
},
"sum_info": {
"sum": 10000,
"currency_code": "rub"
},
"extra_info": "good"
}]
}
}'
4. Подтвердите или отмените выплату
Проверьте данные для выплаты, а затем подтвердите или отмените ее:
- Подтвердить — с помощью запроса
transaction/approve. - Отменить — с помощью запроса
transaction/cancel.
Пример
- transaction/approve
- transaction/cancel
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/transaction/approve \
-H 'Content-Type: application/json' \
-H 'X-Project-Id: your_project_name' \
-H 'X-Signature: signature' \
-d '{
"session_id": "3230"
}'
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/transaction/cancel \
-H 'Content-Type: application/json' \
-H 'X-Project-Id: your_project_name' \
-H 'X-Signature: signature' \
-d '{
"session_id": "3230"
}'
5. Дождитесь результата выплаты
Zetplat отправит вам вебхук checkout_results. Статус successful означает успешную выплату.
Подробнее о статусах выплаты
Описание кодов ошибок и их значений