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

Выплаты на банковскую карту с виджетом

Этот способ подходит для ситуаций, когда вы решили не собирать и не хранить данные банковских карт на своей стороне. В таком случае предлагаем использовать специальный виджет для токенизации. С ним вы можете получить токенизированные данные карты и безопасно провести выплату.

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

1. Получите токен

Выполните запрос на создание токена token и укажите в теле тип виджета allow_tokenization. В ответе вы получите публичный токен.

Пример
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/token \
-H 'Content-Type: application/json' \
-H 'X-Project-Id: your_project_name' \
-H 'X-Signature: signature' \
-d '{
"card_tokenize": {
"allow_tokenization": true
}
}'

2. Соберите данные карты через виджет

Подключите JavaScript-библиотеку Zetplat и добавьте виджет токенизации на нужную страницу. Инициализируйте виджет, передав ему публичный токен, полученный на предыдущем этапе.

Получатель вводит данные карты в форму виджета. В ответ вы получаете токенизированные данные — именно их нужно будет использовать для проведения выплаты.

Как добавить виджет для токенизации

3. Создайте платежную сессию

Отправьте запрос на создание сессии 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 '{
"sum_info": {
"sum": 10000,
"currency_code": "rub"
},
"extra_info": "order123"
}'

4. Начните выплату

Отправьте запрос на проведение выплаты с помощью метода transaction/start/transfer. В объекте hashed_card_details передайте токенизированные данные банковской карты, полученные из виджета.

Уточнить информацию о токене или карте можно с помощью метода token/state. Например, оттуда можно извлечь последние 4 цифры номера карты, чтобы показать клиенту, куда придет выплата.

Набор обязательных параметров зависит от типа карты получателя.

Пример
 curl -X POST \
https://proxy-demo.zetplat.com/api/v1/transaction/start/transfer \
-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": "63191fa17cc7edf818ee5d6611a2c2169ab30b705111cffd710af39880deef09",
"hashed_card_exp_date":"f4286b9a8e0eb7974f34a996ee732fd861868f2fc7aaa7ed5cca8de2489534ad",
"hashed_name_on_card":"dd6cce1e06790019dd266c6f70430f87dd378df802c6b7494395156f62533ce6",
"hashed_card_code":"7756b897e88c035f34c6658a147e263b29b480a5cdf76581012ff10ede478c4c"
}
}
},
"extra_info": "good"
}'

5. Дождитесь вебхука для выплаты

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": "active",
"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": "user123",
"contact_info": [{
"email_address": "user@gmail.com"
}]
},
"payout_info": {
"type": "card_info",
"card_info": {
"card_last4": "4242",
"card_network": "visa"
}
},
"sum_info": {
"sum": 10000,
"currency_code": "rub"
},
"extra_info": "good"
}]
}
}'

6. Подтвердите или отмените выплату

Проверьте данные для выплаты, а затем подтвердите или отмените ее:

Пример
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"
}'

7. Дождитесь результата выплаты

Zetplat отправит вам вебхук checkout_results. Статус successful означает успешную выплату.

Подробнее о статусах выплаты
Описание кодов ошибок и их значений