Выплата по токену
Общая информация
В данном разделе описана выплата через Gate по токену платежной карты.
Токен — это идентификатор, представляющий собой уникальную строку из 64 символов и связанный с определенной банковской картой и пользователем. Токен не содержит конфиденциальной информации и может храниться в вашей системе, не создавая угрозы нарушения стандартов безопасности по хранению данных банковских карт. Более подробную информацию о токенах см. в разделе Использование токенов.
Шаги проведения выплаты
Чтобы выполнить выплату через Gate по токену:
- Отправьте запрос с нужными параметрами и подписью на рабочий URL-адрес платежной платформы Rocketpay.
- При необходимости предоставьте дополнительную информацию о платеже.
Подробнее о предоставлении дополнительной информации, см. Дополнение информации о платеже.
- Примите от платежной платформы оповещение (callback) о результате проведения выплаты.
Далее в данном разделе представлена схема проведения выплаты в базовом случае, то есть без дополнения информации о платеже.
Рис.: Здесь описаны шаги выплаты через Gate
- Пользователь инициирует выплату в вашей системе.
- Ваша система передает платежной платформе запрос на выплату через Gate.
- Платежная платформа получает запрос.
- Платежная платформа проверяет наличие обязательных параметров и корректной подписи в запросе.
- Платежная платформа отправляет вашей системе ответ с информацией о получении запроса и о результате проверки его корректности. (Подробнее о структуре ответа см. Ответ.)
- Платежная платформа обрабатывает запрос и отправляет его в сервис провайдера.
- Сервис провайдера обрабатывает запрос на выплату.
- Сервис провайдера направляет в платежную платформу уведомление о результате выплаты.
- Платежная платформа отправляет в вашу систему оповещение (callback) с результатом выплаты.
- Ваша система направляет пользователю информацию о результате выплаты.
Далее рассказывается о структуре запроса на выплату по токену карты, а также о структуре оповещений с результатами выплаты.
Запрос
Далее представлена информация, необходимая для составления и отправки запроса на выплату.
| HTTP-метод запроса | POST |
| Формат тела запроса | JSON |
| Конечная точка | /v2/payment/card/payout/token |
| Полная спецификация конечной точки | /v2/payment/card/payout/token |
|
|||
|---|---|---|---|
| Объект/массив | Параметр | Описание | |
|
general |
project_id |
Идентификатор проекта, полученный от Rocketpay при интеграции. Пример: |
|
|
payment_id |
Идентификатор платежа, уникальный в рамках проекта. Пример: |
||
|
signature |
Подпись запроса, составленная после определения всех параметров запроса. Подробнее о составлении подписи см. Использование подписи к данным. | ||
|
customer |
id |
Идентификатор пользователя, уникальный в рамках проекта. Пример: |
|
|
first_name |
Имя пользователя. Пример: |
||
|
middle_name |
Отчество или среднее имя пользователя. Пример: |
||
|
last_name |
Фамилия пользователя. Пример: |
||
|
ip_address |
IP-адрес устройства пользователя. Пример: |
||
|
payment |
amount |
Сумма выплаты в дробных единицах валюты без десятичной точки и пробелов за исключением случаев, когда у валюты нет дробной части. Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Коды валют. Пример: 100,00 USD передается как |
|
|
currency |
Код валюты выплаты в формате ISO-4217 alpha-3. Пример: |
||
|
token |
Токен банковской карты пользователя. Токен представляет собой уникальную строку из 64 символов, связанную с банковской картой. Пример: Подробнее см. Использование токенов |
||
|
card |
card_holder |
Имя держателя карты (в соответствии с указанным на карте). Этот параметр обязателен, если выплата выполняется по токену, при создании которого имя держателя карты не использовалось. Пример: |
|
| При необходимости добавьте в запрос необязательные параметры, указанные в спецификации Gate: API Reference. | |||
Рис.: Пример тела запроса на выплату по токену
{
"general": {
"project_id": 123,
"payment_id": "payment_47",
"signature": "1wR1YgDoDlJppOdLzFOFK...Y4YonbWmspbFh7x1o1ut5PxxTIJfQ=="
},
"customer": {
"id": "customer_123",
"ip_address": "198.51.100.47"
},
"payment": {
"amount": 10000,
"currency": "USD"
},
"token": "pkmawa3khb7wninntq8g8q3592fjjxwvzfebwbegqkl1c16akpgo6sgxac6wulz7"
}
Оповещение (callback)
Уведомление о проведении выплаты платежная платформа возвращает в оповещении. Подробнее о структуре оповещений см. Оповещения (callbacks) в Gate.
Вот пример тела оповещения с информацией о том, что в рамках проекта 123 проведена выплата в размере 100,00 USD на карту 553691******0802 пользователя customer_123.
Рис.: Пример тела оповещения о результате выплаты
{
"project_id": 123,
"payment": {
"id": "payment_47",
"type": "payout",
"status": "success",
"date": "2019-06-24T11:08:49+0000",
"method": "card",
"sum": {
"amount": 10000,
"currency": "USD"
},
"description": "payout"
},
"account": {
"number": "553691******0802"
},
"customer": {
"id": "customer_123"
},
"operation": {
"id": 14,
"type": "payout",
"status": "success",
"date": "2019-06-24T11:08:49+0000",
"created_date": "2019-06-24T11:07:42+0000",
"request_id": "71228f54d21e776a481",
"sum_initial": {
"amount": 10000,
"currency": "USD"
},
"sum_converted": {
"amount": 10000,
"currency": "USD"
},
"provider": {
"id": 1496,
"payment_id": "60-1c6072de6000",
"date": "2019-06-24T11:08:47+0000",
"auth_code": ""
},
"code": "0",
"message": "Success"
},
"signature": "+GTEzb3Xw4A9Ap8q/LE8TyyJM+MEXXja28RXtr8v2EITaK4UzSg...=="
}
Далее представлен пример данных из оповещения с информацией об отказе в проведении выплаты. Платеж отклонен из-за превышения максимально разрешенного размера выплаты.
Рис.: Пример тела оповещения об отказе в проведении выплаты
{
"project_id": 123,
"payment": {
"id": "payment_47",
"type": "payout",
"status": "decline",
"date": "2019-06-24T11:08:49+0000",
"method": "card",
"sum": {
"amount": 10000,
"currency": "USD"
},
"description": "payout"
},
"account": {
"number": "553691******0802"
},
"customer": {
"id": "customer_123"
},
"operation": {
"id": 14,
"type": "payout",
"status": "decline",
"date": "2019-06-24T11:08:49+0000",
"created_date": "2019-06-24T11:07:42+0000",
"request_id": "71228f54d21e776a481",
"sum_initial": {
"amount": 10000,
"currency": "USD"
},
"sum_converted": {
"amount": 10000,
"currency": "USD"
},
"provider": {
"id": 1496,
"payment_id": "60-1c6072de6000",
"date": "2019-06-24T11:08:47+0000",
"auth_code": ""
},
"code": "3104",
"message": "Payment Constraint Invalid Payout Amount"
},
"signature": "+GTEzb3Xw4A9Ap8q/LE8TyyJM+MEXXja28RXtr8v2EITaK4UzSg...=="
}