Перейти к основному контенту

Работа с кассами

Получить список касс

Вернет список касс для всех компаний (юр. лиц), с которыми связан авторизованный пользователь.

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 Обратиться в тех. поддержку

Блок-схема

Получить список касс (блок-схема)

Circuitblock-allkkms11.png

Получить данные о кассе

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 Обратиться в тех. поддержку

Блок-схема


Circuitblock-kkms111.png

Балансы кассы

Вернет список доступных балансов кассы.

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 Обратиться в тех. поддержку

Блок-схема

Circuitblock-balancekkms11.png

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": "Продажа"}
Значение статуса Описание статуса
{"Id": 1, "Name": "Продажа"} Продажа
{"Id": 2, "Name": "Служебный приход"} Служебный приход
{"Id": 3, "Name": "Служебный расход"} Служебный расход
{"Id": 4, "Name": "Покупка"} Покупка
{"Id": 5, "Name": "Возврат продажи"} Возврат продажи
{"Id": 6, "Name": "Открытие смены"} Открытие смены
{"Id": 7, "Name": "Закрытие смены"} Закрытие смены

Ошибки

Status Message Способ устранения
401 Unauthorized: token is expired by 2h36m46s Получить новый токен
403 Forbidden: Доступ к указанному ресурсу закрыт. Проверить IdKkm кассы, выбрать IdKkm кассы
403 Forbidden: Касса заблокирована Связаться с тех. поддержкой
500 Internal Server Error Обратиться в тех. поддержку


Circuitblock-reports1kkms11.png

Журнал операций

Вернет список выполненных операций за определенный период на кассе.

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 Обратиться в тех. поддержку

Блок-схема

Circuitblock-idkkmdocuments11.png

Архив 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 Обратиться в тех. поддержку

Блок-схема

Circuitblock-openshift11.png

Получить список секций

Вернет список секций для ККМ с указанным идентификатором.

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 Обратиться в тех. поддержку

Блок-схема

Circuitblock-sectionskkms11.png

Справочник видов деятельности

Вернет список видов деятельности — общий системный справочник, одинаковый для всех касс.

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"}]
Значение статуса Описание статуса
{"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"} Парковка

Ошибки

Status Message Способ устранения Примечание
401 Unauthorized: token is expired by 2h36m46s Получить новый токен
500 Internal Server Error
Может вернуть внутреннюю ошибку, если справочник пустой

Блок-схема

Circuitblock-alldomains1.jpg

Справочник номенклатуры

Вернет список видов деятельности — общий системный справочник, одинаковый для всех касс.

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
},
...
]
}
}

Описание переменных

Название переменной Тип переменной Описание переменной
Articles array Массив с номенклатурой
Id int Идентификатор номенклатуры
Name string Название товара или услуги
Qr string -
IdGroupArticle int Идентификатор категории товара или услуги
IdSection int Идентификатор секции. Получить список секций (см. GET /kkms/:IdKkm/sections)
IdCompany int Идентификатор компании. Получить список компаний (см. GET /companies)
Price int Цена товара или услуги
Discount int Скидка на товар или услугу
Markup int Наценка на товар или услугу
Active bool Активность товара или услуги

Ошибки

Status Message Способ устранения Примечание
401 Unauthorized: token is expired by 2h36m46s Получить новый токен
403 Forbidden: Доступ к указанному ресурсу закрыт. Проверить IdKkm кассы, выбрать IdKkm кассы
500 Internal Server Error
Может вернуть внутреннюю ошибку, если справочник пустой

Блок-схема

Circuitblock-allarticles.png