В агентстве я смотрел на СМС-рассылки так же, как на любой рекламный канал: сколько стоит контакт и сколько из них реальные. С рассылками по собранной за годы базе всегда одна история: часть номеров давно не существует, но платишь ты за каждую отправку. HLR-запрос — инструмент, который отсекает такие номера до отправки.
Статья для тех, кто делает рассылки, отправляет коды подтверждения или хочет защитить форму от случайных и фейковых номеров. Цены в статье даю по прайсу SMS Aero (aerosms.ru, на 3 октября 2026), у других шлюзов они отличаются. Стоимость самого HLR-запроса SMS Aero в публичном прайсе не указывает, её нужно уточнять в кабинете или у поддержки [уточнить].
Что такое HLR-запрос простыми словами
HLR (Home Location Register) — это база оператора связи, где хранится информация об абонентах: активна ли SIM, в какой сети она сейчас, не перенесён ли номер к другому оператору. HLR-запрос — обращение к этой базе через шлюз. СМС при этом абоненту не уходит и он ничего не видит.
В ответ шлюз возвращает набор признаков. Состав зависит от поставщика, но обычно это:
- статус номера: существует, активен, недоступен, не найден;
- оператор, у которого номер сейчас обслуживается;
- признак переноса номера (MNP): исходный и текущий оператор;
- признак роуминга и страна, где находится абонент;
- тип номера: мобильный, городской, виртуальный (если шлюз это определяет).
HLR отвечает на вопрос «жив ли номер», а не «принадлежит ли он тому, кто заполняет форму». Подтвердить владение номером может только код или звонок, то есть верификация.
Зачем HLR нужен для рассылок и форм
Как это встроить в рассылку и в форму
Я разделяю два сценария.
Разовая очистка базы. Перед большой рассылкой выгружаете номера, прогоняете через HLR массово, получаете список с пометками и отправляете только на активные. Результат стоит сохранить в CRM, чтобы не платить за повторную проверку одних и тех же номеров: статус номера со временем устаревает, обновлять его имеет смысл перед каждой крупной рассылкой.
Проверка на лету. Номер из формы проверяется HLR до отправки кода. Если номер не существует, посетитель сразу видит подсказку проверить цифры, а вы не платите за СМС. Это дополняет, а не заменяет лимиты на номер и IP и защиту от СМС-бомбинга, о которых я писал в статье «Не приходит СМС-код».
Поддержку HLR нужно уточнять у конкретного шлюза. В API SMS Aero есть методы hlr/check (создать запрос), hlr/status (получить результат) и number/operator (определить оператора), статусы ответа: available, unavailable, non-existent и in-process. В документации SMSC такой тип запроса тоже описан. У остальных шлюзов наличие и цену проверяйте в кабинете [уточнить].
Ограничения HLR: когда он не поможет
- Временная недоступность. Телефон выключен или вне зоны сети — это не мёртвый номер. Если выкидывать такие номера из базы навсегда, потеряете живых клиентов. Лучше делить на «не существует» и «недоступен сейчас».
- Точность зависит от оператора и маршрута. Часть поставщиков возвращает менее точные данные для некоторых сетей. Протестируйте на небольшой выборке, где вы точно знаете статус.
- Бот с живым номером пройдёт. HLR не отличит человека от скрипта, который подставляет реальные чужие номера. От этого защищает только подтверждение кода.
- Нет согласия — нет рассылки. Очищенная база остаётся базой: рассылать рекламу можно только при согласии абонента (подробнее в статье о законе).
HLR + верификация: как я бы собрал защиту
Порядок, который я рекомендую для формы, где платите за каждый код:
- маска и проверка формата номера в браузере;
- лимиты на номер и IP на сервере;
- HLR-проверка, если цена кода выше цены HLR [уточнить];
- отправка кода и подтверждение;
- резервный канал, если код не дошёл.
Каждый шаг отсекает свою долю мусора, а до платной отправки доходит только то, что похоже на реальный номер. Подробнее про причины фейковых заявок в рекламе — в статье про фрод в Яндекс Директе. Как чистить базу перед рассылкой по шагам — в отдельной инструкции.
Напишите мне: подключу СМС-верификацию к вашим формам, чтобы в CRM и рассылки попадали только реальные номера.