Przejdź do treści
SENDLY by ACTIOSENDLY by ACTIO
Специфікація

SENDLY SMS API

Специфікація v1.2

SENDLY SMS API працює за принципом передавання повідомлень за допомогою протоколу HTTP. Для обробки SMS-повідомлень доступні два взаємовиключні режими: SMS API та 3CX API

1. SMS API

1.1 Надсилання повідомлення

Це стандартний режим роботи API, призначений для використання з застосунками, що підтримують REST API. Для надсилання SMS доступний такий ендпоінт:

POST https://api.sendly.link/api/sms

Авторизація: Bearer token
Очікуваний тип вмісту: application/json

Поля тіла запиту:

ПолеТип данихОпис
fromЧисловий рядок, мінімум 9 знаків, максимум 11 знаків (необов’язкове поле)Віртуальний мобільний номер у SENDLY
toЧисловий рядок, мінімум 9 знаків, максимум 11 знаківЦільовий мобільний номер
bodyРядок, мінімум 1 знакТекст повідомлення

Приклад запиту:

curl -X POST https://api.sendly.link/api/sms \
     -H "Authorization: Bearer TWOJ_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "from": "48732129000",
           "to": "48732129001",
           "body": "Test SENDLY"
         }'

Токен можна згенерувати та завантажити в клієнтській панелі. Крім того, токен можна отримати через службу підтримки.

Можливі відповіді:

200 – повідомлення прийнято до надсилання

Тіло відповіді:

ПолеТип данихОпис
message_idРядокУнікальний ідентифікатор повідомлення (16 hex-знаків)

Приклад відповіді:

{"message_id":"a906cff7719bd889"}

Можливі відповіді з помилкою:

403 – проблема з авторизацією
422 – проблема з валідацією даних
429 – Перевищено ліміт запитів

У разі помилок тіло відповіді може містити одне або декілька полів, описаних у таблиці нижче:

ПолеТип данихОпис
errors.tokenМасив рядківОпис помилки, пов’язаної з переданим токеном доступу
errors.fromМасив рядківОпис помилки, пов’язаної з номером джерела
errors.toМасив рядківОпис помилки, пов’язаної з цільовим номером
errors.bodyМасив рядківОпис помилки, пов’язаної з тілом повідомлення

Приклад відповіді:

{"errors":{"token":["Invalid token"]}}

Вихідні повідомлення кодуються в UCS-2 і поділяються кожні 60 знаків. Опційно можливе надсилання SMS у кодуванні GSM7 з обмеженням до одного повідомлення максимальною довжиною 160 знаків. Цю опцію можна ввімкнути в клієнтській панелі або за запитом до служби підтримки.

1.2 Надсилання повідомлення на кілька номерів

Це метод API, що дозволяє надсилати те саме повідомлення на кілька номерів. Активація цієї функції для токена доступу відбувається виключно через звернення до служби підтримки. Доступний такий ендпоінт:

POST https://api.sendly.link/api/sms-multi

Авторизація: Bearer token
Очікуваний тип вмісту: application/json

Поля тіла запиту:

ПолеТип данихОпис
fromЧисловий рядок, мінімум 9 знаків, максимум 11 знаків (необов’язкове поле)Віртуальний мобільний номер у SENDLY
toМасив числових рядків, мінімум 9 знаків, максимум 11 знаків, мінімум 1 елемент, максимум 100 елементівЦільові мобільні номери
bodyРядок, мінімум 1 знакТекст повідомлення

Приклад запиту:

curl -X POST https://api.sendly.link/api/sms-multi \
     -H "Authorization: Bearer TWOJ_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "from": "48732129000",
           "to": ["48732129001", "48732129002"],
           "body": "Test SENDLY"
         }'

Валідація надісланих номерів телефонів відбувається за принципом «все або нічого» – кожен із надісланих номерів має бути коректним польським мобільним номером, інакше весь запит буде відхилено. Надіслані номери мають бути унікальними; надсилання дубльованих номерів призведе до відхилення всього запиту.

Можливі відповіді:

200 – повідомлення прийнято до надсилання

Тіло відповіді:

ПолеТип данихОпис
message_idsМасив об’єктівКожен повернений об’єкт містить поле „number”, що вказує на один із наданих цільових номерів, та „message_id”, що є ідентифікатором повідомлення, прийнятого до надсилання

Приклад відповіді:

{"message_ids":[{"number":"48732129001","message_id":"a906cff7719bd889"}]}

Можливі відповіді з помилкою:

403 – проблема з авторизацією
422 – проблема з валідацією даних
429 – Перевищено ліміт запитів

У разі помилок тіло відповіді може містити одне або декілька полів, описаних у таблиці нижче:

ПолеТип данихОпис
errors.tokenМасив рядківОпис помилки, пов’язаної з переданим токеном доступу
errors.fromМасив рядківОпис помилки, пов’язаної з номером джерела
errors.toМасив рядківОпис помилки, пов’язаної з цільовим номером
errors.bodyМасив рядківОпис помилки, пов’язаної з тілом повідомлення

Приклад відповіді:

{"errors":{"token":["Invalid token"]}}

1.3 Отримання повідомлень

Вхідні повідомлення надсилаються на вказаний у клієнтській панелі вебхук. Вебхук також можна вказати у зверненні до служби підтримки. Буде здійснено одну спробу доставки повідомлення. Запит API не переходить за редиректами й не авторизується до вебхука. Запит надходитиме з поточної IP-адреси домену api.sendly.link.

Метод: POST
Тип вмісту: application/json

Поля тіла запиту:

ПолеТип данихОпис
typeРядокТип повідомлення. Для вхідного повідомлення набуває значення „MESSAGE”
fromРядокПрезентація номера джерела. Для повідомлення з підписаним номером у цьому полі міститься підпис (nadpis).
toЧисловий рядокЦільовий номер телефону
bodyРядокТекст повідомлення

Приклад тіла запиту:

{"type":"MESSAGE","from":"48732129000","to":"48732129001","body":"Test sms"}

1.4 Підтвердження доставки повідомлення

Якщо ви бажаєте отримувати сповіщення про доставку повідомлень, потрібно активувати цю опцію в клієнтській панелі або через звернення до служби підтримки. Активація цієї опції спричинить надсилання запиту на вказану адресу вебхука. Буде здійснено одну спробу доставки сповіщення. Запит API не переходить за редиректами й не авторизується до вебхука. Запит надходитиме з поточної IP-адреси домену api.sendly.link.

Метод: POST
Тип вмісту: application/json

Поля тіла запиту:

ПолеТип данихОпис
typeРядокТип повідомлення. Для повідомлення про статус набуває значення „NOTIFICATION”
message_idРядокІдентифікатор повідомлення, повернений після прийняття до надсилання
statusРядокDELIVERED для сповіщення про доставку. ERROR для сповіщення про помилку.

Приклад тіла запиту:

{"type":"NOTIFICATION","message_id":"a906cff7719bd889","status":"DELIVERED"}

2. 3CX SMS API

Ця версія API підтримує надсилання та отримання повідомлень на основі актуальної специфікації АТС 3CX Phone System. Щоб активувати це api, у клієнтській панелі потрібно вибрати обидві опції: SMS API та 3CX SMS API.

Для обробки вихідного трафіку необхідно вказати в розділі SMS у 3CX токен, який можна згенерувати в клієнтській панелі, а також адресу url:

https://api.sendly.link/api/tcx

Щоб обробляти вхідні повідомлення, у клієнтській панелі вкажіть вебхук, доступний у вашій АТС 3CX.

Активацію також може виконати служба підтримки; у такому разі ви вказуєте вебхук, а у відповідь надсилається токен.