Webhook
Webhook — це посилання, що вказує клієнт для кожної каси. Коли по касі відбувається транзакція, то на вказану URL-адресу відправляється Json файл з інформацією про транзакцію та посилання на чек
Загальна інформація
- Реєстрація
Клієнт самостійно налаштовує свій сервер для прийому інформації про транзакції згідно опису параметрів JSON (див. Отримати JSON представлення чека), та вказує посилання на Webhook для кожної каси (див. Налаштування обраної каси).
- Подія
Відбувається транзакція по касі.
- Відправка інформації
CashDesk автоматично відправляє запит у форматі JSON на Webhook (URL-адресу). Якщо інформацію про чек не було прийнято, то CashDesk буде повторно відправляти запит протягом 24 годин.
- Обробка
Сервер клієнт отримує запит і обробляє дані, що надійшли.
Техпідтримка може допомогти клієнту в налаштуванні Webhook.
Актуальний приклад і параметри JSON описано в Отримати JSON представлення чека
Параметри JSON
Ім'я | Тип | Опис |
---|---|---|
num_fiscal | integer | Так |
check_type | string | Тип чека |
hash | string | Хеш-сума чека |
ORDERNUM | string | Номер чека |
ORDERDATE | string | Дата формування чека |
ORDERTIME | string | Час формування чека |
is_offline | boolean | Ознака офлайн чека |
check_data | object | Дані чека |
check_data.total_sum | float | Загальна сума чека |
check_data.payments | list[object] | Містить параметри методів оплати |
check_data.payments.code | integer | Код платежу (0 - готівка, інші значення - безготівка) |
check_data.payments.name | string | Назва методу оплати |
check_data.payments.sum | float | Сума оплати |
check_data.payments.sum_provided | float | Фактично надана сума |
check_data.payments.sum_remains | float | Сума решти після оплати |
check_data.payments.pay_terminal | list[object] | Параметри термінала при оплаті карткою |
check_data.tax | list[object] | Дані податку |
check_data.tax.name | string | Назва податку |
check_data.tax.letter | string | Літера податку |
check_data.tax.prc | integer | Відсоткова ставка податку |
check_data.tax.turnover | float | Оборот по податку |
check_data.tax.sum | float | Сума податку |
check_data.tax.excise_prc | string | Відсоток акцизного податку |
check_data.tax.excise_sum | integer | Сума акцизного податку |
check_data.tax.excise_letter | integer | Літера акцизного податку |
check_data.tax.excise_turnover | integer | Оборот акцизного податку |
check_data.products | list[object] | Містить параметри товарів в чека |
check_data.products.code | string | Код товару |
check_data.products.uktzed | string | Код УКТ ЗЕД (якщо застосовується) |
check_data.products.unit_code | string | Код одиниці виміру кількості товару |
check_data.products.unit_name | string | Назва одиниці виміру кількості товару |
check_data.products.amount | float | Кількість товару Не більше трьох знаків після коми |
check_data.products.name | string | Назва товару |
check_data.products.price | float | Ціна за одиницю товару |
check_data.products.letters | string | Літера податку |
check_data.products.cost | float | Підсумок по даній позиції Не більше двох знаків після коми |
check_data.products.sum_discount | integer | Сума знижки |
check_data.products.bar_code | string | Штрих-код товару |
products.excise_barcode | string | Акцизний штрих-код |
products.excise_letter | string | Акцизна літера |
check_data.offline_id | string | |
check_data.date | string | Дата формування чека |
check_data.local_number | integer | Локальний номер операції, який клієнт передає з кожним чеком |
check_data.footer | string | Текст в нижній частині чека |
check_data.round_sum | float | Сума округлення |
check_data.global_discount | integer | Загальна сума знижки для чека |
qr | string | QR код чека |
qr_data | string | Дані для генерації QR кода |
link | string | Посилання на електронний чек |
string | PDF представлення чека | |
text_print | string | Текстове представлення чека |
uuid | string | Ідентиф ікатор чека |
local_number | integer | Локальний номер операції, який клієнт передає з кожним чеком |
cash_in_box | float | Поточна кількість грошей в касі |
Приклад JSON
{
"num_fiscal": "50037129",
"check_type": "Z_SALE",
"hash": "f10a3d17e947b3cfcf13a3df0a458c37f164283ef45a13f20c2a1c0c54c067bd",
"ORDERNUM": "DEV_6672cb7749378",
"ORDERDATE": "2024-06-19",
"ORDERTIME": "15:13:41",
"is_offline": false,
"check_data": {
"total_sum": 24.2,
"payments": [
{
"code": 0,
"name": "ГОТІВКА",
"sum": 24.2,
"sum_provided": 24.2,
"sum_remains": 0,
"pay_terminal": null
}
],
"tax": [
{
"name": "БЕЗ ПДВ",
"letter": null,
"prc": 0,
"turnover": 24.22,
"sum": 0,
"excise_prc": null,
"excise_sum": null,
"excise_letter": null,
"excise_turnover": null
}
],
"products": [
{
"code": null,
"uktzed": null,
"unit_code": "1,0053",
"unit_name": "кг",
"amount": 1.053,
"name": "Морква",
"price": 23,
"letters": "",
"cost": 24.22,
"sum_discount": 0,
"bar_code": null,
"excise_barcode": null,
"excise_letter": ""
}
],
"offline_id": null,
"date": null,
"local_number": 1,
"footer": null,
"round_sum": -0.02,
"global_discount": 0
},
"qr": "base64_string",
"qr_data": "https://test.cashdesk.com.ua/wc/DEV_6672cb7749378?mac=f10a3d17e947b3cfcf13a3df0a458c37f164283ef45a13f20c2a1c0c54c067bd&date=20240619&time=15%3A13%3A41&fn=50037129&id=DEV_6672cb7749378&sum=24.2",
"link": "https://test.cashdesk.com.ua/check/189ac039-409e-428f-a088-b1b69c21971b/html",
"pdf": "base64_string",
"text_print": "base64_string",
"uuid": "189ac039-409e-428f-a088-b1b69c21971b",
"local_number": 1,
"cash_in_box": 195.21
}