SMS-шлюз SMSPILOT.RU - это сервер отправки SMS с помощью HTTP-запросов. Вам не нужно покупать gsm-модем. Ваш программист может добавить отправку SMS на сайт, интернет-магазин, Android-приложение или в программу для Windows.
|
API-ключAPI-ключ - это 64-символьная строка, которая служит для авторизации внешних приложений.
|
API-1 позволяет: отправить SMS, разослать SMS на несколько номеров за один запрос, отправлять длинные SMS, получить статус сообщения, узнать баланс, указать транслит/кодировку, указать дату/время отправки и время жизни SMS, указать callback-url для получения статуса, привязать реферала, указать эл. почту для отладки, получить список входящих SMS. Ответ в текстовом формате, XML или JSON.
<?php // Пример 1: минимальный код, XYZ замените на API-ключ
file_get_contents('http://smspilot.ru/api.php?send=test&to=79087964781&apikey=XYZ&format=v');
// вернёт 12345 - код SMS
// или текст ошибки Invalid phone
// если указать &lang=ru ошибка вернётся на русском языке Неправильный номер телефона
?>
<?php // Пример 2: отправка SMS через шлюз SMSPILOT.RU на чистом PHP
$phone = '79081234567'; // номер телефона в международном формате
$text = 'проверка'; // текст сообщения
$sender = 'INFORM'; // имя отправителя из списка https://smspilot.ru/my-sender.php
// !!! Замените API-ключ на свой https://smspilot.ru/my-settings.php
$apikey = 'XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ';
$url = 'https://smspilot.ru/api.php'
.'?send='.urlencode( $text )
.'&to='.urlencode( $phone )
.'&from='.$sender
.'&apikey='.$apikey
.'&format=json';
$json = file_get_contents( $url );
echo $json.'<br/>';
// {"send":[{"server_id":"10000","phone":"79081234567","price":"1.68","status":"0"}],"balance":"11908.50","cost":"1.68"}
// {"error":{"code": "400", "description": "User not found", "description_ru": "Пользователь не найден" }
$j = json_decode( $json );
if ( !isset($j->error)) {
echo 'SMS успешно отправлена server_id='.$j->send[0]->server_id;
} else {
trigger_error( $j->description_ru, E_USER_WARNING );
}
// проверить статус
// http://smspilot.ru/api.php?check=1234&apikey=XYZ&format=json
// {check: [{server_id: 1234,phone: "79081234567",status: 2}]}
<?php // Пример 3: используем библиотеку PHP для отправки SMS
include('smspilot.php');
sms('79081231212','Привет Мир!');
sms('79131231212','Ваш заказ отправлен!','example.com');
sms('79511231212,79511231213','Ваш сын получил 2 за поведение (отправлял смски во время урока)!','School');
— PHP разработчикам рекомендуем библиотеку PHP для отправки SMS или PHP класс для отправки SMS с примерами 2013-11-18
— Попробуйте МАСТЕР КОДА/URL, а также ещё примеры на GitHub
// Отправка SMS на чистом C#
using System;
using System.Net;
using System.IO;
using System.Web;
namespace smspilot
{
class Program
{
public static void Main(string[] args)
{
string send = "Привет мир!"; // текст SMS
string to = "79876543210"; // номер телефона в международном формате
// имя отправителя из списка https://smspilot.ru/my-sender.php
string _from = "";
// !!! Замените API-ключ на свой https://smspilot.ru/my-settings.php#api
string apikey = "XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ";
string url = "http://smspilot.ru/api.php" +
"?send="+Uri.EscapeUriString( send ) +
"&to=" + to +
"&from=" + _from +
"&apikey=" + apikey; // +
//"&charset=windows-1251";
HttpWebRequest myHttpWebRequest =
(HttpWebRequest)HttpWebRequest.Create( url );
// выполняем запрос
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
// выводим результат в консоль
StreamReader myStreamReader =
new StreamReader(myHttpWebResponse.GetResponseStream());
Console.WriteLine(myStreamReader.ReadToEnd());
Console.WriteLine("Нажмите любую клавишу для завершения.");
Console.ReadKey();
}
}
}
# -*- coding: utf-8 -*-
# Отправка SMS на чистом Python через sms-шлюз SMSPILOT.RU
import urllib
import json
phone = '79037672215' # номер телефона в международном формате
text = 'проверка'; # текст сообщения
sender = 'INFORM'; # имя отправителя из списка https://smspilot.ru/my-sender.php
# !!! Замените API-ключ на свой https://smspilot.ru/my-settings.php#api
apikey = 'XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ';
url = "http://smspilot.ru/api.php?send=%s&to=%s&from=%s&apikey=%s&format=json" % (text, phone, sender, apikey )
j = json.loads(urllib.urlopen(url).read())
if 'error' in j:
print 'Ошибка: %s' % j.description_ru
else:
print j
# {u'balance': u'11908.50', u'cost': u'1.68', u'send': [{u'status': u'0', u'phone': u'79037672215', u'server_id': u'10000', u'price': u'1.68'}]}
print 'ID: %s' % j['send'][0]['server_id']
# ID: 10000
— Спасибо Stanislav Sokolov (ratso) за Python класс на гитхабе https://github.com/ratso/pySMSPilot
require 'net/http'
require 'json'
uri = URI('http://smspilot.ru/api.php')
params = {
:send => 'проверка', # текст сообщения
:to => '79087964781', # номер телефона в международном формате
# !!! Замените API-ключ на свой https://smspilot.ru/my-settings.php#api
:apikey => 'XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ',
:format => 'json'
}
uri.query = URI.encode_www_form(params)
res = Net::HTTP.get_response(uri)
j = JSON.parse( res.body )
puts j
if ( j['error'] )
puts j['error']['description_ru']
else
puts j['send'][0]['server_id'] # id сообщения
end
— Спасибо разработчику Armen P. (edg3r) за Ruby пакет на гитхабе https://github.com/edg3r/smspilot
// отправка SMS на чистой Node
var http = require('http');
var querystring = require('querystring');
var phone = '79037672215'; // номер телефона
var text = 'проверка'; // текст
var from = ''; // имя отправителя из списка https://smspilot.ru/my-sender.php
// !!! Замените API-ключ на свой https://smspilot.ru/my-settings.php#api
var apikey = 'XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ';
var uri = [
'http://smspilot.ru/api.php',
'?send=', querystring.escape( text ),
'&to=', phone,
'&from=', from,
'&apikey=', apikey,
'&format=json'
].join('');
http.get(uri, function(res) {
var str = ''
res.on('data', function (chunk) {
str += chunk;
});
res.on('end', function () {
console.log('ответ сервера: '+str);
var parsedData = JSON.parse(str);
console.log('server_id='+parsedData.send[0].server_id);
});
}).on('error', function(err) {
console.log('ошибка сети '+err);
});
— Node.js разработчикм могут посмотреть устаревший модуль от corpix-а здесь SMS на Node.js
program delphi7_example01;
// Отправка SMS на Delphi через SMS-шлюз SMSPILOT.RU
// File - New - Other - Console Application
{$APPTYPE CONSOLE}
uses
IdHTTP;
var phone, text, sender, apikey, url, response, id: string;
var pos_13,pos_comma: integer;
var http: TIdHTTP;
begin
http := TIdHTTP.Create(nil);
phone := '79037672215'; // номер телефона в междлународном формате
text := 'проверка'; // текст сообщения
sender := ''; // имя отправителя из списка https://www.smspilot.ru/my-sender.php
// !!! Замените API-ключ на свой https://www.smspilot.ru/my-settings.php#api
apikey := 'XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ';
url := 'http://www.smspilot.ru/api.php';
url := url + '?send=' + http.URL.ParamsEncode( text );
url := url + '&to=' + http.URL.ParamsEncode( phone );
url := url + '&from=' + http.URL.ParamsEncode( sender );
url := url + '&apikey=' + http.URL.ParamsEncode( apikey );
url := url + '&charset=windows-1251';
writeln( url );
response := http.Get( url );
{
SUCCESS=SMS SENT 0.89/320.50
4566,79037672215,0.60,0
}
if pos('ERROR', response ) = 1 then
writeln( response )
else begin
pos_13 := pos(#13, response );
pos_comma := pos(',', response);
id := copy( response, pos_13, pos_comma - pos_13-1 );
writeln( 'id=' + id ); // получили ID сообщения
end;
writeln('Press [Enter]');
readln;
end.
— Delphi разработчики могут скачать проект SMS на Delphi 7, а также SMS на Delphi XE
Sub Кнопка1_Щелчок()
If SMS("79087964781", "Привет") Then MsgBox ("Сообщение отправлено") Else MsgBox SMSError()
End Sub
' Собственнно функция для отправки SMS http://www.smspilot.ru/apikey.php
Public Function SMS(Phone As String, Text As String) As Boolean
SMS = False
Set HttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "http://smspilot.ru/api.php"
URL = URL & "?send=" & URLEncode(Text)
URL = URL & "&to=" & Phone
' Своя подпись
' URL = URL & "&from="
' (!) Замените на свой API-ключ https://www.smspilot.ru/my-settings.php#api
URL = URL & "&apikey=XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ"
URL = URL & "&charset=windows-1251"
If HttpReq.Open("GET", URL, False) <> 0 Then
SMSError ("Connection error")
Exit Function
End If
If HttpReq.Send() <> 0 Then
SMSError ("Open URL " & URL & " error")
Exit Function
End If
If Left$(HttpReq.responseText, 7) <> "SUCCESS" Then
SMSError (HttpReq.responseText)
Exit Function
End If
SMS = True
SMSError ("")
End Function
' Функция для хранения последней ошибки
Public Function SMSError(Optional SetErr As String = "") As String
Static Err
If SetErr <> "" Then Err = SetErr
SMSError = Err
End Function
' Кодирование URL параметров http://ru.wikipedia.org/wiki/URL
Public Function URLEncode(StringVal As String, Optional SpaceAsPlus As Boolean = False) As String
Dim StringLen As Long: StringLen = Len(StringVal)
If StringLen > 0 Then
ReDim result(StringLen) As String
Dim i As Long, CharCode As Integer
Dim Char As String, Space As String
If SpaceAsPlus Then Space = "+" Else Space = "%20"
For i = 1 To StringLen
Char = Mid$(StringVal, i, 1)
CharCode = Asc(Char)
Select Case CharCode
Case 97 To 122, 65 To 90, 48 To 57, 45, 46, 95, 126
result(i) = Char
Case 32
result(i) = Space
Case 0 To 15
result(i) = "%0" & Hex(CharCode)
Case Else
result(i) = "%" & Hex(CharCode)
End Select
Next i
URLEncode = Join(result, "")
End If
End Function
//*******************************************************
Функция UTF8(Стр)
Длина=СтрДлина(Стр);
Итог="";
Для Н=1 По Длина Цикл
Знак=Сред(Стр,Н,1);
Код=КодСимв(Знак);
Если Код<128 Тогда
Итог=Итог+Знак;
Иначе
Если (Код>=КодСимв("А"))И(Код<=КодСимв("п")) Тогда
Итог=Итог+Симв(208)+Симв(144+Код-КодСимв("А"));
ИначеЕсли (Код>=КодСимв("р"))И(Код<=КодСимв("я")) Тогда
Итог=Итог+Симв(209)+Симв(128+Код-КодСимв("р"));
ИначеЕсли (Знак="ё") Тогда
Итог=Итог+Симв(209)+Симв(145);
ИначеЕсли (Знак="Ё") Тогда
Итог=Итог+Симв(208)+Симв(129);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Итог;
КонецФункции
//*******************************************************
Процедура ОтправитьСМС(Телефон,ТекстСМС)
//Телефон в формате +79ххххххххх
// (!) Замените на свой API-ключ https://www.smspilot.ru/my-settings.php#api
API = "XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ";
Если ЗагрузитьВнешнююКомпоненту("v7plus.dll")=0 Тогда
Сообщить("Не удалось обнаружить компоненту V7Plus.dll!");
КонецЕсли;
Попытка
Соединение = СоздатьОбъект("Addin.V7HttpReader");
Соединение.КоличествоПопытокАвторизации = 1;
Исключение
Сообщить("Не удалось создать объект Addin.V7HttpReader!");
КонецПопытки;
Адрес = "http://smspilot.ru/api.php?send=";
стр="";
СМС = UTF8(ТекстСМС);
Адрес = Адрес+СокрЛП(СМС)+"&to="+Прав(СокрЛП(Телефон),11)+"&apikey="+API;
Попытка
Соединение.ПолучитьКакСтроку(Адрес, Стр);
Сообщить("-+-============== Отправка СМС ================-+-");
Успешно = "SUCCESS=SMS SENT";
Если лев(стр,16)=Успешно Тогда
Сообщить("Сообщение на номер: "+Телефон);
Сообщить("С текстом: "+ТекстСМС);
Тхт=СокрЛП(СтрЗаменить(Стр,Успешно,""));
ЦенаСМС = Лев(Тхт,Найти(Тхт,"/")-1);
Тхт=СтрЗаменить(Тхт,ЦенаСМС+"/","");
ОстатокНаСчете = Лев(Тхт,Найти(Тхт,Симв(13))-1);
Сообщить("Успешно отправлено! Цена за СМС = "+ЦенаСМС+" руб.; Остаток на счету = "+ОстатокНаСчете+" руб.");
КонецЕсли;
Исключение
Сообщить("Неудачная попытка отправки СМС.");
КонецПопытки;
КонецПроцедуры
#!/usr/bin/perl -w
use Output;
use Socket;
$send = "Hello World!"; # текст сообщения
$to = "79087964781"; # номер телефона в международном формате
# !!! Замените API-ключ на свой https://smspilot.ru/my-settings.php#api
$apikey = "XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ";
$host="smspilot.ru";
$port="80";
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);
$send =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
send (SOCK, "GET /api.php?send=$send&to=$to&apikey=$apikey HTTP/1.0\nHOST:$host\n\n", 0);
@data=;
close(SOCK);
print $data;
— Perl разработчикам рекомендуем модуль Net::SMS::SMSPilot (Даниил Путилин, независимый разработчик)
Скрипт sendsms.sh для отправки SMS из консоли Linux (CentOS,Ubuntu,Debian,Fedora...)
#!/bin/bash
# Отправка SMS через шлюз SMSPILOT.RU на Bash
#
# ./sendsms.sh "test" "79087964781"
#
text=$1
phone=$2
# (!!!) Замените XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ
# на свой API-ключ: https://smspilot.ru/my-settings.php#api
apikey=XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ
curl -v --data-urlencode send="$text" --data-urlencode to="$phone" --data apikey="$apikey" http://smspilot.ru/api.php
# альтернативный вариант это запрос через wget, замените XYZ на свой API-ключ
# wget -q http://smspilot.ru/api.php?send=Hello&to=79087964781&apikey=XYZ"
Можно использовать консольную программу для отправки SMS (1С,C#,Delphi,VB...) или smspilot.vbs скприт для оболочки WSH VBS:
' SMS через SMSPILOT.RU
Phone = "79087964781"
' Для поддержки кириллицы нужен очень длинный скрипт, поэтому используем транслит
Text = "Otpravka SMS cherez SMSPILOT WSH VBS"
' (!!!) Замените на свой API-ключ https://www.smspilot.ru/my-settings.php#api
APIKEY = "XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ"
Set HttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "http://smspilot.ru/api.php"
URL = URL & "?send=" & Replace(Text," ", "%20")
URL = URL & "&to=" & Phone
' Своя подпись
' URL = URL & "&from=smspilot"
URL = URL & "&apikey=" & APIKEY
If HttpReq.Open("GET", URL, False) <> 0 Then
wscript.echo "Connection error"
ElseIf HttpReq.Send() <> 0 Then
wscript.echo "Open URL " & URL & " error"
Else
wscript.echo HttpReq.responseText
End If
API-2позволяет в одном пакете отправлять разные сообщения, поддерживаются запросы и ответы в форматах XML или JSON, поддерживается client_id, режим отладки, проверка статуса и баланса, выборка входящих, привязка партнера.
<?php // Отправка нескольких SMS через SMSPILOT.RU (API-2)
// !!! Замените API-ключ на свой https://smspilot.ru/my-settings.php#api
$apikey = 'XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ';
$send = array(
'apikey' => $apikey,
'send' => array(
array('from' => 'smspilot.ru', 'to' => '79087964781', 'text' => "Перенос\nстроки"),
array('from' => 'smspilot.ru', 'to' => '79131437355', 'text' => 'Отложенная отправка', 'send_datetime' => time() + 24 * 3600),
array('from' => 'ОШИБКА', 'to' => '791122233322', 'text' => 'Неправильное имя отправителя')
)
);
$result = file_get_contents('http://smspilot.ru/api2.php', false, stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => "Content-Type: application/json\r\n",
'content' => json_encode( $send ),
),
)));
echo '<pre>request data --
'.print_r( $send, true ).'
raw response --
'.$result.'
json_decode --
'.print_r( json_decode( $result ), true ).'
</pre>';
HLR (Home Location Register) - операторская база данных об абонентах сотовых сетей GSM. HLR-запросы нужны для проверки статуса и очистка баз данных от неактуальных номеров. Запросы позволяют установить состояние номера телефона клиента - активен или не обслуживается (так же возможно, но не гарантируется установление нахождения абонента в роуминге или в домашней сети, MCC/MNC код мобильного оператора).
Отправьте сообщение с текстом HLR на любой номер. Ответ сохраняется в тексте сообщения, а также доступен в качестве доп. параметров при проверке или получении статуса.
Дополнительные параметры к статусу: imsi Уникальный код IMSI SIM-карты абонента. msc Номер сервис-центра оператора, в сети которого находится абонент. mcc Числовой код страны абонента. mnc Числовой код оператора абонента. cn Название страны регистрации абонента. net Название оператора регистрации абонента. rcn Название роуминговой страны абонента при нахождении в чужой сети. rnet Название роумингового оператора абонента при нахождении в чужой сети.
<?php
// send_hlr.php
// Асинхронно отправляем HLR-запрос оператору, чтобы выяснить обслуживается данный номер или уже нет
$phone = '79999999999'; // замените на свой телефон, можно перечислить до 500 через запятую
$callback = 'http://example.com/hlr_callback.php'; // замените на свой скрипт для приёма статуса запроса
$apikey = 'XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ'; // замените на свой API-ключ https://smspilot.ru/my-settings.php#api
$json = file_get_contents('http://smspilot.ru/api.php?send=HLR&to='.urlencode($phone).'&apikey='.$apikey.'&callback='.urlencode($callback).'&format=json' );
$j = json_decode( $json );
if ( !isset($j->error) ) {
echo 'HLR запрос успешно отправлен';
} else {
trigger_error( $j->description_ru, E_USER_WARNING );
}
<?php
// hlr_callback.php
// Сюда приходит статус HLR-запроса
// Пишем данные в лог, поэтому создайте hlr.log в папке скрипта и дайте права на запись
file_put_contents( __DIR__ . '/hlr.log', "\r\n_GET = ".print_r( $_GET, true), FILE_APPEND );
PING-сообщения нужны для проверки телефон на доступность в реальном времени. Это скрытое Flash-сообщение не отображается на экране телефона. Поддерживается всеми российскими оператороми, абоненты зарубженых операторов получают обычную SMS.
Отправьте сообщение именем PING или текстом PING на любой номер. PING-сообщения тарифицируются как SMS по выделенному каналу для бизнес-клиентов и для частных клиентов.
Запрос:
https://smspilot.ru/api.php?send=PING&to=79087964781&format=json&apikey=XYZ
XYZ замените на свой API-ключ
Пример ответа:
{"send":[{"server_id":"10000","phone":"79087964781","price":"1.16","status":"0"}],"balance":"11908.50","cost":"1.16"}
Пример ошибки:
{"error":{"code":"215","description":"Invalid phone length","description_ru":"Неправильная длина номера телефона"}}
Для отправки голосовых уведомлений измените имя отправителя на GOLOS
Запрос:
https://smspilot.ru/api.php?send=test&to=79087964781&from=GOLOS&format=json&apikey=XYZ
XYZ замените на свой API-ключ
Пример ответа:
{"send":[{"server_id":"10000","phone":"79087964781","price":"0.55","status":"0"}],"balance":"11908.50","cost":"0.55"}
Пример ошибки:
{"error":{"code":"215","description":"Invalid phone length","description_ru":"Неправильная длина номера телефона"}}
Вы можете настроить свою почтовую программу, скрипт, камеру видеонаблюдения, роутер на отправку SMS по протоколу SMTP. Используйте обычную электронную почту для отправки SMS.
Параметры подключения и описание интерфейса см. на странице SMTP2SMS и EMAIL2SMS
Подробное описание сервиса приём входящих SMS
Можно отправить заявку на регистрацию имени отправителя по API. Стоимость проверки 10 руб.
http://smspilot.ru/api.php?add_sender=Sender&description=Description&callback=http://example.com/t.php&format=text&test=0&apikey=API-ключ
SUCCESS=12345
<id>12345</id> - при &format=xml
{"id": 12345} - при &format=json
или ошибка
ERROR=123: ERROR TEXT
<error><code>123</code><description>ERROR TEXT</description><description_ru>ТЕКСТ ОШИБКИ</description_ru></error> - при &format=xml {"error": {"code": "123", "description": "ERROR TEXT", "description_ru": "ТЕКСТ ОШИБКИ"}}'; - при &format=json
Как получить список отправителей?
Метод 1: См. метод "Информация о пользователе" в документации
Метод 2: list=senders
http://smspilot.ru/api.php?list=senders&format=json&apikey=API-ключ
{"senders": [ {"id":"123","sender":"MyCompany","status":"1"}, {"id":"124","sender":"Err-999","status":"-1"} ]}
<senders> <s id="123" sender="MyCompany" status="1" /> <s id="124" sender="INF-Err" status="-1" /> </senders>
123,MyCompany,1 124,INF-Err,-1
Шаблоны нужны реселлерам, чтобы в атоматическом режиме отправлять шаблоны SMS на проверку, связанную с запретом на рекламу без договора.
http://smspilot.ru/api.php?add_template=template_text&callback=http://example.com/t.php&format=text&apikey=API-ключ
SUCCESS=12345ошибки
<id>12345</id> - при &format=xml
{"id": 12345} - при &format=json
или ошибка
ERROR=123: ERROR TEXT
<error><code>123</code><description>ERROR TEXT</description><description_ru>ТЕКСТ ОШИБКИ</description_ru></error> - при &format=xml {"error": {"code": "123", "description": "ERROR TEXT", "description_ru": "ТЕКСТ ОШИБКИ"}}'; - при &format=json
Код | Название | Финальный | Описание |
---|---|---|---|
-2 | Ошибка | Да | Ошибка, неправильные параметры запроса |
-1 | Не доставлено | Да | Сообщение не доставлено (не в сети, заблокирован, не взял трубку), PING - не в сети, HLR - не обслуживается (заблокирован) |
0 | Новое | Нет | Новое сообщение/запрос, ожидает обработки у нас на сервере |
1 | В очереди | Нет | Сообщение или запрос ожидают отправки на сервере оператора |
2 | Доставлено | Да | Доставлено, звонок совершен, PING - в сети, HLR - обслуживается |
3 | Отложено | Нет | Отложенная отправка, отправка сообщения/запроса запланирована на другое время |
Код | Текст (EN) | Текст (RU) |
---|---|---|
0 | Success | Нет ошибок |
1 | Unknown error %code | Низвестная ошибка %code |
10 | INPUT data is required | Нет входных данных |
11 | Unknown INPUT format | Неизвестный формат |
12 | XML structure is invalid %xmlerror | Ошибка XML %xmlerror |
13 | JSON structure is invalid | Ошибка JSON |
14 | Unknown COMMAND | Неизвестная команда |
100 | APIKEY is required | Не указан API-ключ (параметр apikey) |
101 | APIKEY is invalid | Неправильный API-ключ (см. настройки API в личном кабинете) |
102 | APIKEY not found | Такой API-ключ не найден в системе |
105 | User is blocked (balance) | Пользователь блокирован из-за низкого баланса |
106 | User is blocked | Пользователь блокирован за спам/ошибки |
107 | User is blocked (untrusted) | Пользователь блокирован за недостоверные учетные данные / недоступна эл. почта / проблемы с телефоном |
108 | Phone is required | Не указан телефон |
110 | System error | Системная ошибка |
111 | Invalid phone | Неправильный номер телефона |
112 | No money | Нет денег |
113 | IP restriction | Недопустимый IP |
115 | Invalid sender | Неправильный отправитель |
120 | E-mail required | Не указан адрес электронной почты |
121 | Invalid email | Неправильный адрес электронной почты |
122 | User is blocked (disput) | Пользователь временно блокирован (спорная ситуация) |
200 | Sender (from) is required | Не указан отправитель |
201 | Sender (from) is invalid | Неправильный формат отправителя |
204 | Sender (from) unregistered | Отправитель (from) не зарегистрирован, либо отключен |
210 | TO is required | Не указан получатель |
212 | Phone in black list | Телефон в черном списке |
213 | Unsupported operator | Оператор не поддерживается |
214 | Phone is dublicated | Дубликат получателя |
215 | Invalid phone length | Неправильная длина номера телефона |
216 | Phone prefix not allowed | Ограничение нумерации (см. настроки API в ЛК) |
220 | TEXT is required | Введите текст сообщения |
221 | TEXT too long | Текст сообщения слишком длинный |
222 | Unknown charset | Неизвестная кодировка |
223 | Spam protection | Защита от спама (подкл. как бизнес-клиент или исп. шаблоны или добавьте контакт в белый список) |
224 | Spam protection (SENDER) | Защита от спама (используйте другое имя отправителя) |
225 | Spam protection (DIRECT) | Защита от спама (загрузите гарантийные письма для этого имени) |
226 | Spam protecton (SHARED) | Защита от спама (имя не настроено для этого оператора / общие имена отключены) |
227 | Spam protection (SURVEY) | Защита от спама (для опросов/голосований нужен спец. шаблон) |
230 | ID is invalid | ID неправильный |
231 | PACKET_ID is invalid | PACKET_ID неправильный |
240 | Invalid SMS list | Неправильный список SMS |
243 | Loop protection (text) | Защита от дубликатов (текст) |
244 | SMS per minute limit | Ограничение на SMS в минуту |
245 | SMS hourly limit | Ограничение на SMS в час |
246 | SMS daily limit | Ограничение на SMS в сутки |
247 | Filter | Фильтры |
248 | CyrLat filter | Кириллица и латиница в одном слове |
250 | Invalid SEND_DATETIME | Неправильное время отправки send_datetime |
260 | Invalid callback URL | Неправильный адрес скрипта callback |
261 | Invalid callback response | Неправильный ответ скрипта callback |
270 | Invalid ttl | Неправильное время жизни сообщения ttl |
275 | Invalid list fields | Неправильный список полей fields |
300 | SMS server_id is required | server_id не указан |
301 | SMS server_id is invalid | server_id неправильный |
302 | SMS server_id not found | SMS не найдена |
303 | Invalid IDs list | Ошибка запроса |
304 | SERVER_PACKET_ID is invalid | server_packet_id неправильный |
400 | User not found | Пользователь не найден |
401 | Invalid login details | Не введен логин или пароль |
402 | Wrong password | Неправильный пароль |
500 | Invalid -since- format YYYY-MM-DD HH:II:SS | Неправильный формат параметра -since- YYYY-MM-DD HH:II:SS |
600 | Expired | Просрочено |
601 | Undeliverable | Невозможно доставить |
602 | Destination unreachable | Номер недоступен |
603 | Rejected | Отказано оператором |
604 | Cancelled | Отменено |
605 | The recipient has disabled such messages | Абонент запретил отправлять ему SMS |
630 | TEMPLATE is required | Введите шаблон |
631 | TEMPLATE too long | Шаблон слишком длинный |
632 | TEMPLATE exits | Такой шаблон уже есть |
633 | TEMPLATE callback is required | Нужен callback |
634 | TEMPLATE callback is invalid | Неправильный callback |
640 | Sender is required | Введите имя отправителя |
641 | Sender is invalid | Неправильное имя отправителя |
642 | Sender is added | Уже добавленное имя отправителя |
643 | Description is required | Введите название проекта, сайт, примеры сообщений |
644 | Callback is required (URL or email) | Нужен callback (URL или email) |
645 | Callback is invalid (URL or email) | Неправильный callback (URL или email) |
650 | Operator blocks HLR | Оператора блокирует HLR |
670 | Contact group name required | Введите название группы |
671 | Contact group name too long (max %maxlen) | Слишком длинное название (макс. %maxlen) |
672 | Contact group name has not changed | Ничего не изменилось |
673 | Contact group exists | Такая группа уже существует |
674 | Contact group description too long (max %maxlen) | Описание группы слишком длинное (макс %maxlen) |
680 | Contact phone required | Введите телефон контакта |
681 | Contact phone is invalid | Неправильный телефон контакта |
682 | Contact phone exists (%url) | Контакт с таким номером уже есть (%url) |
683 | Contact name is required | Введите ФИО контакта |
684 | Contact name too long (max %maxlen) | Слишком длинное ФИО контакта (макс. %maxlen) |
685 | Contact name exists (%url) | Контакт с таким именем уже существует (%url) |
686 | Contact email is invalid | Неправильный адрес эл. почты контакта (макс. %maxlen) |
687 | Contact email exists (%url) | Контакт с такой эл. почтой уже существует (%url) |
688 | Contact date of birth is invalid | Неправильная дата рождения |
689 | Contact gender error | Ошибка при указании пола контакта |
690 | Contact description too long (max %maxlen) | Слишком длинное описание контакта (макс. %maxlen) |
691 | Contact custom field error (%name) | Ошибка значения поля (%name) |
700 | Receiver name required | Не указано имя получателя |
701 | Receiver name too long (max %maxlen) | Слишком длинное имя получателя (максимум %maxlen) |
702 | Receiver email required | Не указан адрес электронной почты получателя |
703 | Invalid receiver email | Неправильный адрес электронной почты получателя |
704 | Sender name required | Не указано имя отправителя |
705 | Sender name too long (max %maxlen) | Слишком длинное имя отправителя(максимум %maxlen) |
706 | Sender email required | Не указан адрес электронной почты отправителя |
707 | Invalid sender email | Неправильный адрес электронной почты отправителя |
708 | Reply name too long (max %maxlen) | Слишком длинное имя для ответа |
709 | Invalid reply name | Неправильный адрес для ответа |
710 | Subject required | Не указана тема письма |
711 | Subject too long (max %maxlen) | Слишком длинная тема письма (максимум %maxlen) |
712 | Message required | Пустое сообщение |
713 | Message too long (max %maxlen) | Слишком длинное сообщение (максимум %maxlen) |
714 | HTML-message too long (max %maxlen) | Слишком длинное html-сообщение (максимум %maxlen) |
715 | Invalid cc email | Неправильный адрес электронной почты получателя копии |