Не приходит OTP-код: причины, таблица диагностики и решения
Не приходит OTP-код? Быстро найдите причину: формат номера, DND, фильтрация имени отправителя, роуминг, задержки и защита от SMS-пампинга, с таблицей решений.
Автор: OmniChannels.ai Editorial Team · Проверил: BroadNet Messaging Solutions Team
SMS и OTP
Короткий ответ
OTP-код обычно не приходит по одной из семи причин: номер указан не в формате E.164 или неверен, проблема с телефоном (нет сети, роуминг, переполненная память, заблокированный отправитель), режим «Не беспокоить», фильтрация оператором незарегистрированного или неизвестного имени отправителя, задержанный или сбойный маршрут, истёкший до доставки код либо блокировка запроса средствами защиты от мошенничества. Сначала откройте отчёт о доставке: чаще всего он называет причину.
На этой странице
- Почему не приходит OTP?
- Что говорит статус доставки?
- OTP не пришёл: таблица диагностики
- Почему OTP приходит поздно или после истечения срока?
- Что могут сделать пользователи, если код не приходит?
- Может ли защита от SMS-пампинга блокировать настоящих пользователей?
- Как найти закономерность по отчётам о доставке?
- Какой резервный канал предложить, если SMS не работает?
- Что нужно отслеживать?
- Частые ошибки
- Чем помогает OmniChannels.ai
Главное
- Начните со статуса доставки сообщения: DELIVERED без кода на телефоне указывает на устройство, FAILED или REJECTED — на номер, имя отправителя или маршрут, а полное отсутствие статуса — на вашу собственную систему.
- Номера нужно хранить в формате E.164: знак плюс, код страны и не более 15 цифр в сумме. Ведущий ноль или отсутствие кода страны — частая причина сбоя, которая выглядит как проблема сети.
- Имя отправителя, не зарегистрированное там, где этого требует рынок, или неизвестное оператору, может быть отфильтровано. Перед запуском проверьте правила Sender ID для страны назначения.
- NIST SP 800-63-4 указывает, что код, передаваемый вне основного канала, недействителен, если его не использовали в течение 10 минут. Продумайте повторную отправку и срок действия так, чтобы медленное сообщение не давало просроченный код.
- Средства защиты от мошенничества могут по ошибке блокировать настоящих пользователей. Следите за конверсией от запроса OTP до успешной проверки по странам и операторам и добавьте второй канал, например WhatsApp или голос, как резервный.
Это руководство для команд продукта, разработки и поддержки, чьи пользователи говорят «мне не пришёл код», а также для самих пользователей. В нём есть таблица диагностики, которая связывает каждый симптом с причиной, проверкой и решением, а затем разобраны отчёты о доставке, резервные каналы и метрика, по которой видно, становится ли лучше. О том, как правильно отправлять OTP с самого начала, читайте в нашем руководстве по сообщениям для OTP-аутентификации.
Почему не приходит OTP?
OTP пропадает в одной из пяти точек: в вашей системе, на номере, на маршруте, у оператора или на телефоне. Двигайтесь от своей стороны наружу, потому что каждый шаг оставляет в отчёте о доставке свой след.
- Ваша система не отправила код или отправила дважды, и первый код перезаписался.
- Номер неверен, плохо отформатирован или не является мобильным.
- Маршрут отклонил, задержал или потерял сообщение.
- Оператор отфильтровал его из-за имени отправителя, содержания или характера трафика.
- Телефон не смог принять или показать его: нет сигнала, роуминг, полная память, заблокированный отправитель или «Не беспокоить».
Большинство обращений «OTP не пришёл» оказываются пунктами 2 и 5, поэтому первая проверка всегда — статус доставки.
Что говорит статус доставки?
Итоговый статус сужает поиск до одной из пяти точек, прежде чем вы начнёте что-то проверять. Отчёт о доставке (DLR) — это квитанция, которую сеть оператора возвращает на каждое сообщение; см. отчёт о доставке и наше руководство по статусам доставки сообщений.
| Статус, который вы видите | С чего начать |
|---|---|
| Записи нет вовсе | Ваше приложение: вызов отправки не удался, упёрся в ограничение частоты или не выполнялся |
| SUBMITTED или SENT, дальше ничего | Маршрут или оператор, возможна задержка; дождитесь окна отчёта, затем проверьте маршрут |
| DELIVERED | Телефон: заблокированный отправитель, отфильтрованная папка, настройки уведомлений, вторая SIM |
| FAILED или REJECTED | Номер, имя отправителя или содержание; прочитайте код ошибки |
На нашей платформе статусы такие: SUBMITTED, SENT, DELIVERED, READ, FAILED и REJECTED; они приходят в вашу систему через вебхук в едином формате. Вставьте необработанный отчёт в декодер отчётов о доставке SMS, чтобы расшифровать код ошибки. Некоторые сети никогда не возвращают итоговый отчёт, поэтому отсутствие DELIVERED считайте неизвестным, а не сбоем.
OTP не пришёл: таблица диагностики
Используйте таблицу как чек-лист. В каждой строке симптом, вероятная причина, проверка и решение.
| Симптом | Вероятная причина | Проверка | Решение |
|---|---|---|---|
| Сразу FAILED, ошибка недействительного номера | Неверный формат номера | Сравните сохранённый номер с E.164 | Приводите к E.164 при регистрации; проверяйте форматтером номеров |
| Работает в одних странах, не работает в других | После кода страны остался ведущий ноль или сохранён национальный формат | Сравните сбойные номера рядом | Уберите префикс внутри страны, добавьте код страны |
| DELIVERED, пользователь ничего не видит | Заблокированный отправитель или отфильтрованная папка на телефоне | Попросите пользователя проверить списки заблокированных и спама | Разблокировать; использовать постоянное имя отправителя |
| REJECTED или фильтрация только у одного оператора | Имя отправителя не зарегистрировано или не распознано там | Проверьте правила Sender ID страны назначения | Зарегистрируйте имя отправителя; проверьте доставку у каждого оператора |
| Сообщение приходит с опозданием на минуты | Перегрузка, медленный маршрут или телефон вне зоны покрытия | Сравните время отправки и доставки по операторам | Правила повторной отправки, более долгий срок жизни, резервный канал |
| Код приходит, но «просрочен» | Срок действия короче реального времени доставки | Сравните задержку доставки со сроком жизни кода | Увеличьте срок; аннулируйте старые коды при повторной отправке |
| Пользователь за границей ничего не получает | Роуминг не включён или посещаемая сеть ограничивает сообщения | Спросите, включены ли роуминг данных и SMS | Предложите OTP через WhatsApp или голос |
| Настоящие пользователи заблокированы правилом ограничения частоты | Защита от мошенничества слишком строгая | Просмотрите журналы блокировок по странам и префиксам | Смягчите правило для проверенных шаблонов; добавьте путь для обжалования |
| Номер недавно перенесли к другому оператору | Перенесённый номер маршрутизируется в старую сеть | Выполните проверку номера | Используйте данные проверки перед отправкой |
| У пользователя сбой только на одной SIM | Двухсимочный телефон принимает на другой SIM | Спросите, какой номер используется для SMS по умолчанию | Подтвердите номер в аккаунте |
| В шаблоне эмодзи или спецсимволы, показываются странные знаки | Смена кодировки | Проверьте шаблон в счётчике символов | Держите текст OTP коротким и простым, без эмодзи |
Два пункта заслуживают внимания.
Номер в формате E.164?
E.164 — международный стандарт нумерации: знак плюс, код страны и абонентский номер, всего не более 15 цифр (ITU-T E.164). Мобильный номер Великобритании, сохранённый как 07700 900123, записан в национальном формате. В E.164 он выглядит как +447700900123, ведущий ноль убран. Форматируйте номер при вводе, храните одну чистую версию, а исходный ввод оставляйте только для показа. Форматтер номеров показывает преобразование, а определение дано в статье глоссария про E.164.
Может ли причина быть в имени отправителя?
Да, если рынок регистрирует имена отправителя или фильтрует их. Альфа-имя, то есть название бренда вместо номера, могут заблокировать или заменить, если страна назначения требует регистрации, а имени нет в списке оператора. Правила различаются по странам, поэтому используйте проверку Sender ID и прочитайте наше руководство по типам имён отправителя. Если хотите, чтобы мы подготовили и подали регистрацию вместе с вами, см. регистрации; решения об одобрении остаются за операторами и регуляторами.
Почему OTP приходит поздно или после истечения срока?
Задержка обычно возникает на маршруте или на телефоне, а истечение срока превращает задержку в сбой. NIST SP 800-63B-4 указывает, что аутентификация вне основного канала недействительна, если её не завершили в течение 10 минут, и что код можно использовать только один раз. Это верхняя граница для случаев с высоким уровнем гарантий, а не цель. Выберите срок жизни, который покрывает обычный разброс доставки, но не держит код открытым дольше необходимого.
Практические правила:
- Аннулируйте старый код при выдаче нового и скажите пользователю, что работает только последний.
- Показывайте таймер повторной отправки, чтобы пользователи не нажимали кнопку подряд и не засыпали себя конфликтующими кодами.
- Ограничьте число попыток и запросов на номер, чтобы защититься от подбора и злоупотреблений.
- Записывайте время отправки, доставки и проверки, чтобы видеть реальную задержку, а не угадывать её.
Что могут сделать пользователи, если код не приходит?
Короткий чек-лист для конечных пользователей, который можно разместить на экране проверки или в справке:
- Проверьте номер на экране. Он верный, с правильным кодом страны?
- Проверьте сигнал. Перейдите туда, где есть покрытие, или включите и выключите режим полёта.
- Загляните в папку спама, заблокированных или «неизвестных отправителей» в приложении сообщений.
- Убедитесь, что «Не беспокоить» или фильтр звонков и сообщений не скрывает сообщение.
- Освободите память, если входящие переполнены.
- Если вы за границей, включите роуминг для звонков и сообщений или выберите другой способ.
- Дождитесь таймера повторной отправки и запросите новый код один раз. Частые запросы могут сработать как ограничение.
- Если не получилось, выберите другой способ, например WhatsApp или голосовой звонок, либо обратитесь в поддержку.
Может ли защита от SMS-пампинга блокировать настоящих пользователей?
Да, и цена незаметна, пока вы её не измерите. SMS-пампинг, или искусственное накручивание трафика, — это мошенничество, при котором злоумышленники запускают OTP-сообщения на номера, на которых зарабатывают. Ограничения частоты, списки разрешённых стран, блокировки префиксов и проверки на ботов останавливают его, но слишком широкое правило отклоняет и настоящие запросы, например нового клиента из страны, с которой вы обычно не работаете. Сама атака разобрана в нашем руководстве по мошенничеству с SMS-пампингом; для этой проблемы главное такое:
- Записывайте причину каждой блокировки со страной, префиксом и названием правила.
- Сравнивайте заблокированные запросы с последующими успешными регистрациями того же пользователя или устройства. Если заблокированные на первом шаге успешно проходят со второй попытки, ваше правило вредит настоящим людям.
- Дайте заблокированным пользователям путь, а не тупик: второй канал или ссылку на поддержку.
- Пересматривайте правила после каждой кампании или запуска, потому что трафик из новых стран сначала выглядит необычно.
Как найти закономерность по отчётам о доставке?
Разбейте данные доставки по стране, оператору, имени отправителя, часу и коду ошибки и найдите один сегмент, который сбоит заметно чаще остальных. Усреднённое значение скрывает слабые места. Метод подробнее объяснён в нашем руководстве по повышению доставляемости SMS, а HLR-запрос перед отправкой может пометить неактивные номера и номера, перешедшие в другую сеть.
| Срез | О чём говорит всплеск |
|---|---|
| Один оператор | Фильтрация вашего имени отправителя или содержания либо проблема маршрута в этой сети |
| Одна страна | Нет регистрации, нарушено регуляторное правило или слишком строгое правило против пампинга |
| Один час | Перегрузка или выкладка новой версии на вашей стороне |
| Один код ошибки | Конкретная причина, названная в отчёте |
| Один шаблон | Содержание или кодировка, которые запускают фильтры |
Какой резервный канал предложить, если SMS не работает?
Предложите второй канал после короткого фиксированного ожидания и сделайте его простым для пользователя. Обычные варианты — повторная отправка по SMS, шаблон аутентификации WhatsApp или голосовой звонок, который зачитывает код.
| Резервный канал | Когда работает хорошо | На что обратить внимание |
|---|---|---|
| Повтор по SMS | Первое сообщение задержалось или было удалено | Частые повторы могут выглядеть как злоупотребление |
| OTP в WhatsApp | У пользователя есть WhatsApp и он дал согласие | Аутентификация — категория шаблонов Meta со своими правилами |
| Голосовой OTP | SMS заблокированы или пользователь предпочитает звонок | Менее удобно; цены на голос — по запросу в отделе продаж |
Наше сравнение OTP в WhatsApp и OTP по SMS, руководство по голосовому OTP и руководство по стратегии резервных каналов показывают, как выстроить порядок шагов. OTP в WhatsApp нужно отправлять как шаблон категории аутентификации Meta, поэтому собирайте его по формату шаблона аутентификации, а не как свободный текст.
Что нужно отслеживать?
Следите за конверсией OTP: долей запросов OTP, которые закончились успешной проверкой. Формула такая:
Конверсия OTP = успешные проверки / запросы OTP
Считайте её по странам, операторам, каналам и именам отправителя и настройте оповещение, когда какой-либо сегмент падает заметно ниже обычного. Добавьте медианную задержку доставки и долю запросов, заблокированных правилами защиты от мошенничества. Вместе эти три показателя говорят, в чём проблема: в охвате, скорости или в ваших собственных ограничениях.
Частые ошибки
- Сначала винить оператора. Многие сбои — это форматирование или проблемы телефона, которые показал бы отчёт о доставке.
- Короткие тексты OTP с добавками. Эмодзи и рекламный текст могут изменить кодировку и спровоцировать фильтрацию. Простое сообщение вроде
Ваш код: 482913. Действует 10 минут. Никому его не сообщайте.на кириллице уходит в Unicode и всё равно вмещается в один сегмент (61 знак из 70). - Нет лимита повторной отправки. Это приглашает к злоупотреблениям и путает пользователей несколькими действующими кодами.
- Один канал. Если SMS — единственный вариант, любая проблема с SMS превращается в проблему регистрации.
- Нет измерений. Без конверсии по сегментам вы узнаёте о сбоях из обращений в поддержку.
Чем помогает OmniChannels.ai
OmniChannels.ai на базе BroadNet отправляет OTP по прямым подключениям к операторам и возвращает статусы доставки в вашу систему через вебхуки в едином формате. Вы можете выстроить резервный канал, например WhatsApp, затем SMS или голос, для каждого сценария и пользоваться HLR и проверкой номера перед отправкой. Наша команда готовит и подаёт регистрацию имени отправителя вместе с вами. См. решение для OTP и уведомлений, прочитайте документацию по вебхукам или запросите тестовый доступ на странице для разработчиков.
Часто задаваемые вопросы
Почему мне не приходят OTP-коды на телефон?
Обычные причины: нет сигнала или действуют ограничения роуминга, переполнена память, отправитель заблокирован или отфильтрован, включён режим «Не беспокоить», номер введён с ошибкой или сообщение задержалось. Перезагрузите телефон, проверьте папки со спамом и заблокированными, убедитесь, что в аккаунте указан верный номер, и дождитесь таймера повторной отправки, прежде чем просить новый код.
За какое время должен прийти OTP?
Большинство кодов приходят за секунды, но доставка зависит от оператора и маршрута и не гарантируется. Не обещайте конкретное время. Показывайте таймер повторной отправки, делайте срок действия кода достаточным для медленной доставки и предлагайте другой канал, если первое сообщение не пришло.
Почему одни пользователи получают OTP, а другие в той же сети — нет?
Сеть редко бывает единственной причиной. Разница в формате номера, настройках телефона, заблокированных отправителях, роуминге и перенесённых номерах может разделить пользователей одного оператора. Разбейте отчёты о доставке по оператору, стране и коду ошибки, чтобы увидеть, какая группа не получает сообщения.
Может ли незарегистрированное имя отправителя остановить доставку OTP?
Да. На рынках, где операторы или регуляторы требуют регистрации имени отправителя, незарегистрированное имя могут заблокировать или заменить. Проверьте правила страны назначения, зарегистрируйте имя до запуска и проверьте доставку у всех крупных операторов. Наша команда может подготовить и подать регистрацию вместе с вами.
Что делать, если OTP доставлен, а пользователь говорит, что код не приходил?
Статус DELIVERED означает, что оператор сообщил о передаче сообщения на телефон или в его сеть, поэтому смотрите на устройство: заблокированный отправитель, отфильтрованная папка, настройки уведомлений или вторая SIM-карта. Попросите пользователя проверить папку спама, затем предложите повторную отправку по другому каналу.
Может ли защита от SMS-пампинга заблокировать настоящих пользователей?
Может. Ограничения частоты и блокировки стран или префиксов останавливают поддельный трафик, но при слишком жёстких настройках отклоняют и настоящих людей. Регулярно просматривайте заблокированные запросы, записывайте причину и давайте заблокированным пользователям понятный путь ко второму каналу или в поддержку.
Источники
Читайте дальше
Ещё руководстваSMS и OTP
SMS не доставлено? Причины, коды DLR и как это исправить
SMS не доставлено? Найдите причину по статусу отчёта о доставке, имени отправителя, фильтрации, DND, номеру и маршруту, затем пройдите чек-лист.
9 мин чтения
SMS и OTP
Short code, long code или toll-free SMS: что выбрать
Short code, long code и toll-free SMS в США: определения, пропускная способность, регистрация, двусторонняя связь и стоимость в сравнении, плюс правило выбора.
10 мин чтения
Интеграции
Отправка SMS через API: примеры на Python, Node.js, PHP и cURL
Отправка SMS через API на Python, Node.js, PHP и cURL: одиночные и массовые отправки, Unicode и арабский, подсчёт сегментов, вебхуки статусов доставки и ошибки.
10 мин чтения
