Перейти к основному содержимому

Отправка OTP кода (WhatsApp)

Пример запроса для отправки одноразового пароля (OTP) через WhatsApp.

warning

WhatsApp не является отдельным типом сообщения. Запрос с type: whatsapp отклоняется с ошибкой Invalid message type.

WhatsApp существует только как этап пайплайна: вы отправляете запрос с type: pipeline и перечисляете whatsapp среди его этапов. Всё остальное — адрес, ключ, формат ответа — такое же, как у любого другого метода JSON API.

URI: https://alphasms.ua/api/json.php

Все запросы к API отправляются в формате JSON с помощью метода POST.

Параметры заголовков

В запросах обязательно должен быть заголовок Content-Type: application/json, иначе запрос будет считаться некорректным даже при валидном JSON в нем

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

{
"auth": "bb56a4369eb19***cfec6d1776bd25",
"data": [
{
"type": "pipeline",
"pipeline": [
"whatsapp"
],
"id": 100500,
"phone": 380971234567,
"whatsapp": {
"signature": "SenderID",
"message": "Ваш код 1234"
}
}
]
}

Примеры ответа

HTTP Status Code: 200
Content Type: JSON application/json

{
"success": true,
"data": [
{
"success": true,
"data": {
"msg_id": 123456789
}
}
]
}
примечание

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

{
"type": "pipeline",
"pipeline": ["whatsapp", "sms"],
"id": 100500,
"phone": 380971234567,
"whatsapp": { "signature": "SenderID", "message": "Ваш код 1234" },
"sms": { "signature": "SenderID", "message": "Ваш код 1234" }
}

Полный список этапов и их параметров — на странице Многоканальная доставка сообщений.

warning

WhatsApp должен быть включён в вашем маршруте — шлюз и цену назначает ваш менеджер. Без них любой пайплайн с whatsapp отвечает No route.

Этап whatsapp API не проверяет. Если signature или message не передать, запрос всё равно будет принят и оплачен, а сообщение уйдёт пустым. Проверяйте оба поля на своей стороне до отправки.

Статус доставки запроса pipeline уходит на адрес уведомлений из настроек API — см. Отчёт о доставке на URL: hook шлюз для этого типа не сохраняет.

примечание

У асинхронного API адрес из hook всё же используется в одном случае: отказ в приёме сообщения (No route, нехватка средств, ошибка валидации) приходит туда отдельным вебхуком со status: REJECTED.