Реєстрація

Різне

Коди відповідей API

Глосарій

Список можливих статусів SMS-повідомлень

URL-кодування рядків

Коди відповідей API

Кожна відповідь на запит до API повертає масив, що складається з трьох полів, одне з яких – code. Це поле містить статус обробки запиту і може бути керівництвом до подальших дій з боку клієнтського додатку. У наступній таблиці наведено коди API та їх значення:

КодОпис
0Операцію завершено успішно.
1Помилка валідації переданих даних під час створення або поновлення будь-якої сутності. В полі data представлена інформація про те, які поля заповнені невірно. Потрібно виправити помилки і повторити запит з новими даними.
2Зазначений запис не знайдено. Швидше за все він був видалений, ID запису вказано невірно або у користувача, котрий намагається отримати доступ до цього запису, немає відповідних прав доступу до цього запису.
3Невизначена помилка програми. Зверніться в службу підтримки і повідомте деталі запиту, при якому вона була отримана.
4Невірно вказано параметр module. Перевірте правильність написання параметра в документації до API.
5Невірно вказано параметр method. Перевірте правильність написання параметра в документації до API.
6Невірно вказано параметр format. Перевірте правильність написання параметра в документації до API.
8Помилка входу в систему. Виникає у випадках, коли:
  • Неправильно вказані дані для входу;
  • Коли під час роботи з системою сесія користувача минула або була примусово закрита сервером.
Більш детальну інформацію можна побачити в полі message.
9Помилка доступу до зазначеного методу API.
10Помилка під час збереження даних на сервері безпосередньо в процесі виконання даної операції. Зазвичай ця помилка пов'язана з одночасним доступом до даних з декількох клієнтів або зміною умов збереження даних в процесі їх збереження.
11Деякі обов'язкові параметри відсутні в запиті. Перевірте правильність написання параметрів в документації до API і доповніть запит необхідними параметрами.
12Вхідний параметр запиту не відповідає встановленим умовам або обмеженням. Даний код помилки виникає у випадках, коли при виконанні запиту з параметрами, будь-який параметр порушує обмеження. Схоже на помилку валідації атрибутів, але може бути отримано в запитах, які не здійснюють створення або зміну даних.
13Спроба зробити запит до сервера API, який не обслуговує даного користувача. У разі отримання цього коду правильний домен можна отримати в полі data.
14Дана помилка виникає в разі, якщо обліковий запис користувача заблоковано або вилучено.
15Помилка під час виконання будь-якої операції, яка не пов'язана з оновленням даних. Деталі даної помилки вказані в полі message відповіді API.
30Помилка перевищення допустимого ліміту швидкості запитів. Дана помилка виникає при надмірно частих зверненнях до одного і того ж методу API протягом певного проміжку часу. У разі виникнення помилки слід зменшити частоту запитів.
98Операція виконана не в повному обсязі, а лише з частиною даних. Зазвичай даний код повертається при будь-яких масових операціях, під час виконання яких деякі елементи не були оброблені через помилки або обмеження, але частина елементів оброблена. У разі отримання цього коду можна отримати інформацію про те, які елементи були оброблені, а які ні та з якими помилками, отримавши вміст поля data.
99Жоден з елементів масової операції не оброблений. Детальну інформацію про помилки в кожному конкретному елементі можна отримати в полі data, а загальний опис помилки в полі message.
100Даний код не є помилкою і означає, що операція була відправлена в фонове виконання. У цьому випадку поле data містить ID фонової операції, процес і завершення якої можна відстежити за допомогою API TaskQueue/GetStatus.
999Загальна помилка сервісу. Деталі можна отримати в полі message.

Глосарій

ID – унікальний ідентифікатор, який дозволяє однозначно визначити об'єкт, який є предметом пошуку: кампанію, групу та інше.

Контактна карта – запис в Контактній книзі, що містить дані клієнта, такі як: ПІБ, email, дату народження та іншу інформацію. Обов'язково повинен містити номер телефону.

Підпис відправника (Sender ID, альфанумеричне ім'я) – відображається в якості відправника SMS на телефоні одержувача замість номера телефону. До підписів відправника існує ряд вимог.

Загальний підпис (відправника SMS) – один з підписів сервісу, що використовується при відправленні повідомлення, в разі, якщо у користувача немає підписів або обраний підпис недоступний для відправки на вказаний номер телефону.

Одержувач (абонент) – користувач послуг мобільного зв'язку, на номер якого відбувається відправлення SMS-повідомлення.

Коротке посилання – скорочена (альтернативна) URL-адреса для доступу до WEB-сторінки.

Використання короткого посилання замість звичайного мінімізує ненавмисне спотворення URL – коротке посилання легше запам'ятати, скопіювати або ввести вручну.

Статистичні дані надаються в зручній формі: можна побачити кількість кліків за останні 2 години, день, тиждень, 30 днів або весь час (детальніше див. у розділі короткі посилання).

Також короткі посилання зручно використовувати в SMS. Вони дозволяють зменшити вартість відправки за рахунок меншої кількості символів в повідомленні.

При використанні короткого посилання, створеного в нашому сервісі, є можливість задіяти функцію відстеження одержувачів, котрі відкрили посилання.

Персональне посилання (посилання для відстеження одержувача) – спеціальне коротке посилання, створене за допомогою нашого сервісу, яке дозволяє відстежити: хто саме з одержувачів SMS-розсилки перейшов по ньому. Посилання унікальне для кожного окремого одержувача SMS.

Функція відстеження одержувачів – інструмент збору статистики про одержувачів, які перейшли за коротким посиланням, розміщеним в повідомленні.

Це зручний та ефективний засіб для аналітики цільової аудиторії та оцінки ефективності SMS-кампанії.

Функція доступна для SMS-повідомлень, що містять гіперпосилання. Щоб активувати функцію, необхідно в Формі Відправки SMS натиснути кнопку заміни звичайного посилання на коротке і перевірити, чи є галочка навпроти опції «відстежувати одержувачів».

Звіт про доставку повідомлення (DLR) – інформація від оператора зв'язку про статус доставки SMS-повідомлення одержувачу.

SMS Кампанія – дозволяє згрупувати безліч одержувачів одного SMS і проаналізувати результати SMS-розсилки.

Одиночна кампанія – відправка повідомлення на один номер.

Масова кампанія – відправка повідомлення на два і більше номерів.

Функціональна (службова) кампанія – в неї входять функціональні або, іншими словами, службові повідомлення системи, наприклад, повідомлення з кодом підтвердження номера з форм.

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

Приклад шаблона

У фігурних дужках {} розміщені плейсхолдери.

Шаблонний текст з плейсхолдерамиТекст, який буде доставлений одержувачу
Доброго дня, {name}! Ваш баланс на {date} становить {balance}{currency}.Доброго дня, Іван! Ваш баланс на 12.09.2019 становить 15.50 грн.
{name}, машина під'їхала ({carNumber}). Телефон водія: {driverPhone}.Олексій, машина під'їхала (АА 4444). Телефон водія: 099 999 99 99.
Нагадуємо, що ви записані на прийом в {place}. Дата прийому: {date}.Нагадуємо, що ви записані на прийом в Клініці. Дата прийому: 11.11.2019 на 11:30.

Форма – зручний інструмент для збору даних про клієнтів, проведення електронних опитувань, формування бази номерів для розсилки і безлічі інших завдань.

За допомогою Форм ваші клієнти можуть підписатися на SMS-розсилку, новини, акції тощо.

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

Крім того, ви можете налаштувати оформлення Форми, яке буде якмога краще підходити під кольори вашого сайту: вибрати колір тексту, кнопок, фону та інше. Детальніше про створення Форм ви можете дізнатися в розділі “Форми”.

Список можливих статусів SMS-повідомлень

СтатусОстаточнийОпис
NEWніНове повідомлення, ще не було відправлено.
ENQUEUDніПоставлено в чергу на відправку.
ACCEPTDніВідправлено з системи і прийнято оператором для подальшої пересилки одержувачу.
UNDELIVтакНе було доставлене одержувачу.
REJECTDтакВідхилено оператором по одній з безлічі причин – невірний номер одержувача, заборонений текст, підпис відправника не зареєстрований та інше.
PDLIVRDніНе всі сегменти повідомлення доставлено одержувачу (цей статус може бути тільки у повідомлень, але не у сегментів). Деякі оператори повертають звіт тільки про перший доставлений сегмент, тому таке повідомлення після закінчення терміну життя перейде в статус, встановлений для першого сегмента.
DELIVRDтакДоставлено одержувачу повністю.
EXPIREDтакДоставка не вдалася так як закінчився термін очікування, протягом якого повідомлення так і не було доставлене одержувачу. Як правило, доставка неможлива, якщо телефон одержувача відключений, знаходиться поза зоною дії мережі або пам'ять пристрою переповнена. Максимальний час очікування доставки – 1 доба з моменту відправки.
DELETEDніВидалено через будь-які обмеження на стороні оператора зв'язку і не доставлено одержувачу.

URL-кодування рядків

У кожній серверній мові в тому чи іншому вигляді є функція, яка повертає рядок, в якому всі не цифро-буквені символи, крім - _ . повинні бути замінені знаком відсотка (%), за яким йдуть два шістнадцятирічних числа, а пробіли закодовані як знак додавання (+). Рядок кодується тим же способом, що і POST-дані веб-форми, тобто за типом контенту application/x-www-form-urlencoded. Це відрізняється від кодування по RFC 3986 в тому, що з історичних причин, пробіли кодуються як знак "плюс" (+).

Реалізація в різних мовах програмування

МоваФункціяПосилання на документацію
PHPurlencodehttp://php.net/manual/ru/function.urlencode.php
.NetHttpUtility.UrlEncode
WebUtility.UrlEncode
https://docs.microsoft.com/en-us/dotnet/api/system.web.httputility.urlencode
https://docs.microsoft.com/en-us/dotnet/api/system.net.webutility.urlencode
Pythonurllib.parse.quote_plushttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.quote_plus
JavaURLEncoder.encodehttps://docs.oracle.com/javase/8/docs/api/java/net/URLEncoder.html
JavaScriptencodeURIComponenthttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent