Академический Документы
Профессиональный Документы
Культура Документы
РУКОВОДСТВО ПРОГРАММИСТА
ВИРТУАЛЬНОЙ КАССЫ
(с учетом аванс, кредит, и
комиссионных)
Оглавление
РУКОВОДСТВО ПРОГРАММИСТА ВИРТУАЛЬНОЙ КАССЫ
(с учетом аванс, кредит, и комиссионных) 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
}
{
"error": false,
"message": "SUCCESS"
}
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"
}
}
{
"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"
}
}
"companyPhoneNumber":"+998994593043",//optional string
"params": {
"items": [
"barcode": "4780087210023",
},
"discount": 600,
"price": 700000,
"cost": 70000,
"barcode": "9973150582171",
"amount": 1000,
"vatPercent": 15,
"vat": 7000,
"name": "Suv",
"classCode": "02201001001000000",
"commissionTIN": 200523322,
"other": 0
],
},
1.4 Advance
Чек возврата запрос идентичен с запросом “sale”. Отличается только методом refund
("method": "advance"
1.5 Credit
Чек возврата запрос идентичен с запросом “sale”. Отличается только методом refund
("method": "credit" )
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "closeZreport",
"port":3449
}
Response
{
"error": false,
"message": "SUCCESS"
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "getZReportInfoByNumber",
"printerSize": 80,
"zReportId": 1,
"port":3449
}
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
}
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "getZreportInfo",
"printerSize": 80,
"zReportId":0,
"port":3449
}
2. ВСПОМОГАТЕЛЬНЫЕ ЗАПРОСЫ
2.1 Check status
Проверка статуса программы.
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "checkStatus",
"port":3449
}
Response
{
"error": false,
"message": "OK!"
}
{
"token": "DXJFX32CN1296678504F2",
"method": "getZReportCount",
"port":3449
}
Response
{
"error": false,
"message": {
"AppletVersion": "0302",
"Count": 365
}
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "getVersion"
"port":3449
}
Response
{
"error": false,
"message": "2.0.0.9 -- UniversalTray"
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "getDeviceId",
"port":3449
}
Request
{
"error": false,
"message": "66cc03cf2335842953a832e0cba3026330cf7be806f737fba41d66829a942ba1"
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "printLastPaycheck",
"port":3449
}
Response
Отправка запроса на возврат. JSON RPC v2 запрос аналогичен Sale (см. Раздел 1.2.), но поле
method должно содержать значение “refund”.
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "setCashNumber",
"port":3449
}
Response
{
"error": false,
"message": "707327"
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "sendReceipt",
"port":3449
}
Response
{
"error": false,
"message": {
"AppletVersion": "0302",
"QueuedToSendCount": 1
}
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "acknowledge",
"port":3449
}
Response
{
"error": false,
"message": {
"Errors": [],
"AppletVersion": "",
"SuccessCount": 0,
"ErrorCount": 0
}
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "rescanReceipts",
"port":3449
}
Response
{
"error": false,
"message": {
"AppletVersion": "0302",
"FirstReceiptTime": "2021-11-13 11:10:11"
}
}
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"
}
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "sendZReportByNumber",
"number": 72,
"port": 3449
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "getUnsentCount",
"port": 3449
}
Response
{
"error": false,
"message": {
"TerminalID": {
"UZ191211501031": 1
},
"Count": 1
}
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "getAckCount",
"port": 3449
}
Response
{
"error": false,
"message": {
"TerminalID": {},
"Count": 0
}
}
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
}
}
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"
]
}
}
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
}
}
}
}
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"
}
}
Request
{
"token": "DXJFX32CN1296678504F2",
"method": "getReceiptCount",
"port": 3449
}
Response
{
"error": false,
"message": {
"AppletVersion": "0302",
"Count": 0
}
}
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 для
продолжения работы.