Інструкція з фіскалізації транзакцій (EasyPay + Checkbox: відмінності між версіями

Матеріал з apidocs
Перейти до: навігація, пошук
Немає опису редагування
 
(Не показано 14 проміжних версій цього користувача)
Рядок 8: Рядок 8:
** створеного касира
** створеного касира
<br>
<br>
== 2. Дані, які потрібно надати EasyPay ==
== 2. Дані, які потрібно надати EasyPay ==
----Після реєстрації в Checkbox необхідно '''надіслати менеджеру EasyPay на email''':
----Після реєстрації в Checkbox необхідно '''надіслати менеджеру EasyPay на email''':
Рядок 179: Рядок 180:
</table>
</table>
<br>
<br>
'''6.4 payments[  ]'''
'''Валідація:'''
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;">
Рядок 202: Рядок 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. Загальна схема роботи


  1. Мерчант створює замовлення (createOrder) з параметрами фіскалізації
  2. EasyPay ініціює фіскалізацію в сервісі Checkbox
  3. Checkbox формує фіскальний чек
  4. Статус фіскалізації та URL чека:
    • надсилаються в callback, або
    • доступні через метод fiscalization/check
  5. У разі повернення коштів використовується метод 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 можна не передавати