Выплаты на банковскую карту с виджетом
Этот способ подходит для ситуаций, когда вы решили не собирать и не хранить данные банковских карт на своей стороне. В таком случае предлагаем использовать специальный виджет для токенизации. С ним вы можете получить токенизированные данные карты и безопасно провести выплату.
Как сделать выплату на карту с виджетом
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. Подтвердите или отмените выплату
Проверьте данные для выплаты, а затем подтвердите или отмените ее:
- Подтвердить — с помощью запроса
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"
}'
7. Дождитесь результата выплаты
Zetplat отправит вам вебхук checkout_results. Статус successful означает успешную выплату.
Подробнее о статусах выплаты
Описание кодов ошибок и их значений