Документація
  • Аутентифікація
  • Обліковий запис
  • Платежі
  • Callbacks
Зміст:

Аутентифікація.

Доступи до API

Cascad API побудовані з урахуванням REST та використовують JSON-формат і стандартні коди відповідей HTTP для обміну даними.

Публічний API

Адреса для запитів: pay.cascad.com/public-api/

У запитах для публічного API використовується Публічний ключ, бойовий (live) або тестовий (test).

Ключі для інтеграції знаходяться в налаштуваннях облікового запису в розділі «Інтеграція».

Приватний API

Адреса для запитів: pay.cascad.com

Для авторизації використовуються ID облікового запису як Login (Username) і ключ API як Password. Дані параметри знаходяться в налаштуваннях комерційного облікового запису в розділі «Інтеграція».

Стандарт BasicAuth: Authorization = Basic base64(username:password)

Приклад

curl -X POST \ pay.cascad.com/payment-invoices \ -H 'Accept: */*' \ -H 'Authorization: Basic Y29tYV92VDZMRFUwVHhPeG1iT290OkJlTlZRQ2hLcFV2RUxac3gwVmVpbnRaUmNlSmFWSWdrZVY2N1NvOVB0Wnc=' \ -d '{...}'

Зміст:

Обліковий запис.

Отримання даних облікового запису

Endpoint: /account

Метод: GET

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

Приклад відповіді

{ "data": { "type": "account", "id": "coma_CebLG6xR7jOhQmkD", "attributes": { "status": "active", "name": "MyAccount", "icon": "https://example.com/images/coma_CebLG6xR7jOhQmkD/logo.png?1583399986", "description": "", "website": "https://example.com", "payment_fee_shift_out": false, "hp_domain": "https://example.eu/", "payment_options": { "descriptor_template": null, "attempts_limit": 5, "disabled_services": [ "comcps_HSORYCGLJ237V07d", "comcps_a8WLGWFgNDm1jA48" ], "disable_new_services": true, "reverse_fee": false, "fee_strategy": "internal", "invoice_lifetime": 2880, "forbid_public_creation": false, "public_zero_fee": false, "public_fee": false, "expose_internal_data": true, "bypass_hpp": true, "force_commerce_return_url": true, "send_operation_context_on_return": true, "refund_fee": false, "recurrent": false, "allow_overwrite_descriptor": false }, "payout_options": { "descriptor_template": null, "disabled_services": [], "batch_options": { "attempts_limit": 5, "processing_mode": "parallel" }, "methods": [], "disable_new_services": false, "reverse_fee": true, "fee_strategy": "internal", "moderation_required": false, "invoice_lifetime": 30, "split_mode": false, "attempts_limit": 5, "parallel_mode": false, "allow_partially": false, "public_zero_fee": false, "public_fee": false, "expose_internal_data": false }, "api_key": "jA55tDxgWwROc******5L0XtZZW2hKbsNLxBXs", "api_key_updated": 1581174500, "live_public_key": "pk_live_gHJXSMdFxG********ncFZDOhMBaf0MYkk", "live_private_key": "sk_live_r52mIq_qbL497********g-Vr8pfoN6Ojrw98E", "test_public_key": "pk_test_eCEOeg*****7M46Rv3bIn2Ag", "test_private_key": "sk_test_0Jb_N2x*************LbHXW0VC6wRcGf_Qxs1DAs", "callback_url": "https://example.site/026c96db-be91-481e-b7c6-4a82bac744a7", "ledger_scheme": "simple", "api_ip_white_list": [], "created": 1556285176, "updated": 1583327142, "currency_accounts": { "EUR": { "active_balance": "11.00", "pending_balance": "1.00", "reserved_balance": "0.00", "overdraft_limit": "10.00" }, "BTC": { "active_balance": "0.00000000", "pending_balance": "0.00000000", "reserved_balance": "0.00000000", "overdraft_limit": "0.00000000" }, "USD": { "active_balance": "0.22", "pending_balance": "2.00", "reserved_balance": "0.00", "overdraft_limit": "10.00" } }, "report": true, "time_zone": "Europe/Kiev" }, "links": { "self": "/api/account" } } }

Баланси

Запит на отримання даних облікового запису містить об’єкт балансів по валютах – currency_accounts :

  • Active (active_balance) — активний баланс (доступні засоби для виведення)
  • Pending (pending_balance) — баланс з сумами в обробці (включає в себе незавершені виплати)
  • Reserved (reserved_balance) — “Заморожений” баланс (може бути встановлено резервування частини суми прийнятих платежів на певний період)
  • Overdraft (overdraft_limit) — Овердрафт ліміт (доступні кредитні кошти)
Приклад відповіді

{ "currency_accounts": { "EUR": { "active_balance": "11.00", "pending_balance": "1.00", "reserved_balance": "0.00", "overdraft_limit": "10.00" }, "BTC": { "active_balance": "0.00000000", "pending_balance": "0.00000000", "reserved_balance": "0.00000000", "overdraft_limit": "0.00000000" }, "USD": { "active_balance": "0.22", "pending_balance": "2.00", "reserved_balance": "0.00", "overdraft_limit": "10.00" } } }

Зміст:

Прийом платежів за переспрямуванням користувача на платіжну сторінку.

Попередній запит платежу через публічний API

Попередні запити використовуються для отримання списку доступних для даної валюти сервісів.

Попередній запит не передбачає фільтрацію сервісів за ініційованою сумою, так як користувач може оплатити в валюті, відмінній від переданої.

Endpoint: /payment-prerequest

Method: POST

Приклад (JSON)

Запит
Відповідь


{ "public_key" : "pk_test_ClSQHi2T9WXuFa76WcwwBB6rspRpg6ANM69cS9zNOJy", "currency" : "UAH" }{ "public_key" : "pk_test_ClSQHi2T9WXuFa76WcwwBB6rspRpg6ANM69cS9zNOJy", "currency" : "UAH" }{ "data": { "currency": "UAH", "test_mode": true, "services": { "payment_card_uah_hpp": { "code": "payment_card_uah_hpp", "method": "payment_card", "flow": "hpp", "currency": "UAH", "fields": [], "amount_min": 0.01, "amount_max": 1000000 }, "test_uah_test": { "code": "test_uah_test", "method": "test", "flow": "test", "currency": "UAH", "fields": [ { "key": "status", "type": "string", "label": { "ru": "Статус", "en": "Status", "uk": "Статус" }, "example": null, "hint": { "ru": "Введите статус", "en": "Enter Status", "uk": "Введіть статус" }, "regexp": "^[a-zA-Z_]*$", "required": true, "position": 0 } ], "amount_min": 0.01, "amount_max": 9999999 } }, "methods": { "payment_card": { "code": "payment_card", "category": "payment_card", "description": "", "name": { "en": "Payment card", "ru": "Платежная карта", "uk": "Платіжна карта" }, "logo": "https://static.openfintech.io/payment_methods/payment_card/logo.svg", "icon": "https://static.openfintech.io/payment_methods/payment_card/icon.svg", "metadata": null, "position": null, "hide": null }, "test": { "code": "test", "category": "alternative", "description": "", "name": { "en": "Test", "ru": "Тест", "uk": "Тест" }, "logo": "https://static.openfintech.io/payment_methods/test/logo.png", "icon": "https://static.openfintech.io/payment_methods/test/icon.svg", "metadata": null, "position": null, "hide": null } }, "account": { "name": "4Docs", "description": "4Docs only", "icon": "https://static-dev.psp.name/images/default.svg?1595844446", "website": null } } }

Отримання списку доступних сервісів через приватний API

Повний список сервісів

Endpoint: /payment-services

Method: GET

Приклад відповіді

JSON


{ "meta": { "total": 124, "pages": 7, "page": 1 }, "links": { "first": "/api/payment-services?page[number]=1&page[size]=20", "next": "/api/payment-services?page[number]=2&page[size]=20", "last": "/api/payment-services?page[number]=7&page[size]=20" }, "data": [ { "type": "payment-services", "id": "comcps_wQmYGz5RbkcgfdLI", "attributes": { "service": "test_xts_test", "service_method": "test", "service_currency": "XTS", "available": true, "active": false, "enabled": true, "amount_min": 0.01, "amount_max": 9999999, "fee_min": 0, "fee_max": 0, "fee_rate": 0, "fee_fix": 0, "reserve_lifetime": 0, "reserve_rate": 0, "currency": "GBP", "test_mode": true }, "relationships": { "payment-method": { "data": { "type": "payment-methods", "id": "test" } }, "payment-service": { "data": { "type": "payment-services", "id": "test_xts_test" } } }, "links": { "self": "/api/payment-services/comcps_wQmYGz5RbkcgfdLI" } }, { "type": "payment-services", "id": "comcps_u1xxlHVw1NyeqmjJ", "attributes": { "service": "payment_card_uah_hpp", "service_method": "payment_card", "service_currency": "UAH", "available": true, "active": false, "enabled": true, "amount_min": 0.01, "amount_max": 1000000, "fee_min": 0, "fee_max": 0, "fee_rate": 0, "fee_fix": 0, "reserve_lifetime": 0, "reserve_rate": 0, "currency": "GBP", "test_mode": true }, "relationships": { "payment-method": { "data": { "type": "payment-methods", "id": "payment_card" } }, "payment-service": { "data": { "type": "payment-services", "id": "payment_card_uah_hpp" } } }, "links": { "self": "/api/payment-services/comcps_u1xxlHVw1NyeqmjJ" } }, { "type": "payment-services", "id": "comcps_TEKVfH0di0vGimkF", "attributes": { "service": "applepay_uah_hpp", "service_method": "applepay", "service_currency": "UAH", "available": true, "active": false, "enabled": true, "amount_min": 0.01, "amount_max": 1000000, "fee_min": 0, "fee_max": 0, "fee_rate": 0, "fee_fix": 0, "reserve_lifetime": 0, "reserve_rate": 0, "currency": "GBP", "test_mode": true }, "relationships": { "payment-method": { "data": { "type": "payment-methods", "id": "applepay" } }, "payment-service": { "data": { "type": "payment-services", "id": "applepay_uah_hpp" } } }, "links": { "self": "/api/payment-services/comcps_TEKVfH0di0vGimkF" } } ] }{ "meta": { "total": 124, "pages": 7, "page": 1 }, "links": { "first": "/api/payment-services?page[number]=1&page[size]=20", "next": "/api/payment-services?page[number]=2&page[size]=20", "last": "/api/payment-services?page[number]=7&page[size]=20" }, "data": [ { "type": "payment-services", "id": "comcps_wQmYGz5RbkcgfdLI", "attributes": { "service": "test_xts_test", "service_method": "test", "service_currency": "XTS", "available": true, "active": false, "enabled": true, "amount_min": 0.01, "amount_max": 9999999, "fee_min": 0, "fee_max": 0, "fee_rate": 0, "fee_fix": 0, "reserve_lifetime": 0, "reserve_rate": 0, "currency": "GBP", "test_mode": true }, "relationships": { "payment-method": { "data": { "type": "payment-methods", "id": "test" } }, "payment-service": { "data": { "type": "payment-services", "id": "test_xts_test" } } }, "links": { "self": "/api/payment-services/comcps_wQmYGz5RbkcgfdLI" } }, { "type": "payment-services", "id": "comcps_u1xxlHVw1NyeqmjJ", "attributes": { "service": "payment_card_uah_hpp", "service_method": "payment_card", "service_currency": "UAH", "available": true, "active": false, "enabled": true, "amount_min": 0.01, "amount_max": 1000000, "fee_min": 0, "fee_max": 0, "fee_rate": 0, "fee_fix": 0, "reserve_lifetime": 0, "reserve_rate": 0, "currency": "GBP", "test_mode": true }, "relationships": { "payment-method": { "data": { "type": "payment-methods", "id": "payment_card" } }, "payment-service": { "data": { "type": "payment-services", "id": "payment_card_uah_hpp" } } }, "links": { "self": "/api/payment-services/comcps_u1xxlHVw1NyeqmjJ" } }, { "type": "payment-services", "id": "comcps_TEKVfH0di0vGimkF", "attributes": { "service": "applepay_uah_hpp", "service_method": "applepay", "service_currency": "UAH", "available": true, "active": false, "enabled": true, "amount_min": 0.01, "amount_max": 1000000, "fee_min": 0, "fee_max": 0, "fee_rate": 0, "fee_fix": 0, "reserve_lifetime": 0, "reserve_rate": 0, "currency": "GBP", "test_mode": true }, "relationships": { "payment-method": { "data": { "type": "payment-methods", "id": "applepay" } }, "payment-service": { "data": { "type": "payment-services", "id": "applepay_uah_hpp" } } }, "links": { "self": "/api/payment-services/comcps_TEKVfH0di0vGimkF" } } ] }

Дані сервісу по ID

Endpoint: /payment-services/{id}

Method: GET

Значення ID: з попереднього запиту

Приклад відповіді

JSON


{ "data": { "type": "payment-services", "id": "comcps_u1xxlHVw1NyeqmjJ", "attributes": { "service": "payment_card_uah_hpp", "service_method": "payment_card", "service_currency": "UAH", "available": true, "active": false, "enabled": true, "amount_min": 0.01, "amount_max": 1000000, "fee_min": 0, "fee_max": 0, "fee_rate": 0, "fee_fix": 0, "reserve_lifetime": 0, "reserve_rate": 0, "currency": "GBP", "test_mode": true }, "relationships": { "payment-method": { "data": { "type": "payment-methods", "id": "payment_card" } }, "payment-service": { "data": { "type": "payment-services", "id": "payment_card_uah_hpp" } } }, "links": { "self": "/api/payment-services/comcps_u1xxlHVw1NyeqmjJ" } } }{ "data": { "type": "payment-services", "id": "comcps_u1xxlHVw1NyeqmjJ", "attributes": { "service": "payment_card_uah_hpp", "service_method": "payment_card", "service_currency": "UAH", "available": true, "active": false, "enabled": true, "amount_min": 0.01, "amount_max": 1000000, "fee_min": 0, "fee_max": 0, "fee_rate": 0, "fee_fix": 0, "reserve_lifetime": 0, "reserve_rate": 0, "currency": "GBP", "test_mode": true }, "relationships": { "payment-method": { "data": { "type": "payment-methods", "id": "payment_card" } }, "payment-service": { "data": { "type": "payment-services", "id": "payment_card_uah_hpp" } } }, "links": { "self": "/api/payment-services/comcps_u1xxlHVw1NyeqmjJ" } } }

Ініціювання інвойсу

Через публічний API

Увага

Публічний API підтримує ініціювання інвойсів, якщо в налаштуваннях облікового запису для платежів відключений параметр «Тільки приватний API» (Forbid public access : FALSE)

Налаштування → Опції платежів

Endpoint: /payment-invoices

Method: POST

Обов’язкові поля запиту:

  • public_key – публічний ключ облікового запису
  • reference_id – унікальний ідентифікатор операції на стороні мерчанта
  • service – ідентифікатор сервісу, наприклад payment_card_usd_hpp. Список усіх доступних сервісів можна подивитися в налаштуваннях платежів
  • currency – валюта платежу
  • amount – сума у float форматі, наприклад 100.55

Додаткове поле:

  • description
Приклади (JSON)

Запит
Відповідь


{ "public_key": "pk_test_ClSQHi2T9WXuFa76WcwwBB6rspRpg6ANM69cS9zNOJy", "reference_id": "7135b08b-701b-4fbc-a7d2-b2763d96d415", "description": "Invoice Example", "service": "payment_card_uah_hpp", "currency": "UAH", "amount": 123.45 }{ "public_key": "pk_test_ClSQHi2T9WXuFa76WcwwBB6rspRpg6ANM69cS9zNOJy", "reference_id": "7135b08b-701b-4fbc-a7d2-b2763d96d415", "description": "Invoice Example", "service": "payment_card_uah_hpp", "currency": "UAH", "amount": 123.45 }{ "data": { "id": "cpi_QGcJxoBxnYStkuvN", "serial_number": "QGcJxoBxnYStkuvN", "created": 1595846278, "test_mode": true, "reference_id": "7135b08b-701b-4fbc-a7d2-b2763d96d415", "currency": "UAH", "amount": 123.45, "payment_amount": 123.45, "processed_amount": null, "refunded_amount": null, "description": "Invoice Example", "has_return_url": false, "status": "process_pending", "resolution": "OK", "service": "payment_card_uah_hpp", "service_method": "payment_card", "service_flow": "hpp", "service_currency": "UAH", "metadata": { "merchant_url": "https://lets.doc.it" }, "active_payment": { "payload": { "action": "https://cardgate-staging.psp.name/hpp/cgi_8z1WIRwAtwvyI3G9", "method": "GET", "params": [], "metadata": { "sid": "cgi_8z1WIRwAtwvyI3G9", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzaWQiOiJjZ2lfOHoxV0lSd0F0d3Z5STNHOSIsImV4cCI6MTU5NTg0ODA3OH0.NZE80zZm6-L8B8Q38xING5vXS86tCryGoyIefq9Aju-pCSmk8Sq1gKvCfFxTmDeytv4J509JEuSg4Ti0TK2ZeTLTvNsDU-wqWJqxL9sUq6Hd-1-2qK60qbtFJ7NbqwGFUaRpe8lU3QKM4F1S7JcTmqXg-Iz9dsVNr9obNj9Pw2MGndInKGWk2qG-ZQRZV0IXRrk49xSLo24wtLYPaZRGEkY1rPmmrSeeO1AFigfDLyld7A3w13EzotPwWPtsoPZFA4Rhcggr1s8Fjnl8iZJk8MBhHWZ4xQjdI1TNAzd1w-s6mfWjAzJlrjXge59X7NI4nuVaUroOg-o63sCCSFNTZfcP-HHMcrw01UG1COyxV4DXogrzSGuLFubqEa67BMgQGdB_pRK_NMqMJyFXTGLzG-A8m0AtIfmh45zUJeSK5Xgjc-luSh0mJAthQt0II2sBKJ_iJXl6ZWWffJIdzuIqmPWrjdw8EK2yCvTZtXl7xD4Rj37PaoQ1-4ezn_rnXk" } }, "status": "invoked", "resolution": "OK" } } }

Через приватний API

Endpoint: /payment-invoices

Method: POST

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

  • reference_id – унікальний ідентифікатор операції на стороні мерчанта
  • service– ідентифікатор сервісу, наприклад payment_card_usd_hpp. Список усіх доступних сервісів можна подивитися в особистому кабінеті
  • currency– валюта платежу
  • amount– сума у float форматі, наприклад 100.55

Додаткові поля:

  • flow– визначає тип інвойсу. Може приймати значення charge, verify. У разі відсутності параметра в запиті за замовчуванням приймається значення charge
  • service_fields– обов’язковий параметр в деяких сервісах, які вимагають передачі реквізитів, передбачає обов’язковий атрибут номер телефона або ідентифікатор гаманця
  • test_mode – ознака тестової / “бойової” операції. Може приймати значення true, false. У разі відсутності параметра в запиті за замовчуванням приймається значення false
  • description
  • customer
    • reference_id – обов’язковий атрибут при наявності об’єкта у запиті
    • name
    • email
    • phone
    • metadata
  • metadata
  • return_url – універсальний URL для повернення користувача після оплати
  • return_urls – спеціальний об’єкт з 3-ма варіантами URL для повернення користувача на підставі статусу платежу
    • success
    • fail
    • pending – обов’язковий атрибут при наявності об’єкта в запиті
  • callback_url – URL для відправки повідомлень при зміні статусу операції
  • gateway_options – опції модифікації шлюзу, наприклад — для видозміни платіжної сторінки (необхідно уточнювати набір і можливі значення для кожного конкретного облікового запису)
Приклади (JSON)

Запит
Відповідь


{ "data": { "type":"payment-invoices", "attributes": { "reference_id": "a30ebec4-035c-4fc5-8c48-b525ca601f37", "amount": 100, "currency": "UAH", "service": "payment_card_uah_hpp", "flow": "charge", "test_mode": true, "description": "Invoice Example", "gateway_options": { "cardgate": { "tokenize": false } }, "customer": { "reference_id": "1203515", "email": "[email protected]", "name": "John Wick", "phone": "+380987654321", "metadata": { "key1": "value1", "key2": "value2" } }, "metadata": { "key": "value" }, "return_url": "https://example.com", "return_urls": { "success": "https://example.com/1", "pending": "https://example.com/2", "fail": "https://example.com/3" }, "callback_url": "https://example.com" } } }{ "data": { "type":"payment-invoices", "attributes": { "reference_id": "a30ebec4-035c-4fc5-8c48-b525ca601f37", "amount": 100, "currency": "UAH", "service": "payment_card_uah_hpp", "flow": "charge", "test_mode": true, "description": "Invoice Example", "gateway_options": { "cardgate": { "tokenize": false } }, "customer": { "reference_id": "1203515", "email": "[email protected]", "name": "John Wick", "phone": "+380987654321", "metadata": { "key1": "value1", "key2": "value2" } }, "metadata": { "key": "value" }, "return_url": "https://example.com", "return_urls": { "success": "https://example.com/1", "pending": "https://example.com/2", "fail": "https://example.com/3" }, "callback_url": "https://example.com" } } }{ "data": { "type": "payment-invoices", "id": "cpi_HeSWMM9LvQonCcQc", "attributes": { "serial_number": "HeSWMM9LvQonCcQc", "status": "process_pending", "resolution": "ok", "moderation_required": false, "amount": 100, "payment_amount": 100, "currency": "UAH", "service_currency": "UAH", "reference_id": "70d42236-2cc4-4e26-8f2f-987fd8fbc276", "test_mode": true, "fee": 0, "deposit": 100, "processed": null, "processed_amount": null, "refunded_amount": null, "processed_fee": null, "processed_deposit": null, "metadata": { "key": "value", "merchant_url": "https://lets.doc.it" }, "flow_data": { "action": "https://cardgate-staging.psp.name/hpp/cgi_G0bsyhroZj802zQU", "method": "GET", "params": [], "metadata": { "sid": "cgi_G0bsyhroZj802zQU", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzaWQiOiJjZ2lfRzBic3locm9aajgwMnpRVSIsImV4cCI6MTU5NzgzNDg5OH0.Vsjj8tcnKqFrxz5SynNdC0q8x_eQawJG9CJTAEUNm6JQG64En4zYij_DjggdWOlpKLy2n-pUSLcacp6wNsF6rF7G4GrcKJ37yQVUXyaXrnLyJ7ObgNgSRWOk2R0z_DKpVMXxM12p4NXlU1B6Oz8zc72G1gJIApxkMa1bKsfG-zubPZuYK_3wRHBClibmRgbpbVzGTYcBNDdbreaeMW0LdRKUI_LDqJQdf5y29tJMFPXogZNs7rvXQPlV8d9mc8i0aaO1kwIFiBiexVEoCObnyopadrRuKyorU2bBVYAXbrYHwFP18hZAkm-H3P5mUqt8q1-yXYZF0qk4Gd_hAn-ePN101jnIjj-7L0VmO8ZU1oiGCswsNAmO_IKT7j7c4PG2wSFnHLwYR5bxvPKEDh5NmW6DZlPtL4BsdeW-Z1z93hIw923BWfVCldKvL_E4KYNYa9Wcu-D3e3wMSWvfph_-UsmbIJeQeqQEX3Mz2s78Y98ETAQFLqocZBAqZtGQ-UVYMXZlu6-_LI5REVlvW0REuV04zdPXiDWoxu_Fr-G4XqkBusryxhMvSqmu_CCTCrSnRV2Veu8jHTsUMFBoQ3gIhOz6DRT9N1LhbJv4_0L6Vjw6zGpfSMOeEyCD34IInuhUyAUYU-PQkxYHyqCYXPPSqxJVDl5Bia1OFDHITu4rU4A" } }, "flow": "hpp", "payment_flow": "charge", "created": 1597833098, "updated": 1597833098, "payload": null, "description": "Invoice Example", "descriptor": null, "callback_url": "https://example.com", "return_url": "https://example.com", "original_data": [], "rrn": null, "approval_code": null, "reserved_amount": null, "reserve_expires": null, "unreserved": null, "source": "merchant_api", "callback_logs": [] }, "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_Tjhe1ufEB3kRrgWy" } } }, "links": { "self": "/api/payment-invoices/cpi_HeSWMM9LvQonCcQc" } } }

Статуси інвойсів

Перелік статусів

Статуси платежів — визначає етап проведення транзакції. Статус може бути проміжним і фінальним.

Статус Фінальний Значення
created Початковий статус після створення інвойсу, процесування не розпочато. У відповіді повинен бути повернутий 201 (Created) статус-код HTTP, що означає успішне створення інвойсу
expired Час очікування обробки платіжного інвойсу перевищило ліміт (заданий в налаштуваннях виплат властивістю invoice_lifetime)
process_pending Результат обробки транзакції невідомий (наприклад, не отримано відповіді платіжного провайдера) і також може бути невідомий протягом тривалого часу
processed Підтверджує успішне процесування платежу
process_failed Означає збій процесування. Статус може бути присвоєно у разі повторюваної помилки та збою отримання відповіді
refund_pending Результат повернення невідомий (наприклад, не отримано відповіді платіжного провайдера) і також може бути невідомим протягом тривалого часу
partially_refunded Повернення проведено на суму, меншу ніж сума, яка зазначена в інвойсі
refunded Платіж повністю повернений
refund_failed Повернення завершилося неуспішно

* — Статус вважається фінальним, однак після нього платіж може бути відхилений з додаткових причин або відправлений на повернення (рефанд або чарджбек)

** — Статус визначається як фінальний після досягнення максимальної кількості спроб провести транзакцію (за замовчуванням — 5)

Ідентифікація платежу

На різних етапах прийому платежу ідентифікатори обробляються за різним найменуванням. Зв’язки між ними відображені на схемі нижче.

Примітка

Receiver Reference Number (RRN, номер одержувача транзакції) та Acquirer Reference Number (ARN, номер транзакції, який присвоюється еквайєром) використовуються тільки для карткових розрахунків.

Реконсиляція платежу (по ID)

Через публічний API

Endpoint: /payment-invoices/{id}

Метод: GET

Приклад відповіді

JSON


{ "data": { "id": "cpi_HeSWMM9LvQonCcQc", "serial_number": "HeSWMM9LvQonCcQc", "created": 1597833098, "test_mode": true, "reference_id": "70d42236-2cc4-4e26-8f2f-987fd8fbc276", "currency": "UAH", "amount": 100, "payment_amount": 100, "processed_amount": 100, "refunded_amount": null, "description": "Invoice Example", "has_return_url": true, "status": "processed", "resolution": "OK", "service": "payment_card_uah_hpp", "service_method": "payment_card", "service_flow": "hpp", "service_currency": "UAH", "metadata": { "key": "value", "merchant_url": "https://lets.doc.it" }, "active_payment": { "payload": { "action": "https://cardgate-staging.psp.name/hpp/cgi_G0bsyhroZj802zQU", "method": "GET", "params": [], "metadata": { "sid": "cgi_G0bsyhroZj802zQU", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzaWQiOiJjZ2lfRzBic3locm9aajgwMnpRVSIsImV4cCI6MTU5NzgzNDg5OH0.Vsjj8tcnKqFrxz5SynNdC0q8x_eQawJG9CJTAEUNm6JQG64En4zYij_DjggdWOlpKLy2n-pUSLcacp6wNsF6rF7G4GrcKJ37yQVUXyaXrnLyJ7ObgNgSRWOk2R0z_DKpVMXxM12p4NXlU1B6Oz8zc72G1gJIApxkMa1bKsfG-zubPZuYK_3wRHBClibmRgbpbVzGTYcBNDdbreaeMW0LdRKUI_LDqJQdf5y29tJMFPXogZNs7rvXQPlV8d9mc8i0aaO1kwIFiBiexVEoCObnyopadrRuKyorU2bBVYAXbrYHwFP18hZAkm-H3P5mUqt8q1-yXYZF0qk4Gd_hAn-ePN101jnIjj-7L0VmO8ZU1oiGCswsNAmO_IKT7j7c4PG2wSFnHLwYR5bxvPKEDh5NmW6DZlPtL4BsdeW-Z1z93hIw923BWfVCldKvL_E4KYNYa9Wcu-D3e3wMSWvfph_-UsmbIJeQeqQEX3Mz2s78Y98ETAQFLqocZBAqZtGQ-UVYMXZlu6-_LI5REVlvW0REuV04zdPXiDWoxu_Fr-G4XqkBusryxhMvSqmu_CCTCrSnRV2Veu8jHTsUMFBoQ3gIhOz6DRT9N1LhbJv4_0L6Vjw6zGpfSMOeEyCD34IInuhUyAUYU-PQkxYHyqCYXPPSqxJVDl5Bia1OFDHITu4rU4A" } }, "status": "processed", "resolution": "OK" } } }{ "data": { "id": "cpi_HeSWMM9LvQonCcQc", "serial_number": "HeSWMM9LvQonCcQc", "created": 1597833098, "test_mode": true, "reference_id": "70d42236-2cc4-4e26-8f2f-987fd8fbc276", "currency": "UAH", "amount": 100, "payment_amount": 100, "processed_amount": 100, "refunded_amount": null, "description": "Invoice Example", "has_return_url": true, "status": "processed", "resolution": "OK", "service": "payment_card_uah_hpp", "service_method": "payment_card", "service_flow": "hpp", "service_currency": "UAH", "metadata": { "key": "value", "merchant_url": "https://lets.doc.it" }, "active_payment": { "payload": { "action": "https://cardgate-staging.psp.name/hpp/cgi_G0bsyhroZj802zQU", "method": "GET", "params": [], "metadata": { "sid": "cgi_G0bsyhroZj802zQU", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzaWQiOiJjZ2lfRzBic3locm9aajgwMnpRVSIsImV4cCI6MTU5NzgzNDg5OH0.Vsjj8tcnKqFrxz5SynNdC0q8x_eQawJG9CJTAEUNm6JQG64En4zYij_DjggdWOlpKLy2n-pUSLcacp6wNsF6rF7G4GrcKJ37yQVUXyaXrnLyJ7ObgNgSRWOk2R0z_DKpVMXxM12p4NXlU1B6Oz8zc72G1gJIApxkMa1bKsfG-zubPZuYK_3wRHBClibmRgbpbVzGTYcBNDdbreaeMW0LdRKUI_LDqJQdf5y29tJMFPXogZNs7rvXQPlV8d9mc8i0aaO1kwIFiBiexVEoCObnyopadrRuKyorU2bBVYAXbrYHwFP18hZAkm-H3P5mUqt8q1-yXYZF0qk4Gd_hAn-ePN101jnIjj-7L0VmO8ZU1oiGCswsNAmO_IKT7j7c4PG2wSFnHLwYR5bxvPKEDh5NmW6DZlPtL4BsdeW-Z1z93hIw923BWfVCldKvL_E4KYNYa9Wcu-D3e3wMSWvfph_-UsmbIJeQeqQEX3Mz2s78Y98ETAQFLqocZBAqZtGQ-UVYMXZlu6-_LI5REVlvW0REuV04zdPXiDWoxu_Fr-G4XqkBusryxhMvSqmu_CCTCrSnRV2Veu8jHTsUMFBoQ3gIhOz6DRT9N1LhbJv4_0L6Vjw6zGpfSMOeEyCD34IInuhUyAUYU-PQkxYHyqCYXPPSqxJVDl5Bia1OFDHITu4rU4A" } }, "status": "processed", "resolution": "OK" } } }

Через приватний API

Endpoint:

  • /payment-invoices/{id} – обов’язковий атрибут при наявності об’єкта в запиті
  • /payment-invoices?filter[reference_id]={reference_id} – для перевірки за ідентифікатором замовлення мерчанта reference_id

Method: GET

Приклад відповіді

JSON


{ "data": { "type": "payment-invoices", "id": "cpi_HeSWMM9LvQonCcQc", "attributes": { "serial_number": "HeSWMM9LvQonCcQc", "status": "processed", "resolution": "ok", "moderation_required": false, "amount": 100, "payment_amount": 100, "currency": "UAH", "service_currency": "UAH", "reference_id": "70d42236-2cc4-4e26-8f2f-987fd8fbc276", "test_mode": true, "fee": 0, "deposit": 100, "processed": 1597833205, "processed_amount": 100, "refunded_amount": null, "processed_fee": 0, "processed_deposit": 100, "metadata": { "key": "value", "merchant_url": "https://lets.doc.it" }, "flow_data": { "action": "https://cardgate-staging.psp.name/hpp/cgi_G0bsyhroZj802zQU", "method": "GET", "params": [], "metadata": { "sid": "cgi_G0bsyhroZj802zQU", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzaWQiOiJjZ2lfRzBic3locm9aajgwMnpRVSIsImV4cCI6MTU5NzgzNDg5OH0.Vsjj8tcnKqFrxz5SynNdC0q8x_eQawJG9CJTAEUNm6JQG64En4zYij_DjggdWOlpKLy2n-pUSLcacp6wNsF6rF7G4GrcKJ37yQVUXyaXrnLyJ7ObgNgSRWOk2R0z_DKpVMXxM12p4NXlU1B6Oz8zc72G1gJIApxkMa1bKsfG-zubPZuYK_3wRHBClibmRgbpbVzGTYcBNDdbreaeMW0LdRKUI_LDqJQdf5y29tJMFPXogZNs7rvXQPlV8d9mc8i0aaO1kwIFiBiexVEoCObnyopadrRuKyorU2bBVYAXbrYHwFP18hZAkm-H3P5mUqt8q1-yXYZF0qk4Gd_hAn-ePN101jnIjj-7L0VmO8ZU1oiGCswsNAmO_IKT7j7c4PG2wSFnHLwYR5bxvPKEDh5NmW6DZlPtL4BsdeW-Z1z93hIw923BWfVCldKvL_E4KYNYa9Wcu-D3e3wMSWvfph_-UsmbIJeQeqQEX3Mz2s78Y98ETAQFLqocZBAqZtGQ-UVYMXZlu6-_LI5REVlvW0REuV04zdPXiDWoxu_Fr-G4XqkBusryxhMvSqmu_CCTCrSnRV2Veu8jHTsUMFBoQ3gIhOz6DRT9N1LhbJv4_0L6Vjw6zGpfSMOeEyCD34IInuhUyAUYU-PQkxYHyqCYXPPSqxJVDl5Bia1OFDHITu4rU4A" } }, "flow": "hpp", "payment_flow": "charge", "created": 1597833098, "updated": 1597833207, "payload": { "token": null, "client_ip": "", "payment_card": { "last": "0000", "mask": "512381******0000", "brand": "mastercard", "first": "512381", "holder": null, "network": "mastercard", "expiry_year": "24", "issuer_name": "FIRST DATA CORPORATION", "expiry_month": "12", "issuer_country": "US" } }, "description": "Invoice Example", "descriptor": null, "callback_url": "https://example.com", "return_url": "https://example.com", "original_data": { "external_id": "cgi_G0bsyhroZj802zQU", "merchant_id": "host2hostTest", "provider_id": null, "external_mid": "ma_aBctkJ3WiRndih0m", "provider_code": "test" }, "rrn": null, "approval_code": null, "reserved_amount": null, "reserve_expires": null, "unreserved": null, "source": "merchant_api", "callback_logs": { "1597833098": { "status": "done", "processed": 1597833099, "response_code": 200, "transaction_status": "process_pending" }, "1597833206": { "status": "done", "processed": 1597833207, "response_code": 200, "transaction_status": "processed" } } }, "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_Tjhe1ufEB3kRrgWy" } } }, "links": { "self": "/api/payment-invoices/cpi_HeSWMM9LvQonCcQc" } } }{ "data": { "type": "payment-invoices", "id": "cpi_HeSWMM9LvQonCcQc", "attributes": { "serial_number": "HeSWMM9LvQonCcQc", "status": "processed", "resolution": "ok", "moderation_required": false, "amount": 100, "payment_amount": 100, "currency": "UAH", "service_currency": "UAH", "reference_id": "70d42236-2cc4-4e26-8f2f-987fd8fbc276", "test_mode": true, "fee": 0, "deposit": 100, "processed": 1597833205, "processed_amount": 100, "refunded_amount": null, "processed_fee": 0, "processed_deposit": 100, "metadata": { "key": "value", "merchant_url": "https://lets.doc.it" }, "flow_data": { "action": "https://cardgate-staging.psp.name/hpp/cgi_G0bsyhroZj802zQU", "method": "GET", "params": [], "metadata": { "sid": "cgi_G0bsyhroZj802zQU", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzaWQiOiJjZ2lfRzBic3locm9aajgwMnpRVSIsImV4cCI6MTU5NzgzNDg5OH0.Vsjj8tcnKqFrxz5SynNdC0q8x_eQawJG9CJTAEUNm6JQG64En4zYij_DjggdWOlpKLy2n-pUSLcacp6wNsF6rF7G4GrcKJ37yQVUXyaXrnLyJ7ObgNgSRWOk2R0z_DKpVMXxM12p4NXlU1B6Oz8zc72G1gJIApxkMa1bKsfG-zubPZuYK_3wRHBClibmRgbpbVzGTYcBNDdbreaeMW0LdRKUI_LDqJQdf5y29tJMFPXogZNs7rvXQPlV8d9mc8i0aaO1kwIFiBiexVEoCObnyopadrRuKyorU2bBVYAXbrYHwFP18hZAkm-H3P5mUqt8q1-yXYZF0qk4Gd_hAn-ePN101jnIjj-7L0VmO8ZU1oiGCswsNAmO_IKT7j7c4PG2wSFnHLwYR5bxvPKEDh5NmW6DZlPtL4BsdeW-Z1z93hIw923BWfVCldKvL_E4KYNYa9Wcu-D3e3wMSWvfph_-UsmbIJeQeqQEX3Mz2s78Y98ETAQFLqocZBAqZtGQ-UVYMXZlu6-_LI5REVlvW0REuV04zdPXiDWoxu_Fr-G4XqkBusryxhMvSqmu_CCTCrSnRV2Veu8jHTsUMFBoQ3gIhOz6DRT9N1LhbJv4_0L6Vjw6zGpfSMOeEyCD34IInuhUyAUYU-PQkxYHyqCYXPPSqxJVDl5Bia1OFDHITu4rU4A" } }, "flow": "hpp", "payment_flow": "charge", "created": 1597833098, "updated": 1597833207, "payload": { "token": null, "client_ip": "", "payment_card": { "last": "0000", "mask": "512381******0000", "brand": "mastercard", "first": "512381", "holder": null, "network": "mastercard", "expiry_year": "24", "issuer_name": "FIRST DATA CORPORATION", "expiry_month": "12", "issuer_country": "US" } }, "description": "Invoice Example", "descriptor": null, "callback_url": "https://example.com", "return_url": "https://example.com", "original_data": { "external_id": "cgi_G0bsyhroZj802zQU", "merchant_id": "host2hostTest", "provider_id": null, "external_mid": "ma_aBctkJ3WiRndih0m", "provider_code": "test" }, "rrn": null, "approval_code": null, "reserved_amount": null, "reserve_expires": null, "unreserved": null, "source": "merchant_api", "callback_logs": { "1597833098": { "status": "done", "processed": 1597833099, "response_code": 200, "transaction_status": "process_pending" }, "1597833206": { "status": "done", "processed": 1597833207, "response_code": 200, "transaction_status": "processed" } } }, "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_Tjhe1ufEB3kRrgWy" } } }, "links": { "self": "/api/payment-invoices/cpi_HeSWMM9LvQonCcQc" } } }

Отримати повний список інвойсів (через приватний API)

Endpoint: /payment-invoices

Method: GET

Приклад відповіді

Приклад


{ "meta": { "count": 17, "size": 20, "before": "cpi_o8CBGwATmJag4p32", "after": "cpi_HeSWMM9LvQonCcQc" }, "links": { "prev": "", "next": "" }, "data": [ { "type": "payment-invoices", "id": "cpi_HeSWMM9LvQonCcQc", "attributes": { "serial_number": "HeSWMM9LvQonCcQc", "status": "processed", "resolution": "ok", "moderation_required": false, "amount": 100, "payment_amount": 100, "currency": "UAH", "service_currency": "UAH", "reference_id": "70d42236-2cc4-4e26-8f2f-987fd8fbc276", "test_mode": true, "fee": 0, "deposit": 100, "processed": 1597833205, "processed_amount": 100, "refunded_amount": null, "processed_fee": 0, "processed_deposit": 100, "metadata": { "key": "value", "merchant_url": "https://lets.doc.it" }, "flow_data": { "action": "https://cardgate-staging.psp.name/hpp/cgi_G0bsyhroZj802zQU", "method": "GET", "params": [], "metadata": { "sid": "cgi_G0bsyhroZj802zQU", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzaWQiOiJjZ2lfRzBic3locm9aajgwMnpRVSIsImV4cCI6MTU5NzgzNDg5OH0.Vsjj8tcnKqFrxz5SynNdC0q8x_eQawJG9CJTAEUNm6JQG64En4zYij_DjggdWOlpKLy2n-pUSLcacp6wNsF6rF7G4GrcKJ37yQVUXyaXrnLyJ7ObgNgSRWOk2R0z_DKpVMXxM12p4NXlU1B6Oz8zc72G1gJIApxkMa1bKsfG-zubPZuYK_3wRHBClibmRgbpbVzGTYcBNDdbreaeMW0LdRKUI_LDqJQdf5y29tJMFPXogZNs7rvXQPlV8d9mc8i0aaO1kwIFiBiexVEoCObnyopadrRuKyorU2bBVYAXbrYHwFP18hZAkm-H3P5mUqt8q1-yXYZF0qk4Gd_hAn-ePN101jnIjj-7L0VmO8ZU1oiGCswsNAmO_IKT7j7c4PG2wSFnHLwYR5bxvPKEDh5NmW6DZlPtL4BsdeW-Z1z93hIw923BWfVCldKvL_E4KYNYa9Wcu-D3e3wMSWvfph_-UsmbIJeQeqQEX3Mz2s78Y98ETAQFLqocZBAqZtGQ-UVYMXZlu6-_LI5REVlvW0REuV04zdPXiDWoxu_Fr-G4XqkBusryxhMvSqmu_CCTCrSnRV2Veu8jHTsUMFBoQ3gIhOz6DRT9N1LhbJv4_0L6Vjw6zGpfSMOeEyCD34IInuhUyAUYU-PQkxYHyqCYXPPSqxJVDl5Bia1OFDHITu4rU4A" } }, "flow": "hpp", "payment_flow": "charge", "created": 1597833098, "updated": 1597833207, "payload": { "token": null, "client_ip": "", "payment_card": { "last": "0000", "mask": "512381******0000", "brand": "mastercard", "first": "512381", "holder": null, "network": "mastercard", "expiry_year": "24", "issuer_name": "FIRST DATA CORPORATION", "expiry_month": "12", "issuer_country": "US" } }, "description": "Invoice Example", "descriptor": null, "callback_url": "https://example.com", "return_url": "https://example.com", "original_data": { "external_id": "cgi_G0bsyhroZj802zQU", "merchant_id": "host2hostTest", "provider_id": null, "external_mid": "ma_aBctkJ3WiRndih0m", "provider_code": "test" }, "rrn": null, "approval_code": null, "reserved_amount": null, "reserve_expires": null, "unreserved": null, "source": "merchant_api", "callback_logs": { "1597833098": { "status": "done", "processed": 1597833099, "response_code": 200, "transaction_status": "process_pending" }, "1597833206": { "status": "done", "processed": 1597833207, "response_code": 200, "transaction_status": "processed" } } }, "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_Tjhe1ufEB3kRrgWy" } } }, "links": { "self": "/api/payment-invoices/cpi_HeSWMM9LvQonCcQc" } }, { "type": "payment-invoices", "id": "cpi_Qtg8wyWcnSYLksFh", "attributes": { "serial_number": "Qtg8wyWcnSYLksFh", "status": "process_failed", "resolution": "expired", "moderation_required": false, "amount": 100, "payment_amount": 100, "currency": "UAH", "service_currency": "UAH", "reference_id": "05233537-7b5c-4cb8-b596-d65ec9671c67", "test_mode": true, "fee": 0, "deposit": 100, "processed": null, "processed_amount": null, "refunded_amount": null, "processed_fee": null, "processed_deposit": null, "metadata": { "key": "value", "merchant_url": "https://lets.doc.it" }, "flow_data": { "action": "https://cardgate-staging.psp.name/hpp/cgi_jYwKJcItnDjnYzZj", "method": "GET", "params": [], "metadata": { "sid": "cgi_jYwKJcItnDjnYzZj", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzaWQiOiJjZ2lfall3S0pjSXRuRGpuWXpaaiIsImV4cCI6MTU5NzQxODU2Mn0.y9oVZZx9KKdelCNxtY3U9hhWK0R6LIZrQI0w6GvTZamnwU5c1CAJqBydhEQ1v2o5kmrklUZFSlBFjTlKAy3LBUElW4pfZfaEpixgGC7NEtXkYK8lKYJ8cYLJl-S3s2ONcH5_Nhfu5FGdY0iTa8_giLNUgUZxMGnWY6hy29pexBaYr335I7L-lhqAzwhfY-KJH6KpYGOe_-rJgR447TEdABptqlOExGdAk9lS9PS77aJwIodOV1__xbbu0PRPW__L1S06WfDBfUUoaMulbn9-GyyUNbLs-qoADl_amrkxA0qWfs6ylyOAgsARlVUPs-gh2wVtqxHilPdflXZgfPVi9i9UphiquoGQIObOXJqm5CfuStvWxLNVDIOqcx9wbbXWt9i67W0quzVteQUpCDM0EVMR0WZ-j24JEnz2sllD_Lcz0cA22hZXH2b05tPCl30OwTWX0jkBy5ZzzLVYtQnWn-OPaOPoisK9tRdouDGk1UoTvmAJh_RUin1-wXWq9Zv2VXs6XamjR1sIEbj2Vd5IagCmiKyQiLwG7Jek_lbtF-N5e9JzBeAngf-k6UmA-q6RDS-EMdryH2_qfNF3szxUHq-Yz-LVtanxq263DeA7N8ytJGspZq6MzVsMiixPAyZoVf92M0T6rnYYh23hTdJzxzGBVcov_lOb05XCAHpkG4M" } }, "flow": "hpp", "payment_flow": "charge", "created": 1597416762, "updated": 1597418667, "payload": null, "description": "Invoice Example", "descriptor": null, "callback_url": "https://example.com", "return_url": "https://example.com", "original_data": [], "rrn": null, "approval_code": null, "reserved_amount": null, "reserve_expires": null, "unreserved": null, "source": "merchant_api", "callback_logs": { "1597416763": { "status": "done", "processed": 1597416763, "response_code": 200, "transaction_status": "process_pending" }, "1597418666": { "status": "done", "processed": 1597418667, "response_code": 200, "transaction_status": "process_failed" } } }, "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_Tjhe1ufEB3kRrgWy" } } }, "links": { "self": "/api/payment-invoices/cpi_Qtg8wyWcnSYLksFh" } } ] }{ "meta": { "count": 17, "size": 20, "before": "cpi_o8CBGwATmJag4p32", "after": "cpi_HeSWMM9LvQonCcQc" }, "links": { "prev": "", "next": "" }, "data": [ { "type": "payment-invoices", "id": "cpi_HeSWMM9LvQonCcQc", "attributes": { "serial_number": "HeSWMM9LvQonCcQc", "status": "processed", "resolution": "ok", "moderation_required": false, "amount": 100, "payment_amount": 100, "currency": "UAH", "service_currency": "UAH", "reference_id": "70d42236-2cc4-4e26-8f2f-987fd8fbc276", "test_mode": true, "fee": 0, "deposit": 100, "processed": 1597833205, "processed_amount": 100, "refunded_amount": null, "processed_fee": 0, "processed_deposit": 100, "metadata": { "key": "value", "merchant_url": "https://lets.doc.it" }, "flow_data": { "action": "https://cardgate-staging.psp.name/hpp/cgi_G0bsyhroZj802zQU", "method": "GET", "params": [], "metadata": { "sid": "cgi_G0bsyhroZj802zQU", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzaWQiOiJjZ2lfRzBic3locm9aajgwMnpRVSIsImV4cCI6MTU5NzgzNDg5OH0.Vsjj8tcnKqFrxz5SynNdC0q8x_eQawJG9CJTAEUNm6JQG64En4zYij_DjggdWOlpKLy2n-pUSLcacp6wNsF6rF7G4GrcKJ37yQVUXyaXrnLyJ7ObgNgSRWOk2R0z_DKpVMXxM12p4NXlU1B6Oz8zc72G1gJIApxkMa1bKsfG-zubPZuYK_3wRHBClibmRgbpbVzGTYcBNDdbreaeMW0LdRKUI_LDqJQdf5y29tJMFPXogZNs7rvXQPlV8d9mc8i0aaO1kwIFiBiexVEoCObnyopadrRuKyorU2bBVYAXbrYHwFP18hZAkm-H3P5mUqt8q1-yXYZF0qk4Gd_hAn-ePN101jnIjj-7L0VmO8ZU1oiGCswsNAmO_IKT7j7c4PG2wSFnHLwYR5bxvPKEDh5NmW6DZlPtL4BsdeW-Z1z93hIw923BWfVCldKvL_E4KYNYa9Wcu-D3e3wMSWvfph_-UsmbIJeQeqQEX3Mz2s78Y98ETAQFLqocZBAqZtGQ-UVYMXZlu6-_LI5REVlvW0REuV04zdPXiDWoxu_Fr-G4XqkBusryxhMvSqmu_CCTCrSnRV2Veu8jHTsUMFBoQ3gIhOz6DRT9N1LhbJv4_0L6Vjw6zGpfSMOeEyCD34IInuhUyAUYU-PQkxYHyqCYXPPSqxJVDl5Bia1OFDHITu4rU4A" } }, "flow": "hpp", "payment_flow": "charge", "created": 1597833098, "updated": 1597833207, "payload": { "token": null, "client_ip": "", "payment_card": { "last": "0000", "mask": "512381******0000", "brand": "mastercard", "first": "512381", "holder": null, "network": "mastercard", "expiry_year": "24", "issuer_name": "FIRST DATA CORPORATION", "expiry_month": "12", "issuer_country": "US" } }, "description": "Invoice Example", "descriptor": null, "callback_url": "https://example.com", "return_url": "https://example.com", "original_data": { "external_id": "cgi_G0bsyhroZj802zQU", "merchant_id": "host2hostTest", "provider_id": null, "external_mid": "ma_aBctkJ3WiRndih0m", "provider_code": "test" }, "rrn": null, "approval_code": null, "reserved_amount": null, "reserve_expires": null, "unreserved": null, "source": "merchant_api", "callback_logs": { "1597833098": { "status": "done", "processed": 1597833099, "response_code": 200, "transaction_status": "process_pending" }, "1597833206": { "status": "done", "processed": 1597833207, "response_code": 200, "transaction_status": "processed" } } }, "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_Tjhe1ufEB3kRrgWy" } } }, "links": { "self": "/api/payment-invoices/cpi_HeSWMM9LvQonCcQc" } }, { "type": "payment-invoices", "id": "cpi_Qtg8wyWcnSYLksFh", "attributes": { "serial_number": "Qtg8wyWcnSYLksFh", "status": "process_failed", "resolution": "expired", "moderation_required": false, "amount": 100, "payment_amount": 100, "currency": "UAH", "service_currency": "UAH", "reference_id": "05233537-7b5c-4cb8-b596-d65ec9671c67", "test_mode": true, "fee": 0, "deposit": 100, "processed": null, "processed_amount": null, "refunded_amount": null, "processed_fee": null, "processed_deposit": null, "metadata": { "key": "value", "merchant_url": "https://lets.doc.it" }, "flow_data": { "action": "https://cardgate-staging.psp.name/hpp/cgi_jYwKJcItnDjnYzZj", "method": "GET", "params": [], "metadata": { "sid": "cgi_jYwKJcItnDjnYzZj", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzaWQiOiJjZ2lfall3S0pjSXRuRGpuWXpaaiIsImV4cCI6MTU5NzQxODU2Mn0.y9oVZZx9KKdelCNxtY3U9hhWK0R6LIZrQI0w6GvTZamnwU5c1CAJqBydhEQ1v2o5kmrklUZFSlBFjTlKAy3LBUElW4pfZfaEpixgGC7NEtXkYK8lKYJ8cYLJl-S3s2ONcH5_Nhfu5FGdY0iTa8_giLNUgUZxMGnWY6hy29pexBaYr335I7L-lhqAzwhfY-KJH6KpYGOe_-rJgR447TEdABptqlOExGdAk9lS9PS77aJwIodOV1__xbbu0PRPW__L1S06WfDBfUUoaMulbn9-GyyUNbLs-qoADl_amrkxA0qWfs6ylyOAgsARlVUPs-gh2wVtqxHilPdflXZgfPVi9i9UphiquoGQIObOXJqm5CfuStvWxLNVDIOqcx9wbbXWt9i67W0quzVteQUpCDM0EVMR0WZ-j24JEnz2sllD_Lcz0cA22hZXH2b05tPCl30OwTWX0jkBy5ZzzLVYtQnWn-OPaOPoisK9tRdouDGk1UoTvmAJh_RUin1-wXWq9Zv2VXs6XamjR1sIEbj2Vd5IagCmiKyQiLwG7Jek_lbtF-N5e9JzBeAngf-k6UmA-q6RDS-EMdryH2_qfNF3szxUHq-Yz-LVtanxq263DeA7N8ytJGspZq6MzVsMiixPAyZoVf92M0T6rnYYh23hTdJzxzGBVcov_lOb05XCAHpkG4M" } }, "flow": "hpp", "payment_flow": "charge", "created": 1597416762, "updated": 1597418667, "payload": null, "description": "Invoice Example", "descriptor": null, "callback_url": "https://example.com", "return_url": "https://example.com", "original_data": [], "rrn": null, "approval_code": null, "reserved_amount": null, "reserve_expires": null, "unreserved": null, "source": "merchant_api", "callback_logs": { "1597416763": { "status": "done", "processed": 1597416763, "response_code": 200, "transaction_status": "process_pending" }, "1597418666": { "status": "done", "processed": 1597418667, "response_code": 200, "transaction_status": "process_failed" } } }, "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_Tjhe1ufEB3kRrgWy" } } }, "links": { "self": "/api/payment-invoices/cpi_Qtg8wyWcnSYLksFh" } } ] }

Використані в відповідях коди стану HTTP

Приклади відповідей з кодами та описами помилок

401 (unauthorized)
404 (not found)
405 (incorrect method)
422 (validation error)
500 (internal server error)


{ "errors": [ { "status": "Unauthorized", "code": "401" } ] }{ "errors": [ { "status": "Unauthorized", "code": "401" } ] }{ "errors": [ { "status": "Not Found", "code": "404" } ] }{ "errors": [ { "status": "Method Not Allowed", "code": "405" } ] }{ "errors": { "amount": "This value should be greater than 0." } }{ "errors": [ { "status": "internal_error", "code": "500", "title": "internal_error", "detail": "Internal server error." } ] }

2xx Успішні

Код Опис
200 ОK Запит виконаний успішно
201 Created POST запит на створення інвойсу виконаний успішно

4xx Помилки на стороні клієнта

Код Тип Опис Інструкції
400 Bad Request Транспортна Запит невалідної структури, сервер не може його обробити Необхідно запросити статус операції (якщо використаний правильний метод, але на запит статусу отримана 404 помилка, можна вважати запит неуспішним і повторити операцію)
401 Unauthorized Авторизації Для отримання відповіді на запит, потрібна аутентифікація Перевірити дані авторизації. Запит фінально неуспішний. Операція не створилася на стороні платформи (якщо помилка виникла при створенні, не під час інших методів)
403 Forbidden Авторизації У клієнта немає прав доступу на виклик методу Перевірити дані авторизації. Запит фінально неуспішний. Операція не створилася на стороні платформи (якщо помилка виникла при створенні, не під час інших методів)
404 Not Found Валідації Сервер не може знайти запитуваний метод або ресурс У запиті вказано некоректний метод або операції не існує (при коректному запиті статусу)
405 Method Not Allowed Валідації Метод відправки запиту не може бути використаний Запит фінально неуспішний. Операція не створилася на стороні платформи (якщо помилка виникла при створенні, не під час інших методів)
409 Conflict Валідації Сутність з таким ідентифікатором вже існує. У відповіді повернеться код і повідомлення помилки, в тілі повернуться дані існуючої операції Обробити тіло відповіді з раніше створеної операцією згідно бізнес-логікою на стороні мерчанта
422 Unprocessable Entity Валідації Сервер не може прийняти запит (некоректні дані або налаштування облікового запису) Запит фінально неуспішний. Операція не створилася на стороні платформи (якщо помилка виникла при створенні, не під час інших методів)

5xx Помилки на стороні сервера

Код Опис Інструкції
500 Internal Server Error Внутрішня помилка сервера. Не гарантує помилку створення операції. Необхідно запросити статус операції. У разі відсутності операції на сервері можна повторно викликати метод створення
502 Bad Gateway Проблема обробки запиту. Визначено недійсний шлюз. Не гарантує помилку створення операції. Необхідно запросити статус операції. У разі відсутності операції на сервері можна повторно викликати метод створення
503 Service Unavailable Сервер недоступний в поточний момент. Не гарантує помилку створення операції. Необхідно запросити статус операції. У разі відсутності операції на сервері можна повторно викликати метод створення
504 Gateway Timeout Сервер не зміг повернути відповідь за певний проміжок часу. Не гарантує помилку створення операції. Необхідно запросити статус операції. У разі відсутності операції на сервері можна повторно викликати метод створення
Увага

Якщо створення операції пройшло успішно, а на будь-який інший запит отримано відповідь з 4XX або 5XX HTTP кодом – необхідно уточнювати статус методом реконсиляції або через канали комунікації технічної підтримки.

Примітка

При використанні Callback методу оповіщення — при отриманні помилок необхідно дочекатися Callback або викликати метод запиту статусу для уточнення стану операції.

Host-to-host інтеграція для отримання платежів

Початок

Великі організації, які виконують вимоги PCI DSS, можуть використовувати Host-to-host (H2H) інтеграцію для отримання карткових платежів.

Надішліть заявку службі підтримки, щоб уточнити вимоги і включити для Вашого облікового запису режим H2H-платежів.

Загальна схема взаємодії

Створення платіжного інвойсу

Endpoint: /payment-invoices

Метод: POST

JSON

Приклад запиту для інвойсу
Приклад відповіді


{ "data": { "type": "payment-invoices", "attributes": { "reference_id": "{guid}", "description": "Payment by order#1", "currency": "UAH", "amount": 17, "service": "payment_card_uah_hpp", "return_url": "https://example.com/", "callback_url": "https://example.com/payments/callback" } } }{ "data": { "type": "payment-invoices", "attributes": { "reference_id": "{guid}", "description": "Payment by order#1", "currency": "UAH", "amount": 17, "service": "payment_card_uah_hpp", "return_url": "https://example.com/", "callback_url": "https://example.com/payments/callback" } } }{ "data": { "type": "payment-invoices", "id": "cpi_eqUNbE6SpIEmRB2K", "attributes": { "status": "process_pending", "resolution": "ok", "moderation_required": false, "amount": 17, "payment_amount": 17, "currency": "UAH", "service_currency": "UAH", "reference_id": "{guid}", "test_mode": true, "fee": 0, "deposit": 17, "processed": null, "processed_amount": null, "processed_fee": null, "processed_deposit": null, "metadata": [ ], "flow_data": { "action": "https://our.pay_domain/hpp/7b3df799-5608-56fa-a26b-5a9b3c26bb5c", "method": "GET", "params": [ ], "metadata": { "sid": "7b3df799-5608-56fa-a26b-5a9b3c26bb5c", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9...fGbuc" } }, "flow": "hpp", "created": 1567434682, "updated": 1567434682, "payload": [ ], "description": "Payment by order#1", "callback_url": "pay.cascad.com/payments/callback", "return_url": "pay.cascad.com" }, "relationships": { "payment-service": { "data": { "type": "payment-services", "id": "payment_card_uah_hpp" } }, "payment-method": { "data": { "type": "payment-methods", "id": "payment_card" } }, "customer": { "data": null } }, "links": { "self": "/api/payment-invoices/cpi_eqUNbE6SpIEmRB2K" } } }

Відправка даних карти на Card Gate

API URL: при інтеграції видається менеджером

Endpoint: /payment-invoices

Метод: POST

Авторизація: bearerToken (передається параметр token, отриманий у відповідь на запит створення інвойсу, об’єкт flow_datametadata)

JSON

Приклад запиту з картковими даними
Приклад відповіді


{ "data": { "type": "sale-operation", "attributes": { "card_number": "5519283812030000", "card_holder": "Card Holder", "cvv": "123", "exp_month": "10", "exp_year": "35" } } }{ "data": { "type": "sale-operation", "attributes": { "card_number": "5519283812030000", "card_holder": "Card Holder", "cvv": "123", "exp_month": "10", "exp_year": "35" } } }{ "status": "auth_required", "auth_mode": "3ds", "auth_payload": { "action": "https://acs.pay_domain/acspage/cap?RID=8u0026VAA=A", "method": "POST", "params": { "MD": "999999999", "PaReq": "eJxVUlFvVA2jYv2jAQfuZfoD5v2E5KfQlLFJ2jAQfuZfoD5v2E5KQqurpe5os5wRBJU6dZCX79bszlDIrUe6+zWRkwjEe0qVHL3dmbqjeATGvs6XKz2Np1GBFSxq3r684PeiZvQbwnXOj9i951XdPeC4HWHT5bV1v+3z29+Vgs/OIi+9oe48acmxbs8VxVT7cFNkaX3+raapimUYqiZPbGz2CAOvRCP6gbytXany0njnTX07Y3Ii6VYY9u64EQNFz3J5OPlalzjc/4nyTv63+Lo+rfR6tFtlbfnofQDCDmaXpUEdS3SmcbXhU7MLJSwQ12gwovceazvouxlVLxmX8EgKkXeDuMSs7UoPPH47/yLbkeV+MU3SeTqst8PT5mfi9m5WZtmv+eMzCzuTzr0rcpzulYTmVbAfBLejA8KAsIlhlij6b8b+AbaDvJg=", "TermUrl":"https://pay.cascad.com/3ds-return?pid=pay_Hjh3kMlNdqE4WpOmNPCoIgFU_K1_nM" } } }

(для 3DS) Перенаправлення користувача на ACS

У відповіді на запит /payment/sale об’єкт auth_payload містить дані для 3D-Secure.

На action URL потрібно передати параметри форми params методом method.

JSON

Приклад


"auth_payload": { "action": "https://acs.pay_domain/acspage/cap?RID=8u0026VAA=A", "method": "POST", "params": { "MD": "999999999", "PaReq": "eJxVUlFvVA2jYv2jAQfuZfoD5v2E5KfQlLFJ2jAQfuZfoD5v2E5KQqurpe5os5wRBJU6dZCX79bszlDIrUe6+zWRkwjEe0qVHL3dmbqjeATGvs6XKz2Np1GBFSxq3r684PeiZvQbwnXOj9i951XdPeC4HWHT5bV1v+3z29+Vgs/OIi+9oe48acmxbs8VxVT7cFNkaX3+raapimUYqiZPbGz2CAOvRCP6gbytXany0njnTX07Y3Ii6VYY9u64EQNFz3J5OPlalzjc/4nyTv63+Lo+rfR6tFtlbfnofQDCDmaXpUEdS3SmcbXhU7MLJSwQ12gwovceazvouxlVLxmX8EgKkXeDuMSs7UoPPH47/yLbkeV+MU3SeTqst8PT5mfi9m5WZtmv+eMzCzuTzr0rcpzulYTmVbAfBLejA8KAsIlhlij6b8b+AbaDvJg=", "TermUrl": "https://pay.cascad.com/3ds-return?pid=pay_Hjh3kMlNdqE4WpOmNPCoIgFU_K1_nM" } }"auth_payload": { "action": "https://acs.pay_domain/acspage/cap?RID=8u0026VAA=A", "method": "POST", "params": { "MD": "999999999", "PaReq": "eJxVUlFvVA2jYv2jAQfuZfoD5v2E5KfQlLFJ2jAQfuZfoD5v2E5KQqurpe5os5wRBJU6dZCX79bszlDIrUe6+zWRkwjEe0qVHL3dmbqjeATGvs6XKz2Np1GBFSxq3r684PeiZvQbwnXOj9i951XdPeC4HWHT5bV1v+3z29+Vgs/OIi+9oe48acmxbs8VxVT7cFNkaX3+raapimUYqiZPbGz2CAOvRCP6gbytXany0njnTX07Y3Ii6VYY9u64EQNFz3J5OPlalzjc/4nyTv63+Lo+rfR6tFtlbfnofQDCDmaXpUEdS3SmcbXhU7MLJSwQ12gwovceazvouxlVLxmX8EgKkXeDuMSs7UoPPH47/yLbkeV+MU3SeTqst8PT5mfi9m5WZtmv+eMzCzuTzr0rcpzulYTmVbAfBLejA8KAsIlhlij6b8b+AbaDvJg=", "TermUrl": "https://pay.cascad.com/3ds-return?pid=pay_Hjh3kMlNdqE4WpOmNPCoIgFU_K1_nM" } }

Зміст:

Callbacks.

Callbacks дозволяють отримувати повідомлення, коли змінюється статус операції.

Щоб налаштувати Callbacks для операцій, необхідно задати адресу в callback_url в налаштуваннях інтеграції або відправляти цей параметр у запиті.

Примітка

Callback — асинхронна функція і не рекомендується для завдань з жорстким обмеженням за часом. Існує чимала ймовірність, що Ваш додаток отримає Callbacks не в порядку відправки або вони продублются. Для завдань з жорстким тимчасовим обмеженням ми рекомендуємо використовувати реконсиляцію по API для поновлення даних у системі.

Налаштування

Для налаштування Callbacks Вам потрібно перейти до
налаштувань облікового запису і додати значення «Callback URL».

Запити Callbacks

HTTP запит, який ми відправимо на Ваш callback_url, буде мати наступні характеристики:

  • це буде POST запит;
  • тіло запиту буде передано в JSON API форматі, як у відкритому API;
  • об’єкти type та id обов’язково будуть в тілі запиту (а не в url-параметрі).

Нижче приклад Callbacks для інвойсу платежу:

JSON

{ "data": { "type": "payment-invoices", "id": "cpi_TV465FXkbGch3GNe", "attributes": { "status": "processed", "resolution": "ok", "moderation_required": false, "amount": 3.33, "payment_amount": 3.33, "currency": "UAH", "service_currency": "UAH", "reference_id": "{guid}", "test_mode": false, "fee": 0, "deposit": 3.33, "processed": 1564153164, "processed_amount": 3.33, "processed_fee": 0, "processed_deposit": 3.33, "metadata": [ ], "flow_data": { "action": "https:\/\/pay.cascad.com\/hpp\/{guid}", "method": "GET", "params": [ ] }, "flow": "hpp", "created": 1564153017, "updated": 1564153164, "payload": { "payment_card": { "last": "1111", "mask": "511111******1111", "brand": "mastercard", "first": "511111", "issuer_name": "PUBLIC JOINT-STOCK COMPANY COMMERCIAL BANK PRIVATBANK", "issuer_country": "UA" } }, "description": null, "callback_url": null }, "relationships": { "payment-service": { "data": { "type": "payment-services", "id": "payment_card_uah_hpp" } }, "payment-method": { "data": { "type": "payment-methods", "id": "payment_card" } }, "customer": { "data": null } }, "links": { "self": "\/api\/payment-invoices\/cpi_p<...>" } } }

Примітка

Тіло запиту Callback містить тіло відповідної операції інвойсу. Статуси інвойсів існують у посібниках: платежів, зарахування.

Перевірка автентичності

Cascad підписує дані, використовуючи ключі в хедері запиту X-Signature.

Алгоритм генерації:

$signature = base64_encode(sha1($secret . $callbackData . $secret, true));

де $secret — бойовий (“Live key”) або тестовий (“Test key”) секретний ключ, який знаходиться в налаштуваннях облікового запису;

$callbackData– неформатований JSON код.

Примітка

Щоб переконатися в достовірності джерела, згенеруйте підпис використовуючи відповідний ключ і порівняйте з даними в Callback.

Перевищення часу очікування (тайм-аут)

Cascad виділяє три типи тайм-аутів для Callbacks:

1. Тайм-аут з’єднання (Connection Timeout): граничний час для встановлення початкового з’єднання з HTTP-сервером URL Callbacks.

2. Тайм-аут читання (Read Timeout): граничний час повідомлення про прочитання даних HTTP сервера після установки з’єднання.

3. Загальний Тайм-аут відправки Callbacks (Total Callback Timeout): на додаток до двох попередніх, Cascad також перевіряє загальний час виконання Callbacks.

Значення тайм-аутів:

Тип Для тестового з'єднання Для бойового з'єднання
Connection Timeout 10,000 мс 20,000 мс
Read Timeout 10,000 мс 20,000 мс
Execution Timeout 10,000 мс 60,000 мс

Автоповторення відправки

Після успішного виконання запиту Callbacks повинен повернутися HTTP-код 200. Будь-які інші дані у відповіді ігноруються.

Якщо повернувся інший HTTP-код, отже, запит не було доставлено. За замовчуванням, невиконаний запит повторно відправляється з проміжком очікування між спробами:

1-й повтор запиту буде відправлений через 1 хвилину після початкової спроби;

2-й повтор — через 2 хвилини після 1-го повтору;

3-й — через 3 хвилини після 2-го;

4-й — через 4 хвилини після 3-го;

5-й — через 5 хвилин після 4-го;

и 6-й — через 6 хвилин після 5-го.

і т.д. до 100 спроб або до отримання 200 HTTP-кода

Існує можливість налаштування інтервалу відправки та кількості спроб

Надішліть запит до нашої служби підтримки, щоб ми разом підібрали найкращий варіант.

Примітка

Ви можете перевідправити запит з панелі управління, якщо хочете синхронізувати дані негайно. Для цього потрібно перейти до інформації про переведення, вибрати вкладку Callbacks і клікнути на кнопку Надіслати заново.

Дублювання

Через повторну відправку Callbacks є ймовірність, що додаток отримає одні й ті ж дані кілька разів. Ви можете переконатися в ідемпотентності операції (властивості об’єкта або операції при повторному застосуванні операції до об’єкта давати той же результат, як і в першому), виявивши такі дублікати в даних програми.

Це не є проблемою, якщо додаток визначає ідемпотентність. Для контролю використовуйте параметр id у даних запиту Callbacks, тому що його значення є унікальним для операції та дозволяє її ідентифікувати.

Пакетна обробка

Ми пов’язуємо Callbacks для близьких статусів. Отже, якщо платіж відразу ж перейшов зі статусу created (створений) у статус invoked (в обробці) і в статус processed (оброблений), ви отримаєте тільки один Callback з останнім за часом статусом (тобто processed).

Перевага такого підходу: можливість уникнути перевантаження Ваших серверів HTTP запитами та позбавити Ваш додаток від необхідності ускладнювати логіку взаємодії з послідовними змінами статусу. Ваш додаток повинен орієнтуватися лише на останній статус об’єкта.

Доставка не в порядку черги

Callbacks можуть приходити в порядку черги через неполадки мережі або збоїв відправки. Ви все одно можете встановити правильну послідовність подій, орієнтуючись на атрибут updated в Callbacks. updated — це тимчасова відмітка, яка оновлюється з кожною зміною ресурсу.

IP-адреса

Для підвищення безпеки взаємодії між платформою Cascad і Вашим сервером, необхідно використовувати білий список IP-адресів.

Дізнатися детальніше про домени та IP адреси

Ця сторінка призначена для роботи розробників. Ми не створили версію для показу на мобільних.

Будь ласка, відкрийте сторінку на пристрої з роздільною здатністю екрану не менш як 1260 px 🙂

Консультація.

Дякуємо за вашу заявку

Ми зв'яжемось з вами в найближчий час
і відповімо на ваші запитання.

Зрозуміло