Вы находитесь на странице: 1из 21

РУКОВОДСТВО ПРОГРАММИСТА
ВИРТУАЛЬНОЙ КАССЫ
(с учетом аванс, кредит, и
комиссионных)
Оглавление
РУКОВОДСТВО ПРОГРАММИСТА ВИРТУАЛЬНОЙ КАССЫ
(с учетом аванс, кредит, и комиссионных) 1

Оглавление 2

ОСНОВНЫЕ ЗАПРОСЫ 3
Open Z report 3
Sale 3
Close Z report 6
Get Z report info by number 7
Get Z report info 8

ВСПОМОГАТЕЛЬНЫЕ ЗАПРОСЫ 9
Check status 9
Get Z report Count 9
Get Version 9
Get Device ID 10
Print Last Paycheck 10
Set Cash Number 10
Send receipt 11
Acknowledge 11
Rescan receipts 12
Get Receipt Info 12
Send Z report by number 13
Get Unsent Count 13
Get Acknowledge count 13
Get Z report Status 14
Get receipts info by date 14
Get fiscals list 15
Get status 16
Get last registered receipt 16
Get receipt count 17
Resend Unsent 17

ОШИБКИ ПРОГРАММЫ 17
Виртуальная касса Communicator обеспечивает доступ к ФМ, и служат
фискализированию чека. У ПО Communicator есть основные запросы так и вспомогательные
запросы. Основные запросы необходимо интегрировать к систему для обеспечение
нормальной работы кассы. Вспомогательные запросы можно интегрировать по желанию
клиента.
Базовый адрес для запросов является Localhost с портом 8347 и конечном путём /uzpos
http://localhost:8347/uzpos
Токен для запросов остаётся неизменном: “DXJFX32CN1296678504F2”
Тестовый адрес для запросов: http://178.218.200.198:8350/uzpos

1. ОСНОВНЫЕ ЗАПРОСЫ
1.1 Open Z report
Открытие Z отчёта.

Request

{
    "token": "DXJFX32CN1296678504F2,
    "method": "openZreport",
    "port":3449
}

Поле Тип Описание


token String Обязательное Токен не меняется
DXJFX32CN1296678504F2
method String Обязательное Метод запроса
port Integer Обязательное Указывается порт
прикрепленный к id
фискального модуля
ID фискального модуля
привязанный к нему порт
можно узнать через
manager.ini файл
Response

{
    "error": false,
    "message": "SUCCESS"
}

Поле Тип Описание


error Boolean Обязательное Проверка на ошибку
message String Обязательное Информация на ошибку
1.2 Sale
Отправка запроса на покупку. Отправка суммы должны соблюдать правило

𝐶𝑜𝑠𝑡 − 𝐷𝑖𝑠𝑐𝑜𝑢𝑛𝑡 − 𝑂𝑡ℎ𝑒𝑟 = 𝑅𝑒𝑐. 𝐶𝑎𝑠ℎ + 𝑅𝑒𝑐. 𝐶𝑎𝑟𝑑

Request
{
"token": "DXJFX32CN1296678504F2", //required, static
"method": "sale", //required, static
"port": 3448, //required default 3448
"companyName": "Humo MCHJ", //required, dynamic, string
"companyAddress": "Tashkent", //required, dynamic, string
"companyINN": "123456", //required, dynamic, string
"staffName": "Abdulazizov Shakhboz", //optional, dynamic, string
"printerSize": 58, //optional 58 or 80 int
"phoneNumber":"+998911338464", //optional string
"companyPhoneNumber":"+998994593043",//optional string
"params": {
"paycheckNumber": "A9/00000447", //optional string
"paymentNumber": "OTA00004534 от 10.08.2020", //optional string
"note": "za Noyabr", //optional string
"stateDuty": "16500000", //optional string
"fineAmount": "5600000", //optional string
"contractSum": "5000000", //optional string
"clientName": "Javohir Temirov", //optional string
"items": [
{
"discount": 500, //required, long
"price": 1000000, //required, long
"cost": 100000, //required, long
"barcode": "4780087210023",
"amount": 2000, //required, long
"vatPercent": 15, //required, long
"vat": 15000, //required, long
"name": "Non",//required, string
"label": "1234567", //optional, string
"classCode": "01905003001000000", //required, string 17 digit
"units": 5, //optional, Integer
"commissionTIN": "200523321", //optional, string
"other": 0 //required Long
},
{
"discount": 600,
"price": 700000,
"cost": 70000,
"barcode": "9973150582171",
"amount": 1000,
"vatPercent": 15,
"vat": 7000,
"name": "Suv",
"classCode": "02201001001000000",
"commissionTIN": 200523322,
"other": 0
}
],
"receivedCash": 100000, //required Long
"receivedCard": 70000 //required Long
},
"extraInfo": { //optioanl object
"tin": "222222222",
"pinfl": "33333333333333",
"phoneNumber": "998991234567",
"carNumber": "01A123BC"
}
}

Поле Тип Описание


Токен не меняется
token String Обязательное
DXJFX32CN1296678504F2
method String Обязательное Метод запроса
Номер порта для обращения к
port Integer Обязательное
определенному ключу
Название компании. Убедитесь,
companyName String Обязательное
чтобы в чеке идёт правильные адреса
companyAdress String Обязательное Адрес регистрации кассы
companyINN Integer Обязательное ИНН юридического лица
staffName String Не обязательное Инициалы кассира
Размер формирование чека:
printerSize Integer Не обязательное
поддерживается 58 или 80 мм
phoneNumber String Не обязательное №. Телефона (формат 998XXYYYAABB)
params Object Обязательное
Номер чека для вывода в чеке. Если
не указать номер чека номер
paycheckNumber String Не обязательное
присваивается со стороны
фискального номера
String Сумма контракта для вывода на
contractSum Не обязательное
печать
String Номер договора для отображение его
paymentNumber Не обязательное
в чеке
String Комментарии для отображение его в
note Не обязательное
чеке
String Гос пошлина для отображение его в
stateDuty Не обязательное
чеке
String Наименование клиента для
clientName Не обязательное
отображение его в чеке
Сумма штрафа для отображение его
fineAmount String Не обязательное
в чеке
items Object Обязательное Список товаров закупленных товаров
Скидки для товаров Значение
discount Integer Обязательное указывается в тийинах.
250000 тийин = 2500 сум
Общая сумма товара учитывая
количество товара.
price Integer Обязательное
Значениеуказывается в тийинах.
250000 тийин = 2500 сум
cost Integer Обязательное Проведенная сумма для товара
barcode String Обязательное Штрих код товара
amount Integer Обязательное Количество товара
vatPercent Integer Обязательное Процентная вставка НДС
НДС сумма. Значение указывается в
vat Integer Обязательное тийинах.
250000 тийин = 2500 сум
name String Обязательное Наименование товара
Не Код маркировки (*обязательно для
label String
обязательное* маркированных товаров)
classCode String Обязательное Код ИКПУ
units Integer Не обязательное Единица измерения
Признак комиссионного
commissionInfo Object Не обязательное
товара/услуги

tin String Не обязательное ИНН комитента

pinfl String Не обязательное ПИНФЛ комитента


Прочие скидки (Оплата по страховке и
other Integer Обязательное
др.)
Наличная сумма, полученная от
receivedCash Integer Обязательное
продажи в тийинах.
Безналичная сумма, полученная от
receivedCard Integer Обязательное
продажи в тийинах
extraInfo Object Не обязательное
tin String Не обязательное ИНН комитента
pinfl String Не обязательное ПИНФЛ комитента
phoneNumber String Не обязательное №. Телефона (формат 998XXYYYAABB)
carNumber String Не обязательное Гос. №. знак авто
Response

{
    "error": false,
    "paycheck": "JVBERi0xLjcKJeLjz9MKNSAwIG9iago8PC9GaW … RmxhdGVEZWNvZGUv+fdsfsd",
    "info": {
        "terminalId": "UZ191211501033",
        "receiptSeq": "559",
        "fiscalSign": "336289559214",
        "qrCodeURL": "https://ofd.soliq.uz/check?t=UZ191211501033&r=559&c=20211109170634&
s=336289559214",
        "dateTime": "20211109170634"
    }
}

Поле Тип Описание


error Boolean Проверка на ошибки
paycheck base64 Чек в формате pdf
кодированном в base64
info Object Фискальные данные чека
terminalId String Серийный номер ФМ
receiptSeq String Номер онлайн чека
fiscalSign String Фискальный признак чека
qrCodeURL String URL адрес ссылки для
проверки чека. Должен быть
напечатан в виде QR-кода на
чеке
dateTime String Время регистрации чека
(формат ГГГГММДДЧСМНСК)
1.3 Refund
Request
{

"token": "DXJFX32CN1296678504F2", //required, static

"method": "sale", //required, static

"port": 3448, //required

"companyName": "Humo MCHJ", //required, dynamic, string

"companyAddress": "Tashkent", //required, dynamic, string

"companyINN": "123456", //required, dynamic, string

"staffName": "Abdulazizov Shakhboz", //optional, dynamic, string

"printerSize": 58, //optional 58 or 80 int

"phoneNumber":"+998911338464", //optional string

"companyPhoneNumber":"+998994593043",//optional string

"params": {

"paycheckNumber": "A9/00000447", //optional string

"paymentNumber": "OTA00004534 от 10.08.2020", //optional string

"note": "za Noyabr", //optional string

"stateDuty": "16500000", //optional string

"fineAmount": "5600000", //optional string

"contractSum": "5000000", //optional string

"clientName": "Javohir Temirov", //optional string

"items": [

"discount": 500, //required, long

"price": 1000000, //required, long

"cost": 100000, //required, long

"barcode": "4780087210023",

"amount": 2000, //required, long

"vatPercent": 15, //required, long

"vat": 15000, //required, long

"name": "Non",//required, string

"label": "1234567", //optional, string

"classCode": "01905003001000000", //required, string 17 digit

"units": 5, //required, Integer

"commissionTIN": "200523321", //optional, string

"other": 0 //required Long

},

"discount": 600,
"price": 700000,

"cost": 70000,

"barcode": "9973150582171",

"amount": 1000,

"vatPercent": 15,

"vat": 7000,

"name": "Suv",

"classCode": "02201001001000000",

"commissionTIN": 200523322,

"other": 0

],

"receivedCash": 100000, //required Long

"receivedCard": 70000 //required Long

},

"refundInfo": { //required Object

"terminalId": "UZ191211501033", //required, string

"receiptSeq": "787", //required, string

"dateTime": "20220307124323", //required, string

"fiscalSign": "981284785421" //required, string

1.4 Advance
Чек возврата запрос идентичен с запросом “sale”. Отличается только методом refund
("method": "advance"

1.5 Credit
Чек возврата запрос идентичен с запросом “sale”. Отличается только методом refund
("method": "credit" )

1.6 Close Z report


Закрытие Z отчёта. При закрытие убедитесь, что Z отчёт не пустой.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "closeZreport",
    "port":3449
}

Поле Тип Описание


token String Обязательное Токен не меняется
DXJFX32CN1296678504F2
method String Обязательное Метод запроса

Response

{
    "error": false,
    "message": "SUCCESS"
}

Поле Тип Описание


error Boolean Проверка на ошибку
message String Сообщение о итоги операции
1.7 Get Z report info by number
Получить состав Z отчёту по порядковому номеру, указанному в поле Number. Номер = 1 -
первый Z отчёту, Номер = 2 - второй Z отчёту, и т.д.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getZReportInfoByNumber",
    "printerSize": 80,
    "zReportId": 1,
    "port":3449
}

Поле Тип Описание


token String Обязательное Токен не меняется
DXJFX32CN1296678504F2
method String Обязательное Метод запроса
printerSize Integer Не обязательное Размер формирование чека:
поддерживается 58 или 80 мм
zReportId Integer Обязательное Номер Z отчёта

Response

{
    "error": false,
    "message": {
        "paycheck": "JVBERi0xLjcKJeLjz9MK....CiUlRU9GCg==",
        "number": 1,
        "count": 365,
        "totalRefundCount": 0,
        "firstReceiptSeq": "1",
        "lastReceiptSeq": "5",
        "totalSaleCount": 5,
        "totalRefundCash": 0,
        "totalRefundCard": 0,
        "totalRefundVAT": 0,
        "openTime": "2020-07-16 14:57:44",
        "terminalID": "UZ191211501031",
        "totalSaleCard": 0,
        "closeTime": "2020-07-16 15:23:12",
        "appletVersion": "0302",
        "totalSaleCash": 982560200,
        "totalSaleVAT": 128160026
    }
}

Поле Тип Описание


error Boolean Токен не меняется DXJFX32CN1296678504F2
message Object Данные о Z отчёте в JSON формате
paycheck Base64 Чек в формате pdf кодировано в base64
number Integer Порядковый номер Z отчёта
count Integer Кол-во открытых/закрытых (включая
текущий) Z отчёта.
totalRefundCount Integer Кол-во операций возврата в данном Z
отчёте (от 1 до 9999)
firstReceiptSeq String Номер первого зарегистрированного чека в
данном Z отчёте после ее открытия
lastReceiptSeq String Номер последнего зарегистрированного
чека в данном Z отчёте
totalSaleCount Integer Кол-во операций продаж в данном Z отчёте
(от 1 до 9999)
totalRefundCash Integer Сумма наличности по возвратам в данном Z
отчёте (от 0 до 999999999999) в тийинах
totalRefundCard Integer Сумма без наличности по возвратам в
данном Z отчёте (от 0 до 999999999999) в
тийинах
totalRefundVAT Integer Сумма НДС по продажам в данном Z отчёте
(от 0 до 999999999999) в тийинах
openTime String Дата время открытия Z отчёта (формат
ГГГГ-ММ-ДД ЧС-МН-СК). Если пустой, то Z
отчёт не был открыт
terminalID String Серийный номер ФМ
totalSaleCard Integer Сумма без наличности по продажам в
данном Z отчёте (от 0 до 999999999999) в
тийинах
closeTime String Дата время закрытия Z отчёта (формат
ГГГГ-ММ-ДД ЧС-МН-СК). Если пустой, то Z
отчёт не был закрыт
appletVersion String Версия апплета в ФМ
totalSaleCash Integer Сумма наличности по продажам в данном Z
отчёте (от 0 до 999999999999) в тийинах

1.8 Get Z report info


Получить состав Z отчёта по индексу, указанному в поле Number. Индекс = 0 – текущий Z отчёт,
Индекс = 1 – предыдущий Z отчёт, и т.д.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getZreportInfo",
    "printerSize": 80,
    "zReportId":0,
    "port":3449
}

Поле Тип Описание


token String Обязательное Токен не меняется
DXJFX32CN1296678504F2
method String Обязательное Метод запроса
printerSize Integer Не обязательное Размер формирование чека:
поддерживается 58 или 80 мм
zReportId Integer Обязательное Номер Z отчёта
port
Response
JSON RPC v2 ответ см. Раздел 1.7.

2. ВСПОМОГАТЕЛЬНЫЕ ЗАПРОСЫ
2.1 Check status
Проверка статуса программы.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "checkStatus",
    "port":3449
}

Response

{
    "error": false,
    "message": "OK!"
}

Поле Тип Описание


error Boolean Обязательное Проверка на ошибку
message String Обязательное Информация на ошибку
2.2 Get Z report Count
Кол-во открытых/закрытых (включая текущий) Z отчётов. При закрытии и открытии нового Z
отчёта, увеличивается на единицу.
Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getZReportCount",
    "port":3449
}

Response

{
    "error": false,
    "message": {
        "AppletVersion": "0302",
        "Count": 365
    }
}

Поле Тип Описание


error Boolean Проверка на ошибку
message String Информация на ошибку
AppletVersion String Версия апплета ФМ
Count Integer Номер
2.3 Get Version
Получить версию программы

Request

{
    "token": "DXJFX32CN1296678504F2", 
    "method": "getVersion"
    "port":3449
}

Response

{
    "error": false,
    "message": "2.0.0.9 -- UniversalTray"
}

2.4 Get Device ID


Получить уникальный id девайса. При регистрации программы в системе “E-POS Systems”
используется уникальный код.

Request

{
    "token": "DXJFX32CN1296678504F2", 
    "method": "getDeviceId",
    "port":3449
}

Request

{
    "error": false,
    "message": "66cc03cf2335842953a832e0cba3026330cf7be806f737fba41d66829a942ba1"
}

2.5 Print Last Paycheck


Получить последний пробитый чек.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "printLastPaycheck",
    "port":3449
}
Response
Отправка запроса на возврат. JSON RPC v2 запрос аналогичен Sale (см. Раздел 1.2.), но поле
method должно содержать значение “refund”.

2.6 Set Cash Number


Взять регистрационный номер ключа. Если программа зарегистрирована в системе “E-POS
Systems” с помощью запроса можно взять регистрационный номер.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "setCashNumber",
    "port":3449
}

Response

{
    "error": false,
    "message": "707327"
}

2.7 Send receipt


Отправка (суммы) чека из памяти ФМ на сервер ОФД. Функция вызывается только в том
случае если файл БД, хранящий информации полного чека стерся или был поврежден. Если
чек не будет отправлен в течении 1 дня, то ФМ заблокируется. Функция отправляет чек в ОФД,
получает файл подтверждения и передает его в ФМ, тем самым разблокирует ФМ.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "sendReceipt",
    "port":3449
}

Response

{
    "error": false,
    "message": {
        "AppletVersion": "0302",
        "QueuedToSendCount": 1
    }
}

Поле Тип Описание


error Boolean Проверка на ошибку
message String Информация на ошибку
AppletVersion String Версия апплета ФМ
QueuedToSendCount Integer Кол-во сформированных
файлов чеков, ожидающих
отправки
2.8 Acknowledge
Acknowledge - файл подтверждения о получения чека после принятия чека сервером ОФД.
Acknowledge после получения хранится в файле БД. Через определенный интервал
Acknowledge передается в ФМ для удаления чека из памяти ФМ.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "acknowledge",
    "port":3449
}

Response

{
    "error": false,
    "message": {
        "Errors": [],
        "AppletVersion": "",
        "SuccessCount": 0,
        "ErrorCount": 0
    }
}

2.9 Rescan receipts


Пересчитать память ФМ и определить дату первого неотправленного чека.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "rescanReceipts",
    "port":3449
}

Response

{
    "error": false,
    "message": {
        "AppletVersion": "0302",
        "FirstReceiptTime": "2021-11-13 11:10:11"
    }
}

2.10 Get Receipt Info


Получить состав чека (только суммы) из памяти ФМ по порядковому номеру в поле “number”.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getReceiptInfo",
    "number":1,
    "port":3449
}

Response

{
    "error": false,
    "message": {
        "Sale": true,
        "TransactionTime": "2021-11-13 11:11:21",
        "AppletVersion": "0302",
        "Number": 1,
        "TotalVAT": 207678,
        "TotalCard": 260000,
        "TotalCash": 260000,
        "TerminalID": "UZ191211501031",
        "Count": 1,
        "ReceiptSeq": "2627"
    }
}

Поле Тип Описание


error Boolean Проверка на ошибку
message Object
AppletVersion string Версия апплета в ФМ
TerminalID string Серийный номер ФМ
Number integer Порядковый номер чека
Count integer Кол-во не отправленных чеков
Дата время регистрации чека
transactionTime string (формат ГГГГ-ММ-ДД
ЧС-МН-СК)
Sale boolean Продажа = true, Возврат = false
ReceiptSeq string Номер чека
TotalCash Integer Сумма наличности в тийин
TotalCard Integer Сумма безналичности в тийин
TotalVAT Integer Сумма НДС в тийин
2.11 Send Z report by number
Ручная отправка закрытого Z отчёта с заданным порядковым номером в поле Number. Сервис
Communicator при закрытии автоматически отправит неотправленные Z отчёта. Функция
применяется только для тестирования

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "sendZReportByNumber",
    "number": 72,
    "port": 3449
}

2.12 Get Unsent Count


Получить кол-во хранящихся в БД но пока еще не отправленных файлов в ОФД. Не нулевое
кол-во может означать что, либо время отправки для только что созданного файла не
наступило, либо сервис Communicator не мог установить соединение с серверами ОФД по
причине отсутствия интернет-соединения или недоступности серверов ОФД.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getUnsentCount",
    "port": 3449
}

Response

{
    "error": false,
    "message": {
        "TerminalID": {
            "UZ191211501031": 1
        },
        "Count": 1
    }
}

2.13 Get Acknowledge count


Получить кол-во “acknowledge” файлов, ожидающих отправки в ФМ.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getAckCount",
    "port": 3449
}

Response

{
    "error": false,
    "message": {
        "TerminalID": {},
        "Count": 0
    }
}

2.14 Get Z report Status


Получить кол-во закрытых, неотправленных в ОФД Z отчета и 16 первых номеров
неотправленных в ОФД Z отчёта.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getZReportsStats",
    "port": 3449
}

Response

{
    "error": false,
    "message": {
        "TotalClosedUnAckZReportsCount": 0,
        "AppletVersion": "0302",
        "LastUnAckZReportsNumbers": [
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0
        ],
        "TotalClosedZReportsCount": 364
    }
}

2.15 Get receipts info by date


Получить фискальные данные чека с БД, по определённый промежутки времени.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getReceiptsInfoByDate",
    "port": 3449,
    "startDate": "20210901110000",
    "endDate": "20210919112700"
}

Response

{
    "error": false,
    "message": [
        {
            "terminalId": "UZ191211501031",
            "receiptSeq": "2624",
            "fiscalSign": "230084336577",
            "qrCodeURL": "https://ofd.soliq.uz/check?t=UZ191211501031&r=2624&c=2021111014
2338&s=230084336577",
            "dateTime": "2021-11-10 14:23:38.0"
        },
        {
            "terminalId": "UZ191211501031",
            "receiptSeq": "2625",
            "fiscalSign": "481239451500",
            "qrCodeURL": "https://ofd.soliq.uz/check?t=UZ191211501031&r=2625&c=2021111310
5752&s=481239451500",
            "dateTime": "2021-11-13 10:57:52.0"
        },
        {
            "terminalId": "UZ191211501031",
            "receiptSeq": "2626",
            "fiscalSign": "083306860386",
            "qrCodeURL": "https://ofd.soliq.uz/check?t=UZ191211501031&r=2626&c=2021111311
1011&s=083306860386",
            "dateTime": "2021-11-13 11:10:11.0"
        },
        {
            "terminalId": "UZ191211501031",
            "receiptSeq": "2627",
            "fiscalSign": "592435754475",
            "qrCodeURL": "https://ofd.soliq.uz/check?t=UZ191211501031&r=2627&c=2021111311
1121&s=592435754475",
            "dateTime": "2021-11-13 11:11:21.0"
        }
}
2.16 Get fiscals list
Определение заводского номера фискального номера.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getFiscalsList",
    "port": 3449
}

Response

{
    "error": false,
    "message": {
        "FactoryID": [
            "00120000010b02056a200014002b002f4090"
        ]
    }
}

2.17 Get status


Получить дополнительную информацию от сервиса Communicator.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getStatus",
    "port": 3449
}

Response

{
    "error": false,
    "message": {
        "Sender": {
            "LastOnlineTime": "2021-11-13T10:58:16.7845408+05:00",
            "ZReportFilesSent": {
                "UZ191211501031": 1
            },
            "AdvanceReceiptFilesSent": {},
            "TotalAckFilesReceived": {
                "UZ191211501031": 5
            },
            "EncodedFullReceiptBodyFilesSent": {},
            "FullReceiptFilesSent": {
                "UZ191211501031": 4
            },
            "TotalFilesSent": {
                "UZ191211501031": 5
            },
            "LastSendReceiveDuration": "230.9869ms",
            "ReceiptFilesSent": {},
            "LiveAddress": "s0.ofd.uz:3447",
            "CreditReceiptFilesSent": {}
        },
        "StartTime": "2021-11-13 10:57:46",
        "DB": {
            "ArchivedFiles": {
                "2021-11": 1,
                "2021-10": 0
            }
        }
    }
}

2.18 Get last registered receipt


Получить JSON RPC v2 ответ от последнего зарегистрированного чека.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getLastRegisteredReceipt",
    "port": "3449"
}

Response

{
    "error": false,
    "message": {
        "AppletVersion": "0302",
        "QRCodeURL": "https://ofd.soliq.uz/check?t=UZ191211501031&r=2628&c=20211113112502
&s=221423418375",
        "TerminalID": "UZ191211501031",
        "ReceiptSeq": "2628",
        "DateTime": "20211113112502",
        "FiscalSign": "221423418375"
    }
}

2.19 Get receipt count


Получить кол-во неотправленных чеков в памяти ФМ

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "getReceiptCount",
    "port": 3449
}

Response

{
    "error": false,
    "message": {
        "AppletVersion": "0302",
        "Count": 0
    }
}

2.20 Resend Unsent


Ручная отправка файлов на сервер ОФД. Сервис Communicator по определенному интервалу
автоматически отправит не отправленные файлы. Функция применяется только для
тестирования или для срочной отправки файлов, не дожидаясь автоматической отправки.

Request

{
    "token": "DXJFX32CN1296678504F2",
    "method": "resendUnsent",
    "port": 3449
}

3. ОШИБКИ ПРОГРАММЫ
Ответ Описание ответа
SUCCESS  Успешно
ERROR_RECEIPT_COUNT_ZERO  Количество чеков равно нулю
ERROR_RECEIPT_INDEX_OUT_OF_BOUNDS  Номер чека не правильный
ERROR_RECEIPT_NOT_FOUND  Чек не найден
Общая сумма превышает максимального
ERROR_RECEIPT_TOTAL_PRICE_OVERFLOW 
значение
Общая сумма превышает стоимость по товарным
ERROR_RECEIPT_TOTAL_PRICE_MISMATCH 
позициям
ERROR_RECEIPT_MEMORY_FULL  Память чека заполнена
ERROR_RECEIPT_TIME_PAST  Время чека старое
ERROR_RECEIPT_STORE_DAYS_LIMIT_EXCEE Кол-во дней хранения чеков превышено, следует
DED  отправить чеки
DISCOUNT SUM IS GRATER THEN PRICE SUM Сумма скидка больше, чем сумма товара
ERROR_ZREPORT_SPACE_IS_FULL  Память Z-отчет заполнена
ERROR_ZREPORT_INDEX_OUT_OF_BOUNDS  Номер Z-отчёт не правильный
ERROR_LOCKED_FOREVER  Фискальный модуль заблокирован
ERROR_CURRENT_ZREPORT_IS_EMPTY  Текущий Z-отчёт пустой
ERROR_RECEIPT_TOTAL_PRICE_ZERO  Общая сумма чека не может быть нулем
ERROR_ZREPORT_IS_NOT_OPEN  Z-отчет не открыт
Превышено кол-во операций (продажи и
ERROR_SALE_REFUND_COUNT_OVERFLOW 
возврата) в Z-отчете
ERROR_ZREPORT_IS_ALREADY_OPEN  Z-отчёт уже открыт
ERROR_NOT_ENOUGH_CASH_FOR_REFUND  Недостаточно средств для возврата (наличка)
ERROR_NOT_ENOUGH_CARD_FOR_REFUND
Недостаточно средств для возврата (пластик)
 
ERROR_NOT_ENOUGH_VAT_FOR_REFUND  Недостаточно средств для возврата (НДС)
ERROR_MAINTENANCE_REQUIRED  Требуется обслуживание со стороны ОФД
SUM MISMATCH Сумма не совпадает по формуле
cannot encode receipt 𝐶𝑜𝑠𝑡 − 𝐷𝑖𝑠𝑐𝑜𝑢𝑛𝑡 − 𝑂𝑡ℎ𝑒𝑟 = 𝑅𝑒𝑐. 𝐶𝑎𝑠ℎ + 𝑅𝑒𝑐. 𝐶𝑎𝑟𝑑
Неподдерживаемый формат запроса. Не все поля
UNSUPPORTED_REQUEST_FORMAT
соответствует к запросу
WRONG_TOKEN Неправильный токен
CASH_REGISTERER_NUMBER_NOT_AVAILAB Касса не было зарегистрировано в реестре E-POS.
LE Обращайтесь к службе поддержки 
При проведении запроса не было указано номер Z
ZREPORT_ID_NOT_PROVIDED
отчета
При проведении запроса не было указано номер
RECEIPT_NUMBER_NOT_PROVIDED
онлайн чека
PERIOD_NOT_PROVIDED Период не было указано
COULD_NOT_SEND_PAYCHECK Данные были отравлены
NO_SUCH_METHOD_AVAILABLE Такой метод недоступен
FISCAL_DRIVE_IS_NOT_WORKING фискальный драйвер не работает
cannot select applet Не удалось выбрать апплет, ФМ поврежден
Не удалось подключится к ФМ, ФМ не подключен
cannot connect card
или не найден по указанному заводскому номеру.
Другие ошибки. Подробности ошибки смотрите в
try later
лог файле сервиса Communicator.
illegal argument Передан недействительный параметр в JSON.
Сервер ОФД заблокировал принятия чеков от ФМ,
обратитесь в ОФД. После разблокировки ФМ в
fiscal drive locked ОФД, подождите определенное время (10 минут),
затем перезапустите сервис FiscalDriveAPI для
продолжения работы.

Вам также может понравиться