Перейти к содержанию

Платежі з використанням токенів

Токенізація (для карткових платежів)

Для отримання токена картки необхідно, щоб за цією карткою було проведено хоча б один успішний платіж із включеною опцією токенізації. Тоді в Callbacks або за реконсиляцією повернеться токен token в об'єкті payload разом з маскою картки та даними користувача.

API: PRIVATE

Авторизація: BasicAuth

Endpoint: /payment-invoices

Method: POST

Обов'язкові поля:

  • reference_id
  • currency
  • amount
  • service
  • gateway_optionscardgate"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

  1. Створення інвойсу зі вказанням token (токена картки) і пов'язаного з ним Customer reference_id (обов'язково)

  2. Надсилання даних форми, зібраних з 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_datametadata)

Приклад запиту на списання (JSON)

{
   "data": {
      "type": "sale-operation",
      "attributes": {
      }
   }
}