После онлайн-оплаты покупатель по 54-ФЗ получает электронный чек на email. Проблема: до 20% таких писем уходят в спам — особенно у массовых почтовых сервисов вроде Gmail и Yandex. Пользователь не видит чек, а магазин рискует получить штраф от ФНС до $450–650 за каждый неотправленный чек. Отправка чека в мессенджер — Telegram или WhatsApp — решает проблему доставляемости: мессенджеры читают чаще и быстрее, доставляемость достигает 99%. Мы настроим этот процесс под ваш Битрикс: навесим обработчик на событие оплаты, получим URL чека из модуля кассы и отправим его пользователю в выбранный мессенджер. Дополнительно настраиваем fallback на SMS, если мессенджер недоступен. Экономия на штрафах и повышение лояльности клиентов — практический результат такой интеграции.
Преимущества мессенджеров перед email
| Характеристика | Мессенджер (Telegram/WhatsApp) | |
|---|---|---|
| Доставляемость | 70-80% | 98-99% |
| Среднее время прочтения | 2-3 часа | 1-2 минуты |
| Удобство | Требуется поиск в почте | Всегда под рукой в чате |
По данным ФНС (письмо №ЕД-4-20/12470@), неотправка чека влечёт штраф. Мессенджеры решают эту проблему.
Как настроить отправку чека в Telegram?
Фискальный чек создаётся кассовым модулем в момент подтверждения оплаты. Битрикс работает с онлайн-кассами через модули: atol.online, evotor.kassa, orangedata и аналоги. После фискализации модуль сохраняет URL чека в таблицу b_sale_pay_system_action или в пользовательское поле платежа.
Событие OnSaleOrderPaid (модуль sale) — к этому моменту чек уже должен быть создан. В зависимости от модуля кассы это может быть синхронно или с задержкой до 30 секунд.
Получение URL чека из модуля АТОЛ
// Читаем URL чека из данных платежа
$payment = $order->getPaymentCollection()->getInnerPayment();
$checkUrl = $payment->getField('PS_PARAMS') ?? null;
// Для АТОЛ чек хранится в отдельной таблице
$checkResult = \Atol\Online\Check::getByOrderId($order->getId());
$checkUrl = $checkResult['RECEIPT_URL'] ?? null;Конкретное место хранения зависит от модуля кассы. Перед разработкой — смотрим документацию конкретного модуля и его таблицы/поля.
Обработчик: отправка чека после оплаты
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleOrderPaid',
function (\Bitrix\Main\Event $event) {
$order = $event->getParameter('ENTITY');
$payment = $event->getParameter('PAYMENT');
$userId = $order->getUserId();
// Получаем URL чека — с небольшой задержкой, если кассовый модуль асинхронный
$checkUrl = self::waitForCheck($order->getId(), 3); // ждём до 3 секунд
if (!$checkUrl) {
// URL чека не получен — логируем, email уже отправлен стандартно
return;
}
$message = sprintf(
"Ваш кассовый чек по заказу #%d:\n%s",
$order->getId(),
$checkUrl
);
// Определяем предпочитаемый канал пользователя
$user = \Bitrix\Main\UserTable::getById($userId)->fetch();
if (!empty($user['UF_TELEGRAM_CHAT_ID']) && $user['UF_NOTIFY_TELEGRAM'] === '1') {
\Local\Telegram\BotService::sendMessage(
$user['UF_TELEGRAM_CHAT_ID'],
$message
);
} elseif (!empty($user['UF_PHONE']) && $user['UF_NOTIFY_WHATSAPP'] === '1') {
\Local\WhatsApp\Service::sendMessage($user['UF_PHONE'], $message);
}
// email всегда отправляется стандартным механизмом Битрикс
}
);
Если кассовый модуль создаёт чек асинхронно (через очередь), синхронного ожидания недостаточно. В этом случае подписываемся на событие самого кассового модуля:
// Событие АТОЛ Онлайн после получения ответа ОФД
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'atol.online',
'OnReceiptRegistered',
function (\Bitrix\Main\Event $event) {
$orderId = $event->getParameter('ORDER_ID');
$checkUrl = $event->getParameter('RECEIPT_URL');
// Отправляем в мессенджер здесь
}
);
Формат сообщения с чеком
Для Telegram можно добавить кнопку с ссылкой на чек через InlineKeyboard:
$payload = [
'chat_id' => $chatId,
'text' => "Чек по заказу #{$orderId} готов.",
'parse_mode' => 'HTML',
'reply_markup' => json_encode([
'inline_keyboard' => [
[
['text' => 'Открыть чек', 'url' => $checkUrl],
],
],
]),
]; Как получить URL чека из асинхронного модуля?
Асинхронные модули (АТОЛ с очередью, Эвотор с задержкой) не возвращают URL чека сразу после оплаты. Вместо OnSaleOrderPaid используем событие модуля, например OnReceiptRegistered для АТОЛ. Это гарантирует, что URL уже сохранён в базе. Если такое событие отсутствует, организуем polling через агента: каждые 5 секунд проверяем, появился ли чек, до 10 попыток.
Инструкция по настройке
- Установите и активируйте модуль онлайн-кассы (АТОЛ, Эвотор, Orange Data).
- Добавьте пользовательские поля для хранения ID чата Telegram и номера телефона для WhatsApp.
- Реализуйте обработчик события оплаты, как показано выше.
- Настройте API ботов Telegram и WhatsApp Business.
- Протестируйте сценарий на стенде: оплатите заказ и проверьте доставку чека.
Тестовый стенд
Мы разворачиваем копию вашего сайта с онлайн-кассой в режиме отладки. После успешных тестов переносим на бой.Что входит в работу
| Этап | Описание | Длительность |
|---|---|---|
| Анализ | Изучение текущего модуля кассы, полей пользователя, API мессенджеров | 1-2 часа |
| Реализация | Написание обработчика, настройка отправки | 4-8 часов |
| Тестирование | Проверка на тестовом стенде с реальным чеком | 1-2 часа |
| Документация | Инструкция по эксплуатации, описание событий | 1 час |
| Обучение | Демонстрация работы, ответы на вопросы | 0.5 часа |
Сроки настройки: от 1 до 3 рабочих дней в зависимости от сложности.
Мы гарантируем, что чек будет доставляться в мессенджер в течение 1-2 минут после оплаты. В случае асинхронной фискализации — не более 30 секунд после появления URL.
Сравнение каналов отправки
| Характеристика | Telegram | |
|---|---|---|
| Доставляемость | 99% | 98% |
| Скорость прочтения | 30-60 сек | 1-2 мин |
| Поддержка кнопок | Да (InlineKeyboard) | Да (через WhatsApp Business API) |
| Сложность настройки | Низкая | Средняя (требуется Business API) |
| Ограничения | Нет лимитов | 1000 сообщений в сутки для Business API |
Выбор канала зависит от аудитории: Telegram проще в настройке, WhatsApp популярнее в B2C. Мы рекомендуем настроить оба с приоритетом для пользователя.
Наши компетенции
- Сертифицированные специалисты 1С-Битрикс с опытом более 5 лет.
- Успешно выполнено свыше 50 интеграций онлайн-касс с Битрикс и Битрикс24.
- Поддержка всех популярных модулей: АТОЛ, Эвотор, Orange Data, а также кастомных.
- Консультация и месяц поддержки после запуска.
Свяжитесь с нами для обсуждения деталей. Закажите настройку под ключ, и ваши клиенты всегда будут получать чеки вовремя.







