01Вкратце
Чтобы отправить код OTP через SMSMeteor, вызовите POST /v1/messages. Передайте номер в формате E.164, начните текст с названия бренда, задайте время жизни кода в validity и установите для window.quiet_hours значение bypass. Ответ содержит стоимость, а вебхук message.delivered обычно подтверждает доставку в течение нескольких секунд.
Для создания аккаунта не нужна проверка личности. Один и тот же тариф направления действует с первого до миллионного кода.
- Тип трафика
- Транзакционный, без ограничений по времени отправки
- Вызов API
POST /v1/messagesдля каждого кода- Срок действия
- От 5 до 10 минут (по умолчанию 48 часов)
- Длина
- Один сегмент GSM-7, без ссылок
- Повторные попытки
- Тот же
Idempotency-Key, без отправки второго кода - Подтверждение
- Вебхук
message.deliveredили опрос статуса
Рекомендуемые настройки
02Как это работает
От запроса до доставки — 4 шага.
-
01Создайте ключ
Выпустите для службы кодов ключ только с правом отправки. Если служба работает с постоянных серверов, добавьте список разрешённых IP-адресов. Тестовый ключ позволяет настроить весь сценарий без пополнения баланса.
-
02Отправьте код
Сначала укажите бренд, затем код и срок действия. Уложитесь в один сегмент, задайте время жизни кода и отметьте сообщение как транзакционное.
-
03Получите результат
Событие доставки завершает сценарий. Если причина ошибки — неизвестный номер, интерфейс должен предложить ввести другой номер, а не повторять отправку.
-
04Защитите метод выдачи кодов
Ограничьте частоту запросов для номера, IP-адреса и аккаунта. После второй попытки запрашивайте CAPTCHA. Сообщения на действительные номера оплачиваются.
03Что важно
От чего зависит своевременная доставка кода
Пользователь получит код вовремя, если правильно выбраны маршрут, формат и режим отправки. Для каждого направления используется проверенный маршрут, а транзакционные сообщения не ждут завершения маркетинговой рассылки. Пишите короткий текст в GSM-7 и ставьте бренд в начало: в Северной и Южной Америке, а также там, где имя отправителя нужно регистрировать, получатель может увидеть номер вместо названия компании. Транзакционный флаг разрешает отправку вне местного маркетингового окна.
Не добавляйте ссылки в сообщения с кодами. Операторы связи чаще фильтруют такие шаблоны, а для пользователя отфильтрованный код выглядит как сбой вашего сервиса.
04На практике
Повторная отправка без лишних расходов
Разрешайте повторный запрос через 30 секунд, затем через 60 и 120 секунд. При выпуске нового кода аннулируйте предыдущий. Формируйте ключ идемпотентности из идентификатора пользователя и номера попытки: тогда запрос можно безопасно повторить после тайм-аута на вашей стороне. Если вебхук сообщает, что номер неизвестен, предложите исправить номер вместо очередной отправки.
По каждому направлению измеряйте долю введённых кодов среди отправленных. Этот показатель точнее отчёта о доставке: он учитывает телефон, уведомление и действие самого пользователя.
05Сколько это стоит
10 000 сообщений с разбивкой стоимости по направлениям.
Расчёт для одного сегмента по текущим опубликованным тарифам. Цена за сообщение одинакова для первого и миллионного сообщения; тарифного плана, платы за подключение и абонентской платы нет.
Тарифная таблица обновлена 22 сентября 2026
| Направление | Тариф за SMS | 10 000 сообщений |
|---|---|---|
| $0,0084 | $84,00 | |
| $0,0130 | $130,00 | |
| $0,0256 | $256,00 | |
| $0,0042 | $42,00 | |
| $0,0326 | $326,00 | |
| $0,0238 | $238,00 |
Другие направления: калькулятор стоимости
06Пример сообщения
Как оно выглядит на телефоне и в запросе.
Бренд в начале, код сразу после него, без ссылки, один сегмент.
curl https://api.smsmeteor.com/v1/messages \
-H "Authorization: Bearer $SMSMETEOR_KEY" \
-H "Idempotency-Key: otp-user-8841-attempt-1" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550142",
"from": "ACME",
"text": "ACME: ваш код — 493 201. Он действует 10 минут.",
"validity": 10,
"window": { "quiet_hours": "bypass" },
"campaign": "otp-login"
}'07Типичные ошибки
Три ошибки, которые мы видим, и как их избежать.
Ссылки в сообщениях с кодами
Операторы связи особенно часто фильтруют этот шаблон. Поместите код прямо в текст и не добавляйте ссылку.
Слишком долгий срок действия
Код, пришедший после окончания своего срока действия, приводит пользователя в поддержку. Задайте в сообщении такое же время жизни, как у самого кода.
Новый ключ идемпотентности при техническом повторе
В результате уйдут два одинаковых сообщения. Сохраняйте ключ попытки и меняйте его лишь тогда, когда пользователь запросил новый код.
09Вопросы, ответы
Коды OTP и подтверждение по SMS: вопросы и ответы.
Как быстро доставляются сообщения OTP?
По исправному маршруту код обычно приходит в течение нескольких секунд после вызова API. Транзакционные сообщения не ждут завершения рассылок. Текущую задержку доставки можно проверить на странице состояния.
Можно ли отправлять коды OTP ночью?
Да. Установите для window.quiet_hours значение bypass: сообщение будет считаться транзакционным и отправится сразу. Ограничения по времени действуют только для маркетингового трафика.
Увидит ли получатель название моего бренда?
Да, если в выбранном направлении буквенно-цифровое имя отправителя доставляется без изменений. В Северной и Южной Америке, Китае и странах с обязательной регистрацией получатель может увидеть номер, поэтому укажите бренд в начале текста. Точное правило есть на странице каждого направления.
Сколько стоит сообщение OTP?
Стоимость равна тарифу направления за один сегмент: например, $0,0084 для США или $0,0256 для Индии. Платы за проверку и ежемесячной абонентской платы нет.
Нужно ли подтверждать компанию для отправки кодов?
Нет. Для создания аккаунта достаточно электронной почты. Мы проверяем содержание сообщений: коды разрешены, а выдача себя за банк или государственную службу запрещена.
Как защитить баланс от ботов?
Ограничьте частоту запросов по номеру, IP-адресу и аккаунту, после второй попытки включите CAPTCHA и закройте направления, которые не обслуживаете. Запросы с неподдерживаемыми префиксами отклоняются бесплатно, но сообщения на действительные номера оплачиваются.
