API позволяет рассылать сообщения через ваши проекты и сервисы по протоколам HTTP/HTTPS, SMTP и SMPP. Готовые библиотеки на разных языках программирования подключаются к вашему проекту и помогают отправлять сообщения из любого места с помощью одной команды.
Получать статус доставки отправленного SMS-сообщения по SMPP-протоколу можно как в автоматическом режиме,
получая от сервера ответную PDU-команду DELIVER_SM сразу после изменения статуса, так и по запросу
отдельной командой QUERY_SM. Для автоматического получения статуса необходимо подключаться в режиме
transceiver или receiver и при отправке SMS указать флаг запроса статуса (registered_delivery).
Кроме этого, возможно получать статусы на HTTP-обработчик.
При автоматическом возврате статуса в команде DELIVER_SM передаются стандартные TLV-параметры receipted_message_id (<id>), message_state (числовой <status>) и network_error_code (<err>), а также дополнительные TLV-поля с кодами 0x2000 и 0x2001, содержащие информацию о стоимости и типе сообщения:
Имя (код) поля
Размер
Тип
Описание
8192 (0x2000)
Var. max 6
COctet String
Стоимость сообщения в формате "n.nnnn".
8193 (0x2001)
2
Integer
Флаг в виде 2-х байтового числа, содержащий различную информацию о сообщении. Возможны комбинации значений битов разных характеристик.
Бит 5 – оплата сообщения со второго баланса.
Бит 8 – признак шаблонного сообщения.
Также в команде DELIVER_SM передается текст статуса в следующем формате:
id:<id> sub:<sub> dlvrd:<dlvrd> submit date:<submit date> done date:<done date> stat:<status> err:<err>
Описание параметров:
Параметр
Значение
id
Идентификатор сообщения, назначенный сервером при отправке.
sub
Количество SMS частей в отправленном сообщении.
dlvrd
Количество доставленных SMS.
submit date
Дата отправки.
done date
Дата изменения статуса.
status
Статус сообщения в виде строки (DELIVRD, EXPIRED, UNDELIV).
err
Код ошибки, если сообщение не может быть доставлено (список).
Пример результата строки статуса (Delivery Report):
id:854019 sub:001 dlvrd:001 submit date:1108202241 done date:1108202241 stat:DELIVRD err:000
По умолчанию для длинных сообщений, разбиваемых на несколько SMS, сервер возвращает только один статус (DELIVER_SM)
для всего склеенного сообщения и одинаковые ID в ответе SUBMIT_SM_RESP для всех SMS-частей данного сообщения.
Для включения режима обработки и возврата статусов для каждой SMS-части отдельно установите следующий параметр в настройках подключения (либо в настройках личного кабинета):
system-type = "SINGLE"
Если необходимо указать несколько параметров в поле system-type, то укажите их через запятую:
system-type = "ISO,SINGLE"