SMS API та SMPP
Підключіть свій сайт, CRM або застосунок до Messedo: JSON REST API для сповіщень і одноразових кодів, SMPP 3.4 для великих обсягів. Звіти про доставку повертаються автоматично.
Швидкий старт
- Створіть акаунт у кабінеті і отримайте погоджене ім'я відправника (Sender ID).
- Скопіюйте API-токен: кабінет → Інтеграції → SMS API. Тримайте його в секреті: він дає повний доступ до відправки.
- За бажанням обмежте доступ IP-адресами своїх серверів (Інтеграції → Дозволені IP) і вкажіть адресу для звітів про доставку (Налаштування → Редагувати).
Кожен запит — HTTPS POST на https://api.messedo.com
з тілом у JSON і двома заголовками:
Authorization: Bearer YOUR_API_TOKEN Content-Type: application/json
POST/sms/send
Надсилає один текст на до 500 номерів.
| Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
originator | string | так | Погоджене ім'я відправника: до 11 латинських символів або до 15 цифр. |
phones | array | так | Номери в міжнародному форматі без «+» і пробілів, наприклад 380501234567. До 500. |
text | string | так | Текст. В одне SMS вміщується до 160 латинських (GSM) або 70 кириличних (Unicode) символів; довший текст ділиться на частини (по 153 / 67 символів), кожна частина оплачується. |
lifetime | integer | ні | Скільки секунд оператор намагатиметься доставити SMS. |
curl -X POST https://api.messedo.com/sms/send \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"originator":"MyShop","phones":["380501234567"],"text":"Ваше замовлення готове"}' Відповідь (HTTP 200): ID повідомлення для кожного прийнятого номера. Збережіть його, щоб запитувати статус і зіставляти звіти про доставку.
{
"success_request": {
"info": { "380501234567": 391876210 }
}
} Якщо частину номерів не прийнято, у відповіді є також additional_info
та error_details з номерами за причинами (див. помилки).
Якщо не прийнято жодного номера, HTTP-код 452, а у відповіді error_request.
POST/sms/status
Статуси до 499 повідомлень за їхніми ID.
{"id_sms": [391876210, 391876211]} {
"successful_request": { "391876210": 1, "391876211": 0 }
} | Стан | Значення |
|---|---|
0 | прийнято, надсилається |
8 | передано оператору |
1 | доставлено |
2 | не доставлено |
3 | термін сплив (не доставлено вчасно) |
HTTP 453 — жодного з ID не знайдено для вашого акаунта. POST/sms/statistic повертає статуси сьогоднішніх повідомлень (до 1000).
Звіти про доставку на вашу адресу
Вкажіть адресу в кабінеті, і Messedo надсилатиме фінальні статуси щойно вони відомі — опитувати не потрібно:
POST https://your-site.example/sms-report
Content-Type: application/json
{"result": [{"id_sms": 391876210, "state": 1}, {"id_sms": 391876211, "state": 2}]} - Відповідайте HTTP 200 протягом 5 секунд. Інакше звіт повториться кожні 10 хвилин, до 4 разів.
- Дозволені лише публічні адреси (не приватні й не локальні мережі).
- Кожну спробу з відповіддю вашого сервера видно в кабінеті: Інтеграції → Звіти про доставку на ваш URL; там є і кнопка тестового звіту.
Баланс і відправники
POST/sms/balance — поточний баланс:
{"successful_request": {"currency": "UAH", "money": 1517.83}} POST/sms/originator — ваші погоджені імена відправника. Нові запитуються в кабінеті (SMS → Імена відправника).
Помилки й ліміти
| HTTP | Значення |
|---|---|
| 400 | немає обов'язкового поля або воно некоректне, або запит прийшов з IP-адреси поза вашим списком дозволених |
| 401 | немає або неправильний API-токен, або API не ввімкнено для акаунта |
| 429 | понад 50 запитів на секунду |
| 452 | не прийнято жодного номера із запиту (причини в error_details) |
Причини в error_details:
no_money | недостатньо коштів |
no_user_price | немає ціни на цю країну чи оператора у вашому тарифі — зверніться до менеджера |
no_source_price | немає маршруту на цей напрямок |
incorrect_originator, blocked_sender | ім'я відправника задовге, не погоджене для акаунта або заблоковане для напрямку |
incorrect_phone, no_mcc_mnc | номер некоректний або його оператор невідомий |
phone_in_black_list | номер у стоп-листі |
text_blocked | текст відхилено модерацією |
Нові відправники й тексти можуть спершу пройти модерацію; такі повідомлення надсилаються після погодження. Використання API і помилки видно в кабінеті: Інтеграції → Використання API.
SMPP 3.4
| Хост і порт | sms.messedo.com:2776 (без шифрування)sms.messedo.com:3776 (TLS 1.2 / 1.3, рекомендовано) |
| system_id / password | логін і пароль вашого акаунта |
| Тип підключення | transceiver, transmitter + receiver |
| Сесій | до 10 одночасно на акаунт |
| Кодування | ISO 8859-1 та UCS2; довгі повідомлення з UDH |
| TON / NPI | відправник 0, отримувач 1 |
| enquire_link | кожні 30 секунд |
| Звіти про доставку | deliver_sm з id:… stat:DELIVRD|UNDELIV|EXPIRED err:… |
Обмеження за IP працює так само, як для API. Стан підключення й ліміти вашого акаунта видно в кабінеті: Інтеграції → SMPP-підключення.
Підтримка
Напишіть у підтримку (або на support@messedo.com) з логіном, ID повідомлення і приблизним часом.