Платежі з використанням токенів¶
Токенізація (для карткових платежів)¶
Для
отримання токена картки необхідно, щоб за цією
карткою було проведено хоча б один успішний
платіж із включеною опцією токенізації. Тоді в
Callbacks або за
реконсиляцією повернеться токен token
в об'єкті payload
разом з маскою
картки та даними користувача.
API: PRIVATE
Авторизація: BasicAuth
Endpoint: /payment-invoices
Method: POST
Обов'язкові поля:
reference_id
currency
amount
service
gateway_options
→cardgate
→"tokenize":true
customer
reference_id
Опціональні поля:
test_mode
description
customer
name
email
phone
meta_data
JSON
{
"data":{
"type":"payment-invoices",
"attributes":{
"test_mode":true,
"reference_id":"ORDER1233",
"description":"TEST",
"currency":"UAH",
"amount":1,
"customer":{
"reference_id":"my_customer_1",
"name":"John Doe"
},
"service":"payment_card_UAH_hpp",
"gateway_options":{
"cardgate":{
"tokenize":true
}
}
}
}
}
{
"payload":{
"client_ip":"",
"payment_card":{
"last":"0000",
"mask":"512381******0000",
"brand":"mastercard",
"first":"512381",
"holder":"asd asdas ",
"expiry_year":"32",
"issuer_name":"FIRST DATA CORPORATION",
"expiry_month":"12",
"issuer_country":"US"
},
"token":"4c9jHUgeL1SD7g5byDYn9Gc0RC60NN3x"
}
}
Використання токенів¶
Визначення картки для Checkout¶
API:
PRIVATE
Авторизація: BasicAuth
Endpoint: /payment-invoices
Method: POST
-
Створення інвойсу зі вказанням
token
(токена картки) і пов'язаного з ним Customerreference_id
(обов'язково) -
Надсилання даних форми, зібраних з
flow_data
JSON
{
"data":{
"type":"payment-invoices",
"attributes":{
"reference_id":"test_live_recurrent_11",
"amount":100,
"currency":"UAH",
"service":"payment_card_UAH_hpp",
"flow":"charge",
"test_mode":true,
"description":"Invoice by Token Example",
"token": "4c9jHUgeL1SD7g5byDYn9Gc0RC60NN3x",
"customer":{
"reference_id":"my_customer_1"
}
},
"callback_url":"https://example.com"
}
}
{
"data": {
"type": "payment-invoices",
"id": "cpi_ADzwZTG99f3q3utQ",
"attributes": {
"serial_number": "ADzwZTG99f3q3utQ",
"status": "process_pending",
"resolution": "ok", // При неуспішному статусі уточнює причину помилки
"moderation_required": false, // Описує, знаходиться чи операція на ручній модерації (якщо `true` — операція блокується для ручної модерації
"amount": 100,
"payment_amount": 100,
"currency": "UAH",
"service_currency": "UAH",
"reference_id": "test_live_recurrent_11",
"test_mode": true,
"fee": 0,
"deposit": 1,
"processed": null,
"processed_amount": null,
"refunded_amount": null,
"processed_fee": null,
"processed_deposit": null,
"metadata": [],
"flow_data": {
"action": "https://cardgate.example.io/hpp/cgi_ZzhRb7xLro7cIf0N",
"method": "GET",
"params": [],
"metadata": {
"sid": "cgi_ZzhRb7xLro7cIf0N",
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzaWQiOiJjZ2lfVWxReDF4d1pBY3FpMWl5aiI........sImV4cCI6MTYwMDg2NTM2MX0"
}
},
"flow": "hpp",
"payment_flow": "charge",
"created": 1585175055,
"updated": 1585175056,
"payload": null,
"description": null,
"descriptor": "DEMO ACC:Заказ №:test_live_recurrent_11",
"callback_url": "https://example.site/2fac2a84-a905-40fb-bf61-517506e4f3eb",
"return_url": "https://example.io/about-us?myparam=myvalue",
"original_data": null,
"rrn": null,
"approval_code": null
},
"relationships": {
"payment-service": {
"data": {
"type": "payment-services",
"id": "payment_card_UAH_hpp"
}
},
"payment-method": {
"data": {
"type": "payment-methods",
"id": "payment_card"
}
},
"customer": {
"data": {
"type": "customers",
"id": "cus_kFIAv2l4M9diZGzK"
}
}
},
"links": {
"self": "/api/payment-invoices/cpi_ADzwZTG99f3q3utQ"
}
}
}
Списання по токену (без участі користувача)¶
Створення інвойсу¶
API: PRIVATE
Авторизація: BasicAuth
Endpoint: /payment-invoices
Method: POST
Під
час створення інвойсу із зазначенням token
(токена картки) обов'язково
вказівка пов'язаного з ним Customer reference_id
.
JSON
{
"data":{
"type":"payment-invoices",
"attributes":{
"test_mode":true,
"reference_id":"ORDER1233",
"currency":"UAH",
"amount":1,
"service":"payment_card_UAH_hpp",
"token":"zsmmfyTkG6hn9DdwDhxh69LdQNJgZWk5xMdY7vg",
"customer": {
"reference_id":"my_customer_1"
},
"gateway_options":{
"cardgate":{
"instant":true
}
}
}
}
}
{
"data": {
"type": "payment-invoices",
"id": "cpi_ADzwZTG99f3q3utQ",
"attributes": {
"serial_number": "ADzwZTG99f3q3utQ",
"status": "process_pending",
"resolution": "ok", // При неуспішному статусі уточнює причину помилки
"moderation_required": false, // Описує, знаходиться чи операція на ручній модерації (якщо `true` — операція блокується для ручної модерації)
"amount": 1,
"payment_amount": 1,
"currency": "UAH",
"service_currency": "UAH",
"reference_id": "test_live_recurrent_11",
"test_mode": true,
"fee": 0,
"deposit": 1,
"processed": null,
"processed_amount": null,
"refunded_amount": null,
"processed_fee": null,
"processed_deposit": null,
"metadata": [],
"flow_data": {
"action": "https://cardgate.example.io/hpp/cgi_ZzhRb7xLro7cIf0N",
"method": "GET",
"params": [],
"metadata": {
"sid": "cgi_ZzhRb7xLro7cIf0N",
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9*****"
}
},
"flow": "hpp",
"payment_flow": "charge",
"created": 1585175055,
"updated": 1585175056,
"payload": null,
"description": null,
"descriptor": "DEMO ACC:Заказ №:test_live_recurrent_11",
"callback_url": "https://example.site/2fac2a84-a905-40fb-bf61-517506e4f3eb",
"return_url": "https://example.io/about-us?myparam=myvalue",
"original_data": null,
"rrn": null,
"approval_code": null
},
"relationships": {
"payment-service": {
"data": {
"type": "payment-services",
"id": "payment_card_UAH_hpp"
}
},
"payment-method": {
"data": {
"type": "payment-methods",
"id": "payment_card"
}
},
"customer": {
"data": {
"type": "customers",
"id": "cus_kFIAv2l4M9diZGzK"
}
}
},
"links": {
"self": "/api/payment-invoices/cpi_ADzwZTG99f3q3utQ"
}
}
}
Ініціювання списання¶
API:
CARDGATE
(URL
під час інтеграції видається менеджером)
Endpoint: /payment/sale
Method: POST
Авторизація:
bearerToken
(передається параметр token
,
отриманий у відповідь на запит створення
інвойсу, об'єкт flow_data
→
metadata
)
Приклад запиту на списання (JSON)
{
"data": {
"type": "sale-operation",
"attributes": {
}
}
}