Интегрируйте SMS в ваше приложение
Простой REST API для отправки транзакционных, маркетинговых и OTP-сообщений. Прямые подключения к операторам Молдовы — без посредников.
curl -X POST https://api.sms.md/v3/messages \ -H "X-Api-Token: YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "from": "CompanyName", "to": "+37369000000", "text": "Ваш код: 4821" }'
{
"status": "success",
"httpCode": 200,
"data": {
"id": "787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6",
"to": "+37369000000",
"cost": "0.30",
"currency": "MDL"
}
}
Возможности API
Всё необходимое для интеграции SMS в любое приложение или сервис
Отправка SMS
Одиночная и массовая отправка через единый endpoint. JSON формат ответа.
OTP и 2FA
Одноразовые коды для верификации, входа и финансовых операций с валидацией на стороне сервера.
Delivery Reports
Статусы доставки через webhook (push) или polling (pull). Тарифицируется всё, что принято оператором в обработку — независимо от исхода доставки.
Отложенная отправка
Планирование SMS на конкретное время — Unix timestamp или ISO 8601. Отмена или изменение до момента отправки.
Alphanumeric Sender ID
Регистрация имени отправителя у операторов Молдовы (до 11 символов). Клиент видит название вашего бренда.
UTF-8 и Unicode
Нативная поддержка кириллицы, румынской диакритики (ș, ț, ă, î, â) и любых языков Unicode.
Массовая рассылка
Отправка по списку номеров в одном запросе. Поддержка batch-очереди без ограничений по размеру базы.
Безопасность
API-ключ в заголовке X-Api-Token. HTTPS-only. Опциональный IP-whitelist и ротация ключей из личного кабинета.
Примеры кода
Выберите язык и скопируйте готовый пример
# Отправка одного SMS curl -X POST https://api.sms.md/v3/messages \ -H "X-Api-Token: YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "from": "CompanyName", "to": "+37369000000", "text": "Ваш заказ №1042 принят. Ожидайте звонка менеджера." }' # Ответ: { "status": "success", "httpCode": 200, "data": { "id": "787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6", "cost": "0.30", "currency": "MDL" } }
# Массовая рассылка по списку номеров (до 500 за запрос) curl -X POST https://api.sms.md/v3/messages/bulk \ -H "X-Api-Token: YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "from": "CompanyName", "recipients": ["+37369000001", "+37369000002", "+37369000003"], "text": "Скидка 20% только сегодня! Промокод: SALE20" }' # Ответ: { "status": "success", "httpCode": 200, "data": { "bulkId": "019fd720-1a7d-715c-a4ef-bfe26b903293" } }
# Проверка статуса доставки по ID curl https://api.sms.md/v3/messages/787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6 \ -H "X-Api-Token: YOUR_API_TOKEN" # Ответ: { "status": "success", "httpCode": 200, "data": { "id": "787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6", "status": { "id": 3, "name": "Delivered" }, "dateUpdated": "2026-03-24T14:32:11+03:00" } }
// Используйте Guzzle или любой HTTP-клиент use GuzzleHttp\Client; $client = new Client(); $response = $client->post('https://api.sms.md/v3/messages', [ 'headers' => [ 'X-Api-Token' => $apiToken, ], 'json' => [ 'from' => 'CompanyName', 'to' => '+37369000000', 'text' => 'Ваш заказ №1042 принят.', ], ]); $body = json_decode($response->getBody(), true); echo $body['data']['id']; // 787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6
$response = $client->post('https://api.sms.md/v3/messages/bulk', [ 'headers' => ['X-Api-Token' => $apiToken], 'json' => [ 'from' => 'CompanyName', 'recipients' => [ '+37369000001', '+37369000002', '+37369000003', ], 'text' => 'Скидка 20% только сегодня!', ], ]); $body = json_decode($response->getBody(), true); echo $body['data']['bulkId'];
$response = $client->get( 'https://api.sms.md/v3/messages/' . $messageId, ['headers' => ['X-Api-Token' => $apiToken]] ); $msg = json_decode($response->getBody(), true)['data']; if ($msg['status']['name'] === 'Delivered') { // Сообщение доставлено }
import requests response = requests.post( 'https://api.sms.md/v3/messages', headers={'X-Api-Token': api_token}, json={ 'from': 'CompanyName', 'to': '+37369000000', 'text': 'Ваш заказ №1042 принят.', } ) body = response.json() print(body['data']['id']) # 787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6
response = requests.post( 'https://api.sms.md/v3/messages/bulk', headers={'X-Api-Token': api_token}, json={ 'from': 'CompanyName', 'recipients': [ '+37369000001', '+37369000002', '+37369000003', ], 'text': 'Скидка 20% только сегодня!', } ) print(response.json()['data']['bulkId'])
response = requests.get( f'https://api.sms.md/v3/messages/{message_id}', headers={'X-Api-Token': api_token} ) msg = response.json()['data'] if msg['status']['name'] == 'Delivered': print('Доставлено', msg['dateUpdated'])
const response = await fetch('https://api.sms.md/v3/messages', { method: 'POST', headers: { 'X-Api-Token': apiToken, 'Content-Type': 'application/json', }, body: JSON.stringify({ from: 'CompanyName', to: '+37369000000', text: 'Ваш заказ №1042 принят.', }), }); const { data } = await response.json(); console.log(data.id); // 787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6
const response = await fetch('https://api.sms.md/v3/messages/bulk', { method: 'POST', headers: { 'X-Api-Token': apiToken, 'Content-Type': 'application/json', }, body: JSON.stringify({ from: 'CompanyName', recipients: ['+37369000001', '+37369000002'], text: 'Скидка 20% только сегодня!', }), }); const { data } = await response.json(); console.log(`ID рассылки: ${data.bulkId}`);
const response = await fetch( `https://api.sms.md/v3/messages/${messageId}`, { headers: { 'X-Api-Token': apiToken } } ); const { data } = await response.json(); if (data.status.name === 'Delivered') { console.log('Доставлено', data.dateUpdated); }
Как начать за 3 шага
От регистрации до первого SMS
Зарегистрируйтесь
Создайте аккаунт на partner.sms.md. Заполните реквизиты компании и подпишите договор. Обработка — несколько часов. Пополните баланс от 500 MDL.
Получите API-ключ
Перейдите в личном кабинете в раздел Настройки → API. Скопируйте ключ и подайте заявку на регистрацию имени отправителя у операторов Молдовы за 1–2 рабочих дня.
Отправьте первый SMS
Используйте готовые примеры кода выше. Один POST-запрос — и ваше приложение умеет отправлять SMS.
Статусы доставки в реальном времени
Укажите DLR URL в Настройках → API — и мы отправим POST-запрос на ваш сервер при каждом изменении статуса SMS.
// Входящий POST-запрос на ваш DLR URL { "id": "787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6", "phone": "37369000000", "text": "Ваш код: 4821", "status_id": 3, "status_name": "Delivered", "date_created": "2026-03-24 14:32:11" }
// HTTP 200 OK
Основные параметры
Все запросы — в JSON, ответы доступны в JSON
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
to |
string | да | Номер получателя — локальный без префикса (69123456) или с кодом страны (+37369123456) |
from |
string | да | Имя отправителя до 15 символов, утвержденное операторами |
text |
string | да | Текст сообщения, до 800 символов. 160 GSM-7 / 70 Unicode на один тарифицируемый сегмент |
sendAt |
string | нет | Время отложенной отправки Y-m-d H:i:s по времени Молдовы. Без значения — немедленно |
Популярные сценарии
Что строят разработчики с SMS.MD API
OTP / 2FA
Двухфакторная аутентификация, подтверждение операций, верификация при регистрации. Код доходит за секунды.
Транзакционные уведомления
Статус заказа, подтверждение оплаты, уведомление о доставке, напоминания о записи — автоматически через API.
Маркетинговые рассылки
Акции, реактивация базы, персонализированные офферы. Массовая отправка с аналитикой доставки в реальном времени.
Начните отправлять SMS сегодня
Зарегистрируйтесь, пополните баланс и запустите первую рассылку за один рабочий день.
Только для юридических лиц РМ · Минимальный депозит 500 MDL · Без скрытых платежей