Настройка автоматической отправки чека в мессенджер 1С-Битрикс

Покупатели часто не получают электронные чеки — письма теряются в спаме, а магазин рискует получить штраф. Мы настраиваем автоматическую отправку чеков в Telegram или WhatsApp прямо из вашего 1С-Битрикс, чтобы документы доходили мгновенно и без потерь. Наша команда реализует интеграцию под ключ — от подключения обработчика до настройки резервной отправки по SMS, обеспечивая надёжную работу и полное соответствие 54-ФЗ.

Настройка автоматической отправки чека в мессенджер 1С-Битрикс

Мессенджеры и чат-ботыПростой~1 день
Часто задаваемые вопросы

После онлайн-оплаты покупатель по 54-ФЗ получает электронный чек на email. Проблема: до 20% таких писем уходят в спам — особенно у массовых почтовых сервисов вроде Gmail и Yandex. Пользователь не видит чек, а магазин рискует получить штраф от ФНС до $450–650 за каждый неотправленный чек. Отправка чека в мессенджер — Telegram или WhatsApp — решает проблему доставляемости: мессенджеры читают чаще и быстрее, доставляемость достигает 99%. Мы настроим этот процесс под ваш Битрикс: навесим обработчик на событие оплаты, получим URL чека из модуля кассы и отправим его пользователю в выбранный мессенджер. Дополнительно настраиваем fallback на SMS, если мессенджер недоступен. Экономия на штрафах и повышение лояльности клиентов — практический результат такой интеграции.

Преимущества мессенджеров перед email

Характеристика 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 попыток.

Инструкция по настройке

  1. Установите и активируйте модуль онлайн-кассы (АТОЛ, Эвотор, Orange Data).
  2. Добавьте пользовательские поля для хранения ID чата Telegram и номера телефона для WhatsApp.
  3. Реализуйте обработчик события оплаты, как показано выше.
  4. Настройте API ботов Telegram и WhatsApp Business.
  5. Протестируйте сценарий на стенде: оплатите заказ и проверьте доставку чека.
Тестовый стендМы разворачиваем копию вашего сайта с онлайн-кассой в режиме отладки. После успешных тестов переносим на бой.

Что входит в работу

Этап Описание Длительность
Анализ Изучение текущего модуля кассы, полей пользователя, API мессенджеров 1-2 часа
Реализация Написание обработчика, настройка отправки 4-8 часов
Тестирование Проверка на тестовом стенде с реальным чеком 1-2 часа
Документация Инструкция по эксплуатации, описание событий 1 час
Обучение Демонстрация работы, ответы на вопросы 0.5 часа

Сроки настройки: от 1 до 3 рабочих дней в зависимости от сложности.

Мы гарантируем, что чек будет доставляться в мессенджер в течение 1-2 минут после оплаты. В случае асинхронной фискализации — не более 30 секунд после появления URL.

Сравнение каналов отправки

Характеристика Telegram WhatsApp
Доставляемость 99% 98%
Скорость прочтения 30-60 сек 1-2 мин
Поддержка кнопок Да (InlineKeyboard) Да (через WhatsApp Business API)
Сложность настройки Низкая Средняя (требуется Business API)
Ограничения Нет лимитов 1000 сообщений в сутки для Business API

Выбор канала зависит от аудитории: Telegram проще в настройке, WhatsApp популярнее в B2C. Мы рекомендуем настроить оба с приоритетом для пользователя.

Наши компетенции

  • Сертифицированные специалисты 1С-Битрикс с опытом более 5 лет.
  • Успешно выполнено свыше 50 интеграций онлайн-касс с Битрикс и Битрикс24.
  • Поддержка всех популярных модулей: АТОЛ, Эвотор, Orange Data, а также кастомных.
  • Консультация и месяц поддержки после запуска.

Свяжитесь с нами для обсуждения деталей. Закажите настройку под ключ, и ваши клиенты всегда будут получать чеки вовремя.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1543
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060
  • Разработка виджета онлайн-записи на прием для медицинского центра
    Разработка виджета онлайн-записи на прием для медицинского центра
    837
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    928
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    865
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1223