---
title: "OTP: код не приходит"
description: Что делать, если код верификации не доходит до получателя — канал, EDR, имя отправителя, режим работы
---

> **For AI agents:** the complete documentation index is at [llms.txt](https://docs.mydialogi.ru/llms.txt). Append `.md` to any page URL for its markdown version.



> **Коротко:** если код верификации не доходит, проверьте канал, EDR, статус имени отправителя и возможные блокировки.

## Кому подходит

- Роль: Клиент, Разработчик, Интегратор
- Уровень: Новичок / Опытный

## Симптом

Пользователь не получает код верификации.

## Пошаговая диагностика

### 1. Проверьте EDR

1. Откройте **Статистика** → **Записи сообщений (EDR)**.
2. Найдите код по номеру получателя.
3. Проверьте статус.

| Статус | Что означает |
|---|---|
| Доставлено | Код дошёл до получателя |
| Отправлено | Код ушёл провайдеру, но не доставлен |
| Неуспешно | Код не доставлен |

[Записи сообщений (EDR) по OTP →](https://docs.mydialogi.ru/02-otp/06-statistics/otp-602-edr)

### 2. Проверьте канал

Для каждого канала — свои требования:

| Канал | Что проверить |
|---|---|
| SMS | Длина текста, оператор |
| RCS | Поддержка оператором |
| Viber | Настройки сессии, активное окно 24 часа |
| WhatsApp | Шаблон одобрен, окно 24 часа |
| TTS | Язык, количество повторов |
| FlashCall | Настройки `code`, `dial_timeout` |
| Email | Домен верифицирован |
| Telegram Gateway | Настройки `ttl`, `code_length` |
| Mobile Push | Приложение подключено |

[Форматы payload по каналам →](https://docs.mydialogi.ru/02-otp/08-api/otp-api-omni-payload)

### 3. Проверьте имя отправителя

1. Откройте **Активы** → **Имена отправителей**.
2. Убедитесь, что статус **Активно**.

<Warning>
Использовать можно только имя со статусом **Активно**. Если статус другой — дождитесь одобрения.
</Warning>

**Через API:** проверьте имена и их статусы через `GET /senders`.

[Как зарегистрировать имя отправителя →](https://docs.mydialogi.ru/06-reference/08-sender-id-how-to)

### 4. Проверьте баланс

1. Откройте **Финансовые документы** → **Платежи**.
2. Проверьте, что баланс положительный.

**Через API:** проверьте баланс через `GET /balance`.

[Как пополнить баланс →](https://docs.mydialogi.ru/06-reference/05-finance/top-up)

### 5. Проверьте лимиты

На один канал действует ограничение — **не более 5 одновременных запросов на отправку**.

**Симптом:** API возвращает `429 Too Many Requests`.

**Решение:**

1. Уменьшите частоту запросов.
2. Используйте очередь.
3. Если лимит критично низкий — обратитесь в поддержку.

[Ошибка 429 →](https://docs.mydialogi.ru/06-reference/03-troubleshooting/ts-rate-limit-429)

### 6. Проверьте блокировку FMS

Fraud Management System может автоматически заблокировать отправку кодов.

**Признак:** коды не доходят массово, в EDR — пусто.

**Решение:** обратитесь в поддержку сервиса.

[Как работает FMS →](https://docs.mydialogi.ru/06-reference/07-security/fms)

## Проверка по режимам работы

### Под ключ (2FA-сервис)

Платформа сама генерирует и проверяет код. Вам нужно проверить:

1. **2FA-интеграция активна.** Откройте **2FA Service** → **2FA SMS**. Статус должен быть **Активный**.
2. **Генерация на стороне платформы.** В настройках 2FA-интеграции проверьте поле **Генерация и проверка кода** — должно быть **На стороне платформы**.
3. **Период валидности кода не истёк.** Проверьте поле **Период валидности кода** — максимум 600 секунд.
4. **Код не отозван.** Если пользователь запросил новый код — старый отзывается автоматически.
5. **Превышено 3 попытки ввода.** Действует 10-минутный перерыв.

[Как настроить 2FA-интеграцию →](https://docs.mydialogi.ru/02-otp/01-turnkey/otp-102-setup-2fa)

### Умный шлюз

Вы сами генерируете код, платформа только доставляет его. Вам нужно проверить:

1. **Правила каскада.** Все ли каналы указаны корректно.
2. **Таймауты для каждого канала.** Не слишком ли короткие.
3. **Статус ожидания (`successOn`).** По умолчанию `sent`. Если нужно `delivered` — укажите явно.
4. **Порядок каналов.** Дешёвый канал первым.
5. **Логика перехода.** Если статус не достигнут — платформа переключится на следующий канал.

<Note>
Если первый канал вернул статус «абонент недоступен», «номер не существует» или «отклонено» — переход на следующий канал происходит **немедленно**, без ожидания таймаута.
</Note>

[Как работает умный шлюз →](https://docs.mydialogi.ru/02-otp/02-smart-gateway/otp-201-how-gateway-works)

## Частые причины

### Неверный номер в запросе

**Причина:** номер получателя указан неверно или без кода страны.

**Решение:** проверьте номер. Формат — с кодом страны, без «+». Проверьте через HLR.

[HLR-проверка →](https://docs.mydialogi.ru/07-smart-services/02-hlr/hlr)

### Отписка контакта

**Причина:** получатель ранее отправил команду отписки.

**Решение:** проверьте команды отписки в разделе **Контакты** → **Команды отписки**.

### Блокировка FMS

**Причина:** Fraud Management System определила активность как подозрительную.

**Решение:** обратитесь в поддержку сервиса с ID рассылки и временем.

[Как работает FMS →](https://docs.mydialogi.ru/06-reference/07-security/fms)

### Имя отправителя не активно

**Причина:** имя отправителя не имеет статуса **Активно**.

**Решение:** дождитесь одобрения или проверьте причину отклонения.

### Превышен лимит запросов

**Причина:** более 5 одновременных запросов на один канал.

**Решение:** уменьшите частоту, используйте очередь.

[Ошибка 429 →](https://docs.mydialogi.ru/06-reference/03-troubleshooting/ts-rate-limit-429)

### Ошибка оператора

**Причина:** техническая ошибка на стороне оператора связи.

**Решение:** повторите отправку через 1–2 часа. Если повторяется — обратитесь в поддержку.

[Ошибки по операторам →](https://docs.mydialogi.ru/06-reference/03-troubleshooting/ts-mno-errors)

### Каскад не переключается на следующий канал

**Причина:** статус, указанный в `successOn`, уже наступил — например, `sent`, а вы ждали `delivered`.

**Решение:** явно укажите `successOn: "delivered"` для каждого сообщения каскада.

### Код не приходит в режиме «Под ключ»

**Причина:** интеграция в статусе **Черновик** или **Заблокированный**.

**Решение:**

1. Откройте **2FA Service** → **2FA SMS**.
2. Проверьте статус — должен быть **Активный**.
3. Если статус другой — активируйте интеграцию.

[Как редактировать 2FA-интеграцию →](https://docs.mydialogi.ru/02-otp/01-turnkey/otp-103-edit-2fa)

### Код в EDR виден как \*\*\*\*\*\*

**Причина:** это нормальное поведение при `isOtp: true`. Код маскируется в EDR.

**Решение:** ничего делать не нужно. Получателю код отправлен в открытом виде, в EDR — маска.

[Подробнее о isOtp →](https://docs.mydialogi.ru/02-otp/08-api/otp-api-omni)

## Когда обращаться в поддержку

<Info>
Обращайтесь, если проблема не поддаётся диагностике самостоятельно.
</Info>

Обратитесь в поддержку OTP-кодов:

- **OTP-коды:** support@otpcod.ru

Повод для обращения:

- Код не доходит массово.
- Ошибка повторяется.
- Каскад не переключается.
- Ошибки, которых нет в этом справочнике.
- Блокировка FMS.

## Что приложить к обращению

<Info>
Полные данные ускорят решение проблемы.
</Info>

Что указать:

- `requestId` из ответа API.
- Номер получателя.
- Канал.
- Время отправки.
- Статус в EDR.
- Текст ошибки из EDR.
- Режим работы — **Под ключ** или **Умный шлюз**.
- Настройки каскада (если используется).

## См. также

<Columns cols={2}>
  <Card title="Сообщение не доставляется" icon="envelope-circle-check" href="/06-reference/03-troubleshooting/ts-not-delivered">
    Общая диагностика доставки
  </Card>
  <Card title="Ошибки по операторам" icon="tower-broadcast" href="/06-reference/03-troubleshooting/ts-mno-errors">
    Справочник ошибок операторов
  </Card>
  <Card title="Как работает 2FA-сервис" icon="shield-halved" href="/02-otp/01-turnkey/otp-101-how-2fa-works">
    Режим «Под ключ»
  </Card>
  <Card title="Умный шлюз" icon="diagram-project" href="/02-otp/02-smart-gateway/otp-201-how-gateway-works">
    Режим «Умный шлюз»
  </Card>
</Columns>

## Нужна помощь?

- OTP-коды: support@otpcod.ru
