Как проверить чек по qr коду
В данной статье хотелось бы рассказать про API для получения чеков, которое нам не предоставила всеми любимая ФНС.
Когда только появились QR-коды на чеках я подумал «Вау, как круто! Ты сканируешь код и видишь если не всю инфу по чеку, то ссылку на него». И какого же было мое разочарование, когда просканировав такой код я увидел что-то вроде
Но расстраиваться я не стал и подумал, что ФНС позаботилась о нас и предоставила API для получения такой информации. Погуглив некоторое время я понял, что ФНС нам предоставила только мобильное приложение для проверки чека и просмотра той информации, что поступила к ним от магазина.
Но! Между магазином и налоговой имеется ещё одно звено — ОФД — те, кто обрабатывают информацию по чекам, полученную от магазинов, и отправляют в налоговую. Вот они то и предоставляют API для получения нужной нам информации. Не все. И не всегда бесплатно.
Спустя какое-то время, я случайно наткнулся на приложение (не от ФНС), которое по QR-коду с чека получает информацию по чеку. Не будут же они «пробегать» по всем ОФД и собирать оттуда информацию — подумал я. Снова отправился в гугл и наткнулся на такой ответ.
Казалось, после этого ответа можно заканчивать импровизированное расследование, но у меня оставались ещё вопросы:
Все параметры обязательные.
Если результат успешен, то пользователь создается, СМС с паролем отправляется на указанный номер, а в ответ возвращается 204 No content.
Если не указать номер телефона и/или пароль, то не вернется ничего.
Если номер телефона найден, то возвращается 204 No Content и на телефон приходит СМС с новым паролем.
- Номер ФН (Фискальный Номер) — 16-значный номер. Например 8710000100518392
- Номер ФД (Фискальный документ) — до 10 знаков. Например 54812
- Номер ФПД (Фискальный Признак Документа, также известный как ФП) — до 10 знаков. Например 3522207165
- Вид кассового чека. В чеке помечается как n=1 (приход) и n=2 (возврат прихода)
- Дата — дата с чека. Формат может отличаться. Я пробовал переворачивать дату (т.е. 17-05-2018), ставить вместо Т пробел, удалять секунды
- Сумма — сумма с чека в копейках
- Номер ФН (Фискальный Номер) — 16-значный номер. Например 8710000100518392
- Номер ФД (Фискальный документ) — до 10 знаков. Например 54812
- Номер ФПД (Фискальный Признак Документа, также известный как ФП) — до 10 знаков. Например 3522207165
Если не указать номер телефона и/или пароль, то ничего не вернется.
Если чек не найден, то возвращается 406 Not Acceptable. Также чек может быть не найден, если он был получен достаточно давно. ФНС не хранит информацию по чекам за все время. На момент написания этой статьи ФНС хранила детальную информацию порядка 2-3 месяцев.
Если всё хорошо, то вернется 200 ОК и содержимое в формате json примерно такого вида:
- все суммы указаны в копейках
- данные кассира в разных магазинах имеют разные форматы (в одном случае может вернуться «Фамилия Имя», в другом «Фамилия И. должность»
- порядок элементов может меняться
- разные магазины используют разные наборы параметров и, если какой-то параметр возвращается в чеке от одного магазина, то не факт, что этот параметр будет в чеке от другого магазина
- формат адреса магазина может различаться
Особого смысла в логине я не вижу, но он используется в их мобильном приложении. Возможно, в дальнейшем он для чего-нибудь пригодится.
По всем вопросам или замечаниям прошу в комментарии.
UPD После небольшой проверки выяснилось, что ФНС не хранит детальную информацию по всем чекам. По крайней мере у меня 22.05.2018 не удалось получить полный чек от декабря 2017, января и февраля 2018, при том, что у ОФД эта информация имеется и мобильное приложение ФНС сообщает, что чек корректен. За март 2018 чек получить уже удалось.
UPD Как заметили пользователи IvanG и neoman36, n=1 это «Вид кассового чека». 1 — значит «приход», 2 — «Возврат прихода». Это же число надо вставлять при проверке существования чека.
UPD Как заметил пользователь Echo77, начиная с декабря 2018 года API стал возвращать код ответа 451 «Illegal public API usage», поэтому теперь прежде чем запрашивать чек, необходимо делать запрос на проверку существования чека.
UPD По замечанию пользователя Actie, в ответ на этот вопрос на тостере, в конце 2018 года ФНС выпустила официальный API «Проверка чека». «Доступ к API дают если написать заявление, заверить электронной подписью, рассказать зачем и как будешь использовать.» (с)
Получить токен физическому лицу, насколько понимаю, невозможно. Только юр. лицо или ИП. Также при написании заявления необходимо явно указать с каких IP адресов будешь запрашивать информацию по чекам.
Этот же пользователь (организация(?)) — Actie реализовали gem для Ruby. Но опять же замечу, что использовать его без токена не получится. Ссылка на репозиторий.
В этом же репозитории указано, что при большом количестве проверок API, описанный в данной статье, работает не стабильно. Лично я не проверял.
UPD Как заметил один из пользователей — после большого количества запросов появляется ошибка блокировки аккаунта. На 25.03.2020 лимит составляет около 25 запросов в сутки. Раньше такого лимита вроде бы не было.
Чек онлайн-кассы — крайне информативный документ, в котором присутствует большое количество реквизитов, идентифицирующих платеж от покупателя или клиента. Кассовый чек может быть проверен на подлинность теми или иными заинтересованными лицами — и на соответствие требованиям по указанию ключевых реквизитов. Но зачем? Каким образом можно выполнить проверку кассового чека?
Кто и зачем может проводить проверку чека онлайн-кассы
Чек онлайн-кассы — сам по себе довольно технологичный «продукт». Прежде всего, нужно отметить, что представлен такой чек может быть в двух вариантах — бумажном и электронном. Бумажный по внешнему виду почти не отличается от привычных чеков ККМ старых поколений. Но по содержанию — более чем, в силу того, что в нем появилось сразу несколько принципиально новых реквизитов (обусловленных требованиями Закона № 54-ФЗ).
Электронный представляет собой, собственно, электронную копию бумажного — практически с теми же реквизитами. Такой чек может быть выполнен в виде файла особого формата либо сохранен (и этот вариант можно считать типовым) в облаке с возможностью получения доступа к нему по ссылке в интернете.
Бумажный чек выдается в любом случае. Электронный чек онлайн-кассы (либо ссылка на него) должен быть отправлен покупателю по его запросу (и при условии предоставления им контактных данных — номера мобильного телефона или e-mail).
Указанное правило имеет исключения:
- Только бумажный чек выдается покупателю, если магазин осуществляет продажи в местности, где в соответствии с установленными законом критериями нет связи с интернетом (сейчас к таким местностям отнесены территории населенных пунктов с численностью населения до 10 тыс. человек).
- Только электронный чек выдается при совершении покупки онлайн.
Оба типа чека формируются на онлайн-кассе при непосредственном применении ключевого ее технологического компонента — фискального накопителя, и сохраняются в его памяти. Кроме того, данные о платеже по кассовому чеку должны быть в установленном порядке переданы в ФНС (при посредничестве Оператора фискальных данных).
Таким образом, чек онлайн-кассы во всех случаях должен соответствовать следующим признакам:
- В нем должны присутствовать все реквизиты, предусмотренные законодательством.
- Он должен быть сформирован фискальным накопителем онлайн-кассы, соответствующей требованиям Закона № 54-ФЗ.
- Он должен быть представлен в двух вариантах, если иное не предусмотрено законом.
- Сведения по чеку должны быть отправлены в ФНС через ОФД.
При этом, все 4 указанные признака, в целом, связаны между собой как единые критерии корректного функционирования онлайн-кассы. Если присутствует хотя бы 1, то при корректно функционирующей онлайн-кассе это, скорее всего, автоматически означает, что будут наблюдаться оставшиеся 3.
Рассматриваемые признаки — и есть предмет проверки чека онлайн-кассы. В такой проверке могут быть заинтересованы:
Какие есть способы проверить кассовый чек на подлинность?
- Задействование мобильного приложения для проверки чеков, которое разработано ФНС.
- Использование ресурсов на сайтах Операторов фискальных данных.
- Личный визит в ФНС с чеком.
Рассмотрим все способы подробнее.
Проверка чека по QR-коду через мобильное приложение ФНС
Устанавливаем мобильное приложение ФНС «Проверка кассового чека» АО ГНИВЦ на свой смартфон
Далее запускаем приложение на мобильном гаджете (сразу отметим, что он должен быть с камерой). Готовим кассовый чек, который нужно проверить.
Затем находим пункт меню «Проверка чека».
Приложение автоматически сканирует код и распознает зашифрованные в нем сведения о платеже, на основании которых можно будет осуществлена проверка чека.
На странице с результатом проверки могут быть доступны кнопки:
Вторая кнопка позволяет получить электронную копию чека прямо на экран смартфона — она загружается с серверов ФНС. При желании можно сравнить содержимое электронного чека и бумажного. Копии кассовых документов, запрошенных в ФНС через приложение, хранятся в разделе «Мои чеки».
Весьма примечательная опция приложения от ФНС — формирование персонального QR-кода покупателя.
Он может быть показан с экрана смартфона продавцу в магазине — для оперативной передачи ему контактов в целях запроса электронной копии чека.
Данный QR-код обычно сразу появляется на стартовой странице приложения (на закладке «Визитная карточка»).
Продавец, воспользовавшись своим сканером, обеспечит считывание соответствующих контактов, а затем осуществит отправку электронного чека покупателю с онлайн-кассы.
Проверка кассового чека на подлинность через сервисы ОФД
Следующий способ проверки чека — использование специальных сервисов ОФД. Преимущество данного способа — в возможности задействовать обычный компьютер, а не мобильный гаджет (и в отсутствии необходимости что-то устанавливать, поскольку проверка будет производиться на сайте через браузер).
Недостаток способа проверки чека, о котором идет речь — в том, что можно использовать сервис только того ОФД, с которым магазин заключил договор о передаче фискальных данных в ФНС. Заранее о таком ОФД покупатель может не знать, и действовать придется наугад — пробуя проверить чеки на разных сайтах популярных ОФД.
Отметим, что во многих случаях на кассовом чеке все же указывается наименование ОФД и адрес сайта Оператора. Несмотря на то, что в перечне реквизитов чека онлайн-кассы, перечисленных в ст. 4.7 Закона № 54-ФЗ нет такого требования, указание сведений об ОФД на чеке предусмотрено Форматами фискальных документов — если на кассе применяется ФФД 1.05 или 1.1. Но не все пользователи пока перешли на данные форматы, а если используется ФФД 1.0, то указание в чеке сведений об ОФД — рекомендуется, но не требуется.
Если удалось достоверно узнать сведения об ОФД, при посредничестве которого сведения о чеке переданы в ФНС (либо есть основания полагать, что предполагаемый ОФД окажется тем, который нужен), то в общем случае для проверки чека необходимо:
- Зайти на сайт ОФД и найти страницу, на которой осуществляется проверка чека.
- Ввести требуемые реквизиты чека.
Чаще всего требуются некоторые данные из списка:
- фискальный признак документа ФПД;
- номер онлайн-кассы, присвоенный при регистрации в ФНС;
- заводской номер фискального накопителя;
- фискальный признак чека;
- дата и сумма расчета.
В зависимости от конкретного ОФД состав реквизитов, которые нужно указать на странице проверки чека, может отличаться. Но, как правило, они не выходят за приведенный перечень.
В зависимости от них, можно отреагировать на результаты проверки в предусмотренном законом порядке.
Ссылки на некоторые сервисы ОФД для проверки чеков:
Личный визит в ИФНС
Альтернативный, офлайновый вариант проверки чека — личный визит в ФНС с кассовым документом. Однако, техническая возможность для такой проверки может быть не в каждом представительстве ФНС.
Дело в том, что эта проверка осуществляется с помощью особого сканера, который размещен в общем доступе. Данная технология, фактически, может рассматриваться как дальнейший шаг в развитии ранее применявшейся в ФНС платформы для проверки чеков, сформированных на кассах с ЭКЛЗ — то есть, ККТ, предшествовавшей онлайн-кассам. Применение данных платформ регулировалось письмом ФНС России от 12.07.2010 № АС-37-2/6454.
Таким образом, заинтересованному лицу нужно заранее позвонить в территориальное представительство ФНС с вопросом о наличии технической возможности проверить чек с помощью сканера, который установлен в ведомстве. Возможно, там подскажут ближайший офис ФНС — если в городе их несколько, где такое устройство имеется.
Какие могут быть нюансы
Отметим, что возможна ситуация, при которой покупка совершается в населенном пункте, в котором торговые точки имеют право использовать онлайн-кассы без подключения к ОФД и без передачи данных о платежах в ФНС (сейчас это населенные пункты с численностью населения не более 10 тыс. человек). Такая преференция может быть довольно востребованной, поскольку в этом случае хозяйствующий субъект может существенно сэкономить на услугах ОФД (порядка 3000 рублей в год только за основное обслуживание, к которому могут добавиться дополнительные расходы — например, на рассылку электронных чеков через SMS).
Фискальные данные с кассы, используемой в офлайновом режиме, все же передаются в ФНС, но несоизмеримо реже в сравнении с онлайновым режимом. А именно — только при перерегистрации кассы или при снятии ее с учета. Владелец кассы должен принести в ФНС фискальный накопитель, с которого будут считаны необходимые данные.
В таком сценарии сведений по чеку на серверах ФНС или ОФД к моменту проверки может не быть — просто потому, что их туда не успели передать. В этом случае указанные способы выявления подлинности чека не подойдут. Но при желании вопрос с проверкой фискального документа можно решить, обратившись в ФНС в частном порядке за консультацией. Специалисты ведомства подскажут, каким образом можно удостовериться в том, что чек — корректен.
Читайте о том, как зарегистрировать ККТ в Налоговой службе на официальном сайте или путем обращения в ИФНС.
Какая ответственность предусмотрена в КоАП РФ за нарушение порядка применения ККТ.
Когда выдавать кассовый чек при оплате физлицом на расчетный счет. Новые правила фискализации при безналичной оплате с учетом требований ст.1.2 Закона № 54-ФЗ в редакции от 03.07.2018 года
Пробуем разобраться: получиться ли у предпринимателя сэкономить и использовать одну ККТ, если у него несколько торговых точек
Советуем посмотреть ПОДБОРКУ ПОЛЕЗНЫХ ОНЛАЙН-СЕРВИСОВ и ПО , которые будут полезны многим предпринимателям.
В данной статье хотелось бы рассказать про API для получения чеков, которое нам не предоставила всеми любимая ФНС.
Когда только появились QR-коды на чеках я подумал «Вау, как круто! Ты сканируешь код и видишь если не всю инфу по чеку, то ссылку на него». И какого же было мое разочарование, когда просканировав такой код я увидел что-то вроде
Но расстраиваться я не стал и подумал, что ФНС позаботилась о нас и предоставила API для получения такой информации. Погуглив некоторое время я понял, что ФНС нам предоставила только мобильное приложение для проверки чека и просмотра той информации, что поступила к ним от магазина.
Но! Между магазином и налоговой имеется ещё одно звено — ОФД — те, кто обрабатывают информацию по чекам, полученную от магазинов, и отправляют в налоговую. Вот они то и предоставляют API для получения нужной нам информации. Не все. И не всегда бесплатно.
Спустя какое-то время, я случайно наткнулся на приложение (не от ФНС), которое по QR-коду с чека получает информацию по чеку. Не будут же они «пробегать» по всем ОФД и собирать оттуда информацию — подумал я. Снова отправился в гугл и наткнулся на такой ответ.
Казалось, после этого ответа можно заканчивать импровизированное расследование, но у меня оставались ещё вопросы:
Все параметры обязательные.
Если результат успешен, то пользователь создается, СМС с паролем отправляется на указанный номер, а в ответ возвращается 204 No content.
Если не указать номер телефона и/или пароль, то не вернется ничего.
Если номер телефона найден, то возвращается 204 No Content и на телефон приходит СМС с новым паролем.
- Номер ФН (Фискальный Номер) — 16-значный номер. Например 8710000100518392
- Номер ФД (Фискальный документ) — до 10 знаков. Например 54812
- Номер ФПД (Фискальный Признак Документа, также известный как ФП) — до 10 знаков. Например 3522207165
- Вид кассового чека. В чеке помечается как n=1 (приход) и n=2 (возврат прихода)
- Дата — дата с чека. Формат может отличаться. Я пробовал переворачивать дату (т.е. 17-05-2018), ставить вместо Т пробел, удалять секунды
- Сумма — сумма с чека в копейках
- Номер ФН (Фискальный Номер) — 16-значный номер. Например 8710000100518392
- Номер ФД (Фискальный документ) — до 10 знаков. Например 54812
- Номер ФПД (Фискальный Признак Документа, также известный как ФП) — до 10 знаков. Например 3522207165
Если не указать номер телефона и/или пароль, то ничего не вернется.
Если чек не найден, то возвращается 406 Not Acceptable. Также чек может быть не найден, если он был получен достаточно давно. ФНС не хранит информацию по чекам за все время. На момент написания этой статьи ФНС хранила детальную информацию порядка 2-3 месяцев.
Если всё хорошо, то вернется 200 ОК и содержимое в формате json примерно такого вида:
- все суммы указаны в копейках
- данные кассира в разных магазинах имеют разные форматы (в одном случае может вернуться «Фамилия Имя», в другом «Фамилия И. должность»
- порядок элементов может меняться
- разные магазины используют разные наборы параметров и, если какой-то параметр возвращается в чеке от одного магазина, то не факт, что этот параметр будет в чеке от другого магазина
- формат адреса магазина может различаться
Особого смысла в логине я не вижу, но он используется в их мобильном приложении. Возможно, в дальнейшем он для чего-нибудь пригодится.
По всем вопросам или замечаниям прошу в комментарии.
UPD После небольшой проверки выяснилось, что ФНС не хранит детальную информацию по всем чекам. По крайней мере у меня 22.05.2018 не удалось получить полный чек от декабря 2017, января и февраля 2018, при том, что у ОФД эта информация имеется и мобильное приложение ФНС сообщает, что чек корректен. За март 2018 чек получить уже удалось.
UPD Как заметили пользователи IvanG и neoman36, n=1 это «Вид кассового чека». 1 — значит «приход», 2 — «Возврат прихода». Это же число надо вставлять при проверке существования чека.
UPD Как заметил пользователь Echo77, начиная с декабря 2018 года API стал возвращать код ответа 451 «Illegal public API usage», поэтому теперь прежде чем запрашивать чек, необходимо делать запрос на проверку существования чека.
UPD По замечанию пользователя Actie, в ответ на этот вопрос на тостере, в конце 2018 года ФНС выпустила официальный API «Проверка чека». «Доступ к API дают если написать заявление, заверить электронной подписью, рассказать зачем и как будешь использовать.» (с)
Получить токен физическому лицу, насколько понимаю, невозможно. Только юр. лицо или ИП. Также при написании заявления необходимо явно указать с каких IP адресов будешь запрашивать информацию по чекам.
Этот же пользователь (организация(?)) — Actie реализовали gem для Ruby. Но опять же замечу, что использовать его без токена не получится. Ссылка на репозиторий.
В этом же репозитории указано, что при большом количестве проверок API, описанный в данной статье, работает не стабильно. Лично я не проверял.
UPD Как заметил один из пользователей — после большого количества запросов появляется ошибка блокировки аккаунта. На 25.03.2020 лимит составляет около 25 запросов в сутки. Раньше такого лимита вроде бы не было.
Восстановить испорченный чек? Сохранить, чтоб не выцвел? Странно, что на это приложение так мало отзывов! Для тех, кто хочет доказать, что отзыв-не обзорка, но не хочет завалиться бумажками.
Написала отзыв, хотела прикрепить чек и не смогла его найти)) Вспоминала-вспоминала, куда же я его дела и вспомнила, что выкинула. Пришлось рыться в мусорке. Нашла. Мдэ..
Ничего не понятно, не видно и вообще, как из жо.
Просто ради интереса попыталась найти вариант получить из бумажного чека электронный.
И этот вариант есть! Вот он:
Установка быстрая, приложение небольшое, без лишних функций и кнопок. После установки при первом запуске предлагает сразу считать QR код с чека.
С моего чека код считать не вышло, о чем приложение мне и сообщило:
Аж расстроилась сперва, неужели в аптеке что-то не по закону?
Пришлось вводить данные с чека самой. Данные все есть на чеке. Если нажать на знак вопроса в каждом поле, то будет подсказка, где искать тот или иной реквизит.
В итоге, все получилось и чек был выдан.
Чек получен-значит, что все по закону и чек правильный.
Информация из чека:
Данный чек можно сохранить в галерее телефона. Или, сообщить о нарушениях "куда надо".
Ну и еще некоторые функции:
Моя визитная карточка:
Своеобразный отчет обо всех чеках.
Ну и так же, можно посмотреть список чеков, написать обращение/жалобу в фнс.
Плюсы очевидны: не надо хранить ворох бумажек, можно сканировать чек не отходя от кассы, чек всегда в твоем кармане в смартфоне! На нечестных продавцов можно тут же "донести".
Совершенно точно рекомендую приложение "Проверка кассового чека"!
Читайте также: