Интегрируйте SMS в ваше приложение
Простой REST API для отправки транзакционных, маркетинговых и OTP-сообщений. Прямые подключения к операторам Молдовы — без посредников.
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" }'
{
"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
Зарегистрируйтесь
Создайте аккаунт на partner.sms.md. Заполните реквизиты компании и подпишите договор. Обработка — несколько часов. Пополните баланс от 500 MDL.
Получите API-ключ
Перейдите в личном кабинете в раздел Настройки → API. Скопируйте ключ и подайте заявку на регистрацию имени отправителя у операторов Молдовы за 1–2 рабочих дня.
Отправьте первый SMS
Используйте готовые примеры кода выше. Один POST-запрос — и ваше приложение умеет отправлять SMS.
Статусы доставки в реальном времени
Подпишитесь на webhook — и мы отправим уведомление на ваш сервер, как только SMS будет доставлено или отклонено оператором.
// Входящий 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
Двухфакторная аутентификация, подтверждение операций, верификация при регистрации. Код доходит за секунды.
Транзакционные уведомления
Статус заказа, подтверждение оплаты, уведомление о доставке, напоминания о записи — автоматически через API.
Маркетинговые рассылки
Акции, реактивация базы, персонализированные офферы. Массовая отправка с аналитикой доставки в реальном времени.
Начните отправлять SMS сегодня
Зарегистрируйтесь, пополните баланс и запустите первую рассылку за один рабочий день.
Только для юридических лиц РМ · Минимальный депозит 500 MDL · Без скрытых платежей