Привязка чека по QR коду
В ближайшее время все чеки должны будут содержать QR коды. Многие уже содержат. Хотелось бы иметь возможность получить чек с сайта налоговой и привязать к транзакции.
В ближайшее время все чеки должны будут содержать QR коды. Многие уже содержат. Хотелось бы иметь возможность получить чек с сайта налоговой и привязать к транзакции.
у coin keeper появился данный функционал https://play.google.com/store/apps/details?id=com.disrapp.ckshopping
Фига себе они оперативно, думаю нам можно губу не рассказывать. Разработка тут идёт в стиле дзен ) 2 месяца ждали пока дадут возможность отключить напоминание в 21:00 )
у coin keeper появился данный функционал https://play.google.com/store/apps/details?id=com.disrapp.ckshopping
Да, как выяснилось не проблема. Вопрос встаёт, что потом с ним делать? Точнее, какими средствами его показать? Спасибо, мы изучаем этот вопрос, тема интересная.
Для того чтобы получить чек (пример чека из макдональдса в формате 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
Оригинальное приложение (проверка чека) делает запрос еще такой запрос:
Это запрос на проверку чека в налоговой. Как я понял он не обязательный и можно без него обойтись
Как уже писалось выше есть две проблемы:
1. Чек еще не переданный в налоговую
2. Чек никогда не попадет в налоговую
Первую проблему можно решить путем совершения запроса на получение чека с переодичностью 1-2 раза в сутки. Это можно сделать как на сервере (приоритетный вариант) так и на мобилке.
А вот вторая проблема на данный момент не решаемая. Некоторый организации попросту увиливают от таких чеков и вместо валидных данных в qr-коде суют заведомо ложные данные.
После получения JSON с позициями чека можно складывать их в отдельном месте где пользователь сможет раскидать по категориям. Если покупака совершалась с банковской карты и у пользователя в приложении есть доступ к списку операций по карте, то можно производить поиск этой покупки и по MCC коду расскидывать по категории (вот https://github.com/greggles/mcc-codes/blob/master/mcc_codes.json список mcc кодов).
Если покупка совершалась не с банковской карты, то можно сделать какой-то анализ транзакций других пользователей. Например, Иван что-то купил в магазине "ООО Рога и копыта" . Просканил чек и распределил все по категориям. Потом некий Коля тоже совершил покупку в магазине "ООО Рога и копыта" (можно искать по номеру фискального накопителя, либо по наименованию магазина) и ему уже будут предложены категории, которые поставил Иван.
Есть куча вариантов как это все организовать, но это очень много писать надо (
email для связи(вдруг кто-то захочет об этом поговорить :D ): nigol@protonmail.ch
Даже если вложить в это кучу сил, такая система не застрахована от ошибок. Да и в целом такая автоматизация достигается либо навязыванием всем своих категорий, либо необходимостью пользователям самостоятельно настраивать себя правила какие продукты к каким категориям подходят.
P.s. Тоже затариваюсь из супремаркета длинные чеки беру и делю вручную, не так сложно и долго.
Повторюсь, чеки с QR кодом - аналог чтения смс из банка, когда у тебя добавляется транзакция и сумма.
Как мне кажется, сам чек не нужен. Из него нужно извлечь сумму, раскидать покупки по категориям разными транзакциями. У пользователя спросить с какого счета было списание.
Сейчас закупаюсь на неделю в гипермаркетах, а потом дома по чеку руками транзакции разбиваю. Если эту процедуру получится автоматизировать - будет круто.
Даже если вложить в это кучу сил, такая система не застрахована от ошибок. Да и в целом такая автоматизация достигается либо навязыванием всем своих категорий, либо необходимостью пользователям самостоятельно настраивать себя правила какие продукты к каким категориям подходят.
P.s. Тоже затариваюсь из супремаркета длинные чеки беру и делю вручную, не так сложно и долго.
Что делать с транзакцией я хорошо знаком. А что будет с чеком? Он будет на каждой транзакции? Как вообще этим пользоваться? ))
Как мне кажется, сам чек не нужен. Из него нужно извлечь сумму, раскидать покупки по категориям разными транзакциями. У пользователя спросить с какого счета было списание.
Сейчас закупаюсь на неделю в гипермаркетах, а потом дома по чеку руками транзакции разбиваю. Если эту процедуру получится автоматизировать - будет круто.
Что делать с транзакцией я хорошо знаком. А что будет с чеком? Он будет на каждой транзакции? Как вообще этим пользоваться? ))
К какой категории привязать чек в котором: водка, творог, яблочки, стиральный порошок, набор рюмок и домашние тапочки?
В этом случае нужно разбить транзакцию на несколько.
Привязку чеков категорически поддерживаю.
Для начала реализовать бы просто связывание, разбор и аналитику можно прикрутить позже.
(Печально что большой брат ФНС получает все больше информации о нас, если оплата картой)
К какой категории привязать чек в котором: водка, творог, яблочки, стиральный порошок, набор рюмок и домашние тапочки?
Для того чтобы получить чек (пример чека из макдональдса в формате 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/