Работа с кассами
Получить список касс
Вернет список касс для всех компаний (юр. лиц), с которыми связан авторизованный пользователь.
GET /kkms?companies=1,2,3
Описание querystring параметров
Название переменной | Тип переменной | Описание переменной |
companies | int | Опциональный. querystring-параметр список идентификаторов компаний. Если не заполнять, то вернет для всех компаний, с которыми связан пользователь |
Если в querystring-параметр не заполнен или указаны все компании, то в ответе сервера следующих полях значения будут ""
или 0
.
{
"kkms": {
"Company": {
"Bin": "",
"Fio": "",
"FullName": "",
"Id": 0,
"IdOwnership": 0,
"IdUser": 0,
"Nds": "",
"Ownership": {
"Id": 0,
"Name": ""
},
"ShortName": ""
},
"Ofd": {
"Id": 0,
"Name": ""
},
"StatusKKM": {
"Id": 0,
"Name": ""
}
}
}
Возвращает данные:
{
"Status": 200,
"Message": "OK",
"Data": {
"Kkms": [
{
"Address": { object },
"Allowed": true,
"Company": { object },
"Id": 34,
...
},
{
"Address": { object },
"Allowed": true,
"Company": { object },
"Id": 2062,
...
},
...
]
}
}
Описание переменных
Название переменной | Тип переменной | Описание переменной |
Kkms | array | Массив со списком касс. Получить данные о кассе (см. GET /kkms/:IdKkm) |
Address | object | Адрес кассы |
Allowed | bool | Доступны операции на кассе |
Company | object | Получить список компаний (см. GET /companies) |
Id | int | Идентификатор ККМ |
Ошибки
Status | Message | Способ устранения | |
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Получить данные о кассе
GET /kkms/:IdKkm
Возвращает данные:
{
"Status": 200,
"Message": "OK",
"Data": {
"Kkm": {
"Address": {
"Flat": "",
"House": "",
"Id": 0,
"IdTown": 0,
"Street": "",
"Town": {
"Id": 0,
"IdRegion": 0,
"Name": "",
"Region": {
"Id": 0,
"Name": ""
},
"TimeZone": 0
}
},
"Allowed": true,
"Company": {
"Address": {
"Flat": "",
"House": "",
"Id": 0,
"IdTown": 0,
"Street": "",
"Town": {
"Id": 0,
"IdRegion": 0,
"Name": "",
"Region": {
"Id": 0,
"Name": ""
},
"TimeZone": 0
}
},
"Bin": "0001",
"Fio": "First Company",
"FullName": "FirstCompany",
"Id": 20,
"IdAddress": 0,
"IdOwnership": 1,
"IdUser": 1028,
"Nds": "first address",
"Ownership": {
"Id": 1,
"Name": "ИП"
},
"ShortName": "FC"
},
"Id": 2062,
"IdAddress": 0,
"IdCompany": 20,
"IdModeKkm": 0,
"IdNk": 0,
"IdOfd": 2,
"IdPlaceUsed": 0,
"IdSection": 0,
"IdShift": 11311,
"IdStatusKkm": 2,
"IsActive": true,
"Lock": true,
"Name": "four kkm",
"Nk": {
"Code": 0,
"Id": 0,
"IdRegion": 0,
"Name": ""
},
"Ofd": {
"Id": 2,
"Name": "KT Mock"
},
"PlaceUsed": {
"Id": 0,
"Name": ""
},
"Rnm": "0853874",
"ShiftIndex": 6,
"StatusKKM": {
"Id": 2,
"Name": "Активна"
},
"Znm": 853874
}
}
}
Описание переменных
Название переменной | Тип переменной | Описание переменной |
Kkm | object | Объект с информацией о кассе |
Address | object | Объект с информацией об адресе кассы |
Flat | string | Этаж расположения кассы |
House | string | Дом расположения кассы |
Id | int | Идентификатор адреса |
IdTown | int | Идентификатор города |
Street | string | Название улицы |
Town | object | Объект с информацией о городе |
Id | int | Идентификатор города |
IdRegion | int | Идентификатор региона |
Name | string | Название идентификатора города |
Region | object | Объект с информацией о регионе |
Id | int | Идентификатор региона |
Name | string | Название идентификатора региона |
TimeZone | int | Часовой пояс |
Allowed | bool | Доступны операции на кассе |
Company | object | Получить список компаний (см. GET /companies) |
Id | int | Идентификатор ККМ |
IdAddress | int | Идентификатор адреса |
IdCompany | int | Идентификатор компании |
IdModeKkm | int | Справочник. Режим ККМ |
IdNk | int | Идентификатор налогового органа |
IdOfd | int | Идентификатор ОФД |
IdPlaceUsed | int | Идентификатор места использования |
IdSection | int | Идентификатор секции |
IdShift | int | Идентификатор последней смены |
IdStatusKkm | int | Идентификатор статуса кассы |
IsActive | bool | Активность кассы |
Lock | bool | Признак блокировки сменой |
Name | string | Название кассы |
Nk | object | Справочник. Налоговый орган |
Code | int | Код налогового органа, это бухгалтерский код (например бостандыкская налоговая 6004) |
Id | int | Идентификатор налогового органа |
IdRegion | int | Идентификатор региона |
Name | string | Название идентификатора налогового органа |
Ofd | object | Справочник. ОФД |
Id | int | Идентификатор ОФД |
Name | string | Название идентификатора ОФД |
PlaceUsed | object | Справочник. Место использования |
Id | int | Идентификатор места использования |
Name | string | Название идентификатора места использования |
Rnm | string | Регистрационный номер в ОФД |
ShiftIndex | int | Порядковый номер смены на кассе |
StatusKKM | object | Статус кассы |
Id | int | Идентификатор статуса кассы |
Name | string | Описание идентификатора статуса кассы |
Znm | int | Заводской номер ККМ |
Описание значения поля StatusKKM
"StatusKKM": {"Id": 2, "Name": "Активна"}
Значение статуса | Описание статуса |
{"Id": 0, "Name": " "} | Касса заблокирована в Pult |
{"Id": 1, "Name": "В процессе регистрации"} | В процессе регистрации |
{"Id": 2, "Name": "Активна"} | Активна |
{"Id": 3, "Name": "Заблокирована"} | Касса заблокирована в ОФД |
Если значение поля StatusKKM равно 0 или 3 и касса заблокирована, обратитесь в тех. поддержку.
Ошибки
Status | Message | Способ устранения | |
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdKkm кассы, выбрать IdKkm кассы | |
500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Балансы кассы
Вернет список доступных балансов кассы.
GET /kkms/:IdKkm/balances
Возвращает данные:
{
"Status": 200,
"Message": "OK",
"Data": {
"Balances": [
{
"Id": 1,
"IdKkm": 1,
"Amount": 0,
"TypeBalance": {
"Id": 1,
"Name": "Наличные средства"
}
},
{
"Id": 2,
"IdKkm": 1,
"Amount": 5021,
"TypeBalance": {
"Id": 2,
"Name": "Безналичные средства"
}
}
]
}
}
Описание переменных
Название переменной | Тип переменной | Описание переменной |
Balances | array | Массив со средствами кассы |
Id | int | Идентификатор стердств |
IdKkm | int | Идентификатор ККМ |
Amount | int | Сумма средств |
TypeBalance | object | Тип средств |
Id | int | Идентификатор типа средств |
Name | string | Название идентификатора типа средств |
Описание значения поля TypeBalance
"TypeBalance": {"Id": 2, "Name": "Безналичные средства"}
Значение статуса | Описание статуса |
{"Id": 1, "Name": "Наличные средства"} | Наличные средства |
{"Id": 2, "Name": "Безналичные средства"} | Безналичные средства |
Ошибки
Status | Message | Способ устранения | |
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdKkm кассы, выбрать IdKkm кассы | |
500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Cоздать отчет об операциях
POST /kkms/:IdKkm/reports
Данные на вход:
{
"FromDate":"2018-01-02T15:04:05+07:00",
"ToDate":"2020-01-02T15:04:05+07:00"
}
Описание переменных
Название переменной | Тип переменной | Описание переменной |
FromDatestring | string | Дата начала создания отчета об операциях |
ToDatestring | string | Дата окончания создания отчета об операциях |
Возвращает данные:
{
"Status": 200,
"Message": "OK",
"Data": {
"Operations": [
{
"AutonomousNumber": 0,
"Cash": 400,
"Change": 0,
"Checksum": "123CHECKSUM123",
"Coins": 0,
"DateDocument": "2020-06-25T08:33:17.3017685Z",
"Domain": {
"Id": 1,
"Name": "DOMAIN_TRADING"
},
"FiscalNumber": 1182444916,
"Id": 173409,
"IdCompany": 20,
"IdDomain": 1,
"IdKkm": 2062,
"IdShift": 9339,
"IdUser": 1032,
"KKM": {
"Company": {
"IdSection":0,
...
},
...
},
"NonCash": 0,
"NumberDoc": "20206215930739973",
"TypeDocument": {
"Id": 1,
"Name": "Продажа"
},
"Value": 400
},
...
]
}
}
Описание переменных:
Название переменной | Тип переменной | Описание переменной |
Operations | array | Массив списка операций |
AutonomousNumber | int | Автономный номер |
Cash | int | Внесенная сумма наличными |
Change | int | Внесенная сумма наличными |
Checksum | string | Контрольная сумма (хэш) |
Coins | int | Внесенная сумма тиынами |
DocumentDate | string | Дата создания документа |
Domain | object | Справочник видов деятельности (см. GET /directories/domains) |
Id | int | Идентификатор вида деятельности |
Name | string | Описание идентификатора вида деятельности |
FiscalNumber | int |
Фискальный признак |
Id | int | Идентификатор документа |
IdCompany | int | Идентификатор компании |
IdKkm | int | Идентификатор ККМ |
IdShift | int | Идентификатор смены |
IdUser | int | Идентификатор пользователя (кассира) |
KKM | object | Получить данные о кассе (см. GET /kkms/:IdKkm) |
Company | object | Получить список компаний (см. GET /companies) |
IdSection | int | Идентификатор секции. Получить список секций (см. GET /kkms/:IdKkm/sections) |
NonCash | int | Внесенная сумма безналичными |
NumberDoc | string | Номер документа (чека) |
TypeDocument | object | Тип документа |
Id | int | Идентификатор типа документа |
Name | string | Название идентификатора типа документа |
Value | int | Сумма к оплате |
Описание значения поля TypeDocument
"TypeDocument": {"Id": 1, "Name": "Продажа"}
Ошибки
Status | Message | Способ устранения | |
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdKkm кассы, выбрать IdKkm кассы | |
403 | Forbidden: Касса заблокирована | Связаться с тех. поддержкой | |
500 | Internal Server Error | Обратиться в тех. поддержку |
Журнал операций
Вернет список выполненных операций за определенный период на кассе.
GET /kkms/:IdKkm/documents?datefrom=2020-01-29T00:00:00&dateto=2020-07-29T00:00:00
Описание querystring параметров
Название переменной | Тип переменной | Описание переменной |
datefrom | ISO 8601 date(YYYY-MM-DDThh:mm:ss) | Обязательный. querystring-параметр с какой даты и времени |
dateto | ISO 8601 date(YYYY-MM-DDThh:mm:ss) | Обязательный. querystring-параметр до какой даты и времени |
Возвращает данные:
{
"Status": 200,
"Data": [
{
"Id": 151129,
"IdShift": 39143,
"IdUser": 28141,
"IdKkm": 29213,
"IdCompany": 7382,
"DateDocument": "2020-07-21T05:13:11.0173178Z",
"NumberDoc": "73822921315953083910",
"Checksum": "123CHECKSUM123",
"IdDomain": 1,
"Value": 500.00,
"Cash": 500.00,
"NonCash": 0.00,
"Coins": 0,
"Change": 0.00,
"FiscalNumber": 856357931,
"AutonomousNumber": 0,
"Domain": {
"Id": 1,
"Name": "DOMAIN_TRADING"
},
"TypeDocument": {
"Id": 1,
"Name": "Продажа"
},
"KKM": { object },
"User": {
"Id": 1032,
"PhoneLogin": "77771112233",
"Name": "First Cashier",
"Lock": false,
"IdShift": 9322
}
},
...
]
}
Описание переменных
Название переменной | Тип переменной | Описание переменной |
Id | int | Идентификатор документа |
IdShift | int | Идентификатор смены |
IdUser | int | Идентификатор пользователя (кассира) |
IdKkm | int | Идентификатор ККМ |
IdCompany | int | Идентификатор компании |
DateDocument | string | Дата документа |
NumberDoc | string | Номер документа (чека) |
Checksum | string | Хэш с контрольной суммой |
IdDomain | int | Идентификатор вида деятельности |
Value | int | Сумма документа |
Cash | int | Сумма наличными |
NonCash | int | Сумма безналичными |
Coins | int | Копейки |
Change | int | Сумма сдачи |
FiscalNumber | int | Фискальный признак |
AutonomousNumber | int | Автономный фискальный признак |
Domain | object | Вид деятельности |
Id | int | Идентификатор вида деятельности |
Name | string | Название идентификатора вида деятельности |
TypeDocument | object | Тип документа |
Id | int | Идентификатор типа документа |
Name | string | Название идентификатора типа документа |
KKM | object | Данные о ККМ, включая вложенный документ о юр. лице (см. GET /kkms/:IdKkm) |
User | object | Документ с данными о пользователе |
Id | int | Идентификатор пользователя |
PhoneLogin | string | Номер пользователя |
Name | string | Имя пользователя |
Lock | bool | Признак блокировки сменой |
IdShift | int | Идентификатор смены открытой или последней открытой смены |
Ошибки
Status | Message | Способ устранения | |
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Архив Z-отчетов
Вернет список выполненных операций за определенный период на кассе.
GET /kkms/:IdKkm/zlog?datefrom=2020-07-29T00:00:00&dateto=2020-07-30T00:00:00
Описание querystring параметров
Название переменной | Тип переменной | Описание переменной |
datefrom | ISO 8601 date(YYYY-MM-DDThh:mm:ss) | Обязательный. querystring-параметр с какой даты и времени |
dateto | ISO 8601 date(YYYY-MM-DDThh:mm:ss) | Обязательный. querystring-параметр до какой даты и времени |
Возвращает данные:
{
"Status": 200,
"Data": [
{
"Id": 28624,
"ShiftIndex": 10,
"IdKkm": 29213,
"IdUser": 28141,
"DateOpen": "2020-07-27T10:57:37.5214617Z",
"DateClose": "2020-07-29T03:49:08.3776393Z",
"BalanceOpen": 1500.00,
"BalanceClose": 1500.00,
"Count": 0,
"SalesQty": 0,
"SalesAmount": 0.00,
"PurchasesQty": 0,
"PurchasesAmount": 0.00,
"ExpensesQty": 0,
"ExpensesAmount": 0.00,
"RefundsQty": 0,
"RefundsAmount": 0.00,
"IncomesQty": 0,
"IncomesAmount": 0.00,
"Kkm": { object },
"User": {
"Id": 1032,
"PhoneLogin": "77771112233",
"Name": "First Cashier",
"Lock": false,
"IdShift": 9322
}
},
...
]
}
Описание переменных
Название переменной | Тип переменной | Описание переменной |
Id | int | Идентификатор z-отчета |
ShiftIndex | int | Порядковый номер смены на кассе |
IdKkm | int | Идентификатор ККМ |
IdUser | int | Идентификатор пользователя |
DateOpen | int | Дата открытия смены |
DateClose | int | Дата закрытия смены |
BalanceOpen | string | Средства на момент открытия смены |
BalanceClose | string | Средства на момент закрытия смены |
Count | int | Общее кол-во операций |
SalesQty | int | Кол-во операций продажи |
SalesAmount | int | Общая сумма операций продажи |
PurchasesQty | int | Кол-во операций покупки |
PurchasesAmount | int | Общая сумма операций покупки |
ExpensesQty | int | Кол-во операций продажи служебных расходов |
ExpensesAmount | int | Общая сумма операций служебных расходов |
RefundsQty | int | Кол-во операций возврата |
RefundsAmount | int | Общая сумма операций возврата |
IncomesQty | int | Кол-во операций служебных приходов |
IncomesAmount | int | Общая сумма операций служебных приходов |
kkm | object | Данные о ККМ, включая вложенный документ о юр. лице (см. GET /kkms/:IdKkm) |
User | object | Документ с данными о пользователе |
Id | int | Идентификатор пользователя |
PhoneLogin | string | Номер пользователя |
Name | string | Имя пользователя |
Lock | bool | Признак блокировки сменой |
IdShift | int | Идентификатор смены открытой или последней открытой смены |
Ошибки
Status | Message | Способ устранения |
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен |
500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Получить список секций
Вернет список секций для ККМ с указанным идентификатором.
GET /kkms/:IdKkm/sections
Возвращает данные:
{
"Status": 200,
"Message": "OK",
"Data": {
"Sections": [
{
"Id": 3050,
"Name": "Товары без НДС",
"Nds": 0,
"IdKKm": 1
},
{
"Id": 3051,
"Name": "Товары с НДС",
"Nds": 12,
"IdKKm": 1
},
...
]
}
}
Описание переменных
Название переменной | Тип переменной | Описание переменной |
Sections | array | Массив секций |
Id | int | Идентификатор секции |
Name | string | Название секции |
Nds | int | % НДС. Либо 0, если налога в секции нет |
IdKKm | int | Идентификатор ККМ |
Ошибки
Status | Message | Способ устранения | |
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdKkm кассы, выбрать IdKkm кассы | |
500 | Internal Server Error | Обратиться в тех. поддержку |
Блок-схема
Справочник видов деятельности
Вернет список видов деятельности — общий системный справочник, одинаковый для всех касс.
GET /directories/domains
Возвращает данные:
{
"Status": 200,
"Message": "OK",
"Data": {
"Domains": [
{
"Id": 1,
"Name": "DOMAIN_TRADING"
},
{
"Id": 2,
"Name": "DOMAIN_SERVICES"
},
{
"Id": 3,
"Name": "DOMAIN_GASOIL"
},
{
"Id": 4,
"Name": "DOMAIN_HOTELS"
},
{
"Id": 5,
"Name": "DOMAIN_TAXI"
},
{
"Id": 6,
"Name": "DOMAIN_PARKING"
}
]
}
}
Описание переменных
Название переменной | Тип переменной | Описание переменной |
Domains | array | Массив видов деятельности |
Id | int | Идентификатор вида деятельности |
Name | string | Описание идентификатора вида деятельности |
Описание массива Domains
"TypeDocument": [{"Id": 1, "Name": "DOMAIN_TRADING"}]
Ошибки
Status | Message | Способ устранения | Примечание |
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
500 | Internal Server Error | Может вернуть внутреннюю ошибку, если справочник пустой |
Блок-схема
Справочник номенклатуры
Вернет список видов деятельности — общий системный справочник, одинаковый для всех касс.
GET /kkms/:IdKkm/articles
Возвращает данные:
{
"Status": 200,
"Message": "OK",
"Data": {
"Articles": [
{
"Id": 10,
"Name": "first item",
"Qr": "",
"IdGroupArticle": 0,
"IdSection": 0,
"IdCompany": 20,
"Price": 111.00,
"Discount": 10,
"Markup": 5,
"Active": true
},
{
"Id": 11,
"Name": "second item",
"Qr": "",
"IdGroupArticle": 0,
"IdSection": 0,
"IdCompany": 20,
"Price": 6116.00,
"Discount": 20,
"Markup": 10,
"Active": true
},
...
]
}
}
Описание переменных
Ошибки
Status | Message | Способ устранения | Примечание |
401 | Unauthorized: token is expired by 2h36m46s | Получить новый токен | |
403 | Forbidden: Доступ к указанному ресурсу закрыт. | Проверить IdKkm кассы, выбрать IdKkm кассы | |
500 | Internal Server Error | Может вернуть внутреннюю ошибку, если справочник пустой |