2) Реализована ли отправка запросов внутри каждой кассы последовательно, дожидаясь ответа/таймаута на предыдущий? (По разным кассам запросы могут отправляться одновременно, по одной -- вызовут ошибку.)
Какие операции будут использоваться в ПО из списка ниже?
3) Продажа (компания продаёт клиенту позицию, получает деньги)
3.1) Нескольких позиций в одном чеке
3.2) Несколько типов оплаты в одном чеке (пример: часть наличными, часть картой)
4) Продажа маркированных товаров (лекарства, алкогольная продукции и прочее, подлежащее маркировке)
5) Возврат (компания возвращает деньги клиенту)
6) Покупка (компания покупает у клиента позицию, отдаёт деньги)
6.1) Нескольких позиций в одном чеке
6.2) Несколько типов оплаты в одном чеке
7) Возврат покупки товара/услуги (клиент возвращает деньги компании)
8) Скидки, купоны, сертификаты, ваучеры
8.1 ) Наценки
9) Внесение средств в кассу
10) Изъятие средств из кассы
11) X-отчёт (промежуточный)
12) Z-отчёт (закрывающий смену) (требуется 1 раз в течение 24 часов с момента открытия смены, иначе следующие запросы вернут ошибки)
Рекомендации:
а) Использовать одновременно одну учётную запись пользователя на одной кассе, чтобы избежать ошибки параллельных операций по кассе
б) Использовать запрос api/v4/Ticket/PrintFormat для получения печатной формы чека в актуальном соответствии требованиям регулятора
в) Обновлять токен при получении ошибки авторизации, а также 1 раз в 16-24 часа для профилактики ошибки авторизации
г) Отображать ошибки пользователю, не повторять запрос без изменений (кроме TimeOut), чтобы избежать подозрения во флуде от кассы
д) Не отправлять новый запрос до получения ответа или таймаута на предыдущий, чтобы избежать ошибки параллельных запросов по одной кассе
е) Создавать чеки и Z-отчёт по кассе только по API, чтобы избежать ошибок обработки соседних запросов API и Веб
ж) В полях Price, Sum, Discount, Markup, Tax передавать до 2 цифр в дробной части, в Count — до 3 цифр; при необходимости заранее округлять математически на стороне ПО (0~4 = +0, 5~9 = +1), чтобы избежать ошибки ожидаемого и переданного налога и иных
з) Значения полей: Sum (0.00 – 999999998.99), Price (0.00 – 999999998.99), Count (0.000 – 4294966.999), Discount (0.00 – 999999998.99), Markup (0 – 999999998.99), Tax (0.00 – 999999998.99), Change (0.00 – 999999998.99), Total (0.00 – 999999998.99), чтобы избежать ошибки диапазона значений