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

Платежи с использованием токенов

Токенизация (для карточных платежей)

Для получения токена карты необходимо, чтобы по этой карте был проведен хотя бы один успешный платёж со включенной опцией токенизации. Тогда в 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":"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

  1. Создание инвойса с указанием token (токена карты) и связанного с ним Customer reference_id (обязательно)

  2. Отправка данных формы, собранных с 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_datametadata)

Пример запроса на списание (JSON)

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