Отправьте свое первое тестовое SMS через пять минут после получения учетных данных.
Запросите тестовый доступ, и мы ответим в течение одного рабочего дня, предоставив ваши тестовые учётные данные. Затем возьмите токен, установите TypeScript SDK и вызовите smsSendsmsPost. Ваше первое тестовое сообщение придет на ваш собственный проверенный номер примерно через пять минут после получения тестовых учётных данных. Каждый пример ниже готов к копированию, а шаг 5 описывает, что нужно проверить перед выходом в продакшн.
Единый путь к вашему первому сообщению с указанием сроков на каждом этапе.
- 01
Запросить тестовый доступ
Ответ в течение 1 рабочего дняИнженер по интеграции ответит вам, предоставит тестовые учётные данные и назначит 30-минутный звонок для обсуждения стран, объемов и сценариев использования.
- 02
Первое тестовое сообщение
Примерно через 5 минут после получения учётных данныхОтправьте тестовое сообщение на свой проверенный номер, используя код quickstart. Отчёт о доставке (DLR) придет на ваш webhook.
- 03
Интеграция
2–5 рабочих днейРазрабатывайте и тестируйте с использованием ваших тестовых учетных данных, обращаясь к тому же эндпоинту, что и в примерах кода. Инженер BroadNet поможет вам в REST или SMPP.
- 04
Одобрение
3–10 рабочих днейМы проверяем отправителя, цель рассылки и правила направлений и регистрируем имена отправителей (Sender ID) у каждого регулятора — параллельно с вашей интеграцией.
- 05
Продакшн
День запускаДоступ к промышленной среде и маршруты для вашей учетной записи уже активированы. Ваша интеграция уже обращается к https://api.broadnet.me.
Итого: 5–15 рабочих дней от запроса до продакшна для большинства рынков; дольше там, где регистрация имени отправителя (Sender ID) у регулятора занимает больше времени.
- Ваше приложениеОтправка через REST API или SMPP
- Платформа BroadNetВалидация, маршрутизация и тарификация каждого сообщения
- SMSC оператораПрямое соединение с оператором
- Телефон абонентаСообщение доставлено
Получите свой токен доступа.
Ваш токен доступа предоставляется вместе с тестовыми учетными данными: запросите тестовый доступ, и мы ответим в течение одного рабочего дня. Сохраните его в переменной окружения BROADNET_TOKEN и передавайте в заголовке Authorization: Bearer при каждом вызове. В каждом примере на этой странице используется рабочий базовый URL — https://api.broadnet.me.
Отправьте тестовый SMS на свой проверенный номер с помощью POST /sms/sendSms. Ответ 200 OK, содержащий ID сообщения, подтвердит работоспособность токена еще до того, как вы начнете писать основной код.
Установите SDK.
У BroadNet есть один официальный SDK для TypeScript и Node.js: npm install @broadnet/cpaas-sdk axios. Он генерируется на основе спецификации BroadNet OpenAPI. В любом другом языке вы можете вызвать REST API с помощью вашей обычной HTTP библиотеки или сгенерировать клиент на основе спецификации OpenAPI.
npm install @broadnet/cpaas-sdk axios
export BROADNET_TOKEN=your_access_tokenИмпортируйте Configuration и SMSSMSApi из @broadnet/cpaas-sdk. Если импорт разрешается и проверка типов проходит, можно отправлять.
Отправьте своё первое сообщение.
Создайте объект SMSSMSApi с базовым URL и токеном, вызовите функцию smsSendsmsPost с senderId, destinationNumber, message и messageType и запишите результат в лог. Тело ответа — это идентификатор сообщения; сохраните его для последующего сопоставления со статусом доставки.
// npm install @broadnet/cpaas-sdk axios
import { Configuration, SMSSMSApi } from "@broadnet/cpaas-sdk";
const sms = new SMSSMSApi(
new Configuration({
basePath: "https://api.broadnet.me",
accessToken: process.env.BROADNET_TOKEN!,
}),
);
const res = await sms.smsSendsmsPost({
sMSSmsRequest: {
senderId: "BroadNet",
destinationNumber: "447700900123",
message: "Your verification code is 482913",
messageType: "TEXT",
},
});
console.log(res.data); // message IDHTTP/1.1 200 OK
2603121407537573731Проверьте телефон у себя в руке. Если вы получили SMS, самая сложная часть работы выполнена — всё, что описано ниже, отточено до совершенства.
Получение статуса доставки.
BroadNet отправляет статус доставки на URL веб-хука, настроенный в вашей учётной записи: SUBMITTED, SENT, DELIVERED, READ (на каналах, которые сообщают о прочтении), FAILED или REJECTED. Сохраняйте каждое обновление, быстро отвечайте кодом 2xx и обрабатывайте его асинхронно.
import express from "express";
const app = express();
app.post("/webhooks/broadnet", express.json(), async (req, res) => {
// Store the status update first, then acknowledge with a 2xx.
// Statuses: SUBMITTED, SENT, DELIVERED, READ, FAILED, REJECTED.
await db.statusUpdates.insert({ receivedAt: new Date(), body: req.body });
res.sendStatus(200);
});Подтверждено на телефоне. Более ранние обновления, SUBMITTED и SENT, поступают по мере перемещения сообщения по сети.
Открыто получателем в каналах, где сообщается о прочтении, например, WhatsApp.
Не доставлено. Перед повторной отправкой проверьте формат номера и ваш идентификатор отправителя.
Отправьте сообщение на свой телефон, затем проверьте журнал сервера на наличие обновления статуса DELIVERED.
Перед продакшном.
Доступ к промышленной среде открывается после завершения проверки: идентификации отправителя, целей трафика и ID отправителей (3–10 рабочих дней), что происходит параллельно с вашей интеграцией. После одобрения тот же самый код будет отправлять промышленный трафик. До этого момента не допускайте попадания токена в системы контроля версий, настройте вебхуки статуса доставки и определите политику повторных попыток (retry policy).
- 01Перенесите секреты в свою среду.
Храните BROADNET_TOKEN в переменной окружения или в менеджере секретов, никогда не в системе контроля версий или клиентском коде. Немедленно замените её, если произойдёт утечка данных.
- 02Повторяйте запросы безопасно и следите за балансом
Повторная отправка сообщений при сетевых ошибках и ответах с кодом 5xx осуществляется с экспоненциальной задержкой. Каждая принятая отправка возвращает идентификатор сообщения, поэтому сохраняйте его и проверяйте статус доставки, вместо того чтобы отправлять сообщение вслепую. При массовой отправке в каждом ответе отображается информация об оставшихся кредитах.
- 03Закрепить версию SDK
Укажите точную версию @broadnet/cpaas-sdk в package.json и обновляйте его осознанно. Пути к API не содержат префикса версии, поэтому следите за изменениями в журнале изменений и спецификации OpenAPI.
- 04Обработка ошибок по коду состояния
При возникновении ошибок возвращается код состояния HTTP и тело ExceptionResponse, содержащее статус, ошибку, сообщение, errorCode и requestUri. Исправлены ошибки 400 и 401; ошибки 5xx повторяются с задержкой.
- 05Определите политику повторных попыток.
По умолчанию: экспоненциальная задержка при ошибках 5xx и сетевых ошибках, никогда не применяется при ошибках 4xx. После истечения таймаута проверьте статус доставки перед повторной отправкой, поскольку первый запрос мог быть уже принят.
Проверьте свой код по контрольному списку ниже. Когда все пункты будут отмечены, ваша интеграция будет готова к продакшну сразу после завершения процесса одобрения.
Те же самые участки кода обрабатывают более 300 млн сообщений в день.
Ваш тестовый трафик — это не имитация. Каждый запрос, ключ и вебхук, настроенные на предыдущих этапах, проходят через те же механизмы маршрутизации, биллинга и комплаенса, что и наш основной корпоративный трафик, ежегодно проходящий аудит на соответствие нижеуказанным сертификатам.
Вопросы о быстром старте
POST https://api.broadnet.me/sms/sendSms с заголовком Authorization: Bearer и JSON-телом с полями senderId, destinationNumber, message и messageType (TEXT или UNICODE). В ответе возвращается ID сообщения. Устаревший HTTP API в /websmpp по-прежнему доступен для интеграций эпохи SMPP.
Запросите тестовый доступ на /signup. Инженер BroadNet ответит в течение одного рабочего дня и пришлёт тестовые учётные данные: токен доступа, который передаётся в заголовке Authorization: Bearer, и адрес для отправки тестового трафика. Первое тестовое сообщение можно отправить примерно через пять минут после их получения.
Один официальный SDK: @broadnet/cpaas-sdk для TypeScript и Node.js, в npm. На любом другом языке вызывайте REST API напрямую по HTTPS или сгенерируйте клиент из спецификации OpenAPI (/developers/openapi.yaml).
Вопроса здесь нет? Обратитесь к нашей инженерной команде
Пять ступеней вниз.
Остался всего один ключ.
Протестируйте отправку на свои проверенные номера, запустите интеграцию, а затем переключитесь на промышленный трафик в той же консоли. Тот же SDK, те же эндпоинты и те же SLA, через которые проходит более 300 млн сообщений в день.