Прошлым летом Telegram выпустил новый API с поддержкой платежей. С тех пор мессенджер стал еще и каналом продаж, который позволяет компаниям не только общаться с клиентом, но и принимать оплату за свои товары и услуги прямо в диалоговом окне. Яндекс.Касса первой среди российских платежных сервисов поддержала эту функцию. Принимать платежи в Telegram через Кассу сразу стали индивидуальные предприниматели и небольшие организации: флористы, магазины чая и кофе, тренеры, организаторы обучающих курсов, благотворительные фонды и многие другие (тут можно почитать отзывы и примеры). Но для более крупных компаний с потоком заказов был один стоппер.
Дело в том, что до недавних пор у Telegram-продаж была одна особенность, не учитывающая чисто российскую специфику электронной торговли, — обязательную отправку онлайн-чеков (требование 54-ФЗ, известного как закон об онлайн-кассах). У Яндекс.Кассы сразу появился специальный протокол, который поддерживал работу с новым кассовым оборудованием и автоматизировал передачу чеков. Но в Telegram такая автоматизация технически не поддерживалась, и продавцы должны были настраивать передачу чеков сами (считайте, плясать с бубном). И вот недавно мессенджер пошел навстречу российскому рынку электронной коммерции и реализовал с Яндекс.Кассой совместный проект, дополнив свой протокол важным элементом — появилось специальное поле для дополнительной информации платежному провайдеру. Теперь продавать через Telegram стало удобно с точки зрения не только клиентского сервиса, но и автоматизации передачи онлайн-чеков (то есть соблюдения 54-ФЗ). Под катом расскажу, что нужно сделать, чтобы запустить продажи в Telegram, принимая платежи через Яндекс.Кассу.
Как выглядит процесс оплаты в Telegram
Если вам еще не приходилось ничего покупать через мессенджер, сценарий продаж может быть неочевиден. В одних случаях продажа начинается на сайте, а завершается в Telegram. В других же все обслуживание клиента идет через Telegram-бота. Вот как это будет выглядеть пошагово:
- Покупатель кладет в корзину товар на сайте магазина, а на этапе оплаты выбирает платеж через Telegram (вариант второй — когда товар или услугу клиент изначально выбирает с помощью Telegram-бота; именно такой сценарий рассмотрим на рисунке ниже).
- Бот магазина выставляет покупателю счет.
- Telegram обменивается информацией о выставленном счете с платежным ботом Яндекс.Кассы.
- Плательщик вводит платежную информацию не покидая приложения Telegram.
- Бот Я.Кассы проводит платеж и сообщает об успешном платеже в бэкэнд магазина и в Telegram.
- Telegram уведомляет плательщика и бота магазина.
Стоит ли говорить, что скорость выполнения пп. 1-2 зависит от клиента (выбор товара, ввод платежной информации), а процессы из пп. 3-6 происходят почти мгновенно?
Пример использования платежного бота в сервисе русского языка «Ты справишься!» (@UchenyjBot)
Средний чек при оплате в мессенджере через Яндекс.Кассу составляет 700 рублей — сопоставимый со средним чеком при платеже на сайте. Абсолютный показатель у каждого бизнеса свой. К примеру, средний чек в музыкальной школе, которая принимает оплату через Кассу в Telegram, — 4000 рублей. Подписка на сервис консультаций по русскому языку, процесс оплаты которого показан выше, стоит 149 рублей.
Как настроить продажи через Telegram
Когда Telegram только выпустил API c поддержкой платежей, казалось, что этот канал продаж будет востребован среди средних и крупных мерчантов, которым под силу написать своего бота, учитывающего все сценарии общения магазина с пользователем. Но на самом деле продавать в Telegram большой ритейл не пошел, зато пришли небольшие сервисные компании и маленькие магазины.
Чтобы настроить продажи в Telegram через Яндекс.Кассу, нужно сделать три главных вещи:
- Зарегистрируйтесь в Яндекс.Кассе: подпишите договор и получите идентификатор магазина (shopId).
- Создайте Telegram-бота, который будет общаться с клиентами. Все боты создаются через @Botfather, но их поведение можно программировать самостоятельно или через конструкторы. Готовый бот нужно активировать через чат с @BotFather.
- Подключить своего бота к платежному боту Яндекс.Кассы. Для этого во вкладке «Payments» («Платежи») в меню вашего бота при диалоге с BotFather выберите Яндекс.Кассу в качестве платежного провайдера. Затем начните диалог с новым ботом через /start, укажите shopId из личного кабинета Яндекс.Кассы (он назначается при подключении мерчанта, у каждого он свой) и реализуйте метод sendinvoice из платёжного API Telegram. Как только бот будет настроен, прием оплаты включится автоматически.
В ответ на запрос ваш бот будет отправлять клиенту счет на оплату. В счете должны быть стоимость, название, описание товара, параметр payload и параметр provider_token — это тот самый токен, который выдал @BotFather.
Если нужно получить от покупателя адрес доставки, реализуйте метод Shipping Query. Когда пользователь укажет адрес, на этот запрос нужно ответить методом answerShippingQuery и передать через него способы доставки, а также их цены.
Итак, готово почти все, кроме отправки чека.
Продажи через Telegram по 54-ФЗ
В июле 2017 года вступил в силу закон 54-ФЗ, суть которого в необходимости онлайн-отчета перед налоговой за каждую продажу через интернет. То есть любой работающий с физическими лицами интернет-магазин обязан использовать кассовую технику нового поколения, которая сможет отправлять электронные чеки в налоговую инспекцию после каждого платежа (такую кассовую технику (ККТ) можно купить или арендовать). Чеки передаются в налоговую и покупателю по интернету через оператора фискальных данных — ОФД (поэтому касса должна быть всегда онлайн). В чеке должны быть название товара, цена, количество, ставка НДС, данные о продавце и о самой кассе.
До недавнего времени мерчантам нужно было следить за продажами через бот и проводить фискализацию самостоятельно. Что это означало на практике? Все то же, как если бы продажи шли через офлайн: бот передавал продавцу уведомление о продаже, продавец вручную вбивал в свою кассу все проданные товары и передавал чек по тем контактам, которые покупатель оставил перед оплатой.
За рамками Telegram Яндекс.Касса как сервис уже умела автоматически передавать данные об онлайн-платежах на 70 с лишним моделей ККМ всех популярных поставщиков. Но в платежном боте Кассы такой функции не было из-за ограничений на размер данных, которые наш бот мог получить от бота мерчанта. Все наладилось в феврале, когда Telegram доработал свой протокол для платежных ботов: появилось поле для дополнительной информации к платежному провайдеру — Provider data, и мы реализовали эту возможность у себя. Именно это поле требуется для передачи данных о составе чека. Я.Касса умеет разбирать это поле, поэтому мерчанту остается только правильно настроить своего бота, дополнив его данными о составе чека.
Ниже — код запроса без прикрепленного чека, то есть как было до февраля:
{
"chat_id":147426403,
"title": "Test",
"description": "Test",
"payload":{},
"provider_token":"390540012:LIVE:1514",
"currency": "RUB",
"start_parameter":"mybot",
"prices":[{"label":"Ля-Ля","amount": 6100}]
}
Если добавить информацию о составе чека для дальнейшей обработки и фискализации, то запрос к Telegram на отправку счета с дополнительной информацией для платежного бота Яндекс.Кассы будет выглядеть так (внимание на поле Receipt – это и есть данные состава чека):
{
"chat_id":147426403,
"title": "Test",
"description": "Test",
"payload":{},
"provider_token":"390540012:LIVE:1514",
"currency": "RUB",
"start_parameter":"mybot",
"prices":[{"label":"Ля-Ля","amount": 6100}],
"provider_data":{
"receipt":{
"email":"example@example.com",
"items":[
{
"description": "Товар A",
"quantity": "1.00",
"amount": {
"value": "100.00",
"currency": "RUB"
},
"vat_code": 1
}
]
}
}
}
Из обязательных данных в запросе:
- need_phone_number или need_email — они говорят Telegram, что после клика по счету нужно запросить номер телефона (need_phone_number) и/или email (need_email);
- send_email_to_provider (если вы запрашивали у покупателя email) или send_phone_number_to_provider (если запрашивали номер телефона) — указывают на необходимость отправки введенных значений платежному провайдеру;
- provider_data с объектом receipt — в составе чека должен быть перечень товарных позиций или услуг, их количество и цены. Все как в обычном чеке.
Чтобы после оплаты в Telegram Я.Касса автоматически «сигналила» вашему кассовому аппарату, что покупателю надо отправить чек (сам чек отправляет ОФД, обслуживающий вашу кассу), нужно сделать следующее:
- В личном кабинете Я.Кассы указать настройки своего кассового аппарата, совместимого с Яндекс.Кассой (сейчас Касса поддерживает несколько десятков разновидностей ККТ — например, Атол и Атол Онлайн, Orange Data, УМКА, СтарРус, Эвотор, Дримкас, Искра, Штрих-М, Счетмаш, Инкотекс и другие).
- Если у вас еще нет Telegram-бота, создайте его и подключите к боту Яндекс.Кассы по этой инструкции.
Если у вас есть опыт создания платежного бота или остались вопросы о том, как настроить оплату — добро пожаловать в комментарии.
Автор: Arnautka