# Переведите свой SMS-трафик с любого провайдера на BroadNet.

- Канонический URL: https://www.broadnet.me/ru/developers/migrate
- Язык: ru
- Последнее обновление: 2026-10-21
- Издатель: BroadNet (https://www.broadnet.me)
- Markdown-версия страницы, созданная из опубликованной страницы.

Руководство по миграции, не зависящее от поставщика услуг· /developers/migrate

В этом руководстве рассматриваются концепции, используемые вашим текущим провайдером (отправка сообщения, отправитель, подтверждения доставки и webhooks статуса), и показана соответствующая часть API BroadNet. Затем рассматривается операционная сторона: регистрация идентификатора отправителя, параллельная работа обоих провайдеров, поэтапное увеличение трафика, откат и распределение ответственности за каждый шаг. В руководстве не указан конкретный провайдер, поскольку концепции одинаковы везде.

**Отправьте одно SMS**

POST /sms/sendSms

**Аутентификация**

Authorization: Bearer <token>

**Устаревший HTTP API**

/websmpp/websms

**SMPP**

Версия 3.4, с отчётами о доставке

## Подключите ваш текущий API к BroadNet

Большинство SMS API используют одни и те же несколько концепций под разными названиями. Найдите концепцию в первом столбце, независимо от того, как её называет ваш провайдер, и используйте эквивалент BroadNet. Названия полей точно такие же, как в спецификации OpenAPI.

| Концепция | Типичная форма у других поставщиков услуг | BroadNet |
|---|---|---|
| Хост API | Региональный API хост для вашей учетной записи | `https://api.broadnet.me` Тестовые учётные данные и адрес для отправки тестового трафика вы получите вместе с тестовым доступом: запросите его на /signup, мы ответим в течение одного рабочего дня. |
| Аутентификация | Идентификатор учетной записи и секретный ключ в рамках базовой аутентификации или заголовок ключа API. | `Authorization: Bearer <token>` Один токен доступа на один аккаунт. |
| Отправьте одно сообщение | HTTP POST-запрос к конечной точке сообщений | `POST /sms/sendSms` Тело запроса имеет JSON. |
| Отправитель | `from`, `sender`, `originator` | `senderId` Буквенно-цифровой идентификатор отправителя или номер, зарегистрированный в каждой стране. |
| Получатель | `to`, `destination`, `msisdn` | `destinationNumber` Международный формат, как в примере спецификации `447700900101`. |
| Текст сообщения | `body`, `text`, `content` | `message` Текст сообщения в том виде, в котором его увидит получатель. |
| Кодировка символов и части сообщения | Рассчитывается поставщиком услуг или возвращается отдельным вызовом API | `messageType` `TEXT` (GSM-7) или `UNICODE`. `POST /sms/identify` возвращает `messageType`, `charCount`, `smsParts` и `charLimit` перед отправкой. |
| Запланированная отправка | Поле `send_at` или поле расписания времени | `isSchedule · gmt · time` Чтобы отправить сообщение немедленно, эти поля можно не заполнять. |
| Идентификатор сообщения | Поле ID в JSON ответе | `200 OK → 2603121407537573731` В теле ответа `/sms/sendSms` содержится идентификатор сообщения. |
| Несколько получателей | Конечная точка пакетной обработки или цикл | `POST /sms/sendSmsGroupData` В теле запроса используется массив `contacts`. `POST /sms/sendbulk` принимает вместо этого загрузку файла. |
| Webhook статуса доставки | URL-адрес обратного вызова для каждого запроса или для каждой учетной записи. | `Webhook URL on your account` Статус доставки передается на URL-адрес webhook, настроенный в вашей учетной записи. `POST /sms/resendDlr` повторно отправляет отчёты о доставке, если они не были доставлены. |
| Запрос статуса доставки | GET-запрос для получения сообщения по его идентификатору. | `GET /websmpp/websmsstatus` Устаревший HTTP API. Передайте идентификатор сообщения как `respid`, а для JSON как `format=json`. Значения: `DELIVRD`, `UNDELIV`, `EXPIRED`, `REJECTD`. |
| Экспорт отчета о доставке | Экспорт в CSV-файл в консоли | `/websmpp/api/dlrreport` Устаревший HTTP API. Отчет о доставке в формате XLSX за определенный период времени. |
| Ответы об ошибках | Статус HTTP плюс код ошибки поставщика. | `400 · 401 · 500` 400: ошибка проверки или отсутствует поле. 401: недействительный или отсутствующий токен Bearer. 500: непредвиденная ошибка сервера. |
| SMPP | Сессии SMPP (привязываются) к SMSC провайдера. | `bind · submit_sm · deliver_sm` Сессии SMPP v3.4 используются в качестве передатчика, приемника или трансивера. Подтверждения доставки приходят в формате `deliver_sm`. В вашей учетной записи содержатся учетные данные для входа SMPP. |
| Отправка с использованием HTTP GET URL | URL-адрес для GET-запроса с учетными данными в параметрах. | `GET /websmpp/websms` Устаревший HTTP API. `user`, `pass` (или `accesskey` ), `sid`, `mno`, `type`, `text`. Сохранено для существующих интеграций; для новых следует использовать `/sms`. |
| SDK | Библиотека для каждого языка | `@broadnet/cpaas-sdk` Один официальный SDK для TypeScript и Node.js. Для других языков сгенерируйте клиент на основе спецификации OpenAPI. |

Вот пример отправки в виде одного запроса. Замените поля отправителя, получателя и текста вашего провайдера на `senderId`, `destinationNumber` и `message`:

POST /sms/sendSms

```
curl -X POST https://api.broadnet.me/sms/sendSms \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "senderId": "ACME",
    "destinationNumber": "447700900101",
    "message": "Your code is 8123",
    "messageType": "TEXT"
  }'

# 200 OK — the response body is the message ID, e.g. 2603121407537573731
```

Чтобы проверить статус сообщения, запросите его состояние, используя идентификатор сообщения, возвращенный запросом на отправку:

Проверка статуса доставки

```
# Status lookup on the legacy HTTP API (/websmpp), by message ID
curl "https://api.broadnet.me/websmpp/websmsstatus?respid=2603121407537573731&format=json" \
  -H "Authorization: Bearer $BROADNET_TOKEN"

# "status": "DELIVRD"   (or UNDELIV, EXPIRED, REJECTD)
```

Все пути и поля на этой странице взяты из спецификации BroadNet OpenAPI. Скачайте её и проверьте соответствие вашего сопоставления с ней, прежде чем писать код. [Откройте спецификацию OpenAPI](https://www.broadnet.me/developers/openapi.yaml)

## Переместите свои идентификаторы отправителя

Буквенно-цифровые идентификаторы отправителя и короткие коды, как правило, переносимы и регулируются правилами регистрации каждого оператора и регулирующего органа. Регистрация относится к маршруту, по которому проходит ваш трафик, поэтому планируйте ее до того, как любое сообщение в рабочую сеть будет отправлено в BroadNet.

1. 1 Перечислите все идентификаторы отправителей, страны, в которые они отправляют сообщения, и тип передаваемого трафика: OTP, транзакционный или маркетинговый.
2. 2 Проверьте правила каждой страны. В ОАЭ идентификаторы отправителей регистрируются в соответствии с правилами TDRA через оператора, один идентификатор на юридическое лицо на один случай использования. В Саудовской Аравии для этого требуется одобрение CST и оператора, а иностранные отправители привязываются через местного агрегатора, имеющего лицензию CST.
3. 3 Ваш инженер по миграции отправляет заявки на регистрацию маршрутов BroadNet, а группа контроля соответствия BroadNet отслеживает каждую из них до момента утверждения.
4. 4 Начинайте параллельную отправку в стране только после того, как идентификатор отправителя будет одобрен там для маршрутов BroadNet. До тех пор продолжайте отправлять сообщения через своего текущего провайдера.

Правила для каждого рынка указаны на страницах с нормативными актами. [Правила использования SMS в разных странах](https://www.broadnet.me/ru/regulations)

## Запустите оба провайдера параллельно

Оставьте текущего провайдера активным и добавьте BroadNet в качестве второго маршрута за коммутатором в вашем собственном коде. Сначала отправьте трафик на свои проверенные номера, затем небольшую часть реального трафика и сравните оба маршрута по одним и тем же адресам.

Сравнение по странам и операторам:

- Сочетание статусов доставки: доставлено, недоставлено, истек срок действия и отклонено.
- Время от отправки сообщения до получения подтверждения о его доставке.
- Отправитель отображается на экране телефона.
- Количество сегментов для того же текста, начиная с `POST /sms/identify`.

Выбирайте маршрут для каждого получателя, а не для каждого сообщения, чтобы все повторные попытки отправки OTP для одного пользователя проходили через одного и того же поставщика. Минимальный переключатель маршрутизации:

route.ts

```
// Send a share of recipients through BroadNet; the rest stay on your
// current provider. BROADNET_SHARE is a percentage (0-100) you control.
const BROADNET_SHARE = Number(process.env.BROADNET_SHARE ?? "0");

// Same recipient -> same bucket, so OTP retries stay on one provider.
function bucket(to: string): number {
  let h = 0;
  for (const c of to) h = (h * 31 + c.charCodeAt(0)) >>> 0;
  return h % 100;
}

export async function sendSms(to: string, text: string, senderId: string) {
  if (bucket(to) < BROADNET_SHARE) return sendViaBroadNet(to, text, senderId);
  return sendViaCurrentProvider(to, text, senderId); // your existing code
}

async function sendViaBroadNet(to: string, text: string, senderId: string) {
  const res = await fetch("https://api.broadnet.me/sms/sendSms", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.BROADNET_TOKEN}`,
      "Content-Type": "application/json",
    },
    // Use UNICODE for non-GSM text; POST /sms/identify tells you which.
    body: JSON.stringify({ senderId, destinationNumber: to, message: text, messageType: "TEXT" }),
  });
  if (!res.ok) throw new Error(`BroadNet send failed: ${res.status}`);
  return { provider: "broadnet", messageId: await res.text() };
}
```

## Постепенное увеличение трафика

Перемещайте производственные объемы в BroadNet поэтапно, выбирая одну страну или один сценарий использования за раз. Оставайтесь на каждом этапе, пока подтверждения доставки не совпадут с отправленными данными, затем переходите к следующему.

1. Тестирование Только ваши собственные подтвержденные номера. Подтвердите идентификатор отправителя, текст сообщения и отчёты о доставке.
2. 5% Небольшая доля реального трафика. Трафик OTP в одну страну обеспечивает быструю и понятную доставку.
3. 25% Достаточный объем данных для сравнения тарифов на доставку и сроков получения с вашим текущим поставщиком.
4. 100% Весь трафик для данной страны или сценария использования. Ваш текущий провайдер остается активным до тех пор, пока подтверждения доставки не совпадут с отправленными вами данными.

### Сколько времени это займет

Увеличение трафика занимает столько времени, сколько вы выберете. Процесс внедрения проходит по одному пути: мы отвечаем на запрос о тестовом доступе в течение одного рабочего дня, техническая интеграция занимает 2–5 рабочих дней, а проверка маршрута с подтверждением идентификатора отправителя — 3–10 рабочих дней. На большинстве рынков от этапа обнаружения до запуска проходит 5–15 рабочих дней; на рынках, где регулирующие органы дольше утверждают идентификаторы отправителей, этот процесс занимает больше времени. [Ознакомьтесь с этапами адаптации.](https://www.broadnet.me/ru/onboarding)

## Возврат к текущему провайдеру без перебоев в работе

Для отката используйте тот же переключатель в обратном порядке: уменьшите процент трафика, отправляемого через BroadNet, до последнего успешно выполненного шага или до нуля. Ваша текущая интеграция и регистрация идентификаторов отправителей остаются активными все время, поэтому достаточно уменьшить процент. Ничего не нужно перестраивать.

- Поддерживайте активность учетных данных вашего текущего провайдера, регистраций идентификатора отправителя и конечной точки webhook до тех пор, пока весь трафик не будет перенаправлен и подтверждения доставки не будут соответствовать отправленным вами данным.
- Прежде чем начать, согласуйте, что именно послужит основанием для отмены изменений, например, снижение доли сообщений, доставленных в одной стране, и кто имеет право принимать такое решение.
- После отката обработчик webhook должен оставаться запущенным: уведомления о доставке сообщений, уже отправленных через BroadNet, по-прежнему могут поступать.
- Отключайте старый маршрут только после того, как весь трафик будет корректно проходить через BroadNet, а подтверждения доставки будут соответствовать отправленным вами данным.

## Кто за что несёт ответственность

Миграция затрагивает ваш код, регистрацию отправителей и реальный трафик. Вот как распределяется работа.

| Задача | Ваша команда | BroadNet |
|---|---|---|
| Сопоставление полей и изменения кода | Внесите изменения в код и получите контроль над коммутатором маршрутизации. | Ваш инженер по миграции сопоставляет ваши текущие данные, идентификаторы отправителей и отчёты о доставке с API BroadNet. |
| Реквизиты для входа | Храните токен доступа в безопасном месте и не допускайте его попадания в систему контроля версий. | Выдает токен доступа и, для SMPP, учетные данные для входа. |
| Регистрация идентификатора отправителя | Предоставьте компании документы, запрашиваемые каждым регулирующим органом. | Подает заявки на регистрацию своих маршрутов и отслеживает каждую из них до момента утверждения. |
| Проверка маршрута | Подтвердите результаты теста, используя свои собственные телефонные номера. | Перед запуском серийного производства проводится тестирование доставки на каждом рынке. |
| Увеличение трафика и откат | Определите каждый шаг, что запускает откат и кто принимает это решение. | В процессе параллельного выполнения и переключения можно связаться с назначенным инженером по миграции. |
| Доставка после принятия сообщения сетью BroadNet | Отслеживайте отчёты о доставке в своих собственных системах. | Перенаправляет каждое сообщение со своей платформы оператору и сообщает о получении. |
| Инциденты в рабочей среде | Сообщите о них по адресу developers@broadnet.me. | Круглосуточная техническая поддержка для производственных учетных записей, с ответом на инциденты P1 в течение 15 минут. |
| Вывод старого маршрута из эксплуатации | Закройте счет у предыдущего провайдера. | Подтверждает, что идентификаторы отправителя, пропускная способность и отчёты о доставке урегулированы, прежде чем вы закроете аккаунт. |

## Соответствующая документация

[Переключитесь на BroadNet Почему команды переходят на BroadNet, и четырехэтапный план перехода.](https://www.broadnet.me/ru/switch) [Справочник API Аутентификация Bearer, одиночная и массовая отправка, проверка номеров и ошибки.](https://www.broadnet.me/ru/developers/api) [Webhooks Статус доставки передается на URL-адрес webhook в вашей учетной записи.](https://www.broadnet.me/ru/developers/webhooks)

## Часто задаваемые вопросы

### Нужно ли мне переписывать интеграцию для перехода на BroadNet?

Обычно нет. Вы меняете хост, заголовок аутентификации и несколько имен полей: поле отправителя становится `senderId`, поле получателя — `destinationNumber`, а текстовое поле — `message`. Интеграция SMPP перенаправляет существующее соединение на BroadNet с новыми учетными данными.

### Могу ли я сохранить свои идентификаторы отправителя?

В целом, да, при условии соблюдения правил регистрации каждого оператора и регулирующего органа. Регистрация осуществляется на маршрутах BroadNet до начала работы сети: в ОАЭ — в соответствии с правилами TDRA, а в Саудовской Аравии — с одобрения CST и оператора.

### Сколько времени занимает миграция?

На большинстве рынков процесс от обнаружения до запуска занимает 5–15 рабочих дней; на рынках, где регулирующие органы дольше утверждают идентификаторы отправителей, этот процесс занимает больше времени. После этого наращивание трафика занимает столько времени, сколько вы выберете.

### Что произойдет, если количество доставок снизится, а трафик увеличится?

Снизьте процент трафика, отправляемого через BroadNet, до уровня последнего успешного шага или до нуля. Ваш текущий провайдер по-прежнему работает, поэтому трафик продолжает поступать. Затем перед повторной попыткой проверьте отчёты о доставке для затронутой страны вместе с вашим инженером по миграции.

### Взимается ли плата за поддержку при миграции?

Нет. Поддержка миграции и окно параллельного выполнения включены в ваш аккаунт. Вы платите только за отправленные сообщения.

## Запросить тестовый доступ · ответим в течение одного рабочего дня

Получите учетные данные, отправьте тестовые сообщения на свой подтвержденный номер и сопоставьте вашу текущую интеграцию с инженером телекоммуникационной компании BroadNet прежде чем передавать какой-либо рабочий трафик.

[Запросить тестовый доступ](https://www.broadnet.me/ru/signup) [Почему переходят на BroadNet](https://www.broadnet.me/ru/switch)
