Платежи с использованием токенов¶
Токенизация (для карточных платежей)¶
Для получения токена карты необходимо, чтобы по этой карте был проведен хотя бы один успешный платёж со включенной опцией токенизации. Тогда в 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":"USD",
"amount":1,
"customer":{
"reference_id":"my_customer_1",
"name":"John Doe"
},
"service":"payment_card_usd_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":"USD",
"service":"payment_card_usd_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": "USD",
"service_currency": "USD",
"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_usd_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":"USD",
"amount":1,
"service":"payment_card_usd_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": "USD",
"service_currency": "USD",
"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_usd_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": {
}
}
}