Тарифи  Послуги  API  Партнерам  Про сервіс  Контакти 
0 (800) 30 7672
Безкоштовно по Україні
 

Інтеграція з сервісом (API)

API дозволяє розсилати повідомлення через ваші проекти і сервіси по протоколах HTTP/HTTPS, SMTP і SMPP. Готові бібліотеки різними мовами програмування підключаються до вашого проекту та допомагають надсилати повідомлення з будь-якого місця за допомогою однієї команди. Для спрощеної авторизації замість пари логін і пароль можна використовувати спеціальний API-ключ.


HTTP/HTTPS SMTP SMPP SOAP OMS SMS-команди Бібліотеки та приклади коду

ВІДПРАВКА ПОВІДОМЛЕНЬ

Відправка SMS-повідомлення

Коментарі в SMS-повідомленнях

Відправка на групу номерів

Відправка HLR-запиту

Відправка e-mail повідомлення

Надсилання голосового повідомлення (дзвінок)

Відправка viber-повідомлення

Відправлення повідомлення в Telegram

Відправлення повідомлення в чат-бот Telegram

Використання префіксів при відправці повідомлень

Керування шаблонами повідомлень

Керування шаблонами операторів

Віртуальна відправка (режим тестування)

Повідомлення про події

УПРАВЛІННЯ РОЗСИЛКАМИ

СТАТУСИ ПОВІДОМЛЕНЬ

ПЕРЕВІРКА СТАНУ БАЛАНСУ

УПРАВЛІННЯ КОНТАКТАМИ

УПРАВЛІННЯ КЛІЄНТАМИ

КЕРУВАННЯ ІМЕНАМИ ВІДПРАВНИКІВ (SENDER ID)

ОТРИМАННЯ ДАНИХ

РІЗНЕ

Відправка SMS-повідомлення

Для відправки SMS необхідно викликати методом GET або POST адресу: https://smsc.ua/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>
Для отримання вартості SMS необхідно викликати методом GET або POST адресу: https://smsc.ua/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&cost=1
Для відправки SMS з передачею параметрів у форматі json в тілі запиту необхідно викликати методом POST адресу: https://smsc.ua/rest/send/
Опис параметрів, що передаються Серверу :

ПараметрЗначення
loginЛогін Клієнта.
pswПароль Клієнта (можна додати або редагувати на даннійсторінці).
apikeyСпеціальний API-ключ, який використовується для спрощеної авторизації замість пари "логін + пароль" (можна створити на даний сторінка).
phonesНомер або розділений комою або крапкою з комою список номерів мобільних телефонів в міжнародному форматі, на які відправляється повідомлення. Номери можуть передаватися без знака "+". Якщо номер переданий без знака "+", то він може бути виправлений автоматичним форматуванням і приведений до правильного міжнародного формату. Таким чином, деякі помилки при введенні номерів телефонів можуть бути виправлені автоматично. Для відключення автовиправлення передайте номер зі знаком "+".
Також можна відправляти повідомлення на групу номерів, вказавши спеціальний код "G<номер группы>". Повідомлення буде відправлено на всі номери, що належать цій групі. Для E-mail повідомлення передається список e-mail адрес одержувачів. Для telegram в якості одержувача повідомлення можлива вказівка Ніка абонента або його ID у вигляді #ID.
mesТекст повідомлення, що відправляється. Максимальний розмір – 1000 символів. Повідомлення при необхідності буде розбите на кілька SMS, відправлених абоненту і оплачених окремо. Розмір одного SMS – 160 символів у латиниці або 70 символів у кирилиці. При розбивці повідомлення на кілька SMS в кожну частину додається заголовок для об'єднання частин в одне повідомлення на телефоні одержувача, і максимальна довжина стає 67 для кирилиці і 153 для латинських букв. У текст повідомлення можна додавати коментарі, призначені для перегляду відправником історії в особистому кабінеті.
Додаткові параметри
idІдентифікатор повідомлення. Призначається Клієнтом. Служить для подальшої ідентифікації повідомлення. Якщо не вказувати, то буде призначений автоматично. Не обов'язково унікальний. Ідентифікатор являє собою 32-бітне число в діапазоні від 1 до 2147483647, або рядок довжиною до 40 символів, який складається із латинських букв, цифр і символів ".-_".
senderІм'я відправника, що відображається в телефоні одержувача. Дозволені англійські букви, цифри, пробіл і деякі символи. Довжина – 11 символів або 15 цифр. Всі імена реєструються в особистому кабінеті на даній сторінці.
translitОзнака того, що повідомлення необхідно перевести у трансліт.
0 (за замовчуванням) – не переводити в трансліт.
1 – перекласти в трансліт у вигляді "translit".
2 – перевести в трансліт у вигляді "mpaHc/Ium".
tinyurlАвтоматично скорочувати посилання в повідомленнях. Дозволяє замінювати посилання в тексті повідомлення на короткі для скорочення довжини, а також для відстеження кількості переходів на цій сторінці.
0 (за замовчуванням) – залишити посилання в тексті повідомлення без змін.
1 – скоротити посилання.
timeЧас відправки SMS-повідомлення абоненту.
Формати:
  1. DDMMYYhhmm або DD.MM.YY hh: mm.
  2. h1-h2. Задає діапазон часу в годиннику. Якщо поточний час менше h1, то SMS-повідомлення буде відправлено абоненту при настанні часу h1, якщо поточний час потрапляє в проміжок від h1 до h2, то повідомлення буде відправлено негайно, в іншому випадку відправка буде виконана на наступний день при досягненні часу h1. Ця функція, наприклад, корисна для того, щоб не допустити отримання SMS-повідомлень абонентами в нічний час.
  3. 0ts, де ts-timestamp, час у секундах, що минув з 1 січня 1970 року.
  4. +m. задає відносне зміщення часу від поточного в хвилинах. Символ + повинен кодуватися як %2B в http-запиті.
Якщо time = 0 або вказано вже минулий час, то повідомлення буде відправлено негайно.
tzЧасовий пояс, в якому задається параметр time. Вказується щодо московського часу. Параметр tz може бути як позитивним, так і негативним. Якщо tz дорівнює 0, то буде використаний московський часовий пояс, якщо ж параметр tz не заданий, то часовий пояс буде взятий із налаштувань клієнта.
periodПроміжок часу, протягом якого необхідно відправити розсилку. Являє собою число в діапазоні від 0.1 до 720 годин. Застосовується спільно з параметром freq. Даний параметр дозволяє розтягнути розсилку в часі для поступового отримання SMS-повідомлень абонентами.
freqІнтервал або частота, з якою потрібно відправляти SMS-розсилку на чергову групу номерів. Кількість номерів у групі розраховується автоматично на основі параметрів period і freq. Задається в проміжку від 1 до 1440 хвилин. Без параметра period параметр freq ігнорується.
flashОзнака Flash повідомлення, що відображається одразу на екрані телефону.
0 (за замовчуванням) – звичайне повідомлення.
1 – Flash повідомлення.
binОзнака бінарного повідомлення.
0 (за замовчуванням) – звичайне повідомлення.
1 – бінарне повідомлення. У http-запиті потрібно кодувати за допомогою функції urlencode.
2 – бінарне повідомлення, представлене у вигляді шістнадцяткового рядка (hex).

Бінарне повідомлення передається разом з UDH заголовком на початку в параметрі mes, в якому перший байт задає довжину заголовка. Щоб передати бінарне повідомлення без UDH заголовка, вкажіть нульовий байт на початку повідомлення (00 в hex).
Для можливості передачі параметрів pid і dcs необхідно в кінець бінарного повідомлення додати спеціальну комбінацію "\n~~~ \ n "(переклад рядка, 3 символу тильди і знову переклад рядка) і потім текст "pid: значеніе1, dcs: значеніе2" з точним збереженням пробіл.
pushОзнака WAP-push повідомлення, за допомогою якого можна відправити інтернет-посилання на телефон.
0 (за замовчуванням) – звичайне повідомлення.
1 – wAP-push повідомлення. В параметрі mes необхідно передати посилання і заголовок через переведення рядка.
hlrОзнака HLR-запиту для отримання інформації про номер із бази оператора без відправки реального SMS.
0 (за замовчуванням) – звичайне повідомлення.
1 – HLR-запит. Буде виконано HLR-запит для кожного номера телефону в списку. Параметр mes не використовується.
pingОзнака спеціального SMS, що не відображається в телефоні, для перевірки номерів на доступність в реальному часі за статусом доставки.
0 (за замовчуванням) – звичайне повідомлення.
1 – ping-sms. Буде надіслано ping-SMS на кожен номер телефону у списку. Параметр mes не використовується.
mmsОзнака MMS-повідомлення, за допомогою якого можна передавати текст (txt), зображення різних форматів (jpg, gif, png), музику (wav, amr, mp3, mid) і відео (mp4, 3gp). Файли передаються в тілі http-запиту.
0 (за замовчуванням) – звичайне повідомлення.
1 – MMS-повідомлення. Буде надіслано MMS на кожен номер телефону у списку.
mailОзнака e-mail повідомлення. Файли, що прикріплюються до повідомлення, передаються методом POST в тілі http-запиту.
0 (за замовчуванням) – звичайне повідомлення.
1 – e-mail повідомлення.
socОзнака soc-повідомлення, що відправляється користувачам соціальних мереж "Однокласники", "ВКонтакті" або користувачам "Mail.Ru Агент".
0 (за замовчуванням) – звичайне повідомлення.
1 – soc-повідомлення.
viberОзнака viber-повідомлення, що відправляється користувачам месенджера Viber.
0 (за замовчуванням) – звичайне повідомлення.
1 – viber-повідомлення.
whatsappОзнака whatsapp-повідомлення, що відправляється користувачам месенджера WhatsApp.
0 (за замовчуванням) – звичайне повідомлення.
1 – whatsapp-повідомлення.
tgПри вказівці значення даного параметра рівним 1 буде відправлено telegram-повідомлення з кодом підтвердження, переданим в параметрі mes.
botІм'я бота (telegram), в який необхідно відправити повідомлення у форматі "@botname_bot".
smsreqПри вказівці даного параметра, система не буде відображати текст повідомлення, відправленого користувачеві і виводити попередження про необхідність підтвердження номера телефону, якщо з моменту останнього підтвердження пройшло більше smsreq днів. Діапазон значень від 10 до 999.
fileurlПовний http-адреса файлу для завантаження і передачі в повідомленні. Мінімальний розмір файлу становить 101 байт.
callОзнака голосового повідомлення. При формуванні голосового повідомлення можна передавати як текст, так і прикріплювати файли. Файли, що додаються до повідомлення, повинні передаватися методом POST у тілі http-запиту.
0 (за замовчуванням) – звичайне повідомлення.
1 – голосове повідомлення.
voiceГолос, який використовується для озвучування тексту (тільки для голосових повідомлень).
m – чоловічий голос.
m2 – чоловічий голос 2.
m3 (за замовчуванням) - чоловічий голос 3.
m4 – чоловічий голос 4.
w – жіночий голос.
w2 – жіночий голос 2.
w3 – жіночий голос 3.
w4 – жіночий голос 4.
При відправці повідомлень також можливе зазначення мови озвучування тексту у вигляді: "m, en", "w, fr", "w, de" і т. п.
paramРозділений комою список параметрів для голосового повідомлення у форматі "param=w,i,n".
Тут:
  • w – час очікування підняття трубки абонентом після початку дзвінка в секундах. Якщо протягом зазначеного часу абонент не підніме трубку, то дзвінок піде на повтор із помилкою "абонент зайнятий". Робочий діапазон значень параметра від 10 до 35, але можна вказувати інтервал від 0 до 99 (у випадку, якщо значення менше 10, то воно буде приведене до 10, аналогічно для верхньої межі).
  • i – інтервал повтору, тобто проміжок часу, після закінчення якого відбудеться повторний дзвінок (в секундах). Робочий діапазон параметра від 10 до 3600 (у випадку, якщо значення менше 10, то воно буде приведене до 10).
  • n – загальна кількість спроб дозвону. Робочий діапазон значень від 1 до 9 (0 буде приведений до 1).
При вказівці значення будь-якого параметра, відмінного від можливих, будуть використані значення всіх параметрів за замовчуванням (n = 8, w = 25, i від 3 до 14 секунд по наростаючій), крім повідомлень рекламного характеру.
subjТема MMS або e-mail повідомлення. При відправці e-mail вказання теми, тексту і адреси відправника обов'язкове. Для MMS обов'язковим є указання теми або тексту. Якщо не вказати тему MMS, то в її якості буде використане ім'я відправника, передане в запиті або те, що використовується за замовчуванням.
charsetКодування переданого повідомлення, якщо використовується відмінна від кодування по замовчування windows-1251. Варіанти: utf-8 і koi8-r.
costОзнака необхідності отримання вартості розсилки.
0 (за замовчуванням) – звичайна відправка.
1 – отримати вартість розсилки без реальної відправки.
2 – звичайна відправка, але додати у відповідь вартість виконаної розсилки.
3 – звичайна відправка, але додати у відповідь вартість і новий баланс клієнта.
fmtФормат відповіді сервера про успішну відправку.
0 – (за замовчуванням) у вигляді рядка (OK - 1 SMS, ID - 1234).
1 – повернути відповідь у вигляді чисел: ID і кількість SMS через кому (1234,1), при cost = 2 ще вартість через кому (1234,1,1.40), при cost = 3 ще новий баланс клієнта (1234,1,1.40,100.50) , при cost = 1 вартість і кількість SMS через кому (1.40,1).
2 – відповідь у xml форматі.
3 – відповідь у json форматі.
listСписок номерів телефонів і відповідних їм повідомлень, розділених двокрапкою або крапкою з комою і представлений у вигляді:
phones1:mes1
phones2:mes2
...
Рядки розділяються через символ нового рядка (%0A). В якості phones можна вказати кілька номерів телефонів через кому. Якщо в повідомленні mes потрібно передати символ нового рядка, то вкажіть його через \n. у разі неможливості коригування тексту мультистрокового повідомлення можливе включення спеціального режиму для передачі такого типу повідомлень. Для цього необхідно додатково передавати в запиті параметр nl, рівний 1.
У разі необхідності передачі різних імен відправників (і, можливо, різних часових поясів абонентів (працює тільки для запитів, в яких параметр time представлений у вигляді DDMMYYhhmm або DD.MM.YY hh: mm)) для різних повідомлень можна використовувати наступний формат передачі:
sender1,tz1|phones1:mes1
sender2,tz2|phones2:mes2
...
В даному випадку параметр tz є необов'язковим.
Параметр list дозволяє виконувати множинну розсилку з різними повідомленнями на кілька телефонів одним http-запитом. Повідомленням у запиті присвоюється єдиний ідентифікатор. Весь параметр повинен бути закодований за допомогою функції urlencode.
validТермін" життя " SMS-повідомлення. Визначає час, протягом якого оператор буде намагатися доставити повідомлення абоненту. Діапазон від 1 до 24 годин. Також можливо передавати час у форматі чч: мм в діапазоні від 00:01 до 24:00.
maxsmsМаксимальна кількість SMS, на які може розбитися довге повідомлення. Занадто довгі повідомлення будуть обрізатися так, щоб не переповнити кількість SMS, необхідних для їх передачі. Цим параметром ви можете обмежити максимальну вартість повідомлень, так як за кожне SMS знімається окрема плата.
imgcodeЗначення буквено-цифрового коду, введеного з "captcha" при використанні антиспам перевірки. Даний параметр повинен використовуватися спільно з параметром userip.
useripЗначення IP-адреси, для якої буде діяти ліміт на максимальну кількість повідомлень з однієї IP-адреси на добу, встановлений в налаштування особистого кабінету в пункті "Ліміти та обмеження".
errОзнака необхідності додавання у відповідь сервера списку помилкових номерів.
0 (за замовчуванням) – не додавати список (звичайна відповідь сервера).
1 – у відповідь додається список помилкових номерів телефонів із відповідними статусами.
opОзнака необхідності додавання у відповідь сервера інформації по кожному номеру.
0 (за замовчуванням) – не додавати список (звичайна відповідь сервера).
1 – у відповідь додається список всіх номерів телефонів з відповідними статусами, значеннями mcc і mnc, вартістю, і, в разі помилкових номерів, кодами помилок.
ppЗдійснює прив'язку Клієнта як реферала до певного ID партнера для поточного запиту.
При передаче данного параметра в виде "pp=<ID партнера>" Клиент с логином login временно становится рефералом партнера с ID <ID партнера>. Відрахування за партнерською програмою будуть зроблені саме для поточного запиту, постійної прив'язки не відбувається. Даний параметр дозволяє тимчасово встановлювати Клієнта як реферала зі своїх сервісів і програм, де немає можливості зареєструвати Клієнта за реферальним посиланням.


Обов'язковими параметрами є login, psw, phones і mes або login, psw і list.

Після прийняття та обробки даних Сервер повертає Клієнту підтвердження із зазначенням результату обробки.

Всі параметри, які містять спеціальні символи (плюс, пробіл і т. д.), повинні бути закодовані за допомогою функції urlencode для передачі в HTTP-запиті.

Відправлення повідомлень. Відповідь сервера та коди помилок

Сервер відправляє відповідь у вигляді рядка:

Якщо сталася помилка, то відповідь буде однією із наступних:

При fmt = 0:
  • ERROR = N (описание) – для помилок 1,2,4,5,9;

  • ERROR = N (опис), ID - <id сообщения> – для помилок 3,6,7,8.
При fmt = 1:
  • 0,-N - для помилок 1,2,4,5,9;
  • <id сообщения>,-N – для помилок 3,6,7,8.
При fmt = 2:
  • Для помилок 1,2,4,5,9:

    <result>
    <error>опис</error>
    <error_code>N</error_code>
    </result>

  • Для помилок 3,6,7,8:
    <result>
    <error>опис</error>
    <error_code>N</error_code>
    <id>id сообщения</id>
    </result>
При fmt = 3:
  • Для помилок 1,2,4,5,9:
    {
    "error": "опис",
    "error_code": N
    }

  • Для помилок 3,6,7,8:
    {
    "error": "опис",
    "error_code": N,
    "id": <id сообщения>
    }
N – номер помилки, може приймати наступні значення:

ЗначенняОпис
1Помилка в параметрах.
2Невірний логін або пароль. Також виникає при спробі відправки повідомлення з IP-адреси, що не входить в список дозволених Клієнтом (якщо такий список був налаштований Клієнтом раніше).
3Недостатньо коштів на рахунку клієнта.
4IP-адреса тимчасово заблокована через часті помилки у запитах. Докладніше
5Невірний формат дати.
6Повідомлення заборонено (за текстом або по імені відправника). Також дана помилка виникає при спробі відправки масових та (або) рекламних повідомлень без укладеного договору.
7Неправильний формат номера телефону.
8Повідомлення на вказаний номер не може бути доставлене.
9Надсилання більше одного однакового запиту на передачу SMS-повідомлення або більше п'яти однакових запитів на отримання вартості повідомлення протягом хвилини.
Дана помилка виникає також при спробі відправки п'ятнадцяти і більше запитів одночасно з різних підключень під одним логіном (too many concurrent requests).

У разі успішної обробки запиту повертається рядок наступного виду:
  • при cost = 0 і fmt = 0: OK - <n> SMS, ID - <id>

  • при cost = 1 і fmt = 0: <cost> (<n> SMS)

  • при cost = 2 і fmt = 0: OK - <n> SMS, ID - <id>, COST - <cost>

  • при cost = 3 і fmt = 0: OK - <n> SMS, ID - <id>, COST - <cost>, BALANCE - <balance>

  • при cost = 0 і fmt = 1: <id>,<n>

  • при cost = 1 і fmt = 1: <cost>,<n>

  • при cost = 2 і fmt = 1: <id>,<n>,<cost>

  • при cost = 3 і fmt = 1: <id>,<n>,<cost>,<balance>

  • при cost = 0 і fmt = 2:
    <result>
    <id>id</id>
    <cnt>n</cnt>
    </result>

  • при cost = 1 і fmt = 2:
    <result>
    <cost>cost</cost>
    <cnt>n</cnt>
    </result>

  • при cost = 2 і fmt = 2:
    <result>
    <id>id</id>
    <cnt>n</cnt>
    <cost>cost</cost>
    </result>

  • при cost = 3 і fmt = 2:
    <result>
    <id>id</id>
    <cnt>n</cnt>
    <cost>cost</cost>
    <balance>balance</balance>
    </result>

  • при cost = 0 і fmt = 3:
    {
    "id": <id>,
    "cnt": <n>
    }

  • при cost = 1 і fmt = 3:
    {
    "cost": "<cost>",
    "cnt": <n>
    }

  • при cost = 2 і fmt = 3:
    {
    "id": <id>,
    "cnt": <n>,
    "cost": "<cost>"
    }

  • при cost = 3 і fmt = 3:
    {
    "id": <id>,
    "cnt": <n>,
    "cost": "<cost>",
    "balance": "<balance>"
    }

  • при op = 1 і fmt = 0 або 1, інформація додається в кінець звичайного виводу з нового рядка:
    <phone>,<mccmnc>,<cost>,<status>,<error>

  • при op = 1 та fmt = 2, у відповідь додається масив:
    <phones>
    <phone mccmnc="mccmnc" cost="cost" status="status" error="error">phone</phone>
    ...
    </phones>

  • при op = 1 та fmt = 3, у відповідь додається масив:
    "phones": [{
    "phone": "<phone>",
    "mccmnc": "<mccmnc>",
    "cost": "<cost>",
    "status": "<status>",
    "error": "<error>"
    },
    ...
    ]

Де:
<n> - це кількість відправлених SMS, обчислюється як кількість SMS в повідомленні, помножене на кількість одержувач.
<id> – ідентифікатор повідомлення, переданий Клієнтом або призначений Сервером автоматично.
<cnt> – кількість частин (при відправці SMS-повідомлення) або кількість секунд (при голосовому повідомленні (дзвінку)).
<balance> – новий баланс Клієнта.
<phone> – номер телефону.
<mccmnc> – числовий код країни абонента плюс числовий код оператора абонента.
<cost> – вартість SMS-повідомлення.
<status> – код статусу SMS-повідомлення.
<error> – код помилки в статусі.

Сервер не приймає більше одного однакового запиту на відправку SMS-повідомлень протягом хвилини для захисту від помилок і зациклень в програмі на стороні клієнта для того, щоб знизити навантаження і не витрачати кошти клієнта, а також не допустити багаторазової відправки повідомлення одному абоненту.

Сервер також блокує надсилання більше 50 повідомлень одному абоненту, які були відправлені з перервою між повідомленнями менше 60-ти секунд, для захисту від флуду і зайвого списання коштів із рахунку клієнта, так як багато операторів не пропускають велику кількість повідомлень одному абоненту за короткий проміжок часу.

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

Приклади:

Звичайне повідомлення:

https://smsc.ua/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello! https://smsc.ua/sys/send.php?login=alex&psw=123
&list=79999999999:Hello!%0A79999999999:Hello\nworld!

Flash повідомлення в кодуванні "utf-8" від відправника "ivan", переведене в трансліт, яке повинно бути доставлене абоненту 01.01.2012 р в 00:00:

https://smsc.ua/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello%20world!
&translit=1&time=0101120000&flash=1&sender=ivan
&charset=utf-8

Бінарне EMS повідомлення з текстом "Hello, World!", в якому слово "World" виділене курсивом і підкреслене:

https://smsc.ua/sys/send.php?login=alex&psw=123&phones=79999999999
&mes=050A0307056048656C6C6F2C20576F726C6421&bin=2

Бінарне WAP-push повідомлення, що передає посилання на сайт "http://wap.ru/":

https://smsc.ua/sys/send.php?login=alex&psw=123&phones=79999999999
&mes=0605040B8423F0DC0601AE02056A0045C60C037761702E72752F0001037761702E7275000101&bin=2

WAP-push повідомлення в текстовому вигляді, що передає посилання на сайт "http://wap.ru"із заголовком "WAP.RU":

https://smsc.ua/sys/send.php?login=alex&psw=123&phones=79999999999
&mes=http://wap.ru%0AWAP.RU&push=1



© 2003–2024 ТОВ " СМСЦЕНТР»
Код ЄДРПОУ 38404962
support@smsc.ua
Контакти
Дизайн — Студія Артемія Лебедєва
Інформація про сайт
SMS-центр для Android Яндекс.Метрика