Работа с данными чеков через API ФНС
Привет! Сегодня я расскажу о том, как мы начинали работать с API ФНС по проверке чеков и поделюсь нашим готовым решением.
Как только ФНС обязала продавцов присылать данные о покупках, мы много фантазировали о том, как можно это использовать. Наконец-то все проблемы клиентов будут решены! Не нужно будет неделями ждать проверки от торговой сети, чтобы вручить приз участнику. Не надо будет гадать является чек, нарисованными в фотошопе или нет. В розыгрышах будут только участники, которые прислали чеки с акционной продукцией на нужную сумму.
Ах как сладко это все звучало!
Оставалась одна проблема — доступ к данным. ФНС выпустила приложения для андройда и айфона, но не дала доступ к API для всех желающих. Смышленые ребята нашли способ получить доступ к данным ФНС, используя недокументированное API (пост о работе с api ФНС на Хабре). Мы видели несколько проектов, которые использовали этот способ. Мы также экспериментировали с недокументированным API.
После пары тестов, мы выявили плюсы и минусы работы с недокументированным API.
Плюсы:
- Получаем данные о покупках и точке продажи из чека.
- Не нужно получать доступ в ФНС.
Минусы:
- Нужно использовать пароль участника для получения данных по чеку, либо иметь набор симок для множества запросов.
- Нетривиальная интеграция в форму регистрации заявки на сайте.
- Нестабильная работа. Данные могут прийти, а могут зависнуть и не отдаваться в течение нескольких дней.
- Нет техподдержки.
Мы получали данные по чеку, но API работало не стабильно. Более половины запросов зависало, приходилось отправлять заново. Недокументарованное API – нормальное решение для экспериментов или личных проектов, но для бизнеса оно не подходит. Мы не можем делать проект, в котором пользователям будут приходить отказы в регистрации, т.к. сервер ФНС не отдает ответ. Репутация стоит дороже.
В конце прошлого года ФНС выпустила официальное API для разработчиков с документацией и поддержкой. Процесс получения API длился несколько месяцев. Необходимо объяснить чиновникам как и зачем вы хотите использовать API, написать заявление, подкрепив его электронной подписью, отправить копию в центральный аппарат ФНС в Москву и ждать решения. После прохождения всех формальностей мы получили доступ к данным. Сейчас Акти обрабатывает поступающие заявки от участников в автоматическом режиме.
Мы обновили раздел заявок и решили использовать метод Inbox Zero.
Все новые заявки отображаются в разделе «На проверке». Акти отправляет запрос в ФНС, после получения данных запускается проверка на соответствие условиям акции. После этого заявка автоматически переносится в «Подтвержденные» или «Заблокированные». Оператору нужно следить, чтобы раздел «На проверке» всегда оставался пустым. Если какая-то заявка зависла в разделе на проверке в течении дня, необходимо посмотреть почему она «зависла» и промодерировать вручную. Такое случается, когда ФНС не отдает данные по чеку или есть проблемы с доступностью сервера.
Метод «Inbox zero» помогает не пропустить неотмодерированные заявки. В Акти розыгрыш не может быть запущен, если «На проверке» есть хотя бы одна заявка.
В акции «Открой вкус Японии» для торговой сети «Бристоль» — Акти автоматически проверяет все заявки. Организатор точно знает, где был приобретен товар и купил ли участник нужное количество промотоваров, чтобы участвовать в розыгрыше.
Если вы также хотите начать получать данные от ФНС, начните с получения токена. Для этого посмотрите инструкцию по выдаче токена.
Ваш проект написан на Ruby?
Можете воспользоваться нашей библиотекой для работы с API ФНС совершенно бесплатно.