62 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое api проверка чеков в фнс россии

OtherMedia

Информация должна принадлежать людям

Универсальный API для получения информации по чекам

В данной статье хотелось бы рассказать про API для получения чеков, которое нам не предоставила всеми любимая ФНС.

Когда только появились QR-коды на чеках я подумал «Вау, как круто! Ты сканируешь код и видишь если не всю инфу по чеку, то ссылку на него». И какого же было мое разочарование, когда просканировав такой код я увидел что-то вроде

Но расстраиваться я не стал и подумал, что ФНС позаботилась о нас и предоставила API для получения такой информации. Погуглив некоторое время я понял, что ФНС нам предоставила только мобильное приложение для проверки чека и просмотра той информации, что поступила к ним от магазина.

Но! Между магазином и налоговой имеется ещё одно звено — ОФД — те, кто обрабатывают информацию по чекам, полученную от магазинов, и отправляют в налоговую. Вот они то и предоставляют API для получения нужной нам информации. Не все. И не всегда бесплатно.

Судя по информации из википедии по состоянию на 1 марта 2018 зарегистрировано 17 ОФД. Допустим 10 из них предоставляют открытое и бесплатное API. Учитывая то, что мы не знаем с каким ОФД работает конкретный магазин, нужно будет пройтись по API 10 операторов фискальных данных. Далеко не лучший вариант.

Спустя какое-то время, я случайно наткнулся на приложение (не от ФНС), которое по QR-коду с чека получает информацию по чеку. Не будут же они «пробегать» по всем ОФД и собирать оттуда информацию — подумал я. Снова отправился в гугл и наткнулся на такой ответ.

Казалось, после этого ответа можно заканчивать импровизированное расследование, но у меня оставались ещё вопросы:

  • Что будет, если использовать другие заголовки?
  • Что делать, если пользователь не зарегистрирован? Скачивать мобильное приложение и регистрироваться? (Сайт ФНС не предоставляет возможности зарегистрироваться в этом контексте)
  • А если забыл пароль?

Запустив Android Device Monitor и SoapUI я начал разбираться. Выкладываю здесь всю обобщенную информацию, что удалось получить. ФНС предоставляет следующее публичное API:

Все параметры обязательные.

Если результат успешен, то пользователь создается, СМС с паролем отправляется на указанный номер, а в ответ возвращается 204 No content.

Если пользователь уже существует, то возвращается 409 Conflict и сообщение «user exists».
Если номер телефона некорректный, то возвращается 500 Internal Server Error и сообщение «failed with code 20101».

Если адрес электронной почты некорректный, то возвращается 400 Bad Request и сообщение «[«Object didn’t pass validation for format email: »]».
Если адрес электронной почты уже используется, а телефон нет, то ошибок не возникает и регистрация проходит успешно.

В заголовке передается Pre-emptive Basic Authorization, где в качестве username передается номер телефона, в виде «+79991234567», а в качестве пароля — код, полученный в смс при регистрации или восстановлении пароля.

Если все хорошо, то вернется 200 OK и сообщение в виде json

Если указать некорректный номер телефона или пароль, то вернется 403 Forbidden и сообщение «the user was not found or the specified password was not correct».

Если не указать номер телефона и/или пароль, то не вернется ничего.

Если номер телефона найден, то возвращается 204 No Content и на телефон приходит СМС с новым паролем.

Если номер телефона не найден или номер некорректный, то возвращается 404 Not Found и сообщение «the user was not found».

  • Номер ФН (Фискальный Номер) — 16-значный номер. Например 8710000100518392
  • Номер ФД (Фискальный документ) — до 10 знаков. Например 54812
  • Номер ФПД (Фискальный Признак Документа, также известный как ФП) — до 10 знаков. Например 3522207165
  • (Мои догадки) В качестве единицы используется параметр с QR-кода в чеке, помеченный в начале статьи, как n=1
  • Дата — дата с чека. Формат может отличаться. Я пробовал переворачивать дату (т.е. 17-05-2018), ставить вместо Т пробел, удалять секунды
  • Сумма — сумма с чека в копейках

Если чек найден, то вернется 204 No Content.
Если чек не найден, то вернется 406 Not Acceptable.
Если дата/сумма некорректная или не совпадает с датой/суммой, указанной в чеке, то возвращается 406 Not Acceptable. При этом секунды не учитываются.
Если не указать параметр дата/сумма, то возвращается 400 Bad Request и сообщение «[«Missing required property:

  • Номер ФН (Фискальный Номер) — 16-значный номер. Например 8710000100518392
  • Номер ФД (Фискальный документ) — до 10 знаков. Например 54812
  • Номер ФПД (Фискальный Признак Документа, также известный как ФП) — до 10 знаков. Например 3522207165
  • (Мои догадки) В качестве единицы используется параметр с QR-кода в чеке, помеченный в начале статьи, как n=1

Также обязательно указать хотя бы пустые заголовки device-id и device-os
Если указаны некорректные данные пользователя, то возвращается 403 Forbidden и сообщение «the user was not found or the specified password was not correct».

Если не указать номер телефона и/или пароль, то ничего не вернется.

Если чек не найден, то возвращается 406 Not Acceptable. Также чек может быть не найден, если он был получен достаточно давно. ФНС не хранит информацию по чекам за все время. На момент написания этой статьи ФНС хранила детальную информацию порядка 2-3 месяцев.

Если перед вызовом данного метода не происходила проверка существования чека, то вернется 202 Accepted (без сообщений и любого содержимого). При повторном вызове информация по чеку вернется.

Если в параметре «sendToEmail» попытаться подставить значение «yes», то вернется 500 Internal Server Error и сообщение «connect ECONNREFUSED 127.0.0.1:465». При попытке подставить другие значения («true», 1 и т.д.) вернется 400 Bad Request и сообщение «[«No enum match for: »]».

Если всё хорошо, то вернется 200 ОК и содержимое в формате json примерно такого вида:

  • все суммы указаны в копейках
  • данные кассира в разных магазинах имеют разные форматы (в одном случае может вернуться «Фамилия Имя», в другом «Фамилия И. должность»
  • порядок элементов может меняться
  • разные магазины используют разные наборы параметров и, если какой-то параметр возвращается в чеке от одного магазина, то не факт, что этот параметр будет в чеке от другого магазина
  • формат адреса магазина может различаться

Особого смысла в логине я не вижу, но он используется в их мобильном приложении. Возможно, в дальнейшем он для чего-нибудь пригодится.

Кому интересен пример реализации подключения к этому API, вот ссылка на гитхаб проект библиотеки, написанной на C#.

По всем вопросам или замечаниям прошу в комментарии.

UPD После небольшой проверки выяснилось, что ФНС не хранит детальную информацию по всем чекам. По крайней мере у меня 22.05.2018 не удалось получить полный чек от декабря 2017, января и февраля 2018, при том, что у ОФД эта информация имеется и мобильное приложение ФНС сообщает, что чек корректен. За март 2018 чек получить уже удалось.

Читать еще:  Заполнение платёжного поручения онлайн на сайте фнс

ОФД для онлайн-касс: как работают, как выбрать и сколько стоит договор

Что такое ОФД, и какие услуги оказывают операторы фискальных данных, как выбрать лучшего оператора и подключиться к ОФД. Об этом и многом другом в нашей статье.

О чем вы узнаете:

База знаний для директора магазина

Более 100 инструкций, практических рекомендаций и готовых решений в одном месте — базе знаний директора магазина.

Что такое ОФД

ОФД – это юридическое лицо, которое ведет прием, обработку, хранение и передачу фискальных данных (чеков, коррекций, отчетов) в налоговую службу. ОФД работает в соответствии с 54-ФЗ «О применении контрольно-кассовой техники при осуществлении наличных денежных расчетов и (или) расчетов с использованием электронных средств платежа».

У ОФД есть свой центр обработки данных, и осуществлять деятельность он может только после получения от ФСБ лицензии на работу с шифровальными данными.

На сайте Федеральной налоговой службы размещен список зарегистрированных ОФД. Однако он может меняться.

Функции ОФД

Основная функция и задача ОФД – отправка данных фискальных документов в налоговую и хранение этой информации на своих серверах. Например, именно на сайт оператора фискальных данных будет вести ссылка на электронный чек, которая придет клиенту на почту или по смс.

Современные ОФД предоставляют и сопутствующие услуги:

  • обработка и формирование отчетов о работе бизнеса для владельца кассового аппарата;
  • аренда онлайн-кассы для приема платежей на сайте;
  • возможность отправлять клиентам смс с ссылками на электронные чеки;
  • отправка в налоговую информации о состоянии кассы (например, через ОФД можно оформить регистрацию ККТ).

Онлайн-касса «под ключ»

  • Поставка контрольно-кассовой техники
  • Регистрация в ФНС и ОФД
  • Подключение и настройка оборудования и программ
  • Сделаем все за вас
  • Проконсультируем по 54-ФЗ

Как работает ОФД

  1. Например, покупатель приходит в магазин за пачкой чая. На кассе продавец сканирует штрих-код с упаковки товара (или пробивает стоимость вручную).
  2. Покупатель получает чек, а пожеланию – его электронную копию на электронную почту или смартфон.
  3. Фискальный накопитель, установленный внутри ККТ, сохраняет и подписывает чек фискальным признаком. После накопитель формирует и передает данные о покупке на сервер оператора фискальных данных.
  4. ОФД формирует ответный фискальный признак и отправляет подписанную квитанцию обратно в ККТ. Регистрация чека по новым требованиям завершается после регистрации квитанции фискальным накопителем.
  5. Оператор фискальных данных отправляет сведения о покупке и расчетах в налоговую службу.
  6. На новых чеках печатают QR-коды и ссылки. Покупатель может отсканировать QR-код камерой смартфона с помощью специального приложения или перейти по ссылке. Так он может проверить соответствие зарегистрированного в ОФД чека – бумажному.
  7. При обнаружении разногласий покупатель имеет право оформить жалобу на магазин.

Совместимость форматов фискальных данных для разных ККТ, ФН и ОФД

Фискальные документы. Приказ ФНС от 21.03.2017

  • Отчет о регистрации ККТ
  • Отчет о перерегистрации ККТ
  • Отчет об открытии смены
  • Отчет о текущем состоянии расчетов
  • Отчет о закрытии смены
  • Отчет о закрытии архива ФН
  • Кассовый чек
  • Кассовый чек коррекции
  • Подтверждение оператора

Операторы фискальных данных – список организаций

Наименование оператора фискальных данных

Логотип

ИНН

Адрес сайта, номер телефона

Дата выдачи разрешения на обработку фискальных данных

Акционерное общество «Энергетические системы и коммуникации»

Приказ ФНС России от 31.08.2016 № ЕД-7-20/468@

Общество с ограниченной ответственностью «Такском»

Приказ ФНС России от 31.08.2016 № ЕД-7-20/468@

Общество с ограниченной ответственностью «Эвотор ОФД»

Приказ ФНС России от 31.08.2016 № ЕД-7-20/468@

Общество с ограниченной ответственностью «Ярус»

Приказ ФНС России от 31.08.2016 № ЕД-7-20/468@

Общество с ограниченной ответственностью «ПЕТЕР-СЕРВИС Спецтехнологии»

Приказ ФНС России от 18.10.2016 № ЕД-7-20/565@

Общество с ограниченной ответственностью «Яндекс.ОФД»

Приказ ФНС России от 10.04.2017 № ЕД-6-20/20@

Общество с ограниченной ответственностью «Электронный экспресс»

Приказ ФНС России от 14.04.2017 № ЕД-7-20/312@

Закрытое акционерное общество «КАЛУГА АСТРАЛ»

Приказ ФНС России от 14.04.2017 № ЕД-7-20/313@

Общества с ограниченной ответственностью «Компания «Тензор»

Приказ ФНС России от 14.04.2017 № ЕД-7-20/314@

Общества с ограниченной ответственностью «КОРУС Консалтинг СНГ»

Приказ ФНС России от 12.05.2017 № АС-7-20/441@

Закрытое акционерное общество «Производственная фирма «СКБ Контур»

Приказ ФНС России от 29.06.2017 № ЕД-7-20/525@

Акционерное общество «Тандер»

Приказ ФНС России от 11.07.2017 № ЕД-7-20/543@

Общество с ограниченной ответственностью Удостоверяющий центр «ИнитПро»

Приказ ФНС России от 12.09.2017 № ЕД-7-20/720@

Общество с ограниченной ответственностью «ГРУППА ЭЛЕМЕНТ»

Приказ ФНС России от 12.09.2017 № ЕД-7-20/721@

Акционерное общество «Энвижн Груп»

Приказ ФНС России от 06.12.2017 № ЕД-7-20/1023@

Публичное акционерное общество «Вымпел-Коммуникации»

Приказ ФНС России от 26.12.2017 № ЕД-7-20/1091@

Общество с ограниченной ответственностью «МультиКарта»

Приказ ФНС России от 12.02.2018 № ЕД-7-20/86@

Общество с ограниченной ответственностью «Дримкас»

Приказ ФНС России от 05.04.2018 № АС-7-20/193@

Общество с ограниченной ответственностью «Контур НТТ»

Приказ ФНС России от 11.07.2018 № ЕД-7-20/443@

Общество с ограниченной ответственностью «Оператор фискальных данных «Онлайн»

Приказ ФНС России от 26.12.2018 № ЕД-7-20/843@

Акционерное общество «Информационный центр»

Приказ ФНС России от 22.03.2019 № ЕД-7-20/150@

Стоимость услуг ОФД

Все операторы фискальных данных предоставляют услуги за одинаковую стоимость базового тарифа по договору обработки фискальных данных – 3 000 рублей (с учетом НДС и при единовременной оплате) за годовое обслуживание одной кассы.

Однако на этом пункте расходов можно сэкономить. Например, при покупке комплекта кассы в Бизнес.Ру договор с ОФД на 12 месяцев обойдется всего лишь в 2000 рублей. А если вы владелец интернет-магазина, то получите договор с ОФД на год бесплатно при аренде онлайн-кассы в Бизнес.Ру. Подробности можно узнать по телефону 8 800 511 90 63.

Бонусом в выборе ОФД будет наличие дополнительных услуг, включенных в стоимость. Например, консультации и тренинги на начальном этапе работы.

При выборе ОФД ориентируйтесь не только на основные параметры, но и на дополнительные услуги.

Как выбрать ОФД

В соответствии с 54-ФЗ, чтобы получить лицензию на деятельность, оператор фискальных данных должен пройти проверку специальной экспертной организацией. Закон предъявляет одинаковые требования ко всем ОФД:

  • Должен состоять в реестре операторов.
  • Должен иметь разрешение на обработку фискальных данных, которое содержит: полное наименование ОФД, идентификационный номер налогоплательщика и адрес сайта ОФД, дату выдачи разрешения.
  • Должен иметь в собственности или в аренде объекты недвижимости, находящиеся на территории РФ и в которых находятся технические средства для обработки фискальных данных. Также ОФД должен владеть средствами формирования фискального признака и проверки фискального признака.
  • Должен обладать технической базой, которая позволит обрабатывать и хранить большой объем электронной информации без перебоев.
  • ПО ОФД должно быть совместимо со всеми моделями ККТ и фискальных накопителей.
  • Должен иметь лицензию Роскомнадзора на предоставление услуг связи и лицензию ФСТЭК (осуществление деятельности по технической защите конфиденциальных сведений третьих лиц).
  • Должен наладить передачу данных так, чтобы ККТ отправляла данные в налоговую службу без задержек. Кроме того, данные должны быть защищены. Оператор должен иметь опыт разработки систем с большой нагрузкой, работающих бесперебойно.
  • Перед заключением контракта с ОФД уточните, предоставит ли он вам личный кабинет и каким функционалом он будет обладать, сможет ли передавать данные о среднем чеке, аналитику продаж, информацию о выручке, отчеты за разные периоды и т.д.
  • ОФД владеет самой полной информацией о каждом выбитом чеке и, соответственно, о выручке. Узнайте у оператора, сможете ли вы отслеживать нужные данные в личном кабинете в режиме реального времени.
  • Уточните, будет ли доступна в личном кабинете информация об онлайн-кассах, необходимости перерегистрации, окончании срока эксплуатации и исправности.
  • ОФД должен иметь квалифицированную службу техподдержки. По закону, если 30 дней фискальные данные не передавались с кассы в ФНС, налоговики блокируют ККТ и работа торговой точки приостанавливается.
  • Узнайте, возможно ли подключение пакета дополнительных услуг, например, отправки клиентам SMS или электронной почты.
Читать еще:  Состав бухгалтерской отчетности малых предприятий за 2019 - 2020 год

Обратите внимание, что в законе предусмотрена возможность аннулирования у оператора фискальных данных разрешения на обработку фискальных данных. Поэтому постарайтесь выбрать ОФД, который соответствует максимальному количеству перечисленных пунктов. Так вы сможете минимизировать риски в работе с оператором.

ФНС России запущен новый информационный сервис для он-лайн касс

6 Ноября 2018, 8:41

Благодаря созданному ресурсу покупатели смогут планировать семейный бюджет и получать кэшбек за покупки.

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

Сервис позволит покупателю при получении чека он-лайн кассы найти товар с минимальной ценой, купить и получить скидку в виде кэшбека и т.д. При этом, торговые предприятии не смогут работать без кассы, а покупателю будет выгодно получить кассовый чек.

Отмечается, что данные об он-лайн – чеках не становятся общедоступными и никакой конфиденциальной информации не раскрывается.

Условия использования сервиса «API Проверка чеков» размещены по адресу: https://kkt-online.nalog.ru в разделе «О проекте/OpenAPI».

COMPARE_DELETE_URL_TEMPLATE] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=DELETE_FROM_COMPARE_LIST&id=#ID# [BUY_URL_TEMPLATE] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=BUY&id=#ID# [ADD_URL_TEMPLATE] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=ADD2BASKET&id=#ID# [SUBSCRIBE_URL_TEMPLATE] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=SUBSCRIBE_PRODUCT&id=#ID# [COMPARE_URL_TEMPLATE] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=ADD_TO_COMPARE_LIST&id=#ID# [COMPARE_DELETE_URL_TEMPLATE] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=DELETE_FROM_COMPARE_LIST&id=#ID# [CONVERT_CURRENCY] => Array ( ) [CATALOGS] => Array ( ) [MODULES] => Array ( [iblock] => 1 [catalog] => [currency] => [workflow] => ) [PRICES_ALLOW] => Array ( ) [CATALOG] => [CAT_PRICES] => Array ( ) [PRICES] => Array ( ) [PRICE_MATRIX] => [MIN_PRICE] => [ID] => 207569 [

ID] => 207569 [IBLOCK_ID] => 482 [

IBLOCK_ID] => 482 [CODE] => [

CODE] => [XML_ID] => 207569 [

XML_ID] => 207569 [NAME] => ФНС России запущен новый информационный сервис для он-лайн касс [

NAME] => ФНС России запущен новый информационный сервис для он-лайн касс [ACTIVE] => Y [

ACTIVE] => Y [DATE_ACTIVE_FROM] => 06.11.2018 08:41:17 [

DATE_ACTIVE_FROM] => 06.11.2018 08:41:17 [DATE_ACTIVE_TO] => [

DATE_ACTIVE_TO] => [SORT] => 500 [

SORT] => 500 [PREVIEW_TEXT] =>

Благодаря созданному ресурсу покупатели смогут планировать семейный бюджет и получать кэшбек за покупки.

Благодаря созданному ресурсу покупатели смогут планировать семейный бюджет и получать кэшбек за покупки.

PREVIEW_TEXT_TYPE] => html [DETAIL_TEXT] =>

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

Сервис позволит покупателю при получении чека он-лайн кассы найти товар с минимальной ценой, купить и получить скидку в виде кэшбека и т.д. При этом, торговые предприятии не смогут работать без кассы, а покупателю будет выгодно получить кассовый чек.

Отмечается, что данные об он-лайн – чеках не становятся общедоступными и никакой конфиденциальной информации не раскрывается.

Условия использования сервиса «API Проверка чеков» размещены по адресу: https://kkt-online.nalog.ru в разделе «О проекте/OpenAPI».

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

Сервис позволит покупателю при получении чека он-лайн кассы найти товар с минимальной ценой, купить и получить скидку в виде кэшбека и т.д. При этом, торговые предприятии не смогут работать без кассы, а покупателю будет выгодно получить кассовый чек.

Отмечается, что данные об он-лайн – чеках не становятся общедоступными и никакой конфиденциальной информации не раскрывается.

Условия использования сервиса «API Проверка чеков» размещены по адресу: https://kkt-online.nalog.ru в разделе «О проекте/OpenAPI».

DETAIL_TEXT_TYPE] => html [DATE_CREATE] => 06.11.2018 08:42:54 [

DATE_CREATE] => 06.11.2018 08:42:54 [CREATED_BY] => 398 [

CREATED_BY] => 398 [TAGS] => [

TAGS] => [TIMESTAMP_X] => 06.11.2018 08:42:54 [

TIMESTAMP_X] => 06.11.2018 08:42:54 [MODIFIED_BY] => 398 [

MODIFIED_BY] => 398 [IBLOCK_SECTION_ID] => 7155 [

IBLOCK_SECTION_ID] => 7155 [DETAIL_PAGE_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/ [

DETAIL_PAGE_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/ [DETAIL_PICTURE] => Array ( [ID] => 283564 [TIMESTAMP_X] => 06.11.2018 09:42:54 [MODULE_ID] => iblock [HEIGHT] => 330 [WIDTH] => 770 [FILE_SIZE] => 86585 [CONTENT_TYPE] => image/jpeg [SUBDIR] => iblock/435 [FILE_NAME] => skrin_175_1_.jpg [ORIGINAL_NAME] => скрин-175[1].jpg [DESCRIPTION] => [HANDLER_ID] => [EXTERNAL_ID] => 0221c68b4120be18f8369d7cd7ba42b1 [

src] => [SRC] => /upload/iblock/435/skrin_175_1_.jpg [UNSAFE_SRC] => /upload/iblock/435/skrin_175_1_.jpg [SAFE_SRC] => /upload/iblock/435/skrin_175_1_.jpg [ALT] => ФНС России запущен новый информационный сервис для он-лайн касс [TITLE] => ФНС России запущен новый информационный сервис для он-лайн касс ) [

DETAIL_PICTURE] => 283564 [PREVIEW_PICTURE] => [

PREVIEW_PICTURE] => [LIST_PAGE_URL] => /inform/index.php?ID=482 [

LIST_PAGE_URL] => /inform/index.php?ID=482 [LANG_DIR] => / [

LANG_DIR] => / [EXTERNAL_ID] => 207569 [

EXTERNAL_ID] => 207569 [IBLOCK_TYPE_ID] => dop_novosti_komitetov [

IBLOCK_TYPE_ID] => dop_novosti_komitetov [IBLOCK_CODE] => [

IBLOCK_EXTERNAL_ID] => [LID] => s1 [

LID] => s1 [ACTIVE_FROM] => 06.11.2018 08:41:17 [ACTIVE_TO] => [IPROPERTY_VALUES] => Array ( ) [PRODUCT] => Array ( [TYPE] => [AVAILABLE] => [MEASURE] => [VAT_ID] => [VAT_RATE] => [VAT_INCLUDED] => [QUANTITY] => [QUANTITY_TRACE] => [CAN_BUY_ZERO] => [SUBSCRIPTION] => [BUNDLE] => ) [PROPERTIES] => Array ( ) [DISPLAY_PROPERTIES] => Array ( ) [PRODUCT_PROPERTIES] => Array ( ) [PRODUCT_PROPERTIES_FILL] => Array ( ) [OFFERS] => Array ( ) [OFFER_ID_SELECTED] => 0 [ITEM_PRICE_MODE] => [ITEM_PRICES] => Array ( ) [ITEM_QUANTITY_RANGES] => [ITEM_MEASURE_RATIOS] => [ITEM_MEASURE] => Array ( ) [ITEM_MEASURE_RATIO_SELECTED] => [ITEM_QUANTITY_RANGE_SELECTED] => [ITEM_PRICE_SELECTED] => [CAN_BUY] => [EDIT_LINK] => [DELETE_LINK] => [BACKGROUND_IMAGE] => [MORE_PHOTO] => Array ( ) [LINKED_ELEMENTS] => Array ( ) [SECTION] => Array ( [ID] => 7155 [

ID] => 7155 [MODIFIED_BY] => 5 [

MODIFIED_BY] => 5 [CREATED_BY] => 5 [

CREATED_BY] => 5 [IBLOCK_ID] => 482 [

IBLOCK_ID] => 482 [IBLOCK_SECTION_ID] => [

IBLOCK_SECTION_ID] => [ACTIVE] => Y [

ACTIVE] => Y [GLOBAL_ACTIVE] => Y [

GLOBAL_ACTIVE] => Y [SORT] => 500 [

SORT] => 500 [NAME] => Применение ККТ [

NAME] => Применение ККТ [PICTURE] => [

PICTURE] => [LEFT_MARGIN] => 13 [

LEFT_MARGIN] => 13 [RIGHT_MARGIN] => 14 [

RIGHT_MARGIN] => 14 [DEPTH_LEVEL] => 1 [

DEPTH_LEVEL] => 1 [DESCRIPTION] => [

DESCRIPTION] => [DESCRIPTION_TYPE] => text [

DESCRIPTION_TYPE] => text [CODE] => [

Читать еще:  Кризис в 2019 - 20202020 будет еще хуже

SOCNET_GROUP_ID] => [LIST_PAGE_URL] => /inform/index.php?ID=482 [

LIST_PAGE_URL] => /inform/index.php?ID=482 [SECTION_PAGE_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/ [

SECTION_PAGE_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/ [IBLOCK_TYPE_ID] => dop_novosti_komitetov [

IBLOCK_TYPE_ID] => dop_novosti_komitetov [IBLOCK_CODE] => [

EXTERNAL_ID] => [PATH] => Array ( [0] => Array ( [ID] => 7155 [

EXTERNAL_ID] => [IBLOCK_ID] => 482 [

IBLOCK_ID] => 482 [IBLOCK_SECTION_ID] => [

IBLOCK_SECTION_ID] => [SORT] => 500 [

SORT] => 500 [NAME] => Применение ККТ [

NAME] => Применение ККТ [ACTIVE] => Y [

ACTIVE] => Y [DEPTH_LEVEL] => 1 [

DEPTH_LEVEL] => 1 [SECTION_PAGE_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/ [

SECTION_PAGE_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/ [IBLOCK_TYPE_ID] => dop_novosti_komitetov [

IBLOCK_TYPE_ID] => dop_novosti_komitetov [IBLOCK_CODE] => [

IBLOCK_EXTERNAL_ID] => [GLOBAL_ACTIVE] => Y [

BUY_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=BUY&id=207569 [BUY_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=BUY&id=207569 [

ADD_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=ADD2BASKET&id=207569 [ADD_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=ADD2BASKET&id=207569 [

SUBSCRIBE_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=SUBSCRIBE_PRODUCT&id=207569 [SUBSCRIBE_URL] => /current-activity/trade/service/trade/informatsiya/primenenie-kkt/207569/index.php?action=SUBSCRIBE_PRODUCT&id=207569 [CATALOG_MEASURE_NAME] => [

CATALOG_MEASURE_NAME] => [CATALOG_MEASURE_RATIO] => [META_TAGS] => Array ( [TITLE] => ФНС России запущен новый информационный сервис для он-лайн касс [ELEMENT_CHAIN] => ФНС России запущен новый информационный сервис для он-лайн касс [BROWSER_TITLE] => [KEYWORDS] => [DESCRIPTION] => ) [DETAIL_PICTURE_SMALL] => Array ( [src] => /upload/resize_cache/iblock/435/300_129_1/skrin_175_1_.jpg [width] => 300 [height] => 128 [size] => 23531 ) [DISPLAY_ACTIVE_FROM] => 6 Ноября 2018, 8:41 [PATH] => Array ( ) )

Универсальный API для получения информации по чекам

Привет жителям Хабра.

В данной статье хотелось бы рассказать про API для получения чеков, которое нам не предоставила всеми любимая ФНС.

Когда только появились QR-коды на чеках я подумал «Вау, как круто! Ты сканируешь код и видишь если не всю инфу по чеку, то ссылку на него». И какого же было мое разочарование, когда просканировав такой код я увидел что-то вроде
t=20180518T220500&s=975.88&fn=8710000101125654&i=99456&fp=1250448795&n=1
Но расстраиваться я не стал и подумал, что ФНС позаботилась о нас и предоставила API для получения такой информации. Погуглив некоторое время я понял, что ФНС нам предоставила только мобильное приложение для проверки чека и просмотра той информации, что поступила к ним от магазина.

Судя по информации из википедии по состоянию на 1 марта 2018 зарегистрировано 17 ОФД. Допустим 10 из них предоставляют открытое и бесплатное API. Учитывая то, что мы не знаем с каким ОФД работает конкретный магазин, нужно будет пройтись по API 10 операторов фискальных данных. Далеко не лучший вариант.

Спустя какое-то время, я случайно наткнулся на приложение (не от ФНС), которое по QR-коду с чека получает информацию по чеку. Не будут же они «пробегать» по всем ОФД и собирать оттуда информацию — подумал я. Снова отправился в гугл и наткнулся на такой ответ.
Казалось, после этого ответа можно заканчивать импровизированное расследование, но у меня оставались ещё вопросы:

  • Что будет, если использовать другие заголовки?
  • Что делать, если пользователь не зарегистрирован? Скачивать мобильное приложение и регистрироваться? (Сайт ФНС не предоставляет возможности зарегистрироваться в этом контексте)
  • А если забыл пароль?

Запустив Android Device Monitor и SoapUI я начал разбираться. Выкладываю здесь всю обобщенную информацию, что удалось получить. ФНС предоставляет следующее публичное API:

Все параметры обязательные.

Если результат успешен, то пользователь создается, СМС с паролем отправляется на указанный номер, а в ответ возвращается 204 No content.
Если пользователь уже существует, то возвращается 409 Conflict и сообщение «user exists».
Если номер телефона некорректный, то возвращается 500 Internal Server Error и сообщение «failed with code 20101».
Если адрес электронной почты некорректный, то возвращается 400 Bad Request и сообщение «[«Object didn’t pass validation for format email: »]».
Если адрес электронной почты уже используется, а телефон нет, то ошибок не возникает и регистрация проходит успешно.

Если указать некорректный номер телефона или пароль, то вернется 403 Forbidden и сообщение «the user was not found or the specified password was not correct».
Если не указать номер телефона и/или пароль, то не вернется ничего.

Если номер телефона найден, то возвращается 204 No Content и на телефон приходит СМС с новым паролем.
Если номер телефона не найден или номер некорректный, то возвращается 404 Not Found и сообщение «the user was not found».

  • Номер ФН (Фискальный Номер) — 16-значный номер. Например 8710000100518392
  • Номер ФД (Фискальный документ) — до 10 знаков. Например 54812
  • Номер ФПД (Фискальный Признак Документа, также известный как ФП) — до 10 знаков. Например 3522207165
  • (Мои догадки) В качестве единицы используется параметр с QR-кода в чеке, помеченный в начале статьи, как n=1
  • Дата — дата с чека. Формат может отличаться. Я пробовал переворачивать дату (т.е. 17-05-2018), ставить вместо Т пробел, удалять секунды
  • Сумма — сумма с чека в копейках

Если чек найден, то вернется 204 No Content.
Если чек не найден, то вернется 406 Not Acceptable.
Если дата/сумма некорректная или не совпадает с датой/суммой, указанной в чеке, то возвращается 406 Not Acceptable. При этом секунды не учитываются.
Если не указать параметр дата/сумма, то возвращается 400 Bad Request и сообщение «[«Missing required property:

  • Номер ФН (Фискальный Номер) — 16-значный номер. Например 8710000100518392
  • Номер ФД (Фискальный документ) — до 10 знаков. Например 54812
  • Номер ФПД (Фискальный Признак Документа, также известный как ФП) — до 10 знаков. Например 3522207165
  • (Мои догадки) В качестве единицы используется параметр с QR-кода в чеке, помеченный в начале статьи, как n=1

Также обязательно указать хотя бы пустые заголовки device-id и device-os
Если указаны некорректные данные пользователя, то возвращается 403 Forbidden и сообщение «the user was not found or the specified password was not correct».
Если не указать номер телефона и/или пароль, то ничего не вернется.
Если перед вызовом данного метода не происходила проверка существования чека, то вернется 202 Accepted (без сообщений и любого содержимого). При повторном вызове информация по чеку вернется.
Если в параметре «sendToEmail» попытаться подставить значение «yes», то вернется 500 Internal Server Error и сообщение «connect ECONNREFUSED 127.0.0.1:465». При попытке подставить другие значения («true», 1 и т.д.) вернется 400 Bad Request и сообщение «[«No enum match for: »]».
Если всё хорошо, то вернется 200 ОК и содержимое в формате json примерно такого вида:

  • все суммы указаны в копейках
  • данные кассира в разных магазинах имеют разные форматы (в одном случае может вернуться «Фамилия Имя», в другом «Фамилия И. должность»
  • порядок элементов может меняться
  • разные магазины используют разные наборы параметров и, если какой-то параметр возвращается в чеке от одного магазина, то не факт, ачможет не бытьот параметр будет в чеке от другого магазина
  • формат адреса магазина может различаться

Особого смысла в логине я не вижу, но он используется в их мобильном приложении. Возможно, в дальнейшем он для чего-нибудь пригодится.
Кому интересен пример реализации подключения к этому API, вот ссылка на гитхаб проект библиотеки, написанной на C#.
По всем вопросам или замечаниям прошу в комментарии.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector