REST API

Интегрируйте SMS в ваше приложение

Простой REST API для отправки транзакционных, маркетинговых и OTP-сообщений. Прямые подключения к операторам Молдовы — без посредников.

99.8% Доставляемость
< 5 сек Среднее время доставки
24/7 Доступно
GET /v1/send
curl https://api.sms.md/v1/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to":   "+37369000000",
    "from": "CompanyName",
    "message": "Ваш код: 4821"
  }'
200 OK
{
  "id":       "fec42b1b-eb52-4ea7-9629-b62342c62d64",
  "receiver":  "+37369000000",
  "status":   "queued",
  "message":  "Message sent successfully"
  "dateCreate": "2026-03-12 08:20:05"
}

Возможности API

Всё необходимое для интеграции SMS в любое приложение или сервис

Отправка SMS

Одиночная и массовая отправка через единый endpoint. JSON формат ответа.

OTP и 2FA

Одноразовые коды для верификации, входа и финансовых операций с валидацией на стороне сервера.

Delivery Reports

Статусы доставки через webhook (push) или polling (pull). Деньги за недоставленные SMS возвращаются автоматически.

Отложенная отправка

Планирование SMS на конкретное время — Unix timestamp или ISO 8601. Отмена или изменение до момента отправки.

Alphanumeric Sender ID

Регистрация имени отправителя у операторов Молдовы (до 11 символов). Клиент видит название вашего бренда.

UTF-8 и Unicode

Нативная поддержка кириллицы, румынской диакритики (ș, ț, ă, î, â) и любых языков Unicode.

Массовая рассылка

Отправка по списку номеров в одном запросе. Поддержка batch-очереди без ограничений по размеру базы.

Безопасность

API-ключ в заголовке Authorization. HTTPS-only. Опциональный IP-whitelist и ротация ключей из личного кабинета.

Примеры кода

Выберите язык и скопируйте готовый пример

# Отправка одного SMS
curl -X POST https://api.sms.md/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to":   "+37369000000",
    "from": "CompanyName",
    "text": "Ваш заказ №1042 принят. Ожидайте звонка менеджера."
  }'
# Массовая рассылка по списку номеров
curl -X POST https://api.sms.md/v1/messages/bulk \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "recipients": ["+37369000001", "+37369000002", "+37369000003"],
    "from": "CompanyName",
    "text": "Скидка 20% только сегодня! Промокод: SALE20"
  }'
# Проверка статуса доставки по ID
curl -X GET https://api.sms.md/v1/messages/msg_8f3a91bc \
  -H "Authorization: Bearer YOUR_API_KEY"

# Ответ:
{
  "id":           "msg_8f3a91bc",
  "status":       "delivered",
  "delivered_at": "2026-03-24T14:32:11Z",
}
// Используйте Guzzle или любой HTTP-клиент
use GuzzleHttp\Client;

$client = new Client();
$response = $client->post('https://api.sms.md/v1/messages', [
    'headers' => [
        'Authorization' => 'Bearer ' . $apiKey,
    ],
    'json' => [
        'to'   => '+37369000000',
        'from' => 'CompanyName',
        'text' => 'Ваш заказ №1042 принят.',
    ],
]);
$data = json_decode($response->getBody(), true);
echo $data['id']; // msg_8f3a91bc
$response = $client->post('https://api.sms.md/v1/messages/bulk', [
    'headers' => ['Authorization' => 'Bearer ' . $apiKey],
    'json' => [
        'recipients' => [
            '+37369000001',
            '+37369000002',
            '+37369000003',
        ],
        'from' => 'CompanyName',
        'text' => 'Скидка 20% только сегодня!',
    ],
]);
$result = json_decode($response->getBody(), true);
echo $result['sent']; // 3
$response = $client->get(
    'https://api.sms.md/v1/messages/msg_8f3a91bc',
    ['headers' => ['Authorization' => 'Bearer ' . $apiKey]]
);
$msg = json_decode($response->getBody(), true);

if ($msg['status'] === 'delivered') {
    // Сообщение доставлено
}}
import requests

response = requests.post(
    'https://api.sms.md/v1/messages',
    headers={'Authorization': f'Bearer {api_key}'},
    json={
        'to':   '+37369000000',
        'from': 'CompanyName',
        'text': 'Ваш заказ №1042 принят.',
    }
)
data = response.json()
print(data['id'])  # msg_8f3a91bc
response = requests.post(
    'https://api.sms.md/v1/messages/bulk',
    headers={'Authorization': f'Bearer {api_key}'},
    json={
        'recipients': [
            '+37369000001',
            '+37369000002',
            '+37369000003',
        ],
        'from': 'CompanyName',
        'text': 'Скидка 20% только сегодня!',
    }
)
print(response.json()['sent'])  # 3
response = requests.get(
    'https://api.sms.md/v1/messages/msg_8f3a91bc',
    headers={'Authorization': f'Bearer {api_key}'}
)
msg = response.json()

if msg['status'] == 'delivered':
    print('Доставлено в', msg['delivered_at'])
const response = await fetch('https://api.sms.md/v1/messages', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type':  'application/json',
  },
  body: JSON.stringify({
    to:   '+37369000000',
    from: 'CompanyName',
    text: 'Ваш заказ №1042 принят.',
  }),
});

const data = await response.json();
console.log(data.id); // msg_8f3a91bc
const response = await fetch('https://api.sms.md/v1/messages/bulk', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type':  'application/json',
  },
  body: JSON.stringify({
    recipients: ['+37369000001', '+37369000002'],
    from: 'CompanyName',
    text: 'Скидка 20% только сегодня!',
  }),
});
const { sent } = await response.json();
console.log(`Отправлено: ${sent}`);
const response = await fetch(
  'https://api.sms.md/v1/messages/msg_8f3a91bc',
  { headers: { 'Authorization': `Bearer ${apiKey}` } }
);
const msg = await response.json();

if (msg.status === 'delivered') {
  console.log('Доставлено в', msg.delivered_at);
}

Как начать за 3 шага

От регистрации до первого SMS

01

Зарегистрируйтесь

Создайте аккаунт на partner.sms.md. Заполните реквизиты компании и подпишите договор. Обработка — несколько часов. Пополните баланс от 500 MDL.

02

Получите API-ключ

Перейдите в личном кабинете в раздел Настройки → API. Скопируйте ключ и подайте заявку на регистрацию имени отправителя у операторов Молдовы за 1–2 рабочих дня.

03

Отправьте первый SMS

Используйте готовые примеры кода выше. Один POST-запрос — и ваше приложение умеет отправлять SMS.

Delivery Reports

Статусы доставки в реальном времени

Подпишитесь на webhook — и мы отправим уведомление на ваш сервер, как только SMS будет доставлено или отклонено оператором.

delivered SMS отправлено на телефон оператором
queued В очереди на отправку
failed Ошибка отправки — средства возвращены
rejected Отклонено оператором
POST your_server.com/webhook
// Входящий POST-запрос на ваш callback URL
{
  "event":        "message.delivered",
  "id":           "msg_8f3a91bc",
  "to":           "+37369000000",
  "from":         "CompanyName",
  "status":       "delivered",
  "delivered_at": "2026-03-24T14:32:11Z"
}
Ваш сервер отвечает
// HTTP 200 OK
{ "received": true }

Основные параметры

Все запросы — в JSON, ответы доступны в JSON

Параметр Тип Обязательный Описание
to string да Номер получателя в формате E.164 (+37369000000)
from string да Имя отправителя до 11 символов, утвержденное операторами
message string да Текст сообщения. 160 символов GSM-7, 70 символов Unicode
callback_url string нет URL для delivery report (webhook). Должен отвечать HTTP 200
scheduled_at string нет Время отправки в формате ISO 8601. Без значения — немедленно

Популярные сценарии

Что строят разработчики с SMS.MD API

OTP / 2FA

Двухфакторная аутентификация, подтверждение операций, верификация при регистрации. Код доходит за секунды.

Банки E-commerce SaaS
Транзакционные уведомления

Статус заказа, подтверждение оплаты, уведомление о доставке, напоминания о записи — автоматически через API.

Логистика Медицина Финансы
Маркетинговые рассылки

Акции, реактивация базы, персонализированные офферы. Массовая отправка с аналитикой доставки в реальном времени.

Ретейл HoReCa Beauty

Начните отправлять SMS сегодня

Зарегистрируйтесь, пополните баланс и запустите первую рассылку за один рабочий день.

Только для юридических лиц РМ  ·  Минимальный депозит 500 MDL  ·  Без скрытых платежей