---
title: "Принцип работы 2FA: на стороне платформы"
description: 2FA на стороне платформы — генерация и проверка кода платформой
---

> **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.

> **Коротко:** при интеграции «на стороне платформы» код генерируется и проверяется платформой. Вы получаете результат проверки.

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

- Роль: Разработчик
- Уровень: Опытный

## Что это

Платформа сама:

1. Генерирует код.
2. Отправляет код через канал.
3. Проверяет код, который ввёл пользователь.
4. Возвращает результат: код верный или нет.

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

<Note>
**Это режим «На стороне платформы».** Платформа сама генерирует и проверяет код.

**Если вам нужна генерация кода на своей стороне** — используйте режим **Умный шлюз**.

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

## Перед началом

- [ ] Вы настроили 2FA-интеграцию в разделе **2FA Service**.
- [ ] Вы знаете **API-ключ интеграции** и **URL интеграции**.
- [ ] У вас есть имя отправителя со статусом **Активно**.

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

## Как это работает

### Шаг 1. Отправка кода

Вы отправляете запрос на URL интеграции. В ответе — **requestId**.

**Параметры запроса:**

| Что | Значение |
|---|---|
| **Метод** | `POST` |
| **URL** | Значение из поля «URL для интеграции» |
| **Авторизация** | Basic Auth: `<API-ключ интеграции>` (логин), пароль — пустой |
| **Параметр** | `number` — номер телефона получателя |

**Пример запроса:**

```bash
curl -X POST <URL для интеграции> \
  -u <API-ключ интеграции> \
  -d number="<номер получателя>"
```

### Шаг 2. Платформа генерирует и отправляет код

Платформа создаёт код, отправляет его через канал и сохраняет в своей базе.

### Шаг 3. Пользователь вводит код

На вашем сайте пользователь вводит код в поле.

### Шаг 4. Вы отправляете код на проверку

**Параметры запроса:**

| Что | Значение |
|---|---|
| **Метод** | `POST` |
| **URL** | `https://<домен OTP-сервиса>/api/v1/2fa/verify` |
| **Авторизация** | Basic Auth: `<API-ключ интеграции>` |
| **Параметры** | `requestId` — из шага 1, `code` — код от пользователя |

**Пример запроса:**

```bash
curl -X POST https://<домен OTP-сервиса>/api/v1/2fa/verify \
  -u <API-ключ интеграции> \
  -d requestId=<requestId> \
  -d code=<код>
```

### Шаг 5. Платформа возвращает результат

**Успешный ответ:**

| Поле | Что содержит |
|---|---|
| `number` | Номер телефона |
| `verifiedAt` | Время успешной проверки |

**Пример ответа:**

```json
{
  "number": "12345678910",
  "verifiedAt": 1234567890
}
```

Если код неверный — вернётся ошибка.

## Пример сценария

1. Пользователь хочет войти в ваш сервис.
2. Ваш сервис отправляет запрос в OTP-коды.
3. Платформа отправляет код по SMS.
4. Пользователь вводит код.
5. Ваш сервис отправляет код на проверку.
6. Платформа отвечает: код верный.
7. Пользователь вошёл в ваш сервис.

## Результат

Вы понимаете, как работает режим «На стороне платформы», и готовы интегрировать два API-запроса в свой сервис.

## Частые проблемы

### Код не приходит пользователю

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

**Решение:** проверьте статус в EDR. Если не помогает — обратитесь в поддержку.

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

### Ошибка при проверке кода

**Причина:** истёк срок действия кода или код введён неверно.

**Решение:** запросите новый код и повторите проверку.

[Проверка 2FA-запроса →](https://docs.mydialogi.ru/02-otp/01-turnkey/otp-109-check-request)

### Ошибка 401 Unauthorized

**Причина:** неверный API-ключ интеграции.

**Решение:** сверьте ключ в разделе **Данные для интеграции**. Для 2FA используется Basic Auth — логин — API-ключ интеграции, пароль — пустой.

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

## См. также

<Columns cols={2}>
  <Card title="Как работает 2FA-сервис" icon="shield-halved" href="/02-otp/01-turnkey/otp-101-how-2fa-works">
    Режим «Под ключ» — генерация и проверка
  </Card>
  <Card title="API 2FA Service" icon="code" href="/02-otp/01-turnkey/otp-104-2fa-api">
    Обзор API 2FA — методы и эндпоинты
  </Card>
  <Card title="Как настроить 2FA-интеграцию" icon="gear" href="/02-otp/01-turnkey/otp-102-setup-2fa">
    Пошаговая настройка интеграции
  </Card>
  <Card title="Как редактировать 2FA-интеграцию" icon="pen-to-square" href="/02-otp/01-turnkey/otp-103-edit-2fa">
    Изменение параметров и тестирование
  </Card>
  <Card title="Получение обратных вызовов при 2FA" icon="webhook" href="/02-otp/01-turnkey/otp-108-callbacks">
    Push-уведомления о статусах
  </Card>
  <Card title="Проверка 2FA-запроса" icon="circle-check" href="/02-otp/01-turnkey/otp-109-check-request">
    Статус запроса по requestId
  </Card>
  <Card title="Подключение к API OTP" icon="plug" href="/02-otp/08-api/otp-api-connection">
    Базовый URL, аутентификация, формат запросов
  </Card>
  <Card title="Как работает умный шлюз" icon="diagram-project" href="/02-otp/02-smart-gateway/otp-201-how-gateway-works">
    Второй режим работы OTP-кодов
  </Card>
</Columns>

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

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