Отправьте первое сообщение через API

Как отправить сообщение через OMNI API Multi API — параметры, curl, ответ, статусы

Коротко: для отправки первого сообщения нужен POST-запрос на эндпоинт /messages с вашим API-ключом.

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

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

Что это

Подробная инструкция для разработчиков — как отправить первое сообщение через API Multi API.

Если нужен быстрый старт за 5 минут — см. Быстрый старт →.

Здесь разбираем:

  • Структуру запроса.
  • Все параметры OMNI API.
  • Пример curl.
  • Формат ответа.
  • Способы получения статуса.

Что вы получите

Отправленное сообщение и статус доставки в EDR.

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

  • Есть API-ключ.
  • Есть имя отправителя со статусом Активно.
  • Есть номер получателя.

Каналы для API-ключа определяются выбранными именами отправителей. Чтобы ключ мог отправлять по SMS — выберите имя для SMS. Чтобы по SMS и WhatsApp — выберите два имени.

Как создать API-ключ →

Шаги

1
Подготовьте запрос

URL: https://web.multiapi.ru/api/v1/messages

Метод: POST

Заголовки:

ЗаголовокЗначение
Content-Typeapplication/json
X-API-KeyВаш API-ключ

Тело запроса:

ПолеТипОбязательноЧто указать
contactstringДаНомер получателя с кодом страны, без «+»
channelintegerДаНомер канала
senderIdstringДаИмя отправителя со статусом Активно
payloadobjectДаСодержимое сообщения. Формат зависит от канала

contact указывается в международном формате, без знака +. Например, для России: 79123456789.

2
Отправьте запрос

Пример curl для SMS:

curl --location 'https://web.multiapi.ru/api/v1/messages' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <ваш-ключ>' \
  --data-raw '{
    "contact": "79123456789",
    "channel": 1,
    "senderId": "<senderID>",
    "payload": {
      "text": "Привет! Это тестовое сообщение."
    }
  }'

Замените три значения на свои:

  • <ваш-ключ> — на API-ключ из раздела API Подключения.
  • 79123456789 — на номер получателя.
  • <senderID> — на имя отправителя со статусом Активно.

channel: 1 — это SMS. Для другого канала укажите его номер — см. таблицу каналов ниже.

3
Проверьте ответ

Успешный ответ приходит с кодом 202 Accepted и объектом data:

{
  "error": false,
  "data": {
    "channel": 1,
    "transactionId": "95e3e0da-9684-4ba4-88a3-e9207ddeca05",
    "messageId": "6719b5f4-36af-4fba-b111-49ff07f4f96b"
  }
}

Поля ответа:

ПолеЧто означает
channelНомер канала
transactionIdID транзакции
messageIdID сообщения — по нему можно отслеживать статус

Ответ 202 Accepted означает, что запрос принят и сообщение поставлено в очередь на отправку. Это не означает, что сообщение доставлено — статус доставки придёт асинхронно.

4
Проверьте статус

Статус отправленного сообщения можно получить двумя способами.

Способ 1. В личном кабинете:

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

Способ 2. В своей программе:

  • Push (вебхук) — платформа сама отправляет статус на ваш URL.
  • Pull (запрос к API) — вы запрашиваете статусы через GET /edrs.

Оба способа получения статусов — push и pull — подробно описаны в статье Статусы сообщений →.

Если сообщение содержит OTP — добавьте параметр isOtp: true. Содержимое будет скрыто в EDR как маска ******.

Номера каналов

НомерКаналЧерез API
1SMS✅
2RCS✅
3Viber✅
4WhatsApp✅
5VK/OK✅
6WeChat✅
7Email✅
8Telegram Gateway✅
9Telegram bot✅
10Push✅
11TTS✅
12Voice❌ недоступен через API
13Mobile Push✅
14FlashCall✅

Не все каналы доступны для каждой компании. Полный список — через GET /channels. Форматы payload для каждого канала — в статье Форматы payload →.

Лимит: на один канал — не более 5 одновременных запросов на отправку. При превышении API возвращает 429 Too Many Requests.

Результат

Сообщение отправлено, получен messageId для отслеживания статуса.

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

Причина: неверный или отсутствующий API-ключ.

Решение: проверьте заголовок X-API-Key и ключ. Подробнее — Ошибка 401 →.

Причина: неверные параметры запроса.

Решение: проверьте тело запроса — обязательные поля: contact, channel, senderId, payload. Подробнее — Обработка ошибок API →.

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

Решение: откройте ключ в разделе API Подключения и добавьте нужное имя отправителя в блок Имена отправителей.

Как создать API-ключ →

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

Решение: проверьте номер телефона и статус отправителя.

Сообщение не доставляется →

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

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

Ошибка 429 →

Причина: не указан webhook URL, или ваш сервер недоступен извне.

Решение: укажите webhook в запросе, в настройках имени отправителя или в настройках API-ключа. Убедитесь, что ваш сервер отвечает кодом 200 OK.

Статусы сообщений →

См. также

Подключение к API

Аутентификация, базовый URL, формат запросов

OMNI API — отправка

Полное описание эндпоинтов /messages и /omnimessages

Форматы payload

JSON-примеры для каждого канала

Статусы сообщений

Push и pull — два способа получения

Справочные эндпоинты

Каналы, отправители, баланс, шаблоны

Как создать API-ключ

Создание и управление ключами доступа

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