1. Описание

1.1. Цель

Обеспечить возможность фискализации онлайн платежей, сделанных Интернет-магазином.

1.2. Термины и определения

Инициатор фискализации оплаты

Внешний сервис, который создает документ на оплату, инициирует процесс его фискализации и ожидает его успешного завершения.
Например, это может быть Интернет-магазин, платежный шлюз, CMS система либо 1C интеграция.

Сервер фискализации

Сервер МодульКассы выступающий в роли посредника обмена данными между приложением МодульКасса на кассовом аппарате и
инициаторами фискализации оплаты

Касса

Программно-аппаратный комплекс в который входит кассовый аппарат на операционной системе Андроид, с установленным приложением МодульКасса, с подключенной к нему ККМ с фискальным накопителем (ФН).

Оператор фискальных данных (ОФД)

Операторы, на которых возлагается обязанность сбора, подтверждения, систематизации и отправки кассовых чеков в налоговые органы

Фискальный регистратор (ККМ, ККТ)

Контрольно-кассовая машина, служащая для регистрации приобретения товара и печати кассового чека.
Может быть двух типов:

  • Физическая касса с встроенным ФН-ом (вариант с подключаемым дополнительно принтером), предназначенная для приема наличных и безналичных платежей непосредственно в розничной точке

  • Физическая касса с встроенным ФН без чекопечатающего устройства, предназначена для установки в стойки (ЦОД) или самостоятельно.
    Предназначены для приема только безналичных платежей.

1.3. Работа со сменами

Подразумевается возможность одновременной работы онлайн кассы МодульКасса и сервиса фискализации онлайн чеков интернет-магазинов.
Для этого необходимо понимать, что будет существовать разделение смен в онлайн кассе и смен в фискальном регистраторе, а именно:

  • Смена фискального накопителя открывается кассой по мере необходимости.
    Общий алгоритм работы приложения со сменой ФН такой - при получении документа для фискализации приложение проверяет текущий статус смены.
    Если текущая смена превысила 24 часа, приложение закрывает ее и открывает новую.
    Таким образом обеспечивается минимальное возможное количество смен, при этом закон не нарушается - в одной смене зарегистрированы только документы созданные в течении 24 часов от открытия смены.

  • Все смены онлайн кассы МодульКасса - программные, то есть не вызывающие закрытие смены в ККТ и, следовательно, печать Z-отчета.

В целом, если торговая точка настроена на режим работы с Интернет-магазином, то учитывая специфику работы Интернет-магазина (а это означает доступность 24/7),
смена в ККТ будет вестись на основе смен Интернет-магазина с продолжительностью 24 часа.
Смены, которые ведутся в онлайн-кассе, будут вестись независимо от смены в ККТ и никак не фиксироваться в фискальном регистраторе.

1.5. Описание процесса фискализации

Весь процесс можно разделить на несколько шагов:

  1. Оформление чека в Интернет-магазине

    • заполнение корзины, то есть процесс, предваряющий оплату, и переход к процессу оплаты.

  2. Отправка документа на сервер интеграции. Документу присваивается уникальный идентификатор (UUID) для последующего опроса состояния документа на сервере

  3. Приемка документа сервером фискализации

    • Постановка документов в очередь на обработку кассой.

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

  5. Опрос сервера фискализации на наличие документов на обработку раз в 5 секунд.

  6. Проведение продажи и ее фискализация

    • Касса регистрирует продажу в ФН. ФН отправляет данные в ОФД, который
      отправляет покупателю на электронную почту письмо чеком.

  7. Касса отправляет на сервер фискализации уведомление о результате
    фискализации - успешно или ошибка. В случае успеха касса также отправляет
    на сервер фискальную информацию зарегистрированного документа (номер
    чека ФН, номер смены, фискальный признак документа и т.д.)

  8. Сервер фискализации оповещает Интернет-магазин (если требовалось) о результате фискализации.

1.6. Подключение к API

Существуют два базовых URL сервиса - один для тестирования, другой для реального использования.
Для тестирования используется базовый URL: https://demo-fn.avanpos.com/fn
Его особенность заключается в том, что все документы на него виртуально “фискализируются” всегда, без ошибок.
Учетные данные используются с реального сервиса МодульКасса, зарегистрировать аккаунт можно на https://my.modulkassa.ru,
но связки с розничными точками (полученные методом /associate) собственные, т.е. учетные данные полученные от /associate на этом URL не подойдут для настоящего использования.
Так же в этом случае разделяются и документы - все проведенные документы на этом сервере не будут фигурировать в реальном, их нельзя будет увидеть в личном кабинете.
Для реального использования базовым URL является https://my.modulkassa.ru/api/fn
Учетные записи в нем используются с реального сервиса МодульКасса, зарегистрировать аккаунт можно на https://my.modulkassa.ru.
Этот URL используют кассы для отправки чеков в фискальный накопитель и ОФД, поэтому на него нужно отправлять уже реально оплаченные клиентами документы.

2. Описание методов

2.1. Создание авторизационных данных для отправки чеков на фискализацию для определенной точки продаж

POST /fn/v1/associate/{retailPointId}

2.1.1. Описание

Запрос выполняется с логином-паролем, полученными при включении сервиса "Чеки интернет-магазина". При повторном выполнении запроса пароль обновляется.

2.1.2. Параметры

Тип Имя Описание Схема

Path

retailPointId
обязательно

ID точки продаж

string

Query

clientId
необязательно

ID клиентского приложения Параметр заполняется, если есть несколько приложений, отправляющих документы для одной точки продаж. Если приложение одно, то можно не передавать этот параметр

string

2.1.3. Ответы

HTTP код Описание Схема

200

OK

401

Запрос не авторизован

Без содержимого

403

У пользователя недостаточно прав для работы с указанной точкой продаж

Без содержимого

404

Точка продаж не найдена

Без содержимого

2.1.4. Пример запроса

POST https://my.modulkassa.ru/api/fn/v1/associate/12345678-90ab-cdef-1234-000000000000?clientId=my_crm
Тело ответа
{
  "userName" : "4f4c789c-3863-41d3-aea9-c35b5a9e7f18",
  "password" : "12345AbcDe",
  "name" : "ТЦ \"Европа\"",
  "address" : "г.Москва"
}

2.2. Удаление авторизационных данных для отправки чеков на фискализацию

DELETE /fn/v1/associate

2.2.1. Описание

Запрос выполняется с логином/паролем, полученными при выполнении запроса associate.

2.2.2. Ответы

HTTP код Описание Схема

200

Авторизационные данные успешно удалены

Без содержимого

401

Запрос не авторизован

Без содержимого

403

У пользователя недостаточно прав

Без содержимого

2.3. Опрос готовности сервиса фискализации

GET /fn/v1/status

2.3.1. Описание

Запрос выполняется с логином/паролем, полученными при выполнении запроса associate.

2.3.2. Ответы

HTTP код Описание Схема

200

OK

401

Запрос не авторизован

Без содержимого

403

У пользователя недостаточно прав

Без содержимого

2.4. Отправка документа на фискализацию

POST /fn/v2/doc

2.4.1. Описание

Запрос выполняется с логином/паролем, полученными при выполнении запроса associate.

2.4.2. Параметры

Тип Имя Описание Схема

Body

Тело запроса
обязательно

Данные документа

2.4.3. Ответы

HTTP код Описание Схема

200

OK

400

Некорректный запрос

Без содержимого

401

Запрос не авторизован

Без содержимого

403

У пользователя недостаточно прав

Без содержимого

2.4.4. Пример запроса

POST https://my.modulkassa.ru/api/fn/v2/doc
Тело запроса
{
  "id" : "4f4c789c-3863-41d3-aea9-c35b5a9e7f18",
  "docNum" : "SALE-12345",
  "docType" : "SALE",
  "checkoutDateTime" : "2020-02-26T06:41:04+07:00",
  "email": "client@myshop.ru",
  "cashierName": "Иванова А.А.",
  "cashierInn": "0123456789",
  "cashierPosition": "Кассир",
  "taxMode": "COMMON",
  "textToPrint": "Текст для печати на чеке",
  "clientName": "Заказчик",
  "clientInn": "9876543210",
  "inventPositions" : [ {
    "barcode" : "123456789",
    "name" : "Товар 1",
    "description" : "Описание товара",
    "paymentObject" : "service",
    "paymentMethod" : "partial_payment",
    "price" : 100.00,
    "quantity" : 1.0,
    "vatTag" : 1102,
    "customsDeclarationNumber" : "123456",
    "originCountryCode" : "643",
    "supplierInfo": {
      "phones": ["+79999999999"],
      "name": "Название организации поставщика",
      "inn": "8233362424"
    }
  }, {
    "inventCode" : "GOOD-124",
    "barcode" : "987654321",
    "name" : "Товар 2",
    "paymentObject" : "commodity",
    "paymentMethod" : "full_payment",
    "price" : 100.00,
    "vatTag" : 1102,
    "quantity" : 1.0
  } ],
  "moneyPositions": [ {
    "paymentType": "CASH",
    "sum": 200.00
  } ],
  "responseURL" : "https://your-callback-service.com/complete-doc?id=1",
  "agentInfo": {
    "types": [
      "another"
    ],
    "payingAgent": {
      "operation": "Наименование операции",
      "phones": ["+79999999999"]
    },
    "receivePaymentsOperator": {
      "phones": ["+79999999999"]
    },
    "moneyTransferOperator": {
      "phones": ["+79999999999"],
      "name": "Наименование оператора перевода",
      "address": "г. Москва, ул. Пушкина, д. 1",
      "inn": "8233362424"
    }
  }
}
Тело ответа
{
  "status": "COMPLETED",
  "fnState": "READY",
  "fiscalInfo" : {
        "shiftNumber": 29,
        "checkNumber": 77,
        "kktNumber": "99921192",
        "fnNumber": "92",
        "fnDocNumber": 46,
        "fnDocMark": 92,
        "date": "2020-02-26T00:31:19.000+0000",
        "sum": "57.00",
        "checkType": "SALE",
        "qr": "t=20200226T073119&s=57.00&fn=92&i=0000000046&fp=92&n=1"
    },
  "failureInfo": null,
  "message": "Document queued for printing",
  "timeStatusChanged": "2020-02-26T07:32:19+07:00"
}

2.4.5. Проведение продажи

Касса с периодичностью в 5 секунд опрашивает сервер фискализации о наличии документов для фискализации.
Если такой документ есть, сервер передает его кассе и ставит документу статус PENDING.
Получив документ, сервис выполняет проведение продажи/возврата и его фискализацию через фискальный регистратор в порядке очереди размещения документов, то есть самый старший документ в списке будет обработан самым первым.
Фискализация проводится по возможности без применения печати на бумажном чеке, статус выполнения каждой задачи регистрируется отдельно и отсылается на сервер фискализации.

2.4.6. Отправка сообщения об успешной операции в Интернет-магазин

Интернет-магазин, если нужно, может указать о необходимости сообщить ему результат фискализации по конкретному документу (установить параметр responseURL в документе), иначе ему придется опрашивать сервер фискализации с какой-либо периодичностью для отслеживания статуса документа.

2.5. Получение статуса документа

GET /fn/v1/doc/{id}/status

2.5.1. Описание

Запрос выполняется с логином/паролем, полученными при выполнении запроса associate.

2.5.2. Параметры

Тип Имя Описание Схема

Path

id
обязательно

ID документа

string

2.5.3. Ответы

HTTP код Описание Схема

200

OK

400

Некорректный запрос

Без содержимого

401

Запрос не авторизован

Без содержимого

403

У пользователя недостаточно прав

Без содержимого

2.5.4. Пример запроса

GET https://my.modulkassa.ru/api/fn/v1/doc/12345678-90ab-cdef-1234-000000000000/status
Тело ответа
{
  "status": "QUEUED",
  "fnState": "READY",
  "fiscalInfo": null,
  "failureInfo": null,
  "message": "Document queued for printing",
  "timeStatusChanged": "2019-09-16T14:01:08+00:00"
}

2.6. Повторное проведение документа

PUT /fn/v1/doc/{id}/re-queue

2.6.1. Описание

Возможность перепровести документ со статусом FAILED (ошибка). Запрос выполняется с логином/паролем, полученными при выполнении запроса associate.

2.6.2. Параметры

Тип Имя Описание Схема

Path

id
обязательно

ID документа

string

2.6.3. Ответы

HTTP код Описание Схема

200

OK

400

Некорректный запрос

Без содержимого

401

Запрос не авторизован

Без содержимого

403

У пользователя недостаточно прав

Без содержимого

3. Модель данных

3.1. RetailPointAssociation

Имя Описание Схема

userName
необязательно

Имя пользователя

string

password
необязательно

Пароль

string

name
необязательно

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

string

address
необязательно

Адрес точки продаж

string

3.2. FNStatus

Имя Описание Схема

status
обязательно

Статус сервиса фискализации:

  • READY - соединение с фискальным накопителем установлено, состояние позволяет фискализировать чеки
  • ASSOCIATED - клиент успешно связан с розничной точкой, но касса еще ни разу не вышла на связь и не сообщила свое состояние
  • FAILED - проблемы получения статуса фискального накопителя. Этот статус не препятствует добавлению документов для фискализации. Все документы будут добавлены в очередь на сервере и дождутся момента, когда касса будет в состоянии их фискализировать.
  • DISABLED - фискализация отключена для кассы

enum (ASSOCIATED, READY, DISABLED, FAILED)

dateTime
необязательно

Дата установки статуса. Если касса длительное время не присылала состояние ФН, это может сигнализировать о наличии у нее каких-то проблем (нет связи с сервером, удалили приложение МодульКасса). Клиент должен проверять дату статуса, если дата последней установки статуса отстает на продолжительное время, сигнализировать в службу поддержки.
Пример : "2019-09-17T03:31:56+00:00"

string (date-time)

3.3. Document

Имя Описание Схема

id
обязательно

ID документа по внешней системе
Пример : "4f4c789c-3863-41d3-aea9-c35b5a9e7f18"

string

docNum
обязательно

Номер документа
Пример : "DOC-12345"

string

documentType
необязательно

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

  • SALE - Продажа
  • RETURN - Возврат
  • BUY - Расход
  • BUY_RETURN - Возврат расхода

enum (SALE, RETURN, BUY, BUY_RETURN)

checkoutDateTime
обязательно

Время создания документа на оплату
Пример : "2019-09-18T14:41:04+07:00"

string (date-time)

printReceipt
необязательно

Печатать ли бумажный чек на кассе при фискализации
По умолчанию : false

boolean

textToPrint
необязательно

Текст для печати на кассе
Максимальная длина : 3000

string

cashierName
необязательно

Комментарий для печати на чеке был изменён
Максимальная длина : 64
Пример : "false"

string

cashierInn
необязательно

Валидный ИНН кассира

string

cashierPosition
необязательно

Должность кассира
Максимальная длина : 64

string

email
обязательно

Адрес электронной почты или телефон покупателя
Допустимы символы для адреса электронной почты.
Номер телефона в формате +7<10 цифр>

Пример : "+71234567890"

string

responseURL
необязательно

URL для подтверждения успешной фискализации на стороне Интернет-магазина
Пример : "https://your-callback-service.com/complete-doc?id=1"

string

taxMode
необязательно

Режим налогообложения:

  • COMMON - ОСН
  • SIMPLIFIED - УСН-Д
  • SIMPLIFIED_WITH_EXPENSE - УСН-ДР
  • ENVD - ЕНВД
  • COMMON_AGRICULTURAL - ЕСХН
  • PATENT - ПСН
По умолчанию значение берется из настроек точки продаж

enum (COMMON, SIMPLIFIED, SIMPLIFIED_WITH_EXPENSE, ENVD, COMMON_AGRICULTURAL, PATENT)

clientName
необязательно

Наименование организации или ФИО клиента, серия и номер паспорта покупателя (клиента)
Пример : "ООО Ромашка"

string

clientInn
необязательно

Валидный ИНН организации или покупателя (клиента)

string

inventPositions
обязательно

Позиции документа

< InventPosition > array

moneyPositions
обязательно

Список оплат

< MoneyPosition > array

agentInfo
необязательно

Атрибуты агента

3.4. MoneyPosition

Имя Описание Схема

paymentType
обязательно

Тип оплаты:

  • CARD - безналичная оплата
  • CASH - оплата наличными
  • PREPAID - предварительная оплата (зачет аванса и (или) предыдущих платежей)
  • POSTPAY - постоплата (кредит)
  • OTHER - иная форма оплаты

enum (CARD, CASH, PREPAID, POSTPAY, OTHER)

sum
обязательно

Сумма оплаты
Минимальное значение : 0

number

3.5. InventPosition

Имя Описание Схема

inventCode
необязательно

Код товара

string

barcode
необязательно

Штрихкод товара

string

name
обязательно

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

string

price
обязательно

Цена за единицу товара
Минимальное значение : 0

number

quantity
обязательно

Количество единиц товара
Минимальное значение (исключение) : 0

number

discSum
необязательно

Сумма скидки, примененной на позицию
Минимальное значение : 0

number

originCountryCode
необязательно

Код страны происхождения товара (из ОКСМ)
Шаблон : "^\\d{1,3}$"
Пример : "112"

string

customsDeclarationNumber
необязательно

Номер таможенной декларации

string

vatTag
обязательно

Признак налогообложения:

  • 1102 - 20%
  • 1103 - 10%
  • 1104 - 0%
  • 1105 - Без НДС
  • 1106 - 20/120
  • 1107 - 10/110

integer (int32)

vatSum
необязательно

Сумма НДС за предмет расчета
Минимальное значение : 0

number

paymentObject
необязательно

Предмет расчета. Список доступных значений:

  • commodity - товар
  • excise - подакцизный товар
  • job - работа
  • service - услуга
  • gambling_bet - ставка азартной игры
  • gambling_prize - выигрыш азартной игры
  • lottery - лотерейный билет
  • lottery_prize - выигрыш лотереи
  • intellectual_activity - предоставление результатов интеллектуальной деятельности
  • payment - платеж
  • agent_commission - агентское вознаграждение
  • composite - составной предмет расчета
  • another - иной предмет расчета
  • property_right - имущественное право
  • non-operating_gain - внереализационный доход
  • insurance_premium - страховые взносы
  • sales_tax - торговый сбор
  • resort_fee - курортный сбор

По умолчанию : "commodity"

enum (commodity, excise, job, service, gambling_bet, gambling_prize, lottery, lottery_prize, intellectual_activity, payment, agent_commission, composite, another, property_right, non-operating_gain, insurance_premium, sales_tax, resort_fee)

paymentMethod
необязательно

Признак расчета. Список доступных значений:

  • full_prepayment - предоплата 100%. Полная предварительная оплата до момента передачи предмета расчета
  • prepayment - предоплата. Частичная предварительная оплата до момента передачи предмета расчета
  • advance - аванс
  • full_payment - полный расчет. Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета
  • partial_payment - частичный расчет и кредит. Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит
  • credit - передача в кредит. Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит
  • credit_payment - оплата кредита. Оплата предмета расчета после его передачи с оплатой в кредит (оплата кредита)

По умолчанию : "full_payment"

enum (full_prepayment, prepayment, advance, full_payment, partial_payment, credit, credit_payment)

nomenclatureCode
необязательно

Код товара в шестнадцатеричном представлении с пробелами. Максимальная длина – 32 байта.
Пример : "00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00"

string

productMark
необязательно

Товарная марка
Максимальная длина : 255

string

agentInfo
необязательно

Атрибуты агента

supplierInfo
необязательно

Атрибуты поставщика

3.6. AgentInformation

Имя Описание Схема

types
необязательно

Признак агента по предмету расчёта (ограничен агентами, введенными в ККТ при фискализации). Возможные значения:

  • bank_paying_agent - банковский платежный агент. Оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным агентом.
  • bank_paying_subagent - банковский платежный субагент. Оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным субагентом.
  • paying_agent - платежный агент. Оказание услуг покупателю (клиенту) пользователем, являющимся платежным агентом.
  • paying_subagent - платежный субагент. Оказание услуг покупателю (клиенту) пользователем, являющимся платежным субагентом.
  • attorney - поверенный. Осуществление расчета с покупателем (клиентом) пользователем, являющимся поверенным.
  • commission_agent - комиссионер. Осуществление расчета с покупателем (клиентом) пользователем, являющимся комиссионером.
  • another - другой тип агента. Осуществление расчета с покупателем (клиентом) пользователем, являющимся агентом и не являющимся банковским платежным агентом (субагентом), платежным агентом (субагентом), поверенным, комиссионером.

< enum (bank_paying_agent, bank_paying_subagent, paying_agent, paying_subagent, attorney, commission_agent, another) > array

payingAgent
необязательно

Атрибуты платежного агента

receivePaymentsOperator
необязательно

Атрибуты оператора по приему платежей

moneyTransferOperator
необязательно

Атрибуты оператора перевода

3.7. PayingAgent

Имя Описание Схема

operation
необязательно

Наименование операции
Максимальная длина : 24

string

phones
необязательно

Телефоны платежного агента. Номер телефона необходимо передать вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+». Если номер телефон начинается с символа «+», то максимальная длина одного элемента массива – 19 символов.

< string > array

3.8. ReceivePaymentsOperator

Имя Описание Схема

phones
необязательно

Телефоны оператора по приему платежей. Номер телефона необходимо передать вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+». Если номер телефон начинается с символа «+», то максимальная длина одного элемента массива – 19 символов.

< string > array

3.9. MoneyTransferOperator

Имя Описание Схема

phones
необязательно

Телефоны оператора по приему платежей. Номер телефона необходимо передать вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+». Если номер телефон начинается с символа «+», то максимальная длина одного элемента массива – 19 символов.

< string > array

3.10. SupplierInformation

Имя Описание Схема

phones
необязательно

Телефоны поставщика. Номер телефона необходимо передать вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+». Если номер телефон начинается с символа «+», то максимальная длина одного элемента массива – 19 символов.

< string > array

name
необязательно

Наименование поставщика
Пример : "ООО Ромашка"

string

inn
необязательно

ИНН поставщика
Пример : "500100732259"

string

3.11. DocumentStatus

Имя Описание Схема

status
обязательно

Статус документа:

  • QUEUED - документ находится в очереди на фискализацию
  • PENDING - документ получен кассой и обрабатывается
  • PRINTED - документ распечатан кассой
  • WAIT_FOR_CALLBACK - ожидание отправки уведомления о проведении документа (если указан responseURL)
  • COMPLETED - документ успешно фискализирован
  • FAILED - ошибка обработки документа
  • REQUEUED - документ повторно поставлен в очередь

enum (QUEUED, PENDING, PRINTED, WAIT_FOR_CALLBACK, COMPLETED, FAILED, REQUEUED)

fnState
необязательно

Статус сервиса фискализации:

  • READY - соединение с фискальным накопителем установлено, состояние позволяет фискализировать чеки
  • ASSOCIATED - клиент успешно связан с розничной точкой, но касса еще ни разу не вышла на связь и не сообщила свое состояние
  • FAILED - проблемы получения статуса фискального накопителя. Этот статус не препятствует добавлению документов для фискализации. Все документы будут добавлены в очередь на сервере и дождутся момента, когда касса будет в состоянии их фискализировать.
  • DISABLED - фискализация отключена для кассы

enum (ASSOCIATED, READY, DISABLED, FAILED)

fiscalInfo
необязательно

Фискальная информация чека

failureInfo
необязательно

Информация об ошибке

message
необязательно

Результат фискализации документа / сообщение об ошибке
Пример : "Document successfully completed with callback"

string

timeStatusChanged
необязательно

Время последнего изменения статуса документа
Пример : "2019-09-18T14:41:04+00:00"

string (date-time)

3.12. FiscalInfo

Имя Описание Схема

shiftNumber
необязательно

Номер смены в фискальном накопителе
Пример : 10

integer (int32)

checkNumber
необязательно

Номер документа в фискальном накопителе
Пример : 10

integer (int32)

kktNumber
необязательно

Заводской номер ККТ
Пример : "199036001576"

string

fnNumber
необязательно

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

string

fnDocNumber
необязательно

Номер документа в фискальном накопителе (ФД)
Пример : 63

integer (int32)

fnDocMark
необязательно

Фискальный признак документа (ФПД)
Пример : 3705514822

integer (int64)

date
необязательно

Дата и время фискализации документа
Пример : "2019-09-18T14:41:04+00:00"

string (date-time)

sum
необязательно

Сумма документа
Пример : 100.0

number

checkType
необязательно

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

enum (SALE, RETURN, PURCHASE, RETURN_PURCHASE, SALE_CORRECTION, RETURN_CORRECTION, PURCHASE_CORRECTION, RETURN_PURCHASE_CORRECTION)

qr
необязательно

Содержимое QR кода (печатается на кассе)

string

ecrRegistrationNumber
необязательно

Заводской номер ККТ
Пример : "199036001576"

string

3.13. FailureInfo

Ошибка фискализации документа

Имя Описание Схема

type
обязательно

Тип ошибки

enum (FN_MEMORY_OVERFLOW, FN_EXPIRED, FN_GENERIC_FAILURE, NON_FN_FAILURE)

message
обязательно

Сообщение об ошибке

string