Інструкція з фіскалізації транзакцій (EasyPay + Checkbox: відмінності між версіями
Матеріал з apidocs
Немає опису редагування |
|||
| (Не показано 17 проміжних версій цього користувача) | |||
| Рядок 8: | Рядок 8: | ||
** створеного касира | ** створеного касира | ||
<br> | <br> | ||
== 2. Дані, які потрібно надати EasyPay == | == 2. Дані, які потрібно надати EasyPay == | ||
----Після реєстрації в Checkbox необхідно '''надіслати менеджеру EasyPay на email''': | ----Після реєстрації в Checkbox необхідно '''надіслати менеджеру EasyPay на email''': | ||
| Рядок 179: | Рядок 180: | ||
</table> | </table> | ||
<br> | <br> | ||
''' | '''Валідація:''' | ||
price × quantity = value у payments | |||
==== '''6.4 payments[ ]''' ==== | |||
<table style="width:100%; border-collapse:collapse; border-spacing:0;"> | <table style="width:100%; border-collapse:collapse; border-spacing:0;"> | ||
<tr style="border-bottom:1px solid #e6e6e6;"> | <tr style="border-bottom:1px solid #e6e6e6;"> | ||
| Рядок 188: | Рядок 191: | ||
<th style="text-align:left; padding:12px 16px;">Опис</th> | <th style="text-align:left; padding:12px 16px;">Опис</th> | ||
</tr> | </tr> | ||
<tr style="border-bottom:1px solid #efefef;"> | <tr style="border-bottom:1px solid #efefef;"> | ||
<td style="padding:16px;">type</td> | <td style="padding:16px;">type</td> | ||
<td style="padding:16px;">string</td> | <td style="padding:16px;">string</td> | ||
<td style="padding:16px;">✅</td> | <td style="padding:16px;">✅</td> | ||
<td style="padding:16px;"> | <td style="padding:16px;">Завжди <code style="background:#f3f3f3; padding:2px 6px; border-radius:6px;">"CASHLESS"</code> | ||
</td> | </td> | ||
</tr> | </tr> | ||
| Рядок 207: | Рядок 205: | ||
</tr> | </tr> | ||
</table> | </table> | ||
<br> | |||
== 7. Перевірка статусу фіскалізації == | |||
----<br> | |||
<p style="border: 1px solid #9ACD32; background-color: rgba(192, 255, 192, 0.5); padding: 10px; border-radius: 8px; font-family: Arial, sans-serif; font-size: 14px; font-weight: normal; position: relative; padding-left: 80px;"> | |||
<span style="position: absolute; top: 10px; left: 10px; background-color: #006400; color: white; padding: 2px 12px; border-radius: 4px; font-size: 14px; font-weight: bold;">POST</span> | |||
<span style="margin-left: 5px; font-weight: bold; font-size: 16px;">/api/merchant/fiscalization/check</span> | |||
</p> | |||
=== Приклад запиту === | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"orderId": "Fiscalization29", | |||
"transactionid": 111111, | |||
"serviceKey": "MERCHANT-TEST-XXXX" | |||
} | |||
</syntaxhighlight> | |||
=== Можливі статуси === | |||
* '''<code>Accepted</code>''' — фіскалізація успішна | |||
* '''<code>InProcess</code>''' — в обробці | |||
* '''<code>Declined</code>''' — помилка | |||
<br> | |||
== 8. Повернення коштів (<code>CancelOrder</code>) == | |||
---- | |||
=== Часткове повернення === | |||
'''Умови:''' | |||
* транзакція була фіскалізована | |||
* повертається частина товарів | |||
'''<br> | |||
'''Особливості:''' | |||
* обʼєкт <code>fiscalization</code> '''обовʼязковий''' | |||
* передаються '''тільки товари та суми''', які повертаються | |||
<br> | |||
=== Повне повернення === | |||
* повертається вся сума платежу | |||
* обʼєкт <code>fiscalization</code> можна '''не передавати''' | |||
Поточна версія на 09:56, 20 січня 2026
1. Попередні умови
Для фіскалізації транзакцій мерчант повинен:
- Бути зареєстрованим у сервісі Checkbox: https://checkbox.ua
- Мати в Checkbox:
- зареєстровану касу
- створеного касира
2. Дані, які потрібно надати EasyPay
Після реєстрації в Checkbox необхідно надіслати менеджеру EasyPay на email:
Ключ ліцензії каси (licenseKey)

PIN-код касира

serviceKey, з якого будуть фіскалізуватися транзакції
⚠️ Без передачі цих даних фіскалізація працювати не буде.
3. Робота зі змінами
- Зміна відкривається автоматично разом із першою фіскалізованою транзакцією за день
- Зміна автоматично закривається о 23:45
4. Загальна схема роботи

- Мерчант створює замовлення (
createOrder) з параметрами фіскалізації - EasyPay ініціює фіскалізацію в сервісі Checkbox
- Checkbox формує фіскальний чек
- Статус фіскалізації та URL чека:
- надсилаються в callback, або
- доступні через метод
fiscalization/check
- У разі повернення коштів використовується метод
CancelOrder
5. Створення платежу з фіскалізацією
Для фіскалізації транзакції в методі:
POST /api/merchant/createOrder
потрібно передати обʼєкт fiscalization.
5.1. Приклад запиту createOrder
{
"order": {
"serviceKey": "MERCHANT-TEST-XXXX",
"orderId": "Fiscalization29",
"description": "Test for fiscalization",
"amount": 3,
"isOneTimePay": false,
"additionalItems": {
"Merchant.UrlNotify": "http://notifysigncheckexample.com"
}
},
"fiscalization": {
"licenseKey": "test8d2f483fafef",
"receiptType": "Url",
"receipt": {
"goods": [
{
"good": {
"code": "9999",
"name": "Wine",
"price": 1.5
},
"quantity": 2
}
],
"payments": [
{
"type": "CASHLESS",
"value": 3
}
]
}
}
}
6. Обʼєкт fiscalization
6.1. Загальна структура
| Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
| licenseKey | string | ✅ | Ключ ліцензії каси Checkbox |
| receiptType | string | ✅ | Завжди "Url" |
| receipt | object | ✅ | Дані фіскального чека |
6.2 receipt
| Поле | Тип | Обовʼязкове | Опис |
|---|---|---|---|
| goods | array | ✅ | Перелік товарів |
| payments | array | ✅ | Інформація про оплату |
6.3 goods[ ]
| Поле | Тип | Обовʼязкове | Опис |
|---|---|---|---|
| good.code | string | ✅ | Код товару |
| good.name | string | ✅ | Назва товару |
| good.price | decimal | ✅ | Ціна за одиницю |
| quantity | decimal | ✅ | Кількість (до 3 знаків після коми) |
Валідація:
price × quantity = value у payments
6.4 payments[ ]
| Поле | Тип | Обовʼязкове | Опис |
|---|---|---|---|
| type | string | ✅ | Завжди "CASHLESS"
|
| value | decimal | ✅ | Сума платежу |
7. Перевірка статусу фіскалізації
POST /api/merchant/fiscalization/check
Приклад запиту
{
"orderId": "Fiscalization29",
"transactionid": 111111,
"serviceKey": "MERCHANT-TEST-XXXX"
}
Можливі статуси
Accepted— фіскалізація успішнаInProcess— в обробціDeclined— помилка
8. Повернення коштів (CancelOrder)
Часткове повернення
Умови:
- транзакція була фіскалізована
- повертається частина товарів
Особливості:
- обʼєкт
fiscalizationобовʼязковий - передаються тільки товари та суми, які повертаються
Повне повернення
- повертається вся сума платежу
- обʼєкт
fiscalizationможна не передавати