Как мы создавали сервис касс АТОЛ Онлайн

в 13:41, , рубрики: 54-ФЗ, атол, Блог компании АТОЛ, кассы, онлайн, платежные системы, Разработка под e-commerce, сервис

С 1 июля 2017 года в соответствии с законом 54-ФЗ все онлайн-расчеты с помощью банковских карт должны проходить через кассу, выдающую электронные чеки. А значит, на онлайн-торговлю ложатся все тяготы, свойственные офлайн-ритейлу – регистрация касс, техобслуживание, замена фискальных накопителей, хранение старых ФН.  Упрощенный вариант — не приобретать все оборудование, а воспользоваться сервисом по аренде ККТ и ПО. Мы хотим рассказать о том, как мы придумывали и реализовывали наш сервис АТОЛ Онлайн, зачем нам понадобилось ломать и вновь строить бизнес-процессы, а также о самой проектной команде и принципе работы сервиса. За подробностями — под кат.

Как мы создавали сервис касс АТОЛ Онлайн - 1


Первые зачатки идеи сервиса появились в середине 2016 года, когда мы, проанализировав требования 54-ФЗ, начали искать решение для рынка, ранее не применявшего (хотя обязанного) кассовую технику, — интернет-торговли. Компании, которые принимают плату за контент или товар через интернет, как правило, не имеют собственной инфраструктуры, а активно используют облачные сервисы. Для них появление физического устройства, которое нужно регистрировать, подключать, обслуживать, — это лишняя головная боль.

Обладая опытом в разработке контрольно-кассовой техники, мы сделали опытный образец кассы АТОЛ 42ФС, которую можно применять только при расчетах через интернет. Она не имеет печатающего модуля, это такая маленькая коробочка со светодиодом и двумя разъемами.
Касса есть. Но что дальше? Ее нужно как-то интегрировать, эксплуатировать, чтобы она работала в режиме 24/7 365 дней в году, ведь онлайн-торговля идет круглосуточно.

Как мы создавали сервис касс АТОЛ Онлайн - 2

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

Решение проблемы одинаковое — нужно больше касс. Даже маленькой компании оптимально использовать как минимум 2 кассы. При большом количестве покупок в интернет-магазине бесперебойную и комфортную работу можно организовать с помощью десятков онлайн-касс. Мы еще расскажем об этом подробно, а пока вернемся к идеям.

С учетом рекомендаций крупных игроков этого рынка и платежных сервисов мы подошли к идее некоего универсального сервиса, избавляющего интернет-предпринимателей от большинства проблем при переходе на ккт. В законченном виде она появилась к октябрю, ее идеологами стали Юрий Ярков и Эдуард Болмосов.

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

Вопиющие в пустыне

Мы столкнулись с проблемой: рынок был плохо информирован о грозящих ему нововведениях в законодательстве. Большинство ничего не знали, а те, кто слышал, что 54-ФЗ касается расчетов в интернете, надеялись, что закон не заработает, будут перенесены сроки, найдутся пути обхода. Даже те мероприятия, которые проводили ФНС и другие структуры, в первую очередь были ориентированы на сегмент офлайн-торговли, интернет стоял в стороне.

В начале года мы поняли, что рынок не осведомлен совсем, и начали активную маркетинговую коммуникацию, провели несколько мероприятий. Мы стали знакомить рынок с основами технической реализации законодательства, так называемыми форматами фискальных документов, согласно которым вся эта экосистема работает. АТОЛ провел огромное мероприятие на РИФе, семинар на целый день в четыре слота. Казалось, что мы охватили весь рынок, но на самом деле дотянулись далеко не до всех.

Осознание рынком, что «касса нужна, что делать?» случилось в июне, а самый пик пришелся на крайние две недели перед 1 июля. В сентябре, когда начнутся первые штрафы по новому закону, наверняка поднимется вторая волна.

Анатомия сервиса

АТОЛ Онлайн условно можно разделить на три составляющие. Первая – касса АТОЛ 42ФС как устройство для фискализации платежей.

Как мы создавали сервис касс АТОЛ Онлайн - 3

Вторая – инфраструктура, в которой размещаются кассы. Мы арендуем ЦОД с уровнем отказоустойчивости Tier 3. Кассы монтируются в сборки, на двухюнитовую основу устанавливается 48 касс. Они имеют 2 интерфейса: по USB идет питание, по Ethernet – управление и обмен данными.

Как мы создавали сервис касс АТОЛ Онлайн - 4

Третья составляющая – программное обеспечение, фронтенд и бэкенд. Фронтенд — это личный кабинет, через который происходит менеджмент услуги: подключение к сервису, авторизация, обмен информацией, необходимой для фискализации кассы. Бэкенд следит за состоянием техники и управляет балансировкой нагрузки. Ведь у одного юрлица может быть как 1 касса, так и 1000 или 10 тыс.

Одной кассы мало

Даже для небольшого интернет-магазина одной онлайн-кассы недостаточно. Он должен работать 24 часа в сутки 7 дней в неделю, а касса – это устройство, которое иногда может выходить из строя, останавливаться на обслуживание, требовать замены фискального накопителя (ФН).

Как только у компании возникает потребность в 100% доступности операции по выдаче электронных чеков, так как риски простоя для бизнеса очень высоки — ей требуется как минимум две кассы. Вероятность выхода из строя двух касс одновременно очень низкая: мы размещаем их особым образом, не храним в одной стойке, в одной сборке, они разнесены внутри ЦОДа.

Для компаний с большим количеством транзакций становятся актуальны ограничения, связанные с работой фискального накопителя, который находится внутри касс. Это сторонняя разработка, сертифицированная ФСБ с криптопроцессором внутри. С ФН связаны узкие места в работе кассы. Ниже — пара основных.

1. Скорость работы. ФН работает медленно. Общее время на обработку одного чека составляет примерно 0,9 с. Но на практике при работе периодически возникают сетевые задержки — поскольку чек надо отправить ОФД и получить от него ответ. В итоге при самом хорошем раскладе не стоит рассчитывать на скорость более одного чека в секунду. Если у магазина нагрузка выше и есть только одна касса, будет формироваться очередь. Запрос на формирование чека может храниться до пяти минут, после чего «отваливается» с тайм-аутом. Если у магазина 50 транзакций в секунду, в идеальном случае нужно установить 50 касс. У нас есть специальный калькулятор, с помощью которого можно посчитать, сколько касс необходимо (и экономически выгодно), чтобы обеспечить требуемую пропускную способность. Стоит также заложить запас на выход касс из строя или техобслуживание. Точные значения каждый определяет сам, но обычно при большом числе касс «запас» — это 10-15%.

Как мы создавали сервис касс АТОЛ Онлайн - 5

2. Емкость ФН. Фискальный накопитель может подписать ограниченное количество документов. Типичная емкость — 250 тысяч документов. Если такому ФН присылать по одному документу в секунду, он заполнится за 3 дня. При этом длина чека и количество товаров в нем не имеют значения, поскольку ФН хранит только итоговую сумму, занимающую примерно 40 байт. Замена ФН — это процедура, связанная с налоговой, она требует перерегистрации и занимает 1-2 дня. Если менять эти накопители раз в два дня, работать будет невозможно. Для того, чтобы сервис не простаивал, имеет смысл рассчитать количество касс так, чтобы замена ФН происходила раз в несколько месяцев, а лучше не чаще чем раз в полгода, и кассы останавливались на замену определенными партиями. То есть так чтобы система была не перенагружена и защищена от сбоев.

Все крупные интернет-компании закладывают эти риски при подсчете и арендуют у нас от 50 касс.

Внутренний стартап

Для нас все было новое: и проект, и рынок, и сервис. Проект потребовал переработки всех внутренних бизнес-процессов в компании и организации клиентского обслуживания. Все необходимо было адаптировать и перестраивать наживую, так как времени было мало.
Создание сервиса АТОЛ Онлайн стало для компании по сути внутренним стартапом. На старте проекта численность команды не превышала 10 человек. Их силами в первый месяц был создан прототип. Когда увидели перспективы, команда стала расти, сейчас активно задействованы в развитии сервиса около 40 человек.

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

Все было как в стартапе: неизведанный рынок, поиск и реализация идей, их тестирование на потенциальных заказчиках. Использовали Agile-подход, методологию Kanban. Сначала мы пообщались с топами интернет-торговли, определили их потребности и ожидания, собрали обратную связь, поняли, что людям действительно требуется такой сервис.

Момент, когда владельцы бизнеса поверили в стартап, случился в декабре, после того как сформировался бизнес-план, первая итерация бизнес-модели. Основная сложность была связана с отсутствием достоверной информации об объеме рынка интернет-торговли. Оценки разнятся очень сильно, от 20 до 100 тысяч компаний. Мы взяли за основу, что компаний, которые ведут коммерческую деятельность с картами в интернете, порядка 40 тысяч, и каждой из них нужно минимум по одной кассе. Изначально закладывалась сильно пессимистическая модель, но и она дала понять, что этим стоит заниматься.

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

Бескровная интеграция

Больше всего тревог у владельцев интернет-бизнеса вызывали вопросы интеграции. Тут требовалось максимально простое решение. Мы реализовали несколько вариантов интеграции, непосредственно из CMS-системы и через платежные сервисы. У нас API для всех единый, JSON REST, достаточно простой в реализации. Он выполнен по всем требованиям стандарта фискальных документов.

С платежными системами все совсем просто. Владелец сайта подключается к нашему сервису, ставит кассу на учет, мы ее фискализируем, и на финальном этапе он получает файл настройки, там 3 строки: код группы, логин, пароль. Пользователь задает эти данные платежному сервису в личном кабинете, там есть соответствующие параметры для ввода. Все, можно работать.
Сейчас выполнена интеграция с основными игроками рынка: 14 CMS (1С-Битрикс, AdvantShop,  NetCat, RetailCRM и иные) и 19 платежными сервисами (например, Яндекс.Касса, Robokassa, интернет-эквайринг от Сбербанка и Тинькофф и др.)

Перспективы

В ближайших планах развития сервиса – модернизация API, поддержка формата фискальных документов версии 1.05, это позволит пользователю корректно отражать информацию по авансам, предоплатам, подарочным картам. Кроме того мы планируем расширять набор пользовательских функций, доступных из личного кабинета: добавить возможность проведения ручных операций по возвратам и коррекций, такую мини-CMS, а также информацию по сервисному мониторингу и подробную статистику по кассам.

Долгосрочных планов много, их можно разбить на два блока. Первый — это работа над повышением эффективности и стабильности системы. Сервис должен работать как часы. Второй блок связан с оптимизацией работы клиента, вопросами автоматической постановки касс на учет в налоговой, автоматизации взаимодействия с ОФД.

Идеи есть, много, надо делать. Ведь АТОЛ Онлайн для компании – это возможность диверсифицировать свои решения, вывести их на развивающийся рынок Digital-технологий, выйти на другой класс потребителя. Мы давно и профессионально разрабатываем кассы, но всегда хотелось сделать что-то большее, чем просто «железку», дать еще и сервис. Это не только наш путь развития, но и многих других компаний, которые хотят в перспективе расти, развиваться, как того требует рынок: потребитель меняется, и бизнес тоже.

Автор: atol_company

Источник

Поделиться

* - обязательные к заполнению поля