Отправка сообщений

Отправка сообщения клиенту через мессенджер. Отправка асинхронная — статус доставки отслеживается через нотификации.

POST/api/v1/send

Заголовки запроса

ЗаголовокЗначениеОбязателен
X-API-KeystringДа
Content-Typeapplication/jsonДа

Тело запроса

json
{
  "phone_number": "12345678901",
  "text": Ваш заказ готов!,
  "service": "telegram",
  "bot_name": "my-bot",
  "buttons": [
    {"text": "Open Site", "url": "https://massaccess.net"}
  ]
}

Поля запроса

ИмяТипОбязателенОписание
phone_numberstringДаНомер телефона получателя в международном формате (12345678901)
textstringДаТекст сообщения
servicestringДаМессенджер: telegram, max
bot_namestringНетИмя бота. Если не указан, используется бот по умолчанию
buttonsarrayНетArray of {text, url} for inline keyboard (optional, max 10)

Примеры

bash
curl -X POST /api/v1/send \
   -H "Content-Type: application/json" \
   -H "X-API-Key: YOUR_API_KEY" \
   -d '{
     "phone_number": "12345678901",
     "text": Ваш заказ готов!,
     "service": "telegram",
     "bot_name": "my-bot",
     "buttons": [
       {"text": "Open Site", "url": "https://massaccess.net"}
     ]
   }'

Коды ответов HTTP

Все ответы API возвращают HTTP-статусы. Полный справочник кодов ошибок с описанием причин и способов исправления — на странице HTTP коды ответов .

Тело ответа

json
{
  "status": "accepted",
  "event_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "state": "new"
  }
}

Поля ответа

ИмяТипОбязателенОписание
statusstringДаСтатус запроса: "accepted" — принят в очередь на обработку
event_idstring (UUID)ДаУникальный идентификатор сообщения
data.statestringДаСтатус сообщения: "new" — создано, ожидает обработки

Нотификации

После отправки сообщения MassAccess уведомляет ваш сервер о результате доставки через HTTP POST-запрос на настроенный Webhook URL. Нотификация содержит JSON с полями state, event_id и timestamp.

Для события message.status возможны два исхода:

  • Успешная доставка (state: "sent") — сообщение доставлено получателю;
  • Неуспешная доставка (state: "failed") — при ошибке дополнительно передаются error_code и error_description с деталями сбоя.

Подробнее о формировании, отправке и валидации нотификации — на странице Нотификации.