Описание API (коннектор АТОЛ Онлайн)
Сервис предназначен для удаленной регистрации (фискализации) чеков на арендованных клиентом у Эвотор кассах (ККТ) посредством разработанного клиентского API.
Версия сервиса v5 поддерживает регистрацию чеков формата фискальных данных версии 1.2 (ФФД 1.2) согласно вступившему в силу приказу ФНС России от 14.09.2020 № ЕД-7-20/662@.
Для начала регистрации чеков через API необходимо предварительно пройти процедуру регистрации компании (магазина) и получить учетные данные (логин, пароль, код группы) посредством Личного кабинета Эвотор
Общий алгоритм взаимодействия с сервисом через API
После получения учетных данных необходимо получить токен авторизации используя запрос, описанный в соответствующем разделе.
Для отправки чека на регистрацию в ККТ необходимо воспользоваться POST-запросом. В случае корректного запроса сервис пришлет ответ, содержащий уникальный идентификатор, присвоенный данному документу и статус.
Результат регистрации чека на ККТ может быть получен двумя способами:
В случае, если в запросе на регистрацию был указан
callback_url
, сервис по результатам обработки чека вернет POST запрос на этот URL.В случае, если
callback_url
не был указан или запрос не пришел, клиент самостоятельно может запросить результат обработки чека GET-запросом к сервису, описанному в разделе
Описание методов
Авторизация пользователя
Описание
Для отправки чеков через API необходимо получить авторизационный токен одним из описанных ниже методов.
Авторизационный токен, дает право доступа к системе посредством интеграционного API в течение 24 часов с момента его формирования. Токен должен передаваться в качестве параметра во все методы API сервиса. Максимальная длина токена – 1000 символов.
Если в течение 24 часов с момента запроса токена повторно запросить токен, то вы получите новый токен и время его жизни будет так же 24 часа, либо ранее полученный токен и время его жизни будет 24 часа от момента первого получения клиентом этого токена. Количество одновременно действующих токенов, которые может получить клиент равно количеству реплик сервиса Эвотор, работающих в текущий момент. Рекомендуется запрашивать новый токен только при получении от сервиса ошибки об истечении времени жизни предыдущего токена.
Например, вы запросили повторно токен спустя 10 часов с момента первого запроса. Вы получите новый токен и он будет действовать еще 24 часа, либо ранее выданный токен и он будет действовать 14 часов с момента этого запроса (24 часа с момента его первой выдачи клиенту).
Запрос
Метод POST
https://fiscalization.evotor.ru/possystem/v5/getToken
Заголовок запроса должен содержать параметр:
Content-type: application/json; charset=utf-8
Тело запроса должно содержать документ в формате JSON, соответствующий схеме.
Параметры запроса:
login
: логин из файла настроек интеграции в личном кабинете клиента.pass
: пароль из файла настроек интеграции в личном кабинете клиента.
Метод GET
https://fiscalization.evotor.ru/possystem/v5/getToken?login=<login>&pass=<pass>
Параметры строки запроса:
login
: логин из файла настроек интеграции в личном кабинете клиента.pass
: пароль из файла настроек интеграции в личном кабинете клиента.
Ответ на запрос
Параметры ответа на запрос:
error
: ошибка.error_id
: уникальный идентификатор ошибки;code
: код ошибки;text
: текст ошибки;type
: тип ошибки.
token
: авторизационный токен. Максимальная длина строки – 1000 символов. Возвращается только при отсутствии ошибки.timestamp
: дата и время ответа.
Регистрация документа
Описание
Метод позволяет отправить запрос на формирование чека и отправку его на регистрацию в ККТ.
Запрос
Метод: POST
Авторизационный токен должен быть передан в заголовке запроса:
https://fiscalization.evotor.ru/possystem/v5/<group_code>/<operation>
Заголовок запроса должен содержать параметры:
Content-type: application/json; charset=utf-8
Token: <token>
При технической невозможности передать token в заголовке запроса можно передать параметр в строке запроса:
https://fiscalization.evotor.ru/possystem/v5/<group_code>/<operation>?token=<token>
Параметры заголовка и строки запроса:
group_code
: идентификатор группы ККТ;operation
: тип операции на регистрацию чека, которая должна быть выполнена. Возможные типы операции:sell
: чек «Приход»;buy
: чек «Расход»;sell_refund
: чек «Возврат прихода»;buy_refund
: чек «Возврат расхода»;sell_correction
: чек «Коррекция прихода»;buy_correction
: чек «Коррекция расхода»;sell_refund_correction
: чек «Коррекция возврата прихода»;buy_refund_correction
: чек «Коррекция возврата расхода»;
token
: авторизационный токен.
Пример регистрации чека с операцией «Приход»:
https://fiscalization.evotor.ru/possystem/v5/group1/sell?token=<token>
Тело запроса должно содержать документ в формате JSON, соответствующий схеме.
Тело запроса для чеков прихода и возврат прихода
Описание полей запроса регистрации документа с типом операции «Приход», «Возврат прихода», «Расход», «Возврат расхода» представлено ниже.
Описание полей для тела запроса на регистрацию чека прихода и возврата прихода
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
timestamp | string | да | Дата и время документа внешней системы в формате:
| - |
external_id | string | да | Идентификатор документа внешней системы, уникальный среди всех документов, отправленных одним пользователем. Максимум 128 символов. | - |
service | object | нет | Служебный раздел. См. Описание объекта service | - |
receipt | object | да | Чек. См. описание объекта Чек. | - |
Описание объекта service
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
callback_url | string | нет | URL, на который необходимо ответить после обработки документа. Максимальная длина строки – 256 символов. Корректность заполненного поля определяется по регулярному выражению: | - |
Описание объекта receipt
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
client | object | да | сведения о покупателе (клиенте). См. Описание объекта | - |
company | object | да | См. Описание объекта | - |
items | array of objects | да | Заполняется для каждого добавленного товара. См. Описание объекта | - |
payments | array of objects | да | Оплаты. Ограничение по количеству от 1 до 10. См. Описание объекта | - |
vats | array of objects | нет | Атрибуты налогов на чек. Ограничение по количеству от 1 до 6. Необходимо передать либо сумму налога на позицию, либо сумму налога на чек. Если будет переданы и сумма налога на позицию и сумма налога на чек, сервис учтет только сумму налога на чек. См. Описание объекта | - |
cashier | string | нет | ФИО кассира. Максимальная длина строки – 64 символа. | 1021 |
cashier_inn | string | нет | ИНН кассира. Ровно 12 цифр | 1203 |
string | нет | Дополнительный реквизит чека. Максимальная длина строки – 16 символов. | 1192 | |
total | number | да | Итоговая сумма чека в рублях с заданным округлением:
Значение вычисляется, как сумма всех значений реквизита «стоимость предмета расчета с учетом скидок и наценок» (тег 1043). | 1020 |
object | нет | Дополнительный реквизит пользователя. См. Описание объекта | 1084 | |
sectoral_check_props | array of objects | нет | Включается в состав кассового чека (БСО) в случае, если включение этого отраслевого реквизита кассового чека предусмотрено законодательством Российской Федерации. См. Описание элемента массива объектов sectoral_check_props и sectoral_item_props | 1261 |
Описание объекта client
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
string | обязательно для заполнения хотя бы одно поле из двух: | Электронный адрес покупателя. До 64 символов. Маска: | 1008 | |
phone | string | см. выше | Телефон покупателя. Номер необходимо передать вместе с кодом страны без пробелов и дополнительных символов, кроме символа | 1008 |
name | string | нет | Наименование покупателя (клиента). Максимальная длина строки – 256 символов. | 1227 |
inn | string | нет | ИНН покупателя (клиента). Допустимое количество символов 10 или 12, только цифры. | 1228 |
Описание объекта company
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
string | да | Электронная почта отправителя чека. При передаче ОФД кассового чека (БСО), кассового чека коррекции (БСО коррекции) покупателю (клиенту) в электронной форме указывается адрес электронной почты ОФД. Максимальная длина строки – 64 символа. Маска: | 1117 | |
sno | enum (string) | да | Система налогообложения. Должно принимать одно из значений:
| 1055 |
inn | string | да | ИНН организации. Используется для предотвращения ошибочных регистраций чеков на ККТ зарегистрированных с другим ИНН (сравнивается со значением в ФН). Допустимое количество символов 10 или 12. | 1018 |
payment_address | string | да | Место расчетов. Максимальная длина строки – 256 символов. | 1187 |
Описание объекта items
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
name | string | да | Наименование товара, работы, услуги, платежа, выплаты, иного предмета расчета. Максимальная длина строки – 128 символов. | 1030 |
price | number | да | Цена за единицу товара, работы, услуги, платежа, выплаты, иного предмета расчета с учетом скидок и наценок. Цена в рублях:
Максимальное значение цены – | 1079 |
quantity | number | да | Количество / вес:
Максимальное значение – | 1023 |
measure | enum (number) | да | Единицы измерения количества предмета расчета. Может принимать одно из значений:
| 2108 |
sum | number | да | Сумма в рублях:
Максимальное значение – | 1043 |
payment_method | enum (string) | да | Признак способа расчёта. Возможные значения:
| 1214 |
payment_object | enum (number) | да | Признак предмета расчёта. Должен принимать одно из значений:
| 1212 |
vat | object | да | Атрибуты налога на позицию. См. Описание объекта | - |
excise | number | нет | Сумма акциза в рублях | 1229 |
mark_quantity | object | Нет | Реквизит «дробное количество маркированного товара» (тег 1291) включается в состав реквизита «предмет расчета» (тег 1059) только в случае если расчет осуществляется за маркированный товар и значение реквизита «мера количества предмета расчета» (тег 2108) принимает значение равное «0». См. Описание объекта mark_quantity | 1291 Дробное количество маркированно го товара |
mark_processing_mode | string | нет | Включается в чек в случае, если предметом расчета является товар, подлежащий обязательной маркировке средством идентификации. Должен принимать значение равное | 2102 |
sectoral_item_props | array of objects | нет | Необходимо указывать, если в составе реквизита «предмет расчета» (тег 1059) содержатся сведения о товаре, подлежащем обязательной маркировке средством идентификации и включение указанного реквизита предусмотрено НПА отраслевого регулирования для соответствующей товарной группы. См. Описание объекта sectoral_check_props и sectoral_item_props | 1260 |
mark_code | object | нет | Включается в чек в случае, если предметом расчета является товар, подлежащий обязательной маркировке средством идентификации. См. Описание объекта | 1163 |
agent_info | object | нет | Атрибуты агента. См. Описание объекта | - |
supplier_info | object | если передан | Атрибуты поставщика. См. описание объекта | - |
Описание объекта vat
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
type | enum (string) | да | Устанавливает номер налога в ККТ. Перечисление со значениями:
| 1199 |
sum | number | нет | Сумма налога позиции в рублях:
| 1200 |
Описание объекта mark_quantity
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
numerator | integer | Да | Числитель дробной части предмета расчета Значение реквизита «числитель» (тег 1293) должно быть строго меньше значения реквизита «знаменатель» (тег 1294) не может равняться «0» | 1293 числитель |
denominator | integer | Да | Знаменатель дробной части предмета расчета Заполняется значением, равным количеству товара в партии (упаковке), имеющей общий код маркировки товара. не может равняться «0» | 1294 знаменатель |
Описание объекта mark_code
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
gs1m | string | должен быть передан один из реквизитов | Код товара в формате GS1, нанесенный на товар, подлежащий маркировке средствами идентификации. Максимум 200 символов. Значение реквизита должно формироваться в соответствии с правилами, указанными в Приложении № 2 к приказу ФНС России от 14.09.2020г. № ЕД-7- 20/662@ (Таблица 118) | 1305 КТ GS1.М |
short | string | должен быть передан один из реквизитов | Код товара в формате короткого кода маркировки, нанесенный на товар, подлежащий маркировке средствами идентификации. Максимум 38 символов. Значение реквизита должно формироваться в соответствии с правилами, указанными в Приложении № 2 к приказу ФНС России от 14.09.2020г. № ЕД-7- 20/662@ (Таблица 118) | 1306 КТ КМК |
fur | string | должен быть передан один из реквизитов | Контрольно-идентификационный знак мехового изделия. Ровно 20 символов, должно соответствовать маске СС-ЦЦЦЦЦЦСССССССССС Значение реквизита должно формироваться в соответствии с правилами, указанными в Приложении № 2 к приказу ФНС России от 14.09.2020г. № ЕД-7- 20/662@ (Таблица 118) | 1307 КТ МИ |
Описание объекта agent_info
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
type | enum (string) | да | Признак агента по предмету расчёта (ограничен агентами, введенными в ККТ при фискализации). Возможные значения:
| 1222 |
paying_agent | object | Нет | Атрибуты платежного агента. См. Описание объекта | - |
receive_payments_operator | object | Нет | Атрибуты оператора по приему платежей. См. Описание объекта | - |
money_transfer_operator | object | Нет | Атрибуты оператора перевода. См. Описание объекта | - |
Описание объекта paying_agent
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
operation | string | Нет | Наименование операции банковского платежного агента, банковского платежного субагента. Максимальная длина строки – 24 символа. | 1044 Операция банковского платежного агента |
phones | array of strings | Нет | Номера телефонов платежного агента, платежного субагента, банковского платежного агента, банковского платежного субагента Номер телефона необходимо передать вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+». Если номер телефон начинается с символа «+», то максимальная длина одного элемента массива – 19 символов. Если номер телефона относится к России (префикс «+7»), то значение можно передать без префикса (номер «+7 925 1234567» можно передать как «9251234567»). Максимальная длина одного элемента массива в таком случае – 17 символов. | 1073 Телефон платежного агента |
Описание объекта receive_payments_operator
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
phones | array of strings | Нет | Номера контактных телефонов оператора по приему платежей Номер телефона необходимо передать вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+». Если номер телефон начинается с символа «+», то максимальная длина одного элемента массива – 19 символов. Если номер телефона относится к России (префикс «+7»), то значение можно передать без префикса (номер «+7 925 1234567» можно передать как «9251234567»). Максимальная длина одного элемента массива в таком случае – 17 символов. | 1074 Телефон оператора по приему платежей |
Описание объекта money_transfer_operator
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
phones | array of strings | Нет | Номера телефонов оператора по переводу денежных средств Номер телефона необходимо передать вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+». Если номер телефон начинается с символа «+», то максимальная длина одного элемента массива – 19 символов. Если номер телефона относится к России (префикс «+7»), то значение можно передать без префикса (номер «+7 925 1234567» можно передать как «9251234567»). Максимальная длина одного элемента массива в таком случае – 17 символов. | 1075 Телефон оператора перевода |
name | string | Нет | Наименование оператора перевода. Максимум 64 символа | 1026 Наименовани е оператора перевода |
address | string | Нет | Место нахождения оператора по переводу денежных средств Максимум 256 символов | 1005 Адрес оператора перевода |
inn | string | Нет | ИНН оператора перевода. 10 или 12 цифр | 1016 ИНН оператора перевода |
Описание объекта supplier_info
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
phones | array of strings | нет | Телефоны поставщика. Номер телефона необходимо передать вместе с кодом страны без пробелов и дополнительных символов, кроме символа | 1171 |
name | string | да | Наименование поставщика. Максимум 256 символов | 1225 |
inn | string | да | ИНН поставщика. 10 или 12 цифр | 1226 |
Описание объекта payments
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
type | enum (number) | да | Вид оплаты. Возможные значения:
| 1031, 1081, 1215, 1216, 1217 |
sum | number | да | Сумма к оплате в рублях:
|
Описание объекта vats
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
type | enum (string) | да | Устанавливает номер налога в ККТ. Перечисление со значениями:
| 1102, 1103, 1104, 1105, 1106, 1107 |
sum | number | нет | Сумма к оплате в рублях:
| 1200 |
Описание объекта additional_user_props
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
name | string | да | Наименование дополнительного реквизита пользователя. Максимальная длина строки – 64 символа. | 1085 |
value | string | да | Значение дополнительного реквизита пользователя. Максимальная длина строки – 256 символов. | 1086 |
Описание элемента массива объектов sectoral_check_props и sectoral_item_props
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
federal_id | enum (string) | да | Идентификатор ФОИВ. Должно принимать одно из значений справочника. | 1262 |
date | string | да | Дата нормативного акта федерального органа исполнительной власти, регламентирующего порядок заполнения реквизита «значение отраслевого реквизита» (тег 1265) Значение в формате в формате ДД.ММ.ГГГГ | 1263 |
number | string | да | Номер нормативного акта федерального органа исполнительной власти, регламентирующего порядок заполнения реквизита «значение отраслевого реквизита» (тег 1265) Максимум 32 символа. | 1264 |
value | string | да | Состав значений, определенных нормативного актом федерального органа исполнительной власти Максимум 256 символов. | 1265 |
Тело запроса для чеков коррекции прихода и коррекции возврата прихода
Описание полей для чеков коррекции совпадает с описанием полей для типов операций «Приход», «Возврат прихода», представленными выше. Отличие — объект reciept
заменяется на correction
. Так же добавляется объект correction_info (описание ниже) и поле cashier
— обязательное.
Описание объекта correction_info
Поле | Тип | Обязательное | Описание | Тег ФФД |
---|---|---|---|---|
type | enum | да | Тип коррекции. Возможные значения:
| 1173 |
base_date | string | да | Дата совершения корректируемого расчета в формате: | 1178 |
base_number | string | нет | Номер документа основания для коррекции. Заполняется в случае, если коррекция расчета осуществляется по предписанию налогового органа об устранении выявленного нарушения законодательства Российской Федерации о применении ККТ. Максимум 32 символа | 1179 |
Ответ на запрос
При отсутствии ошибок сервис вернет пакет, содержащий уникальный идентификатор чека, присвоенный сервисом и статус обработки чека.
Способы получения результатов обработки чека по его идентификатору описаны в разделе Получение результата обработки документа.
Тело ответа на запрос регистрации чека
Поле | Тип | Описание |
---|---|---|
uuid | string | Уникальный идентификатор. Максимальная длина строки – 128 символов. Если документ не удалось зарегистрировать, документу не будет присвоен UUID. |
timestamp | string | Дата и время получения запроса в формате:
|
status | enum (string) | Статус. Возможные значения:
|
error | object | См. описание объекта |
Описание объекта error
Поле | Тип | Описание |
---|---|---|
code | integer | Код ошибки. Отображается только при ошибке. |
error_id | string | Уникальный идентификатор ошибки. |
text | string | Текст ошибки (кодировка utf–8). |
type | enum (string) | Тип источника ошибки. Возможные значения:
|
Получение результата обработки документа
Описание
Результат регистрации чека на ККТ может быть получен двумя способами:
В случае, если в запросе на регистрацию был указан
callback_url
, сервис порезультатам обработки чека вернет POST запрос на этот URL.
В случае, если
callback_url
не был указан или запрос не пришел в течение 300 секунд с момента отправки чека, клиент самостоятельно может запроситьрезультат обработки чека GET-запросом к сервису.
Пакет с результатом обработки документа одинаков для обоих способов получения.
Запрос
Метод GET
https://fiscalization.evotor.ru/possystem/v5/<group_code>/report/<uuid>
Заголовок запроса должен содержать параметр:
Token: <token>
При технической невозможности передать token
в заголовке запроса можно передать параметр в строке запроса.
https://fiscalization.evotor.ru/possystem/v5/<group_code>/report/<uuid>?token=<token>
Параметры заголовка и строки запроса:
group_code
: идентификатор группы ККТ;uuid
: уникальный идентификатор, присвоенный документу после выполнения запроса на регистрацию;token
: авторизационный токен.
Ответ на запрос
В ответ возвращается пакет со статусом и реквизитами фискализации или ошибкой.
Тело ответа с результатами обработки чека
Поле | Тип | Описание |
---|---|---|
uuid | string | Уникальный идентификатор. Максимальная длина строки – 128 символов. Если документ не удалось зарегистрировать, документу не будет присвоен UUID. |
timestamp | string | Дата и время документа внешней системы в формате
|
callback_url | string | URL, на который необходимо ответить после обработки документа. |
status | enum (string) | Статус. Возможные значения:
|
group_code | string | Идентификатор группы ККТ. |
daemon_code | string | Наименование сервера. |
device_code | string | Код ККТ. |
external_id | string | Идентификатор документа внешней системы, уникальный среди всех документов, отправленных в данную группу ККТ. |
error | object | Описание ошибки. См. Описание объекта |
payload | object | Реквизиты фискализации документа. |
Описание объекта error
Поле | Тип | Описание |
---|---|---|
error_id | string | Уникальный идентификатор ошибки. |
code | integer | Код ошибки. Отображается только при ошибке. |
text | string | Текст ошибки (кодировка utf–8) |
type | enum (string) | Тип источника ошибки. Возможные значения — только |
Описание объекта payload
Поле | Тип | Описание | Тег ФФД |
---|---|---|---|
shift_number | integer | Номер смены. | 1038 |
receipt_datetime | string | Дата и время документа из ФН. | 1012 |
total | number | Итоговая сумма документа в рублях;
При регистрации в ККТ происходит расчёт фактической суммы: суммирование значений | 1020 |
fn_number | string | Номер ФН. | 1041 |
ecr_registration_number | string | Регистрационный номер ККТ. | 1037 |
fiscal_document_number | integer | Фискальный номер документа. | 1040 |
fiscal_receipt_number | integer | Номер чека в смене | |
fiscal_document_attribute | integer | Фискальный признак документа. | 1077 |
fns_site | string | Адрес сайта ФНС. | 1060 |
ofd_receipt_url | string | URL для просмотра чека на сайте ОФД. Отображается только для чеков, зарегистрированных с помощью | - |
Last updated