Привязка чека по QR коду

Avatar
  • обновлен
  • Завершен

В ближайшее время все чеки должны будут содержать QR коды. Многие уже содержат. Хотелось бы иметь возможность получить чек с сайта налоговой и привязать к транзакции.

Avatar
Вадик Мармеладик
Цитата от Евгений Ищенко

Для того чтобы получить чек (пример чека из макдональдса в формате JSON) необходимо сделать GET-запрос на адрес вида http://proverkacheka.nalog.ru:8888/v1/inns/*/kkts/*/fss/XXXXXXXXXXXXXXXX/tickets/YYYYY?fiscalSign=ZZZZZZZZZZ&sendToEmail=no

где

XXXXXXXXXXXXXXXX - номер фискального накопителя (ФН)

YYYYY - фискальные данные(ФД)

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

Запросе необходимо указать следующие заголовки:

- Authorization - указывается basic авторизация (номер телефона:пароль в base64). Номер телефона указывается при регистрации в приложении "Проверка чека", пароль приходит в смс

- Device-Id - на android это androidID (можно передать любой набор символов)

CURL:

curl -H 'Authorization: Basic ТУТ_НОМЕР_ТЕЛЕФОНА_И_ПАРОЛЬ_В_BASE64' -H 'Device-Id: ТУТ_ANDROID_ID' -H 'Device-OS: Adnroid 6.0.1' -H 'Version: 2' -H 'ClientVersion: 1.4.2' -H 'Host: proverkacheka.nalog.ru:8888' -H 'User-Agent: okhttp/3.0.1' --compressed 'http://proverkacheka.nalog.ru:8888/v1/inns/*/kkts/*/fss/XXXXXXXXXXXXXXXX/tickets/YYYYY?fiscalSign=ZZZZZZZZZZ&sendToEmail=no'

Обязательны только заголовки Authorization и Device-Id

Оригинальное приложение (проверка чека) делает запрос еще такой запрос:

http://proverkacheka.nalog.ru:8888/v1/ofds/*/inns/*/fss/XXXXXXXXXXXXXXXX/operations/1/tickets/YYYYY?fiscalSign=ZZZZZZZZZZ&date=2017-07-15T15:01:00&sum=167000"

Это запрос на проверку чека в налоговой. Как я понял он не обязательный и можно без него обойтись

Как уже писалось выше есть две проблемы:

1. Чек еще не переданный в налоговую

2. Чек никогда не попадет в налоговую

Первую проблему можно решить путем совершения запроса на получение чека с переодичностью 1-2 раза в сутки. Это можно сделать как на сервере (приоритетный вариант) так и на мобилке.

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

После получения JSON с позициями чека можно складывать их в отдельном месте где пользователь сможет раскидать по категориям. Если покупака совершалась с банковской карты и у пользователя в приложении есть доступ к списку операций по карте, то можно производить поиск этой покупки и по MCC коду расскидывать по категории (вот https://github.com/greggles/mcc-codes/blob/master/mcc_codes.json список mcc кодов).

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

Есть куча вариантов как это все организовать, но это очень много писать надо ( 

email для связи(вдруг кто-то захочет об этом поговорить :D ): nigol@protonmail.ch

Вот это качественный коммент по теме. Я два месяца назад не мог этой инфы нарыть. А есть API получить инфу по привязанным чекам?

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

Налоговое приложение, через 7 дней считает, что чек не получен https://prnt.sc/g0uu5d.

P.s. Basic Auth ещё можно так записать - http://login:pass@proverkacheka.nalog.ru:8888/

Avatar
Вадик Мармеладик
Цитата от IOne

у coin keeper появился данный функционал https://play.google.com/store/apps/details?id=com.disrapp.ckshopping

Фига себе они оперативно, думаю нам можно губу не рассказывать. Разработка тут идёт в стиле дзен ) 2 месяца ждали пока дадут возможность отключить напоминание в 21:00 )

Avatar
IOne

у coin keeper появился данный функционал https://play.google.com/store/apps/details?id=com.disrapp.ckshopping

Avatar
Евгений Ищенко
Цитата от support

Да, как выяснилось не проблема. Вопрос встаёт, что потом с ним делать? Точнее, какими средствами его показать? Спасибо, мы изучаем этот вопрос, тема интересная.

Для того чтобы получить чек (пример чека из макдональдса в формате JSON) необходимо сделать GET-запрос на адрес вида http://proverkacheka.nalog.ru:8888/v1/inns/*/kkts/*/fss/XXXXXXXXXXXXXXXX/tickets/YYYYY?fiscalSign=ZZZZZZZZZZ&sendToEmail=no

где

XXXXXXXXXXXXXXXX - номер фискального накопителя (ФН)

YYYYY - фискальные данные(ФД)

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

Запросе необходимо указать следующие заголовки:

- Authorization - указывается basic авторизация (номер телефона:пароль в base64). Номер телефона указывается при регистрации в приложении "Проверка чека", пароль приходит в смс

- Device-Id - на android это androidID (можно передать любой набор символов)

CURL:

curl -H 'Authorization: Basic ТУТ_НОМЕР_ТЕЛЕФОНА_И_ПАРОЛЬ_В_BASE64' -H 'Device-Id: ТУТ_ANDROID_ID' -H 'Device-OS: Adnroid 6.0.1' -H 'Version: 2' -H 'ClientVersion: 1.4.2' -H 'Host: proverkacheka.nalog.ru:8888' -H 'User-Agent: okhttp/3.0.1' --compressed 'http://proverkacheka.nalog.ru:8888/v1/inns/*/kkts/*/fss/XXXXXXXXXXXXXXXX/tickets/YYYYY?fiscalSign=ZZZZZZZZZZ&sendToEmail=no'

Обязательны только заголовки Authorization и Device-Id

Оригинальное приложение (проверка чека) делает запрос еще такой запрос:

http://proverkacheka.nalog.ru:8888/v1/ofds/*/inns/*/fss/XXXXXXXXXXXXXXXX/operations/1/tickets/YYYYY?fiscalSign=ZZZZZZZZZZ&date=2017-07-15T15:01:00&sum=167000"

Это запрос на проверку чека в налоговой. Как я понял он не обязательный и можно без него обойтись

Как уже писалось выше есть две проблемы:

1. Чек еще не переданный в налоговую

2. Чек никогда не попадет в налоговую

Первую проблему можно решить путем совершения запроса на получение чека с переодичностью 1-2 раза в сутки. Это можно сделать как на сервере (приоритетный вариант) так и на мобилке.

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

После получения JSON с позициями чека можно складывать их в отдельном месте где пользователь сможет раскидать по категориям. Если покупака совершалась с банковской карты и у пользователя в приложении есть доступ к списку операций по карте, то можно производить поиск этой покупки и по MCC коду расскидывать по категории (вот https://github.com/greggles/mcc-codes/blob/master/mcc_codes.json список mcc кодов).

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

Есть куча вариантов как это все организовать, но это очень много писать надо ( 

email для связи(вдруг кто-то захочет об этом поговорить :D ): nigol@protonmail.ch

Avatar
Денис
Цитата от Вадик Мармеладик

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

P.s. Тоже затариваюсь из супремаркета длинные чеки беру и делю вручную, не так сложно и долго. 

Повторюсь, чеки с QR кодом - аналог чтения смс из банка, когда у тебя добавляется транзакция и сумма.

Avatar
Вадик Мармеладик
Цитата от Alexander Anisimov

Как мне кажется, сам чек не нужен. Из него нужно извлечь сумму, раскидать покупки по категориям разными транзакциями. У пользователя спросить с какого счета было списание.

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

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

P.s. Тоже затариваюсь из супремаркета длинные чеки беру и делю вручную, не так сложно и долго. 

Avatar
Alexander Anisimov
Цитата от Вадик Мармеладик

Что делать с транзакцией я хорошо знаком. А что будет с чеком? Он будет на каждой транзакции? Как вообще этим пользоваться? ))

Как мне кажется, сам чек не нужен. Из него нужно извлечь сумму, раскидать покупки по категориям разными транзакциями. У пользователя спросить с какого счета было списание.

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

Avatar
Вадик Мармеладик
Цитата от Alexander Anisimov

В этом случае нужно разбить транзакцию на несколько.

Что делать с транзакцией я хорошо знаком. А что будет с чеком? Он будет на каждой транзакции? Как вообще этим пользоваться? ))

Avatar
Alexander Anisimov
Цитата от Вадик Мармеладик

К какой категории привязать чек в котором: водка, творог, яблочки, стиральный порошок, набор рюмок и домашние тапочки?

В этом случае нужно разбить транзакцию на несколько.

Avatar
Вадик Мармеладик
Цитата от Stanislav Blinoff

Привязку чеков категорически поддерживаю.

Для начала реализовать бы просто связывание, разбор и аналитику можно прикрутить позже.

(Печально что большой брат ФНС получает все больше информации о нас, если оплата картой)

К какой категории привязать чек в котором: водка, творог, яблочки, стиральный порошок, набор рюмок и домашние тапочки?