Опис роботи API
Службові операції з ПРРО через API
Використання всіх методів API відбувається без функції підписання. Для підписання чеків (використання КЕП) потрібно встановити додаток SmartSign і налаштувати декілька методів API.
Для роботи з API необхідно в кожному запиті передавати токен авторизації та заголовки.
В методі /authenticate передавати токен авторизації не потрібно.
-
На початку зміни для автентифікації за логіном і паролем від CashDesk виконується м етод POST /authenticate. У разі вдалої автентифікації відповідь буде містити тимчасовий токен авторизації
token
. -
Для отримання списку доступних РРО виконується метод POST /tax_objects. Відповідь буде включати детальну інформацію про доступні РРО.
-
Для отримання останнього зареєстрованого чека з сервера ДПС необхідно виконати метод POST /shift/lastCheck. Якщо використовується SmartConnect, то у відповіді буде останній фіскальний чек (поле local_number матиме дані) або службовий чек (поле local_number буде зі значенням null). У випадку якщо у зміні не було операцій, то всі поля матимуть значення null.
-
Для проведення операцій з касою необхідно відкрити зміну. Для відкриття зміни виконується метод POST /shift.
В параметрі запиту action_type необхідно передати значення OPEN_SHIFT -
Необхідно повідомляти ДПС що РРО на зв'язку. Для цього необхідно виконати метод POST /shift/ping. Якщо не виконувати запит щонайменше 1 раз на 30 хвилин, то ДПС може автоматично перевести РРО в офлайн режим і в подальшому заблокувати його.
⚠️ Тільки для використання API без взаємодії зі SmartConnect
-
Для отримання статусу РРО виконується метод GET /tax_objects. Відповідь буде включати детальну інформацію про обраний РРО.
-
Реалізація товару виконується за допомогою метода POST /check/sale. Для реалізації товару, в параметрі запиту action_type необхідно передати значення Z_SALE, а для повернення - RETURN.
-
Відправка чека покупцю виконується за допомогою метода POST /check/send-to-customer. Метод дозволяє надіслати чек клієнту через СМС, Email або Viber, що вказується в параметрі запиту action_type (SMS — надіслати чек через СМС, EMAIL — надіслати чек по Email, VIBER — надіслати чек через Viber).
-
Для отримання PDF представлення чека виконується метод GET /checks/:id/pdf.
-
Для отримання текстового представлення чека виконується метод GET /checks/:id/text.
-
Для отримання JSON представлення чека виконується метод GET /checks/:id/json.
-
Отримати QR кода чека реалізації та повернення виконується метод GET /checks/:id/qr.
-
Для отримання Х-звіту виконується метод POST /shift/xReport. У випадку якщо зміна не відкрита, звіт буде згенеровано з нульовими значеннями.
-
Для закриття зміни та формування Z-звіту виконується метод POST /shift. В параметрі запиту action_type необхідно передати значення Z_REPORT.
Робота з модулем SmartSign через API
SmartSign — це ключовий компонент для електронного підписання чеків. Він отримує запит на підпис через API, підписує його вашим електронним ключем, а потім відправляє готовий чек на сервер CashDesk для передачі до ДПС.
Для взаємодії з API використовується спеціальний API-ключ, я кий ви генеруєте у своєму особистому кабінеті CashDesk.
Робота з модулем SmartConnect через API
SmartConnect — це спеціальний модуль, який дозволяє вашій касі працювати безперебійно навіть без доступу до інтернету або коли сервер ДПС недоступний. У таких ситуаціях він автоматично переходить в офлайн-режим.
Модуль SmartConnect підтримує ті самі методи, що й CashDesk.
Як налаштувати роботу з API:
-
Ваше програмне забезпечення, що надсилає запити (наприклад, 1С), має знаходитись в тій самій локальній мережі, що й SmartConnect.
-
Для тестового середовища використовуйте адресу http://localhost:8000/, а для робочого — http://localhost:8001/. Якщо SmartConnect і ваше ПЗ встановлені на різних комп'ютерах, замість localhost потрібно вказати IP-адресу комп'ютера, де інстальовано SmartConnect.
-
Для авторизації зі SmartConnect використовується API-ключ (токен), згенерований в особистому кабінеті CashDesk і прив'язаний до касира. SmartConnect передає цей токен із чеком на сервер, який потім використовує його для пошуку активного модуля SmartSign для підпису.