1. Общие сведения

  • Протоколы построены на транспорте HTTP, в архитектурном стиле REST.

  • В теле POST запросов и в ответах с сервера данные в формате JSON.

  • Необходимо соблюдать регистр в полях и параметрах отправляемых запросов.

1.1. Ограничение на получение данных по запросам

Методы возвращают данные только в случае наличия разрешения на получение данных по указанному ИНН и/или идентификатору торговой точки и/или регистрационному номеру кассы.

1.2. Общие коды ответов

Исход Код Описания

Успех

200

ОК

Успех

201

Создано

Успех

204

Пусто

Ошибка

400

Неверные данные

Ошибка

401

Не авторизован

Ошибка

404

Не найдено

Ошибка

409

Конфликт

Системный отказ

500

Не найдено

Системный отказ

503

Сервер перегружен

1.3. Авторизация

Для доступа ко всем методам данного API необходимо получить JWT токен используя apiKey Это касается методов с версией v2 (api/rent/v2/…​)

К методам с версией v1 (api/rent/v1/…​) сохраняется доступ и apiKey, передается в каждом запросе в http-header. Пример: X-Api-Key =AIzaSyDRypemRP8Hr52kxIOVgZ-FRSYlA5pMj20

В будущем методы с версией v1 будут удалены

Чтобы получить ключ apiKey отправьте письмо с запросом по адресу info@1-ofd.ru. В теме письма укажите "Получение доступа к API для сверки" и наименование своей организации.

1.4. Типы данных

Все типы данных задаются строго в соответствии с форматом ответа JSON (смотри спецификацию по типам JSON - https://www.w3schools.com/js/js_json_datatypes.asp).

1.5. Дата и время

Глобальное (мировое) время - количество секунд (или миллисекунд) с начала эпохи (1970-01-01), так как она наступила в Гринвиче. Альтернативно может быть выражено в ГОСТ/ИСО формате с указанием зоны.

Если 1456789012000 трактуется глобальным временем - считаем его моментом времени 29 февраля 2016 г. 23:36:52 UTC. В Москве при этом было 1 марта 2016 г. 02:36:52 и если на сервере в Москве в этот глобальный момент произошло событие, то оно нам подходит.

Локальное время - количество секунд (или миллисекунд) с начала эпохи, так как она наступила в месте наступления интересующего нас события. Альтернативно может быть выражено в ГОСТ/ИСО без указания зоны.

Если 1456789012000 трактуется локальным временем - считаем его 29 февраля 2016 г. 23:36:52. Если на каком-то чеке написан тот же локальный момент времени, то он нам подходит.

1.6. Swagger

2. Авторизация

POST /api/auth HTTP/1.1
Content-Type: application/json
Content-Length: 28
Host: universal-api-host

{
  "apiKey" : "qwerty123"
}

Response body

{
  "token" : "Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTQ0LCJleHAiOjE2NTY0OTA1NDR9.JDmxarUC9-HWB120xwPUqwH-H-mXj1abY0hFp_-bjxeoKDciB1euzmNQtXdfXJdYpgoYy3hP09a8ZYO_BpQwIw"
}

Response fields

Path Type Description

token

String

Временный токен

Curl

$ curl 'https://universal-api-host/api/auth' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "apiKey" : "qwerty123"
}'

3. Получение списка организаций

GET /api/rent/v2/organisations HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTQ3LCJleHAiOjE2NTY0ODc1NDd9.KZief0_nOjfZjejrW9tcAjDdPKAAC_Q5P2t7zDcgOfwTXt8W1Xuc-C7hdjfRzwzO5PZP98CZLr5oGC9C_ZN8Kw
Host: universal-api-host

Response body

[ {
  "organisationKeyKind" : "INN",
  "organisationKey" : "123456789333",
  "startContractDate" : "2012-06-29T10:15:47.242",
  "endContractDate" : "2032-06-29T10:15:47.242"
} ]

Response fields

Path Type Description

[]organisationKeyKind

String

Тип ключа организации клиента

[]organisationKey

String

Значение ключа организации клиента

[]startContractDate

String

Начала периода передачи данных

[]endContractDate

String

Конец периода передачи данных

Curl

$ curl 'https://universal-api-host/api/rent/v2/organisations' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTQ3LCJleHAiOjE2NTY0ODc1NDd9.KZief0_nOjfZjejrW9tcAjDdPKAAC_Q5P2t7zDcgOfwTXt8W1Xuc-C7hdjfRzwzO5PZP98CZLr5oGC9C_ZN8Kw'

4. Получение списка торговых точек

GET /api/rent/v2/organisations/123456789333/retailPlaces HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTQyLCJleHAiOjE2NTY0ODc1NDJ9.MoztbJQvkFbcvTMTDFckaNzCGwVPL3dRmJRBbFdlmjdra1AyCG1djU4fxKbUgahN9iV0pc3jI8Y2jTxsIpRaSg
Host: universal-api-host

Path parameters ./api/rent/v2/organisations/{orgInn}/retailPlaces

Parameter Description

orgInn

ИНН организации

Если у организации существует kpp, его необходимо указать через точку inn.kpp (Например "1234567890.111111111")

Response body

{
  "inn" : "123456789333",
  "retailPlaces" : [ {
    "retailPlaceId" : 1,
    "address" : "Нижний Новгород, Покровская д. 52",
    "title" : "Торговая точка"
  } ]
}

Response fields

Path Type Description

inn

String

ИНН организации арендатора

kpp

String

КПП организации арендатора

retailPlaces[].retailPlaceId

Number

Идентификатор торговой точки

retailPlaces[].address

String

Адрес торговой точки

retailPlaces[].title

String

Название торговой точки

Curl

$ curl 'https://universal-api-host/api/rent/v2/organisations/123456789333/retailPlaces' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTQyLCJleHAiOjE2NTY0ODc1NDJ9.MoztbJQvkFbcvTMTDFckaNzCGwVPL3dRmJRBbFdlmjdra1AyCG1djU4fxKbUgahN9iV0pc3jI8Y2jTxsIpRaSg'

5. Получение выручки по торговой точке

GET /api/rent/v2/organisations/123456789333/revenue?retailPlaces=1&dateFrom=2022-06-28T10:15:41.154&dateTo=2022-06-29T10:15:41.154 HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTQxLCJleHAiOjE2NTY0ODc1NDF9.zkg-cmZVPBiYGPyTzxwoCG3mv_K4TF2_5IKPdAcLDPtg14z2abMAwbm_Qy76kP8hZ4AJVIfx1Ef9fIPX-jhv6g
Host: universal-api-host

Path parameters ./api/rent/v2/organisations/{orgInn}/revenue

Parameter Description

orgInn

ИНН организации арендатора

Если у организации существует kpp, его необходимо указать через точку inn.kpp (Например "1234567890.111111111")

Request parameters

Parameter Optional Description

retailPlaces

true

Идентификаторы торговых точек

dateFrom

false

Начало периода, за который запрашиваются данные

dateTo

false

Окончание периода, за который запрашиваются данные

Response body

{
  "inn" : "123456789333",
  "receipts" : [ {
    "retailPlaceId" : 1,
    "address" : "Нижний Новгород, Покровская д. 52",
    "title" : "Торговая точка",
    "revenue" : 99.7,
    "kkmRegIds" : [ "111112222233344" ]
  } ]
}

Response fields

Path Type Description

inn

String

ИНН организации арендатора

kpp

String

КПП организации арендатора

receipts[]

Array

Данные о торговой точке и выручке

receipts[].retailPlaceId

Number

Идентификатор торговой точки

receipts[].address

String

Адрес торговой точки

receipts[].title

String

Название точки продаж

receipts[].address

String

Адрес торговой точки

receipts[].revenue

Number

Сумма выручки

receipts[].kkmRegIds[]

Array

РНМ касс, учтенных в расчетах

Curl

$ curl 'https://universal-api-host/api/rent/v2/organisations/123456789333/revenue?retailPlaces=1&dateFrom=2022-06-28T10:15:41.154&dateTo=2022-06-29T10:15:41.154' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTQxLCJleHAiOjE2NTY0ODc1NDF9.zkg-cmZVPBiYGPyTzxwoCG3mv_K4TF2_5IKPdAcLDPtg14z2abMAwbm_Qy76kP8hZ4AJVIfx1Ef9fIPX-jhv6g'

6. Получение списка касс

GET /api/rent/v2/organisations/123456789333/kkms?retailPlaceId=1 HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTQ1LCJleHAiOjE2NTY0ODc1NDV9.VFJ9cI47tCng-KN2U_HPKD5BTgaKKgRFCVpX-wcMVSVgLrerOPzUD6waU6Eafg3Bvq4Q9bD3bZ1JidkzXpwyYQ
Host: universal-api-host

Path parameters ./api/rent/v2/organisations/{orgInn}/kkms

Parameter Description

orgInn

ИНН организации арендатора

Если у организации существует kpp, его необходимо указать через точку inn.kpp (Например "1234567890.111111111")

Request parameters

Parameter Optional Description

retailPlaceId

true

Идентификатор торговой точки

Response body

{
  "inn" : "123456789333",
  "kkms" : [ {
    "retailPlaceId" : 1,
    "address" : "Нижний Новгород, Покровская д. 52",
    "title" : "Торговая точка",
    "kkmRegId" : "111112222233344",
    "kkmFactoryNumber" : "96728465279",
    "fsFactoryNumber" : "123",
    "fiscalDrives" : [ {
      "fsFactoryNumber" : "123",
      "activationDate" : "2022-06-29T10:15:45.855"
    } ],
    "kkmInternalName" : "111112222233344",
    "kkmAddress" : "Нижний Новгород, Покровская, д.52"
  } ]
}

Параметры virtualKkmId и virtualKkmName возвращаются при условии, что в организации есть виртуальные кассы.

Response fields

Path Type Description

inn

String

ИНН организации арендатора

kpp

String

КПП организации арендатора

kkms[].retailPlaceId

Number

Идентификатор торговой точки

kkms[].address

String

Адрес торговой точки

kkms[].title

String

Название торговой точки

kkms[].kkmRegId

String

Регистрационный номер кассы

kkms[].kkmFactoryNumber

String

Заводской номер кассы

kkms[].fsFactoryNumber

String

Текущий заводской номер ФН

kkms[].fiscalDrives[]

Array

Список фискальных накопителей

kkms[].fiscalDrives[].fsFactoryNumber

String

Номер фискального накопителя

kkms[].fiscalDrives[].activationDate

String

Дата и время активации ФН

kkms[].kkmInternalName

String

Название кассы

kkms[].kkmAddress

class java.lang.String

Адрес места установки кассы

kkms[].virtualKkmId

class java.lang.Integer

Ид виртуальной кассы

kkms[].virtualKkmName

class java.lang.String

Имя виртуальной кассы

Curl

$ curl 'https://universal-api-host/api/rent/v2/organisations/123456789333/kkms?retailPlaceId=1' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTQ1LCJleHAiOjE2NTY0ODc1NDV9.VFJ9cI47tCng-KN2U_HPKD5BTgaKKgRFCVpX-wcMVSVgLrerOPzUD6waU6Eafg3Bvq4Q9bD3bZ1JidkzXpwyYQ'

7. Получение списка смен по кассе

GET /api/rent/v2/organisations/123456789333/shifts?regId=111112222233344&retailPlaceId=112&dateFrom=2022-06-28T10:15:38.400&dateTo=2022-06-29T10:15:38.400 HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTM4LCJleHAiOjE2NTY0ODc1Mzh9.vIfizHT5r_F3XXUmGl4Cki02G94d-57yPkJnSru6VNUaGLXvI6yjBiSSmmBxPSHtghWaUT1FDBu0Z8BJry0lkQ
Host: universal-api-host

Path parameters ./api/rent/v2/organisations/{orgInn}/shifts

Parameter Description

orgInn

ИНН организации арендатора

Если у организации существует kpp, его необходимо указать через точку inn.kpp (Например "1234567890.111111111")

Request parameters

Parameter Optional Description

regId

true

Регистрационный номер кассы

retailPlaceId

true

Идентификатор торговой точки

dateFrom

false

Начало периода, за который запрашиваются данные

dateTo

false

Окончание периода, за который запрашиваются данные

Response body

{
  "inn" : "123456789333",
  "organisationName" : "Тестовая Организация",
  "kkmShifts" : [ {
    "shiftNumber" : 1,
    "dateTimeOpen" : "2022-06-28T10:15:38.399+03:00",
    "dateTimeClose" : "2022-06-29T10:15:38.399+03:00",
    "incomeSum" : 2.5,
    "cashSum" : 0.5,
    "eCashSum" : 0.5,
    "returnCashSum" : 0,
    "returnECashSum" : 0,
    "outcomeSum" : 0,
    "nds10" : 0,
    "nds20" : 0,
    "totalSumSellCorrection" : 0,
    "totalSumBuyCorrection" : 0,
    "kkmName" : "111112222233344",
    "kkmAddress" : "Нижний Новгород, Покровская, д.52",
    "kkmNumber" : "96728465279",
    "fsNumber" : "123",
    "kkmRegId" : "111112222233344",
    "kkmSalesPoint" : "Торговая точка"
  } ]
}

Response fields

Path Type Description

inn

String

ИНН организации арендатора

kpp

String

КПП организации арендатора

organisationName

String

Полное наименование организации

kkmShifts[].shiftNumber

Number

Номер смены

kkmShifts[].dateTimeOpen

String

Время открытия смены

kkmShifts[].dateTimeClose

String

Время закрытия смены

kkmShifts[].incomeSum

Number

Итого приход за смену

kkmShifts[].cashSum

Number

Итого наличными за смену (приход)

kkmShifts[].eCashSum

Number

Итого безналичными за смену (приход)

kkmShifts[].returnCashSum

Number

Итого возвраты прихода наличными за смену

kkmShifts[].returnECashSum

Number

Итого возвраты прихода безналичными за смену

kkmShifts[].outcomeSum

Number

Итого расход за смену (наличными + безналичными)

kkmShifts[].nds10

Number

Итого НДС 10%

kkmShifts[].nds20

Number

Итого НДС 20%

kkmShifts[].totalSumSellCorrection

Number

Итого коррекция прихода

kkmShifts[].totalSumBuyCorrection

Number

Итого коррекция расхода

kkmShifts[].kkmName

String

Название кассы

kkmShifts[].kkmAddress

String

Адрес установки ККТ

kkmShifts[].kkmNumber

String

Заводской номер ККТ

kkmShifts[].fsNumber

String

Заводской номер ФН

kkmShifts[].kkmRegId

String

Регистрационный номер ККТ

kkmShifts[].kkmSalesPoint

String

Название точки продаж

Curl

$ curl 'https://universal-api-host/api/rent/v2/organisations/123456789333/shifts?regId=111112222233344&retailPlaceId=112&dateFrom=2022-06-28T10:15:38.400&dateTo=2022-06-29T10:15:38.400' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTM4LCJleHAiOjE2NTY0ODc1Mzh9.vIfizHT5r_F3XXUmGl4Cki02G94d-57yPkJnSru6VNUaGLXvI6yjBiSSmmBxPSHtghWaUT1FDBu0Z8BJry0lkQ'

8. Получение списка транзакций

GET /api/rent/v1/organisations/123456789333/transactions?kkmRegId=111112222233344&fsFactoryNumber=123&shiftNum=1 HTTP/1.1
Accept: application/json
X-Api-Key: qwerty123
Host: universal-api-host

Path parameters ./api/rent/v1/organisations/{orgInn}/transactions

Parameter Description

orgInn

ИНН организации арендатора

Если у организации существует kpp, его необходимо указать через точку inn.kpp (Например "1234567890.111111111")

Request parameters

Parameter Optional Description

kkmRegId

false

Регистрационный номер кассы

shiftNum

false

Номер смены

fsFactoryNumber

false

Заводской номер ФН

Response body

{
  "inn" : "123456789333",
  "title" : "Тестовая Организация",
  "address" : "Нижний Новгород, Покровская д. 52",
  "kkmAddress" : "Нижний Новгород, Покровская, д.52",
  "kkmRegId" : "111112222233344",
  "fsFactoryNumber" : "123",
  "kkmFactoryNumber" : "96728465279",
  "shiftNum" : 1,
  "transactions" : [ {
    "id" : "111112222233344_123_22",
    "transactionDate" : "2022-06-29T07:15:35",
    "transactionType" : "TICKET",
    "operationType" : 2,
    "requestNumber" : 105,
    "payments" : [ {
      "paymentType" : "CARD",
      "sum" : 0.5
    }, {
      "paymentType" : "CASH",
      "sum" : 0.5
    }, {
      "paymentType" : "PRE",
      "sum" : 0.5
    }, {
      "paymentType" : "POST",
      "sum" : 0.5
    }, {
      "paymentType" : "COUNTER_SUBMISSION",
      "sum" : 0.5
    } ],
    "totalSum" : 2.5,
    "fiscalDocumentNumber" : 22
  } ]
}

Response fields

Path Type Description

inn

String

ИНН организации арендатора

kpp

String

КПП организации арендатора

title

String

Название торговой точки

address

String

Адрес торговой точки

kkmAddress

String

Адрес места установки кассы

kkmRegId

String

Регистрационный номер кассы

fsFactoryNumber

String

Заводской номер ФН

kkmFactoryNumber

String

Заводской номер кассы

shiftNum

Number

Номер смены

transactions[].id

String

идентификатор транзакции (рнм + фн + номер документа)

transactions[].transactionDate

String

дата и время проведения транзакции (время кассы локальное)

transactions[].transactionType

String

Тип документа

transactions[].operationType

Number

Тип операции: "0" - расход, "1" - возврат расхода, "2" - приход, "3" - возврат прихода

transactions[].requestNumber

Number

№ чека за смену

transactions[].payments

Array

список платежей

transactions[].payments.[].sum

Number

сумма платежа

transactions[].payments.[].paymentType

String

типы оплаты

transactions[].totalSum

Number

общая сумма

transactions[].fiscalDocumentNumber

Number

номер фискального документа

Curl

$ curl 'https://universal-api-host/api/rent/v1/organisations/123456789333/transactions?kkmRegId=111112222233344&fsFactoryNumber=123&shiftNum=1' -i -X GET \
    -H 'Accept: application/json' \
    -H 'X-Api-Key: qwerty123'

9. Получение списка документов

GET /api/rent/v2/organisations/123456789333/documents?kkmRegId=111112222233344&fsFactoryNumber=123&shiftNum=1 HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTM0LCJleHAiOjE2NTY0ODc1MzR9.mbakEp81gFzjKB4_OcmGEKCAVPv_JzEAEBe8VeaVCjcTZeXcare74TAWD74h9aArCLbnYj5Ynf1iIC4jvNVgVg
Host: universal-api-host

Path parameters ./api/rent/v2/organisations/{orgInn}/documents

Parameter Description

orgInn

ИНН организации

Если у организации существует kpp, его необходимо указать через точку inn.kpp (Например "1234567890.111111111")

Request parameters

Parameter Optional Description

kkmRegId

false

Регистрационный номер кассы

fsFactoryNumber

false

Номер фискального накопителя

shiftNum

true

Номер смены

  • Опциональные параметры запроса:

    • fromDate - Начальная дата(локальное время) формирования документа на ККТ,

    • toDate - Конечная дата(локальное время) формирования документа на ККТ,

    • fromInsDate - Начальная дата сохранения документа в ОФД,

    • toInsDate - Конечная дата сохранения документа в ОФД,

    • shiftNum - Номер смены,

    • transactionTypes - Типы транзакций.

  • Примечания:

    • Параметры fromDate, toDate, задаются строкой в формате YYYY-MM-DDThh:mm:ss[.SSS],

    • Параметры fromInsDate, toInsDate задаются строкой в формате YYYY-MM-DDThh:mm:ss.SSSZ,

    • Максимальный промежуток между fromDate и toDate ⇐ 30 дней,

    • Максимальный промежуток между fromInsDate и toInsDate ⇐ 30 дней,

    • Один из параметров: shiftNum, fromDate/toDate, fromInsDate/toInsDate обязательно должен быть в запросе. Можно одновременно указать shiftNum и (fromDate/toDate ИЛИ fromInsDate/toInsDate),

    • В transactionTypes может быть передано несколько типов документов в одном запросе. Если transactionTypes не задан - в ответе возвращаются все типы документов, если введен - то применяется фильтр.

  • Возможные значения параметра transactionTypes:

    • TICKET - Кассовый чек,

    • CLOSE_SHIFT - Отчет о закрытии смены,

    • OPEN_SHIFT - Отчёт об открытии смены,

    • RECEIPT_CORRECTION - Кассовый чек коррекции,

    • BSO - Бланк строгой отчетности,

    • BSO_CORRECTION - Бланк строгой отчетности коррекции,

    • FISCAL_REPORT_CORRECTION - Отчет об изменениях параметров регистрации,

    • CLOSE_ARCHIVE - Закрытие архива.

Response body

{
  "inn" : "123456789333",
  "title" : "Тестовая Организация",
  "address" : "Нижний Новгород, Покровская д. 52",
  "kkmAddress" : "Нижний Новгород, Покровская, д.52",
  "kkmRegId" : "111112222233344",
  "fsFactoryNumber" : "123",
  "kkmFactoryNumber" : "96728465279",
  "documents" : [ {
    "transactionDate" : "2022-06-29T07:15:34",
    "fiscalSign" : "859059510",
    "insertedAt" : "1970-01-01T00:00:00Z",
    "transactionType" : "Кассовый чек",
    "kkmRegId" : "111112222233344",
    "fiscalDriveNumber" : "123",
    "fiscalDocumentNumber" : 22,
    "shiftNum" : 1,
    "ticket" : {
      "requestNumber" : 105,
      "operator" : { },
      "operationType" : 1,
      "taxationType" : "ОСН",
      "totalSum" : 2.5,
      "cashTotalSum" : 0.5,
      "ecashTotalSum" : 0.5,
      "prepaymentSum" : 0.5,
      "postpaymentSum" : 0.5,
      "counterSubmissionSum" : 0.5,
      "taxes" : {
        "nds20" : 0,
        "nds10" : 0,
        "nds0" : 0,
        "ndsNo" : 0,
        "ndsCalculated20" : 0,
        "ndsCalculated10" : 0
      },
      "userProperty" : {
        "value" : "value",
        "key" : "key"
      },
      "retailPlace" : "Магазин",
      "buyerPhoneOrAddress" : "test@addressClient.com",
      "items" : [ {
        "quantity" : 1.0,
        "name" : "Ford Focus 2013 г.в.",
        "sum" : 605.0,
        "price" : 605.0,
        "nomenclatureCode" : "618097502589982112338198745",
        "ndsRate" : 6,
        "ndsSum" : 500.5,
        "calculationTypeSign" : 1,
        "calculationSubjectSign" : 1
      } ]
    }
  } ]
}

Response fields

Path Type Description

inn

String

ИНН организации

kpp

String

КПП организации

title

String

Название торговой точки

address

String

Адрес торговой точки

kkmAddress

String

Адрес места установки кассы

kkmRegId

String

Регистрационный номер кассы

fsFactoryNumber

String

Заводской номер фискального накопителя

kkmFactoryNumber

String

Заводской номер кассы

documents[].fiscalDriveNumber

String

Заводской номер фискального накопителя

documents[].transactionDate

String

дата и время проведения транзакции (время кассы локальное)

documents[].transactionType

String

Тип документа

documents[].fiscalSign

String

Фискальный признак документа

documents[].insertedAt

String

Дата и время приема документа ОФД (UTC)

documents[].kkmRegId

String

Регистрационный номер кассы

documents[].fiscalDocumentNumber

Number

Номер документа

documents[].shiftNum

Number

Номер смены

documents[].ticket

Object

Кассовый чек

documents[].ticket.operator

Object

Объект содержит имя кассира и ИНН кассира

documents[].ticket.operator.operatorName

String

Имя кассира

documents[].ticket.operator.operatorInn

String

ИНН кассира

documents[].ticket.buyerPhoneOrAddress

String

Телефон или почтовый адрес покупателя

documents[].ticket.buyerInformation

Object

сведения о покупателе (клиенте)

documents[].ticket.requestNumber

Number

№ чека за смену

documents[].ticket.taxationType

String

Система налогообложения

documents[].ticket.taxes

Object

Содержит налоги на весь чек

documents[].ticket.taxes.nds20

Number

Сумма НДС чека по ставке 20%

documents[].ticket.taxes.nds10

Number

Сумма НДС чека по ставке 10%

documents[].ticket.taxes.nds0

Number

Сумма расчетов по чеку с НДС по ставке 0%

documents[].ticket.taxes.ndsNo

Number

Сумма расчета по чеку без НДС

documents[].ticket.taxes.ndsCalculated20

Number

Сумма НДС чека по расч. ставке 20/120

documents[].ticket.taxes.ndsCalculated10

Number

Cумма НДС чека по расч. ставке 10/110

documents[].ticket.operationType

Number

Тип операции: "1" - приход, "2" - возврат прихода, "3" - расход, "4" - возврат расхода

documents[].ticket.totalSum

Number

Итоговая сумма чека

documents[].ticket.cashTotalSum

Number

Сумма чека наличными

documents[].ticket.ecashTotalSum

Number

Сумма чек безналичными

documents[].ticket.prepaymentSum

Number

Сумма чека предоплатой

documents[].ticket.postpaymentSum

Number

Сумма чека постоплатой

documents[].ticket.counterSubmissionSum

Number

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

documents[].ticket.userProperty

Object

Дополнительный реквизит пользователя

documents[].ticket.userProperty.key

String

Наименование дополнительного реквизита пользователя

documents[].ticket.userProperty.value

String

Значение дополнительного реквизита пользователя

documents[].ticket.retailPlace

String

Место расчетов

documents[].ticket.items[]

Array

Список товаров или услуг

documents[].ticket.items[].quantity

Number

Количество товара/услуг

documents[].ticket.items[].name

String

Наименование товара/услуги

documents[].ticket.items[].sum

Number

Стоимость товара/услуги

documents[].ticket.items[].price

Number

Стоимость за единицу товара/услуги

documents[].ticket.items[].nomenclatureCode

String

Код маркированного товара

documents[].ticket.items[].ndsRate

Number

Ставка НДС

documents[].ticket.items[].ndsSum

Number

Сумма НДС товара/услуги

documents[].ticket.items[].calculationTypeSign

Number

Признак способа расчета

documents[].ticket.items[].calculationSubjectSign

Number

Признак предмета расчета. Расшифровку кодов см. в ФФД, утвержденных ФНС

documents[].bso

Object

Бланк строгой отчетности

documents[].receiptCorrection

Object

Кассовый чек коррекции

documents[].bsoCorrection

Object

Бланк строгой отчетности коррекции

documents[].openShift

Object

Отчёт об открытии смены

documents[].closeShift

Object

Отчет о закрытии смены

documents[].fiscalReport

Object

Отчет о регистрации

documents[].fiscalReportCorrection

Object

Отчет об изменениях параметров регистрации

documents[].closeArchive

Object

Закрытие архива

  • Возможные значения возвращаемого поля calculationTypeSign(Признак способа расчета):

    • "1" - предоплата 100%,

    • "2" - предоплата,

    • "3" - аванс,

    • "4" - полный расчет,

    • "5" - частичный расчет и кредит,

    • "6" - передача в кредит,

    • "7" - оплата кредита.

Curl

$ curl 'https://universal-api-host/api/rent/v2/organisations/123456789333/virtual/documents?virtualKkmId=43&fsFactoryNumber=123&shiftNum=1' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTM1LCJleHAiOjE2NTY0ODc1MzV9.cD73n5SS71KiFFluhTCrLYDltP894zgR-5ZJtmuR_AOcBwM5mgylZz2rAgJmVDQLLv9GNrdwRiOq-2SPxDqU9w'

10. Получение списка документов по виртуальной кассе

Метод позволяет получить список транзакций по виртуальным кассам.

GET /api/rent/v2/organisations/123456789333/virtual/documents?virtualKkmId=43&fsFactoryNumber=123&shiftNum=1 HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTM1LCJleHAiOjE2NTY0ODc1MzV9.cD73n5SS71KiFFluhTCrLYDltP894zgR-5ZJtmuR_AOcBwM5mgylZz2rAgJmVDQLLv9GNrdwRiOq-2SPxDqU9w
Host: universal-api-host

Path parameters ./api/rent/v2/organisations/{orgInn}/virtual/documents

Parameter Description

orgInn

ИНН организации

Если у организации существует kpp, его необходимо указать через точку inn.kpp (Например "1234567890.111111111")

Request parameters

Parameter Optional Description

virtualKkmId

false

Ид виртуальной кассы

fsFactoryNumber

false

Номер фискального накопителя

shiftNum

true

Номер смены

  • Опциональные параметры запроса:

    • fromDate - Начальная дата(локальное время) формирования документа на ККТ,

    • toDate - Конечная дата(локальное время) формирования документа на ККТ,

    • fromInsDate - Начальная дата сохранения документа в ОФД,

    • toInsDate - Конечная дата сохранения документа в ОФД,

    • shiftNum - Номер смены,

    • transactionTypes - Типы транзакций.

  • Примечания:

    • Метод доступен, если подключена услуга виртуальных касс. Для получения подробной информации и подключения данной услуги отправьте письмо с запросом по адресу info@1-ofd.ru. В теме письма укажите "Подключение услуги виртуальных касс" и наименование своей организации.

    • Параметры fromDate, toDate, задаются строкой в формате YYYY-MM-DDThh:mm:ss[.SSS],

    • Параметры fromInsDate, toInsDate задаются строкой в формате YYYY-MM-DDThh:mm:ss.SSSZ,

    • Максимальный промежуток между fromDate и toDate ⇐ 30 дней,

    • Максимальный промежуток между fromInsDate и toInsDate ⇐ 30 дней,

    • Один из параметров: shiftNum, fromDate/toDate, fromInsDate/toInsDate обязательно должен быть в запросе. Можно одновременно указать shiftNum и (fromDate/toDate ИЛИ fromInsDate/toInsDate),

    • В transactionTypes может быть передано несколько типов документов в одном запросе. Если transactionTypes не задан - в ответе возвращаются все типы документов, если введен - то применяется фильтр.

  • Возможные значения параметра transactionTypes:

    • TICKET - Кассовый чек,

    • CLOSE_SHIFT - Отчет о закрытии смены,

    • OPEN_SHIFT - Отчёт об открытии смены,

    • RECEIPT_CORRECTION - Кассовый чек коррекции,

    • BSO - Бланк строгой отчетности,

    • BSO_CORRECTION - Бланк строгой отчетности коррекции,

    • FISCAL_REPORT_CORRECTION - Отчет об изменениях параметров регистрации,

    • CLOSE_ARCHIVE - Закрытие архива.

Response body

{
  "inn" : "123456789333",
  "title" : "Тестовая Организация",
  "address" : "Нижний Новгород, Покровская д. 52",
  "kkmAddress" : "Нижний Новгород, Покровская, д.52",
  "kkmRegId" : "111112222233344",
  "fsFactoryNumber" : "123",
  "kkmFactoryNumber" : "96728465279",
  "documents" : [ {
    "transactionDate" : "2022-06-29T07:15:35",
    "fiscalSign" : "859059510",
    "insertedAt" : "1970-01-01T00:00:00Z",
    "transactionType" : "Кассовый чек",
    "kkmRegId" : "111112222233344",
    "fiscalDriveNumber" : "123",
    "fiscalDocumentNumber" : 22,
    "shiftNum" : 1,
    "ticket" : {
      "requestNumber" : 105,
      "operator" : { },
      "operationType" : 1,
      "taxationType" : "ОСН",
      "totalSum" : 2.5,
      "cashTotalSum" : 0.5,
      "ecashTotalSum" : 0.5,
      "prepaymentSum" : 0.5,
      "postpaymentSum" : 0.5,
      "counterSubmissionSum" : 0.5,
      "taxes" : {
        "nds20" : 0,
        "nds10" : 0,
        "nds0" : 0,
        "ndsNo" : 0,
        "ndsCalculated20" : 0,
        "ndsCalculated10" : 0
      },
      "userProperty" : {
        "value" : "value",
        "key" : "key"
      },
      "retailPlace" : "Магазин",
      "buyerPhoneOrAddress" : "test@addressClient.com",
      "items" : [ {
        "quantity" : 1.0,
        "name" : "Ford Focus 2013 г.в.",
        "sum" : 605.0,
        "price" : 605.0,
        "nomenclatureCode" : "618097502589982112338198745",
        "ndsRate" : 6,
        "ndsSum" : 500.5,
        "calculationTypeSign" : 1,
        "calculationSubjectSign" : 1
      } ]
    }
  } ]
}

Response fields

Path Type Description

inn

String

ИНН организации

kpp

String

КПП организации

title

String

Название торговой точки

address

String

Адрес торговой точки

kkmAddress

String

Адрес места установки кассы

kkmRegId

String

Регистрационный номер кассы

fsFactoryNumber

String

Заводской номер фискального накопителя

kkmFactoryNumber

String

Заводской номер кассы

documents[].fiscalDriveNumber

String

Заводской номер фискального накопителя

documents[].transactionDate

String

дата и время проведения транзакции (время кассы локальное)

documents[].transactionType

String

Тип документа

documents[].fiscalSign

String

Фискальный признак документа

documents[].insertedAt

String

Дата и время приема документа ОФД (UTC)

documents[].kkmRegId

String

Регистрационный номер кассы

documents[].fiscalDocumentNumber

Number

Номер документа

documents[].shiftNum

Number

Номер смены

documents[].ticket

Object

Кассовый чек

documents[].ticket.operator

Object

Объект содержит имя кассира и ИНН кассира

documents[].ticket.operator.operatorName

String

Имя кассира

documents[].ticket.operator.operatorInn

String

ИНН кассира

documents[].ticket.buyerPhoneOrAddress

String

Телефон или почтовый адрес покупателя

documents[].ticket.buyerInformation

Object

сведения о покупателе (клиенте)

documents[].ticket.requestNumber

Number

№ чека за смену

documents[].ticket.taxationType

String

Система налогообложения

documents[].ticket.taxes

Object

Содержит налоги на весь чек

documents[].ticket.taxes.nds20

Number

Сумма НДС чека по ставке 20%

documents[].ticket.taxes.nds10

Number

Сумма НДС чека по ставке 10%

documents[].ticket.taxes.nds0

Number

Сумма расчетов по чеку с НДС по ставке 0%

documents[].ticket.taxes.ndsNo

Number

Сумма расчета по чеку без НДС

documents[].ticket.taxes.ndsCalculated20

Number

Сумма НДС чека по расч. ставке 20/120

documents[].ticket.taxes.ndsCalculated10

Number

Cумма НДС чека по расч. ставке 10/110

documents[].ticket.operationType

Number

Тип операции: "1" - приход, "2" - возврат прихода, "3" - расход, "4" - возврат расхода

documents[].ticket.totalSum

Number

Итоговая сумма чека

documents[].ticket.cashTotalSum

Number

Сумма чека наличными

documents[].ticket.ecashTotalSum

Number

Сумма чек безналичными

documents[].ticket.prepaymentSum

Number

Сумма чека предоплатой

documents[].ticket.postpaymentSum

Number

Сумма чека постоплатой

documents[].ticket.counterSubmissionSum

Number

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

documents[].ticket.userProperty

Object

Дополнительный реквизит пользователя

documents[].ticket.userProperty.key

String

Наименование дополнительного реквизита пользователя

documents[].ticket.userProperty.value

String

Значение дополнительного реквизита пользователя

documents[].ticket.retailPlace

String

Место расчетов

documents[].ticket.items[]

Array

Список товаров или услуг

documents[].ticket.items[].quantity

Number

Количество товара/услуг

documents[].ticket.items[].name

String

Наименование товара/услуги

documents[].ticket.items[].sum

Number

Стоимость товара/услуги

documents[].ticket.items[].price

Number

Стоимость за единицу товара/услуги

documents[].ticket.items[].nomenclatureCode

String

Код маркированного товара

documents[].ticket.items[].ndsRate

Number

Ставка НДС

documents[].ticket.items[].ndsSum

Number

Сумма НДС товара/услуги

documents[].ticket.items[].calculationTypeSign

Number

Признак способа расчета

documents[].ticket.items[].calculationSubjectSign

Number

Признак предмета расчета. Расшифровку кодов см. в ФФД, утвержденных ФНС

documents[].bso

Object

Бланк строгой отчетности

documents[].receiptCorrection

Object

Кассовый чек коррекции

documents[].bsoCorrection

Object

Бланк строгой отчетности коррекции

documents[].openShift

Object

Отчёт об открытии смены

documents[].closeShift

Object

Отчет о закрытии смены

documents[].fiscalReport

Object

Отчет о регистрации

documents[].fiscalReportCorrection

Object

Отчет об изменениях параметров регистрации

documents[].closeArchive

Object

Закрытие архива

  • Возможные значения возвращаемого поля calculationTypeSign(Признак способа расчета):

    • "1" - предоплата 100%,

    • "2" - предоплата,

    • "3" - аванс,

    • "4" - полный расчет,

    • "5" - частичный расчет и кредит,

    • "6" - передача в кредит,

    • "7" - оплата кредита.

Curl

$ curl 'https://universal-api-host/api/rent/v2/organisations/123456789333/virtual/documents?virtualKkmId=43&fsFactoryNumber=123&shiftNum=1' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTM1LCJleHAiOjE2NTY0ODc1MzV9.cD73n5SS71KiFFluhTCrLYDltP894zgR-5ZJtmuR_AOcBwM5mgylZz2rAgJmVDQLLv9GNrdwRiOq-2SPxDqU9w'

11. Получение документов по дополнительным реквизитам

Метод позволяет получить список транзакций по соответствующим значениям дополнительных реквизитов 1085 и 1086

GET /api/rent/v2/organisations/123456789333/documents/property?fromDate=2022-06-28T10:15:32.689&toDate=2022-06-29T10:15:32.689&userPropertyKey=MVLM&userPropertyValue=MVIO HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTMyLCJleHAiOjE2NTY0ODc1MzJ9.cdgb3SrJzmIfGLpj70wPrcV_EirH84GFrsAnQp_y3W4-VJvQ7WSxw40c1pw2GQpuFemLSh8BM5isEgR2lIblJQ
Host: universal-api-host

Path parameters ./api/rent/v2/organisations/{orgInn}/documents/property

Parameter Description

orgInn

ИНН организации

Если у организации существует kpp, его необходимо указать через точку inn.kpp (Например "1234567890.111111111")

Request parameters

Parameter Optional Description

userPropertyKey

true

Имя доп. реквизита

userPropertyValue

false

Значение доп. реквизита

fromDate

true

дата начала запроса

toDate

true

дата конца запроса

  • Примечания:

    • Параметры fromDate, toDate, задаются строкой в формате YYYY-MM-DDThh:mm:ss[.SSS],

    • Параметры fromInsDate, toInsDate задаются строкой в формате YYYY-MM-DDThh:mm:ss.SSSZ,

    • Максимальный промежуток между fromDate и toDate ⇐ 30 дней,

    • Максимальный промежуток между fromInsDate и toInsDate ⇐ 30 дней,

    • Метод доступен, если подключена услуга по индексации входящих чеков по указанным выше значениям. Для получения подробной информации и подключения данной услуги отправьте письмо с запросом по адресу info@1-ofd.ru. В теме письма укажите "Подключение услуги по индексации входящих чеков по 1085 и 1086" и наименование своей организации.

Response body

{
  "documents" : [ {
    "transactionDate" : "2022-06-29T07:15:30",
    "fiscalSign" : "859059510",
    "insertedAt" : "1970-01-01T00:00:00Z",
    "transactionType" : "Кассовый чек",
    "kkmRegId" : "111112222233344",
    "fiscalDriveNumber" : "123",
    "fiscalDocumentNumber" : 22,
    "shiftNum" : 1,
    "ticket" : {
      "requestNumber" : 105,
      "operator" : { },
      "operationType" : 1,
      "taxationType" : "ОСН",
      "totalSum" : 2.5,
      "cashTotalSum" : 0.5,
      "ecashTotalSum" : 0.5,
      "prepaymentSum" : 0.5,
      "postpaymentSum" : 0.5,
      "counterSubmissionSum" : 0.5,
      "taxes" : {
        "nds20" : 0,
        "nds10" : 0,
        "nds0" : 0,
        "ndsNo" : 0,
        "ndsCalculated20" : 0,
        "ndsCalculated10" : 0
      },
      "userProperty" : {
        "value" : "value",
        "key" : "key"
      },
      "retailPlace" : "Магазин",
      "buyerPhoneOrAddress" : "test@addressClient.com",
      "items" : [ {
        "quantity" : 1.0,
        "name" : "Ford Focus 2013 г.в.",
        "sum" : 605.0,
        "price" : 605.0,
        "nomenclatureCode" : "618097502589982112338198745",
        "ndsRate" : 6,
        "ndsSum" : 500.5,
        "calculationTypeSign" : 1,
        "calculationSubjectSign" : 1
      } ]
    }
  } ]
}

Response fields

Path Type Description

documents[].fiscalDriveNumber

String

Заводской номер фискального накопителя

documents[].transactionDate

String

дата и время проведения транзакции (время кассы локальное)

documents[].transactionType

String

Тип документа

documents[].fiscalSign

String

Фискальный признак документа

documents[].insertedAt

String

Дата и время приема документа ОФД (UTC)

documents[].kkmRegId

String

Регистрационный номер кассы

documents[].fiscalDocumentNumber

Number

Номер документа

documents[].shiftNum

Number

Номер смены

documents[].ticket

Object

Кассовый чек

documents[].ticket.operator

Object

Объект содержит имя кассира и ИНН кассира

documents[].ticket.operator.operatorName

String

Имя кассира

documents[].ticket.operator.operatorInn

String

ИНН кассира

documents[].ticket.buyerPhoneOrAddress

String

Телефон или почтовый адрес покупателя

documents[].ticket.buyerInformation

Object

сведения о покупателе (клиенте)

documents[].ticket.requestNumber

Number

№ чека за смену

documents[].ticket.taxationType

String

Система налогообложения

documents[].ticket.taxes

Object

Содержит налоги на весь чек

documents[].ticket.taxes.nds20

Number

Сумма НДС чека по ставке 20%

documents[].ticket.taxes.nds10

Number

Сумма НДС чека по ставке 10%

documents[].ticket.taxes.nds0

Number

Сумма расчетов по чеку с НДС по ставке 0%

documents[].ticket.taxes.ndsNo

Number

Сумма расчета по чеку без НДС

documents[].ticket.taxes.ndsCalculated20

Number

Сумма НДС чека по расч. ставке 20/120

documents[].ticket.taxes.ndsCalculated10

Number

Cумма НДС чека по расч. ставке 10/110

documents[].ticket.operationType

Number

Тип операции: "1" - приход, "2" - возврат прихода, "3" - расход, "4" - возврат расхода

documents[].ticket.totalSum

Number

Итоговая сумма чека

documents[].ticket.cashTotalSum

Number

Сумма чека наличными

documents[].ticket.ecashTotalSum

Number

Сумма чек безналичными

documents[].ticket.prepaymentSum

Number

Сумма чека предоплатой

documents[].ticket.postpaymentSum

Number

Сумма чека постоплатой

documents[].ticket.counterSubmissionSum

Number

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

documents[].ticket.userProperty

Object

Дополнительный реквизит пользователя

documents[].ticket.userProperty.key

String

Наименование дополнительного реквизита пользователя

documents[].ticket.userProperty.value

String

Значение дополнительного реквизита пользователя

documents[].ticket.retailPlace

String

Место расчетов

documents[].ticket.items[]

Array

Список товаров или услуг

documents[].ticket.items[].quantity

Number

Количество товара/услуг

documents[].ticket.items[].name

String

Наименование товара/услуги

documents[].ticket.items[].sum

Number

Стоимость товара/услуги

documents[].ticket.items[].price

Number

Стоимость за единицу товара/услуги

documents[].ticket.items[].nomenclatureCode

String

Код маркированного товара

documents[].ticket.items[].ndsRate

Number

Ставка НДС

documents[].ticket.items[].ndsSum

Number

Сумма НДС товара/услуги

documents[].ticket.items[].calculationTypeSign

Number

Признак способа расчета

documents[].ticket.items[].calculationSubjectSign

Number

Признак предмета расчета. Расшифровку кодов см. в ФФД, утвержденных ФНС

documents[].bso

Object

Бланк строгой отчетности

documents[].receiptCorrection

Object

Кассовый чек коррекции

documents[].bsoCorrection

Object

Бланк строгой отчетности коррекции

Curl

$ curl 'https://universal-api-host/api/rent/v2/organisations/123456789333/documents/property?fromDate=2022-06-28T10:15:32.689&toDate=2022-06-29T10:15:32.689&userPropertyKey=MVLM&userPropertyValue=MVIO' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjQyIiwiaWF0IjoxNjU2NDg2OTMyLCJleHAiOjE2NTY0ODc1MzJ9.cdgb3SrJzmIfGLpj70wPrcV_EirH84GFrsAnQp_y3W4-VJvQ7WSxw40c1pw2GQpuFemLSh8BM5isEgR2lIblJQ'