Привязка чека по QR коду
В ближайшее время все чеки должны будут содержать QR коды. Многие уже содержат. Хотелось бы иметь возможность получить чек с сайта налоговой и привязать к транзакции.
В ближайшее время все чеки должны будут содержать QR коды. Многие уже содержат. Хотелось бы иметь возможность получить чек с сайта налоговой и привязать к транзакции.
Вот это качественный коммент по теме. Я два месяца назад не мог этой инфы нарыть. А есть API получить инфу по привязанным чекам?
Ты кстати написал, что проверку нужно делать на сервере, уверен в обратном, запросы нужно проводить напрямую с устройства т.к. запросы с одного IP адреса рано или поздно заблокируют.
Налоговое приложение, через 7 дней считает, что чек не получен https://prnt.sc/g0uu5d.
P.s. Basic Auth ещё можно так записать - http://login:pass@proverkacheka.nalog.ru:8888/
Запрос на получение всех просканеных чеков есть. Напишу чуть позже.
Насчёт проверки чека.
Так как в дзен мани есть личный кабинет и есть куча клиентов для кабинета (мобильное приложение для андроид, web версия), то стает вопрос насчёт синхронизации.
Если делать в мобильном приложении, то единственным нормальным вариантом является проверка при открытии приложения, но пользователь может и не открывать приложение неделями (будет пользоваться web версией).
Конечно есть и другие варианты, например, в каждом клиенте реализовать проверку чека, но это не есть хорошо (необходимо поддерживать)
у coin keeper появился данный функционал https://play.google.com/store/apps/details?id=com.disrapp.ckshopping
Эта приложение использует сервисы http://www.receipt.taxcom.ru , https://lk.platformaofd.ru/ . Если эти сервисы не найдут чек, то приложение воспользуется nalog.ru
Вот это качественный коммент по теме. Я два месяца назад не мог этой инфы нарыть. А есть API получить инфу по привязанным чекам?
Ты кстати написал, что проверку нужно делать на сервере, уверен в обратном, запросы нужно проводить напрямую с устройства т.к. запросы с одного IP адреса рано или поздно заблокируют.
Налоговое приложение, через 7 дней считает, что чек не получен https://prnt.sc/g0uu5d.
P.s. Basic Auth ещё можно так записать - http://login:pass@proverkacheka.nalog.ru:8888/
Запрос для получения всех чеков
http://proverkacheka.nalog.ru:8888/v1/extract?sendToEmail=0&fileType=json
Да, как заметили выше у CoinKeeper давно есть эта тема и она работает на самом деле норм (разные магазины, разные косяки) пока у них только выбор меток страдает, но как только они его допилят, будет очень годная вещь.
Следующим шагом можно было бы мечтать об автоматизации, например учить определять одинаковые продукты из одного и тогоже магазина определять сразу и разносить, ведь большая часть покупок это все одно и тоже.
Вот же бред... Трудозатрат будет много, а выхлоп нулевой. Там где дают чеки, плачу картой. Там где плачу наличными, чеки не дают. А потом все это выльется в такое: "Приложение не учло творожок за 15 рублей в продуктах!"
Вы же как-то сейчас не погибаете от того, что смс парсится не каждый раз верно?
Вот же бред... Трудозатрат будет много, а выхлоп нулевой. Там где дают чеки, плачу картой. Там где плачу наличными, чеки не дают. А потом все это выльется в такое: "Приложение не учло творожок за 15 рублей в продуктах!"
Вы же как-то сейчас не погибаете от того, что смс парсится не каждый раз верно?
То что возможны какие то ошибки не повод не делать функционал
Если и делать, то делать минимально - разобрали сумму из QR-кода и дальше типовым механизмом подобрали категорию. Незачем на эту ерунду время тратить, на нее и без нас попилили немало бюджетного бабла.
Для того чтобы получить чек (пример чека из макдональдса в формате 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
А сервис регистрации пользователей на проверке_чека была оказия послушать?
Разбивка продуктов из чека это круто, но сначала сделайте заполнение полей транзакции по скану qr-кода.
"Добавить транзакцию" - "Скан кода" - автоматом заполнять дату, сумму, последний указанный счет (наличные, например), возможно, категорию по номеру ФР.
Уже сильно сэкономило бы время на ввод чеков.
Для того чтобы получить чек (пример чека из макдональдса в формате 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/