Перевірка Статусу Повідомлення
Відстежуйте статуси доставки ваших повідомлень (відправлено, доставлено, помилка) в режимі реального часу за допомогою ендпоінту перевірки статусу.
Ендпоінт
Запит
Параметри URL
| Параметр | Тип | Обов'язково | Опис |
|---|---|---|---|
messageId |
string | Так | Унікальний ідентифікатор повідомлення (messageId), отриманий в результаті запиту на відправку |
Авторизація
Використовуйте будь-який з наших трьох методів:
# Приклад (API Key Header)
curl -X GET https://restapi.smsbat.com/bat/message/abc123def456 \
-H "X-Authorization-Key: ваш-api-ключ"
Відповідь (Response)
Стандартна Відповідь
{
"messagelistId": 123456,
"messageId": "abc123def456",
"deliverystatus": "delivered",
"partscount": 1,
"cost": 0.05
}
Поля Відповіді
| Поле | Тип | Опис |
|---|---|---|
messagelistId |
integer | Ідентифікатор партії (розсилки) |
messageId |
string | Унікальний ідентифікатор конкретного повідомлення |
deliverystatus |
string | Поточний статус доставки |
partscount |
integer | Кількість SMS-сегментів (частин), на які розбито повідомлення |
cost |
number | Вартість повідомлення у відповідній валюті |
Розширена Відповідь (Із Fallback)
Коли ви використовуєте каскадну розсилку (наприклад, Viber → SMS), відповідь включатиме додаткові відомості:
{
"messagelistId": 123456,
"messageId": "abc123def456",
"deliverystatus": "delivered",
"partscount": 1,
"cost": 0.05,
"fallbacks": [
{
"type": "sms",
"status": "not_used"
}
],
"extendedStatuses": {
"viber": "delivered",
"sms": "not_used"
},
"rate": 0.05,
"rateAmount": 0.05,
"rateCurrency": "USD",
"billAmount": 0.05,
"billCurrency": "USD"
}
Життєвий Цикл Статусів (Delivery Status Values)
graph LR
A[scheduled] --> B[processing]
B --> C[delivered]
B --> D[undeliverable]
B --> E[permanenterror]
Ось таблиця очікуваних значень поля deliverystatus:
| Статус | Опис |
|---|---|
scheduled |
Прийнято в чергу системи (Очікує відправки) |
processing |
Наразі опрацьовується або передається оператору |
delivered |
Успішно доставлено на кінцевий пристрій клієнта |
undeliverable |
Сталася помилка (недоступний номер, помилка оператора чи відмова) |
permanenterror |
Видалено з черги через критичну помилку (напр. неправильний формат номера) |
1. В Черзі (Scheduled)
Запит прийнятий системою та чекає своєї черги:
2. В Процесі (Processing)
Система передала інформацію до провайдера чи мобільного оператора, очікується квитанція про кінцеву доставку:
3. Доставлено (Delivered)
Оператор з впевненістю підтвердив доставку повідомлення до абонента:
4. Недоставлено (Undeliverable / Error)
Можлива причина: абонент знаходиться поза межами покриття мережі більше ніж тривалість вашого TTL.Polling проти Webhook'ів
Polling (Періодичні запити)
Ви можете періодично надсилати запит на статус (напр. кожні 5 секунд). Ми настійно не рекомендуємо спамити ендпоінт "частіше ніж 1 раз на секунду" задля уникнення блокування доступу через Rate Limiting (перевищення ліміту навантаження). Радимо використовувати стратегію Exponential Backoff.
Альтернатива: Вебхуки (Webhooks)
Замість того, щоб кожну секунду питати в системи статус, значно краще налаштувати отримання вебхуків. Так SMSBAT сам повідомить ваш сервер, коли статус повідомлення зміниться:
POST https://ваш-сервер.com/smsbat-webhook
{
"messageId": "abc123def456",
"deliverystatus": "delivered",
"timestamp": "2025-01-23T10:30:00Z",
"cost": 0.05
}
Примітка: щоб підключити вебхуки та вказати свій URL-приймач (Callback URL), зверніться до вашого особистого менеджера.
Оптимізація запитів
Якщо ви хочете перевіряти статус одразу кількох повідомлень водночас, вам варто робити об'ємні запити пачками (batched requests) з інтервалом в декілька мілісекунд, щоб не сповільнювати власні системи та не навантажувати наші.
Наступні Кроки
- Надсилання Повідомлень - Як надсилати розсилки та отримувати ідентифікатори повідомлень.
- Посібник з доставки статусів - Глибший огляд сценаріїв недоставки та обробки
undeliverable. - Резервні стратегії - Налаштуйте автоматичний каскад для гарантованої доставки.