Перейти до основного вмісту

Система взаємодії облікових систем із базою даних сайту medicard.com.ua

Загальна інформація про роботу сервісу Медікард

Касове місце в аптеці — це робоче місце касира, яке далі у тексті називається КАСА. Кожній аптеці присвоюється унікальний код. Якщо в аптеці є кілька касових місць, то всі вони мають однаковий код аптеки.

База даних (БД) працює у системі MySQL версії не нижче 5.0. Кодування БД, таблиць і текстових полів — UTF-8.

Структура БД побудована за принципами Першої нормальної форми (1NF). Крім основних полів, таблиці містять службові (додаткові) поля, наприклад поле — дату запису. Такі поля використовуються для масштабованості системи, усунення можливих помилок та забезпечення зручності під час роботи з даними.

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

API сервісу Медікард регулює доступність продажу: може забороняти або дозволяти операцію, встановлюючи розмір знижки від 0% до 99,99% відповідно до параметрів картки покупця.

Варіантні взаємодії з сервісом Медікард

Формат доступу: API

Протокол: HTTP

Пароль доступу: не використовується

Формат даних: XML (кодування UTF-8)

Заголовок XML-документа:

<?xml version="1.0" encoding="UTF-8"?>  

Тип запиту: POST

Передача даних: у тілі POST-запиту передається змінна medicard, значення якої кодується та декодується за допомогою функції base64.

Опис роботи

Типи запитів

Каса може виконувати три типи запитів до сервісу Медікард API:

1. Запит на перевірку можливості продажу та отримання знижки

  • Каса надсилає запит для визначення можливості здійснення продажу та розміру знижки за номером картки покупця.

  • У запиті вказується код товару (або кілька одиниць товару з однаковим кодом).

  • Кількість одиниць регламентується лімітом, встановленим у сервісі Медікард.

  • У відповіді Каса використовує значення, отримані від сервісу Медікард, для подальших дій. Одночасно на екран виводиться сервісне повідомлення, яке пояснює результат запиту. Наприклад: Помилка 1: Такої карти в базі немає».

Після запиту на вказану картку та Касу (FarmacyId) встановлюється прапор блокування. Протягом наступних 10 хвилин повторний запит на знижку з інших кас для цієї картки стає недоступним.

2. Запит на підтвердження успішного продажу

  • Каса надсилає результати успішної транзакції до сервісу. Після цього прапор блокування скидається.

  • За замовчуванням Каса виконує до 5 спроб відправлення результату продажу.

Якщо протягом 10 хвилин підтвердження не отримано, сервіс Медікард автоматично скидає прапор.

3. Запит на отримання списку карток

Каса може надсилати запит для отримання актуального списку карток, зареєстрованих у системі Медікард.

3.1 Заборона продажу

ПЗ Каси повинно блокувати продаж товару, якщо у відповіді від сервісу Медікард отримано код заборони продажу, або якщо серед повернених кодів є значення, які вимагають таку заборону.

інформація

Перелік кодів наведено у кінці цієї специфікації

Каса повинна заборонити продаж запитуваного товару у випадках, коли:

  • відсутнє підключення до Інтернету;

  • немає зв’язку з сервісом Медікард;

  • виникли інші технічні збої, що унеможливлюють отримання відповіді від сервера.

3.2 Структура переданих даних

Перелік даних, необхідних для коректної та успішної роботи сервісу Medicard API.

3.2.1 Перед продажем

Перед здійсненням продажу Каса надсилає запит до сервісу з такими даними:

Параметри запиту

Опис поляНазва поляВаріанти / Пояснення
Тип запитуrequest_type (int)1 – запит % знижки
2 – відповідь про стан продажу
3 – запит списку карток
5 – валідація кода
Код запитуid_casual (varchar 32)HEX значення генерується випадковим чином.
За цим значенням потрібно буде порівняти відповідь на запит
ID постачальникаsupplier (mediumint 5)ID постачальника, значення має бути більшим за нуль. Обов'язково до заповнення.
Більше інформації на запит manager@medicard.com.ua
Внутрішній код аптекиinside_code (mediumint 5)Торгова точка. Унікальне значення для всієї мережі аптек
Номер карткиcard_code (varchar 13)----
Внутрішній код товаруproduct_code (varchar 20)Код у внутрішній обліковій системі аптеки. Через прив'язку у торговій мережі з коду товару аптеки на код товару у сервісі Медікард
Ціна товару (роздрібна)*price (decimal 8,2)999 999,99 грн Обов'язково до заповнення
Кількістьqty (decimal 5,2)Опціонально (поки не використовується)
Логінlogin (varchar 20)Опціонально (поки не використовується)
Парольpassword (varchar 20)Опціонально (поки не використовується)
інформація

Поле Ціна товару, призначене для аналізу завищеної ціни

Параметри відповіді

Опис поляНазва поляВаріанти / Пояснення
Тип запитуrequest_type (int)1 – запит % знижки
2 – відповідь про стан продажу
3 – запит списку карток
5 – валідація кода
Код запитуid_casual (varchar 32)HEX значення генерується випадковим чином
ID постачальникаsupplier (mediumint 5)ID постачальника, значення має бути більшим за нуль. Більше інформації на запит manager@medicard.com.ua
Номер карткиcard_code (varchar 13)----
Внутрішній код товаруproduct_code (varchar 20)Через прив'язку у торговій мережі з коду товару аптеки на код товару у сервісі Медікард
Ціна товару (роздрібна)*price (decimal 8,2)999 999,99 грн Обов'язково до заповнення
Кількістьqty (decimal 5,2)Кількість дозволена до покупки клієнту протягом календарного місяця (вказівка ліміту обов'язково в системі Медікард)
Знижкаdiscont (decimal 4,2)Розмір знижки, дозволеної для продажу цього товару.
Наприклад: 0%, 5%, 10%, 12,5%, 17,8%.
Абсолютна знижка*discont_absolute (decimal 8,2)999 999,99 грн
Сервісне повідомленняmessage (varchar 255)Код Повідомлення та текст, який адресовано власнику картки або провізору
Код повідомленняerrorКод Повідомлення
інформація

Поле Абсолютна знижка — використовується для товарів, за якими знижка або компенсація надається у гривнях, а не у відсотках

3.2.2 Після продажу

Після завершення продажу Каса повинна виконати другий запит до сервісу з такими даними:

Параметри запиту

Опис поляНазва поляВаріанти / Пояснення
Тип запитуrequest_type (int)1 – запит % знижки
2 – відповідь про стан продажу
3 – запит списку карток
5 – валідація кода
Код запитуid_casual (varchar 32)HEX значення генерується випадковим чином. За цим значенням потрібно буде порівняти відповідь на запит
Внутрішній код аптекиinside_code (mediumint 5)Торгова точка. Унікальне значення для всієї мережі аптек
ID постачальникаsupplier (mediumint 5)ID постачальника, значення має бути більшим за нуль. Обов'язково до заповнення.
Більше інформації на запит manager@medicard.com.ua
Номер чекаid_alter (varchar)Обов'язково до заповнення
Номер накладної дистриб'ютораinvoice_number (varchar) Обов'язково до заповнення.
до 20 символів (A-Z a-z 0-9 А-Я а-я)
Перевірте статусsale_status (int)Опціонально. Сервіс Медікард зберігає продаж здійснений тільки зі знижкою.
1 – продаж здійснено
2 – продаж не скоєно.
За замовчуванням 1
Номер карткиcard_code (varchar 13)----
Внутрішній код товаруproduct_code (varchar 40)Через прив'язку у торговій мережі з коду товару аптеки на код товару у сервісі Медікард
Ціна товару (роздрібна)*price (decimal 8,2)999 999,99 грн Обов'язково до заповнення
Кількістьqty (decimal 5,2)Типово 1
Залишокrezerv (int)Після продажу
Сума знижки у відсоткахdiscont_percent (decimal 4,2)99,99 %
Сума знижки абсолютне значенняdiscont_value (decimal 8,2)999 999,99 грн
Це поле пріоритетніше (якщо будуть вказані 2 варіанти знижки)
Дата продажуsale_date (yyyy-mm-dd hh:mm:ss)Час (24-годинний формат)
Логінlogin (varchar 20)Опціонально (поки не використовується)
Парольpassword (varchar 20)Опціонально (поки не використовується)

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

Параметри відповіді

Опис поляНазва поляВаріанти / Пояснення
Тип запитуrequest_type (int)1 – запит % знижки
2 – відповідь про стан продажу
3 – запит списку карток
5 – валідація кода
Код запитуid_casual (varchar 32)HEX-значення, яке містить дані з першого запиту
Статус запитуrequest_status (int)1 – відповідь прийнята та збережена
2 – відповідь не прийнята
Сервісне повідомленняmessage (varchar 255)Код повідомлення та текст, адресований власнику картки або провізору
Код повідомленняerrorКод помилки або службового повідомлення

Зміст відповіді при некоректній структурі запиту (перевіряється наявність обов'язкових полів у кожному типі запиту).

Опис поляНазва поляВаріанти / Пояснення
ПовідомленняПовідомлення (варіант 255)Текстове повідомлення

Сервіс може містити додаткові поля (теги), які не впливають на роботу касового місця і не вимагають змін у його налаштуваннях.

Можливі варіанти відповідей:

УмоваПовідомлення про помилку
Значення поля request_type не входить до переліку (1, 2, 3)Type request out of range
Відсутнє значення поля request_typeInvalid data request type
Неправильна структура запитуInvalid structure data in type 1
(де 1 — номер типу запиту)

Майданчик для тестування

Для перевірки роботи Medicard API створено спеціальний тестовий майданчик.

  • Під час початкового тестування ведеться протоколювання всіх подій запитів API.
  • Перегляд журналу подій доступний через адміністративну панель.
  • Посилання на адмін-частину та доступи (логін / пароль) надаються за запитом.
інформація

Адресу тестового майданчика буде надано додатково.

Тестовий сервер не впливає на робочий API і не має з ним жодного технічного зв'язку

Налаштування доступу для тестування

Перед початком тестування необхідно виконати налаштування даних доступу.

Обов'язково для успішної перевірки взаємодії з сервісом Medicard API необхідно надати дані:

  • список аптек;
  • ЄДРПОУ (якщо мережа містить кілька юридичних осіб — потрібно надати всі ЄДРПОУ з розбивкою по кожній аптеці);
  • назву аптечної мережі або окремої аптеки;
  • адресу аптек;
  • список товарів, що підключатимуться до сервісу (до 10 позицій).

Коди постачальників

Назва постачальникаКод постачальника
БаДМ1
Вента2
Оптіма-Фарма3
Конекс14
інформація

В рамках різних програм постачальники можуть змінюватися або зовсім не брати участь

Приклади

Приклад 1

Покупець відвідує аптеку та вирішує придбати по карті одну упаковку необхідного препарату.
Оператор касового місця за допомогою сканера зчитує штрих-код карти, обирає потрібний препарат, вказує кількість (тільки ціле число) і надсилає запит на сервер Medicard API.

Приклад запиту

Адреса сервера: www.medicard.com.ua/api/api.php
Метод передачі: POST['medicard']
Формат даних: XML

<?xml version="1.0" encoding="UTF-8"?>
<data>
<request_type>1</request_type>
<id_casual>2a3712a4a5405924aff9f47f8f6fb615</id_casual>
<inside_code>1</inside_code>
<price>50.00</price>
<supplier>3</supplier>
<card_code>12345678</card_code>
<product_code>122485</product_code>
<qty>1</qty>
<login></login>
<password></password>
</data>
інформація

inside_code = 1 — це код аптеки, який призначається в адмін-частині.
Наприклад: 1 — Аптека №6, адреса хххх.

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

Адреса сервера: www.medicard.com.ua/api/api.php
Метод отримання: POST['medicard']
Формат даних: XML

<?xml version="1.0" encoding="UTF-8"?>
<data>
<request_type>1</request_type>
<id_casual>2a3712a4a5405924aff9f47f8f6fb615</id_casual>
<card_code>12345678</card_code>
<product_code>122485</product_code>
<discont>5</discont>
<qty>2</qty>
<message>Повідомлення 202: Запит успішно оброблений.
Нагадуємо, що цього місяця Ви можете купити тільки {discont_qty_limit} упаковки.</message>
<error>202</error>
</data>

У даному випадку для параметра discont_qty_limit у відповіді підставляється значення "2".

Якщо у відповіді надається знижка по карті, прапор запиту піднімається. Протягом 10 хвилин покупка в іншій аптеці буде неможлива. Необхідно або завершити покупку в цій аптеці, або дочекатися таймауту.

Період таймауту може бути змінений оператором сервісу (наприклад, 5 хвилин).

Якщо у відповіді знижка по карті не надається, прапор скидається відразу, тому помилкове збереження продажу виключено.

Приклад відповіді (коли прапор запиту було піднято та 10 хвилин ще не минуло)

Адреса сервера: www.medicard.com.ua/api/api.php
Метод отримання: POST['medicard']
Формат даних: XML

<?xml version="1.0" encoding="UTF-8"?> 
<data>
<request_type>1</request_type>
<id_casual>2a3712a4a5405924aff9f47f8f6fb615</id_casual>
<card_code>12345678</card_code>
<product_code>122485</product_code>
<discont>0</discont>
<message>Помилка 2: Обробка запиту, чекайте10 хвилин</message>
<error>2</error>
</data>помилка>2</помилка>

Для кожного запиту та відповіді необхідно порівнювати значення коду id_casual (наприклад: 2a3712a4a5405924aff9f47f8f6fb615).

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

Якщо отримане значення не співпадає з відправленим, слід вивести повідомлення: Помилка 3: Неможливо зберегти продаж, невірний ідентифікатор. Усі повідомлення про помилки мають унікальні номери, незалежно від змісту. Це дозволяє ефективно:

  • тестувати підключення касових місць до сервісу,

  • забезпечувати технічний супровід роботи Medicard API.

Після першого запиту Каса надсилає другий запит, який:

  • фіксує факт продажу на сервері Medicard API,

  • скидає прапор запиту, що блокує повторне використання знижки.

інформація

Оскільки розрахунок знижок виконується на основі успішних продажів, важливо забезпечити відправку другого запиту та отримати позитивну відповідь про прийняття даних

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

Приклад 2

Продаж здійснено. Каса надсилає запит про продаж товару.

інформація

У запиті необхідно зберігати номер транзакції 2a3712a4a5405924aff9f47f8f6fb615

Приклад запиту

Адреса сервера: www.medicard.com.ua/api/api.php
Метод отримання: POST['medicard']
Формат даних: XML


DATA SEND POST['medicard']
<?xml version="1.0" encoding="UTF-8"?>
<data>
зберігати
номер
<request_type>2</request_type>
<id_casual>2a3712a4a5405924aff9f47f8f6fb615</id_casual>
<inside_code>1</inside_code>
<supplier>3</supplier>
<id_alter>1234</id_alter>
<invoice_number>А1Б1z2x3</invoice_number>
<card_code>12345678</card_code>
<product_code>122485</product_code>
<price>50.00</price>
<qty>1</qty>
<rezerv>54</rezerv>
<discont_percent>5</discont_percent>
<discont_value>2.50</discont_value>
<sale_date>2011-12-10 12:14:11</sale_date>
<login></login>
<password></password>
</data>

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

Адреса сервера: www.medicard.com.ua/api/api.php
Метод отримання: POST['medicard']
Формат даних: XML

<?xml version="1.0" encoding="UTF-8"?> 
<data>
<request_type>2</request_type>
<id_casual>2a3712a4a5405924aff9f47f8f6fb615</id_casual>
<request_status>1</request_status>
<message>{відповідне повідомлення}</message>
<error>{відповідний код}</error>
</data>

Приклад 3

Запит картки (відключено).

Приклад 4

СМС підтвердження покупки.

Якщо для товарної групи та обраної мережі аптеки встановлено підтвердження купівлі через СМС, то після запиту №1 буде надіслано відповідь код 15а.

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

<?xml version="1.0" encoding="UTF-8"?> 
<data>
<request_type>5</request_type>
<card_code>12345678</card_code>
<message> Повідомлення 15а:Необхідно підтвердити придбання за SMS
кодом (по API). Для завершення операції необхідно підтвердити покупку за
допомогою SMS-коду, який надсилається на вказаний під час реєстрації
номер телефону.</message>
<error>15а</error>
</data>

Отриманий код із СМС необхідно відправити назад із кодом запиту №5.

Параметри запиту

Опис поляНазва поляВаріанти / Пояснення
Тип запитуrequest_type (int)5 – валідація кода
Внутрішній код аптекиinside_code (mediumint 5)Торгова точка Унікальне значення для всієї мережі аптек
Номер карткиcard_code (varchar 13)
Кодcode (varchar 4)Код підтвердження покупки
Логінlogin (varchar 20)Опціонально (поки не використовується)
Парольpassword (varchar 20)Опціонально (поки не використовується)

Приклад запиту

<?xml version="1.0" encoding="UTF-8"?> 
<data>
<request_type>5</request_type>
<card_code>12345678</card_code>
<inside_code>1</inside_code>
<code>1224</product>
<login></login>
<password></password>
</data>

Після відправлення запиту на валідацію, сервер повертає код відповіді. Якщо код підтвердження успішно прийнято, сервер надсилає: Код відповіді: 205 — Код прийнято.

У разі невдалого запиту можуть повертатися такі повідомлення:

КодОпис помилки
15bВведений код не дійсний
15cТермін дії коду підтвердження закінчився
15dКод належить іншій аптеці
15eКод ще не згенеровано
105Заповнено не всі обов'язкові поля
інформація

Термін дії коду підтвердження — 10 хвилин. Після закінчення цього часу код втрачає чинність і потребує повторного отримання

Помилки

Запрограмовані помилки (текстовий зміст може змінюватися оператором до адмін частини сервісу.)

Помилки надання знижки, помилки запитів (група 0-99)
Код помилкиОпис помилки
0Помилка не визначена
1Такої карти в базі немає
1aЗапитувана картка заблокована
1bКарта не активна. Знижка недоступна
1cКарта не активна. Знижка недоступна
1dКартка не активована. Для активації клієнту необхідно зателефонувати за номером 0800 21 21 31 (безкоштовно в межах України) та назвати номер картки, ПІБ, номер телефону
1eКарта не активна. Знижка недоступна
2Обробка запиту, чекайте 10 хвилин. Після підняття прапора на запит знижки була спроба запиту на знижку в іншій аптеці
3Неможливо зберегти продаж, неправильний ідентифікатор
3aНеможливо зберегти продаж, немає першого запиту
3bНеможливо зберегти продаж, не вказано номер накладної
4Неможливо зберегти продаж, запит застарів
4aНеможливо зберегти продаж, запит застарів
5Товар із таким кодом для Вашої мережі аптек відсутній у базі. Знижка недоступна
5aТовар з таким кодом вимкнено в базі. Знижка недоступна
5bТовар з таким кодом вимкнено в базі. Знижка недоступна
5cВаша аптека та товар з таким кодом відключені у базі. Знижка недоступна
5dВашу аптеку вимкнено в базі. Знижка недоступна
5eВашу аптеку не знайдено в базі. Знижка недоступна
5fДоговір дистриб'ютора не вказано. Знижка недоступна
5gДоступ до сервісу вимкнено. Знижка недоступна
5hНе вказано код аптеки. Знижка недоступна
6Група товарів з таким кодом відключена в базі. Знижка недоступна
6aПеріод дії програми для цієї групи товарів минув. Знижка недоступна
7Вказано нульове значення кількості. Знижка недоступна
7aВказано дрібне значення кількості. Знижка недоступна
7bДля мультибонусів можна продати лише одну упаковку. Вказана кількість більше 1. Знижка недоступна
7cПомилка вибору кількості. Сьогодні доступний продаж від 2-х упаковок. Знижка недоступна
8Вибраний товар не бере участі в програмі. Знижка недоступна
8aВаша карта не обслуговується у цьому місті. Знижка недоступна
8bВаша картка не обслуговується в аптеці. Знижка недоступна
8cВаша аптека не бере участі в програмі. Знижка недоступна
9Продаж цієї групи товарів недоступний для цієї картки. Знижка недоступна
9aПродаж цієї групи товарів недоступний для цієї картки (не вказано виробник для групи)
9bДля зазначеної карти не зіставлено значення МП та виробника. Знижка недоступна
10Перевищено ліміт покупок за карткою. Для вибору доступно лише {limit} упаковок
10bПеревищення ліміту по тер області. Знижка недоступна
10cПеревищення ліміту по тер області. Знижка недоступна
10dПеревищення добового ліміту. Знижка недоступна
10eПеревищення ліміту груп. Знижка недоступна
10fПеревищення ліміту груп. Знижка недоступна
10gПеревищення ліміту дозування. Знижка недоступна
10hПеревищення тимчасового ліміту. Знижка недоступна
10jПеревищення тимчасового ліміту. Новий запит через {xx} хвилин. Знижка недоступна
11Помилка вибору схеми знижки. Знижка недоступна
11aПомилка вибору схеми знижки. Знижка недоступна
11bПомилка вибору схеми знижки. Знижка недоступна
12Термін дії плану покупок минув. Знижка недоступна
12aПлан покупок не визначено. Знижка недоступна
12bПлан покупок не визначено. Знижка недоступна
12cПлан покупок не визначено. Знижка недоступна
12dДоступна кількість упаковок лише 1. Знижка недоступна
12eЛіміт планових покупок вичерпано. Знижка недоступна
12fПомилка вибору дозування, наразі доступне {error_text}. Знижка недоступна
12gПродаж зі знижкою неможливий. Порушено інтервал між покупками
12hПродаж зі знижкою неможливий. Перевищено часовий інтервал на покупки
12jПродаж зі знижкою неможливий. Вказано неправильний код аптеки
13Не вказано постачальника. Знижка недоступна
13aВказаний постачальник не активний або вказано неправильний ВД. Знижка недоступна
13bЦей постачальник не бере участі в програмі. Знижка недоступна
14Ви перевищили максимальну ціну. Знижка недоступна
14aВи перевищили найнижчу ціну. Знижка недоступна
15Необхідно підтвердити придбання за кодом SMS. Телефонуйте на гарячу лінію
15aНеобхідно підтвердити придбання за SMS-кодом (по API). Для завершення операції введіть код, надісланий на номер, вказаний при реєстрації
15bВведений код не дійсний. Перевірте правильність коду
15cТермін дії коду підтвердження закінчився. Необхідно запросити новий код
15dКод належить іншій аптеці. Отримайте новий код, прив'язаний до поточної аптеки
15eКод ще не згенеровано. Повторіть запит пізніше
Cистемні помилки бази даних (група 100-199)
Код помилкиОпис
100Запит MySQL повернув порожній результат. Знижка недоступна
101Запит MySQL повернув порожній результат. Знижка недоступна
102Запит MySQL повернув порожній результат. Знижка недоступна
103Запит MySQL повернув порожній результат. Знижка недоступна
104Запит MySQL повернув порожній результат. Знижка недоступна
105Заповнено не всі обов'язкові поля. Запит не може бути оброблений, оскільки деякі обов'язкові поля відсутні або порожні. Перевірте структуру переданих даних і заповніть усі необхідні поля
інформація

У випадку помилок із діапазону 1–199 (включно) знижка на товар не надається

Повідомлення сервісу (група 200-2990)
Код повідомленняОпис
200Запит успішно оброблений. Продаж збережено
201Запит на продаж не збережено. Вказано нульову знижку в чеку
202Запит успішно оброблений. Нагадуємо, що цього місяця Ви можете купити тільки {discont_qty_limit} упаковок
202aЗапит успішно оброблений. Нагадуємо, що Ви можете ще купити {discont_qty_limit} упаковок
202bЗапит успішно оброблений
203Запит оброблено. Знижка недоступна, оскільки для зазначеної групи товарів продаж зі знижкою можливий лише для перших {discont_qty_limit} упаковок на місяць. Наберіть замовлення повторно із меншою кількістю упаковок
204Запит оброблено. Знижка недоступна, оскільки цього місяця досягнуто ліміту упаковок зі знижкою
204aЗапит оброблено. Знижка недоступна, оскільки сьогодні досягнуто ліміту упаковок зі знижкою
205Код підтвердження прийнято. Повторіть запит №1. Код верифіковано успішно. Тепер можна повторити первинний запит
інформація

Другий запит дозволяється виконати лише після отримання кодів 202, 202a або 202b під час першого запиту.

Друк фіскального чека можливий тільки у разі отримання коду 200 після другого запиту.

Якщо в базі даних відсутній заданий код помилки, а в API були внесені зміни або додані нові алгоритми, система виводить повідомлення: Повідомлення за номером #{number} не встановлено.

Журнал змін

Дата змінОпис змінКод помилки / повідомлення
18.11.2013Додано 2 помилки та 1 повідомлення10, 10a, 202a
20.05.2014Додано 1 помилку1b
01.08.2014Додано 1 помилку11
01.04.2015Додано 1 помилку3a
22.05.2015Додано 9 помилок12, 12a, 12b, 12c, 12d, 12e, 12f, 202b
29.07.2015Додано 1 помилку7b
10.09.2015Додано 2 помилки13, 13a
11.12.2015Додано 2 помилки8b, 204a
07.06.2016Додано 2 помилки10b, 10c
05.01.2017Додано 1 помилку12g
10.01.2017Додано 1 помилку14
08.06.2017Додано 2 помилки12h, 12j
29.11.2017Додано 2 помилки (Есенціалі)7c, 10d
30.09.2019Додано 1 помилку (SMS покупка)15
22.11.2019Додано 2 помилки7d, 1d
12.12.2019Додано 1 помилку3b
20.01.2020Додано 3 помилки10g, 10f, 10e
08.05.2020Додано 1 помилку1e
08.07.2020Додано 2 помилки10h, 10j
04.08.2020Планувалося додати помилку13b
31.10.2020Додано 1 помилку13b
04.08.2021Додано 1 помилку14a
11.11.2021Додано 1 помилку8c
30.07.2025Додано 6 помилок та 1 повідомлення15a, 15b, 15c, 15d, 15e, 105, 205