Операции
Запросы на создание чековых операций отличаются от прочих запросов. Подробнее о формате запросов прочитайте в описании Общих требований и соглашений.
Автономный режим работы
Автономный режим работы доступен всем клиентам и включается и отключается автоматически.
При автономной работе для операций продажи, покупки, возврата продажи и возврата покупки может быть добавлено поле AFP, предназначенное для обозначения номера автономной операции. Поле AFP не является обязательным. Если автономный режим включен и имеется очередь операций, при отсутствии AFP автономный номер будет сгенерирован автоматически. При использовании поля AFP, оно должно быть в формате uint32: неотрицательное целое число от 0 до 4 294 967 295.
Поле ReceiptDate также является необязательным и предназначено для обозначения времени пробития чека. Если поле ReceiptDate отсутствует, будет автоматически создана текущая дата операции. Если ReceiptDate присутствует, он должен быть в формате RFC3339, который может быть прочитан пакетом time в Golang.
Необходимо сохранять очередность операций. Дата текущей операции не должна быть ранее даты предыдущей операции. В противном случае возвращается ошибка 400: Нарушена очередность операций.
Операция продажи
Чековая операция. Принимает Uid в заголовке запроса и возвращает новый в заголовке ответа.
Ожидает в теле запроса предчек со списком позиций и данными о внесенных суммах. Возвращает измененные счетчики балансов, изображение с чеком и номер чека.
1
POST /kkms/:IdKkm/sales
Дан ные на вход:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
{ "IdDomain": 1, "Cash": 85, "NonCash": 0, "Positions": [ { "Name": "Универсальный товар", "IdSection": 76635, "IdUnit": 1, "Price": 100, "Markup": 0, "Discount": 15, "Qty": 1, "Storno": false, "ProductCode": "", "IsFixedDiscountOrMarkup": false } ], "Total": 85, "Mobile": 0, "GenerateCheck": true, "CustomerIin": "" }
Описание переменных
Название переменной | Тип переменной | Описание переменной | Обязательно |
---|---|---|---|
IdDomain | int | Идентификатор вида деятельности | Да |
Cash | int | Сумма оплаты наличными | Да |
NonCash | int | Сумма оплаты безналичными | Да |
Mobile | int | Сумма платежей через мобильные устройства | Да |
Total | float | Итоговая сумма | Да |
SN | string | Серийный номер операции | Нет |
GenerateCheck | bool | Генерация чека | Нет |
AFP | int | Идентификатор наличия/отсутствия автономного режима работы | Нет |
ReceiptDate | string | Время пробития чека при автономном режиме работы в формате ISO 8601. Например: "2006-01-02T15:04:05+06:00" | Нет |
CustomerIin | string | ИИН/БИН покупателя | Нет |
Positions | object | Список позиций товаров или услуг | Да |
Name | string | Наименование позиции | Да |
IdSection | int | Идентификатор отдела (секции) | Да |
IdUnit | int | Единица измерения товара | Да |
ProductCode | string | Артикул товара | Нет |
Price | int | Цена позиции | Да |
Markup | int | Сумма наценки | Нет |
Discount | int | Сумма скидки | Нет |
Qty | float | Количество товара | Да |
Storno | bool | Позиция была сторнирована | Нет |
IsFixedDiscountOrMarkup | bool | Флаг фиксированной наценки/скидки | Нет |
Возвращает данные:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "Status": 200, "Message": "OK", "Data": { "Balances": [ object ], "FiscalNumber": 1836733025, "AutonomousNumber": 0, "IdDocument": 1234567, "Reciept": "123RECEIPT123", "Check": { "Host": "https://fiscal2.kassa24.kz", "Path": "/www/showcheck?datetime=2024-12-24T14:57:58\u0026znm=547756\u0026fn=585922312\u0026total=100.00" } } }
Описание переменных
Название переменной | Тип переменной | Описание переменной |
---|---|---|
Balances | object | Актуальные данные по балансам кассы (см. /kkms/:IdKk/balances) |
FiscalNumber | int | Фискальный признак |
AutonomousNumber | int | Автономный номер |
IdDocument | int | Номер чека |
Receipt | string | Картинка с чеком в base64 |
Host | string | Хост сервиса, предоставляющего доступ к информации о чеке |
Path | string | Путь на сервере для доступа к информации о чеке. Содержит параметры, такие как дата и идентификаторы |
Получение списка единиц измерения
1
GET/kkms/:IdKkm/units
1 2 3 4 5 6 7 8 9 10 11 12 13
{ "Status": 200, "Message": "OK", "Data": [ { "Id": 1, "Code": 796, "NameRU": "штука", "NameKAZ": "дана", "ShortName": "шт" } ] }
Описание переменных
Название переменной | Тип переменной | Описание переменной |
---|---|---|
id | int | Идентификатор единицы измерения |
Code | int | Идентификатор в справочнике информационной системы электронных счетов-фактур |
NameRU | string | Название единицы измерения на русском языке |
NameKAZ | string | Название единицы измерения на казахском языке |
ShortName | string | Сокращенное название единицы измерения |
Ошибки
Status | Message | Способ устранения | Примечание |
---|---|---|---|
400 | Некорректный запрос. Поле IdSection не должно быть пустым | ||
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
402 | Полученная сумма меньше стоимости | ||
402 | 402: сумма операции не может быть равна нулю | ||
402 | Некорректный запрос. Поле Cash/NonCash должно быть положительным | ||
403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdKkm кассы, выбрать IdKkm кассы | |
403 | Forbidden: касса заблокирована | Связаться с тех. поддержкой | Если касса была заблокирована из-за проблем отправки данных в ОФД |
423 | Смена просрочена | Закрыть текущую смену и открыть смену заново | Смена длится 24 часа |
452 | Некорректный Uid | Запросить новый Uid | |
500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Служебный приход
Чековая операция. Принимает Uid в заголовке запроса и возвращает новый в заголовке отве та.
Ожидает в теле запроса сумму наличных средств, которые нужно внести в кассу. Возвращает измененные счетчики балансов, изображение с чеком и номер чека.
Приход можно осуществить в автономном режиме, если у клиента есть лицензия нац. банка на такой режим. При автономном режиме работы в тело запроса добавляется поле Date. Если поле есть, то операция автономная, и если поля нет, то обычная.
1
POST /kkms/:IdKkm/incomes
Данные на вход:
1 2 3 4
{ "Amount": 100, "Date": "2020-12-20T06:34:46+00:00" }
Описание переменных
Название переменной | Тип переменной | Описание переменной | Обязательно |
---|---|---|---|
Amount | int | Сумма наличных | Да |
Date | string | Дата при автономном режиме работы | Нет |
Возвращает данные:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "Status": 200, "Message": "OK", "Data": { "Balances": [ object ], "IdDocument": 1234568, "FiscalNumber": 0, "AutonomousNumber": 0, "Receipt": "123RECEIPT123", "Check": { "Host": "https://fiscal2.kassa24.kz", "Path": "/www/showcheck?datetime=2024-12-24T20:14:02\u0026znm=547756\u0026fn=0\u0026total=500.00" } } }
Описание переменных
Название переменной | Тип переменной | Описание переменной |
---|---|---|
Balances | object | Актуальные данные по балансам кассы (см. /kkms/:IdKk/balances) |
FiscalNumber | int | Фискальный признак |
AutonomousNumber | int | Автономный номер |
IdDocument | int | Номер чека |
Receipt | string | Картинка с чеком в base64 |
Host | string | Хост сервиса, предоставляющего доступ к информации о чеке |
Path | string | Путь на сервере для доступа к информации о чеке. Содержит параметры, такие как дата и идентификаторы |
Ошибки
Status | Message | Способ устранения | Примечание |
---|---|---|---|
400 | Некорректный запрос. Поле Amount не должно быть пустым | ||
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
402 | 402: сумма операции не может быть равна нулю | ||
403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdKkm кассы, выбрать IdKkm кассы | |
403 | Forbidden: касса заблокирована | Связаться с тех. поддержкой | Если касса была заблокирована из-за проблем отправки данных в ОФД |
423 | Смена просрочена | Закрыть текущую смену и открыть смену заново | Смена длится 24 часа |
452 | Некорректный Uid | Запросить новый Uid | |
500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Служебный расход
Чеко вая операция. Принимает Uid в заголовке запроса и возвращает новый в заголовке ответа.
Расход или инкассация. Ожидает в теле запроса сумму наличных средств, которые нужно забрать из кассы. Возвращает измененные счетчики балансов, изображение с чеком и номер чека.
Сумма не может быть больше счетчика баланса наличных в кассе.
Расход можно осуществить в автономном режиме, если у клиента есть лицензия нац. банка на такой режим. При автономном режиме работы в тело запроса добавляется поле Date. Если поле есть, то операция автономная, и если поля нет, то обычная.
1
POST /kkms/:IdKkm/expenses
Данные на вход:
1 2 3 4
{ "Amount": 100, "Date": "2020-12-20T06:34:46+00:00" }
Описание переменных
Название переменной | Тип переменной | Описание переменной | Обязательно |
---|---|---|---|
Amount | int | Сумма наличных | Да |
Date | string | Дата при автономном режиме работы | Нет |
Возвращает данные:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "Status": 200, "Message": "OK", "Data": { "Balances": [ object ], "IdDocument": 1234569, "FiscalNumber": 0, "AutonomousNumber": 0, "Receipt": "123RECEIPT123", "Check": { "Host": "https://fiscal2.kassa24.kz", "Path": "/www/showcheck?datetime=2024-12-24T20:17:06\u0026znm=547756\u0026fn=0\u0026total=500.00" } } }
Описание переменных
Название переменной | Тип переменной | Описание переменной |
---|---|---|
Balances | object | Актуальные данные по балансам кассы (см. /kkms/:IdKk/balances) |
FiscalNumber | int | Фискальный признак |
AutonomousNumber | int | Автономный номер |
IdDocument | int | Номер чека |
Receipt | string | Картинка с чеком в base64 |
Host | string | Хост сервиса, предоставляющего доступ к информации о чеке |
Path | string | Путь на сервере для доступа к информации о чеке. Содержит параметры, такие как дата и идентификаторы |
Ошибки
Status | Message | Способ устранения | Примечание |
---|---|---|---|
400 | Некорректный запрос. Поле Amount не должно быть отрицательным | ||
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
402 | 402: сумма операции не может быть равна нулю | ||
402 | Сумма операции превышает баланс кассы | ||
403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdKkm кассы, выбрать IdKkm кассы | |
403 | Forbidden: касса заблокирована | Связаться с тех. поддержкой | Если касса была заблокирована из-за проблем отправки данных в ОФД |
423 | Смена просрочена | Закрыть текущую смену и открыть смену заново | Смена длится 24 часа |
452 | Некорректный Uid | Запросить новый Uid | |
500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Операция покупки
Чековая операция. Принимает Uid в заголовке запроса и возвращает новый в заголовке ответа.
Ожидает в теле запроса предчек со списком покупаемых товаров или услуг, которые нужно оплатить из кассы. Возвращает измененные счетчики балансов, изображение с чеком и номер чека.
1
POST /kkms/:IdKkm/purchases
Данные на вход:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
{ "IdDomain": 1, "Cash": 100, "NonCash": 0, "Positions": [ { "Name": "Универсальный товар", "IdSection": 76635, "IdUnit": 1, "Price": 100, "Markup": 0, "Discount": 0, "Qty": 1, "Storno": false } ], "Total": 100, "Mobile": 0, "GenerateCheck": true, "CustomerIin": "" }
Описание переменных
Название переменной | Тип переменной | Описание переменной | Обязательно |
---|---|---|---|
IdDomain | int | Идентификатор вида деятельности | Да |
Cash | int | Сумма оплаты наличными | Да |
NonCash | int | Сумма оплаты безналичными | Да |
Mobile | int | Сумма платежей через мобильные устройства | Да |
Total | float | Итоговая сумма | Да |
SN | string | Серийный номер операции | Нет |
GenerateCheck | bool | Генерация чека | Нет |
AFP | int | Идентификатор наличия/отсутствия автономного режима работы | Нет |
ReceiptDate | string | Время пробития чека при автономном режиме работы в формате ISO 8601. Например: "2006-01-02T15:04:05+06:00" | Нет |
CustomerIin | string | ИИН/БИН покупателя | Нет |
Positions | object | Список позиций товаров или услуг | Да |
Name | string | Наименование позиции | Да |
IdSection | int | Идентификатор отдела (секции) | Да |
IdUnit | int | Единица измерения товара | Да |
ProductCode | string | Артикул товара | Нет |
Price | int | Цена позиции | Да |
Markup | int |