Подключаем A1 SMS к 1С-Битрикс: быстрая отправка по Беларуси
Стандартные SMS-провайдеры (SMS.ru, SMSC) не работают с белорусскими номерами или работают с ограничениями: нет alphanumeric sender ID, высокая стоимость, проблемы с доставляемостью. A1 (бывший Velcom) — крупнейший оператор Беларуси — предоставляет SMS-шлюз для юридических лиц с белорусским отправителем и гарантированной доставкой по сетям МТС, A1, life:). Для интеграции с Битрикс мы разрабатываем обработчик, который свяжет A1 SMS API с модулем messageservice (для Б24) или main.mail (для коробочного Битрикс). Свяжитесь с нами, чтобы обсудить ваш проект и получить предварительную оценку.
Почему A1 SMS лучше альтернатив для Беларуси?
В отличие от зарубежных SMS-провайдеров, A1 гарантирует доставку на номера МТС, A1 и life:) без потери алфавитного Sender ID. Стоимость одного сообщения — в разы ниже, чем через SMS.ru на белорусские номера. Кроме того, A1 предоставляет официальный DLR (Delivery Report) и callback-уведомления, что даёт полный контроль над доставкой.
Как работает API A1 SMS?
A1 предоставляет HTTP API, документация выдаётся при заключении договора. Основные эндпоинты:
-
POST /api/sms/send— отправка одного или нескольких сообщений -
GET /api/sms/status/{messageId}— статус доставки -
GET /api/sms/balance— баланс аккаунта
Авторизация — Basic Auth или токен в заголовке (зависит от версии API, уточняйте в договоре). Формат тела запроса — JSON:
{ "phone": "375291234567", "text": "Ваш заказ №1234 оформлен", "sender": "MyShop" } Sender ID — буквенное имя отправителя, регистрируется через A1 при подписании договора. Без регистрации SMS будут приходить с числовым номером.
Интеграция с коробочным Битрикс
В коробочном Битрикс SMS отправляется через модуль messageservice (если установлен) или напрямую через обработчик события. Основной сценарий — отправка SMS при событиях заказа.
Вариант 1: обработчик события OnSaleStatusOrder
EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleStatusOrder', ['A1SmsHandler', 'onStatusChange'] ); class A1SmsHandler { public static function onStatusChange($orderId, $status) { if ($status !== 'F') return; // F = выполнен $order = \Bitrix\Sale\Order::load($orderId); $phone = $order->getPropertyCollection() ->getPhone()->getValue(); self::sendSms($phone, "Заказ №{$orderId} выполнен"); } private static function sendSms(string $phone, string $text): void { $ch = curl_init('https://a1sms.by/api/sms/send'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'Authorization: Bearer ' . A1_SMS_TOKEN, ], CURLOPT_POSTFIELDS => json_encode([ 'phone' => $phone, 'text' => $text, 'sender' => 'MyShop', ]), CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 10, ]); $response = curl_exec($ch); curl_close($ch); // Логирование ответа } } Вариант 2: модуль sms.manager. Если на проекте используется модуль sms.manager (из Marketplace или кастомный) — пишется провайдер-адаптер, реализующий интерфейс отправки. Провайдер регистрируется в настройках модуля, после чего A1 SMS доступен как один из каналов отправки.
Интеграция с Битрикс24
В Б24 SMS-провайдер подключается через REST API:
- Регистрация провайдера:
messageservice.sender.addс параметрамиCODE=a1sms,TYPE=SMS,HANDLER=https://your-site.by/a1sms-handler.php - Обработчик (
a1sms-handler.php) — принимает запрос от Б24 (номер, текст), пересылает в A1 SMS API, возвращает статус - Callback для статусов — A1 отправляет DLR (Delivery Report) на указанный URL. Обработчик вызывает
messageservice.sender.updateдля обновления статуса в Б24
После регистрации A1 SMS появляется в списке провайдеров: в карточке контакта, в роботах CRM, в рассылках CRM-маркетинга.
Кодировка и транслитерация
SMS в кириллице — 70 символов на сообщение (UCS-2). В латинице — 160 символов (GSM 7-bit). Для экономии бюджета длинные уведомления стоит отправлять в латинице или укладывать текст в 70 символов. A1 API принимает текст в UTF-8, конвертация в GSM/UCS-2 — на стороне шлюза. Но спецсимволы (кавычки «», длинное тире —) могут конвертироваться некорректно. Перед отправкой — замена на ASCII-эквиваленты.
Обработка ошибок
A1 SMS API возвращает коды ошибок:
Таблица кодов ошибок A1 SMS API
| Код | Значение | Действие |
|---|---|---|
| 0 | Успешно | Сохранить messageId для отслеживания статуса |
| 1 | Неверный номер | Логировать, не повторять |
| 2 | Недостаточно средств | Алерт администратору |
| 3 | Превышен лимит | Поставить в очередь, повторить через 60 сек |
| 5 | Сервис недоступен | Retry через 300 сек, максимум 3 попытки |
Для retry в коробочном Битрикс — агент CAgent, который выбирает неотправленные SMS из HL-блока SmsQueue и повторяет попытку. Для Б24 — retry на уровне обработчика.
Что входит в работу
- Регистрация аккаунта A1 SMS и получение API-доступа
- Разработка обработчика для отправки SMS через A1 API
- Подключение к модулю
messageservice(Б24) или обработчикам событий (коробка) - Настройка callback для получения статусов доставки
- Обработка ошибок и retry-логика
- Логирование всех отправленных SMS (HL-блок или таблица)
- Документация по установке и сопровождению
- Передача доступов и обучение ответственного сотрудника
- Техническая поддержка после запуска (опционально)
Получите консультацию по вашему проекту — мы оценим объём работ и сроки.
Сроки
| Этап | Работы | Срок |
|---|---|---|
| Подключение API + базовая отправка | Обработчик, тестирование на реальном номере | 2–3 дня |
| Интеграция с CRM (роботы, рассылки) | Регистрация провайдера, шаблоны SMS, роботы | 2–3 дня |
| Callback + retry + мониторинг | DLR-обработчик, очередь, алерты | 3–4 дня |
| Полная интеграция | Все этапы + документация | 1.5–2 недели |
Главный организационный момент — договор с A1 и регистрация sender ID. Техническая часть занимает неделю, а согласование с оператором — от 3 до 10 рабочих дней. Начинайте с договора параллельно с разработкой.
Закажите интеграцию — получите консультацию по вашему проекту.







