REST API

Integrați SMS în aplicația dvs.

API REST simplu pentru trimiterea mesajelor tranzacționale, de marketing și OTP. Conexiuni directe la operatorii din Moldova — fără intermediari.

99.8% Rată de livrare
< 5 sec Timp mediu de livrare
24/7 Disponibil
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"
}

Funcționalități API

Tot ce aveți nevoie pentru integrarea SMS în orice aplicație sau serviciu

Trimitere SMS

Trimitere individuală și în masă printr-un singur endpoint. Răspuns în format JSON.

OTP și 2FA

Coduri unice pentru verificare, autentificare și operațiuni financiare cu validare pe server.

Delivery Reports

Statusuri de livrare prin webhook (push) sau polling (pull). Banii pentru SMS-urile nelivrate sunt returnați automat.

Trimitere programată

Programarea SMS-ului la o oră anume — Unix timestamp sau ISO 8601. Anulare sau modificare înainte de trimitere.

Alphanumeric Sender ID

Înregistrarea numelui expeditorului la operatorii din Moldova (până la 11 caractere). Clientul vede numele brandului dvs.

UTF-8 și Unicode

Suport nativ pentru chirilică, diacritice românești (ș, ț, ă, î, â) și orice limbă Unicode.

Campanie în masă

Trimitere după lista de numere într-o singură cerere. Suport pentru coadă batch fără limitări de dimensiune.

Securitate

Cheie API în headerul Authorization. Doar HTTPS. IP-whitelist opțional și rotarea cheilor din contul personal.

Exemple de cod

Selectați limba și copiați exemplul gata

# Trimiterea unui 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": "Comanda dvs. nr. 1042 a fost acceptata. Asteptati apelul managerului."
  }'
# Campanie în masă după lista de numere
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": "Reducere 20% doar azi! Cod promotional: SALE20"
  }'
# Verificarea statusului de livrare după ID
curl -X GET https://api.sms.md/v1/messages/msg_8f3a91bc \
  -H "Authorization: Bearer YOUR_API_KEY"

# Răspuns:
{
  "id":           "msg_8f3a91bc",
  "status":       "delivered",
  "delivered_at": "2026-03-24T14:32:11Z",
}
// Folosiți Guzzle sau orice client 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' => 'Comanda dvs. nr. 1042 a fost acceptata.',
    ],
]);
$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' => 'Reducere 20% doar astazi!',
    ],
]);
$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') {
    // Mesaj livrat
}}
import requests

response = requests.post(
    'https://api.sms.md/v1/messages',
    headers={'Authorization': f'Bearer {api_key}'},
    json={
        'to':   '+37369000000',
        'from': 'CompanyName',
        'text': 'Comanda dvs. nr. 1042 a fost acceptata.',
    }
)
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': 'Reducere 20% doar astazi!',
    }
)
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('Livrat la', 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: 'Comanda dvs. nr. 1042 a fost acceptata.',
  }),
});

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: 'Reducere 20% doar astazi!',
  }),
});
const { sent } = await response.json();
console.log(`Trimis: ${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('Livrat la', msg.delivered_at);
}

Cum să începeți în 3 pași

De la înregistrare la primul SMS

01

Înregistrați-vă

Creați un cont la partner.sms.md. Completați datele companiei și semnați contractul. Procesarea durează câteva ore. Alimentați soldul de la 500 MDL.

02

Obțineți cheia API

Accesați în contul personal secțiunea Setări → API. Copiați cheia și depuneți cererea de înregistrare a numelui expeditorului la operatorii din Moldova în 1–2 zile lucrătoare.

03

Trimiteți primul SMS

Folosiți exemplele de cod de mai sus. O singură cerere POST — și aplicația dvs. poate trimite SMS.

Delivery Reports

Statusuri de livrare în timp real

Abonați-vă la webhook — vă vom trimite notificare pe serverul dvs. imediat ce SMS-ul este livrat sau respins de operator.

delivered SMS livrat pe telefon de operator
queued În coada de trimitere
failed Eroare de trimitere — fonduri returnate
rejected Respins de operator
POST your_server.com/webhook
// Cerere POST de intrare pe URL-ul dvs. callback
{
  "event":        "message.delivered",
  "id":           "msg_8f3a91bc",
  "to":           "+37369000000",
  "from":         "CompanyName",
  "status":       "delivered",
  "delivered_at": "2026-03-24T14:32:11Z"
}
Serverul dvs. răspunde
// HTTP 200 OK
{ "received": true }

Parametri principali

Toate cererile — în JSON, răspunsurile disponibile în JSON

Parametru Tip Obligatoriu Descriere
to string да Numărul destinatarului în format E.164 (+37369000000)
from string да Numele expeditorului până la 11 caractere, aprobat de operatori
message string да Textul mesajului. 160 caractere GSM-7, 70 caractere Unicode
callback_url string нет URL pentru delivery report (webhook). Trebuie să răspundă HTTP 200
scheduled_at string нет Ora trimiterii în format ISO 8601. Fără valoare — imediat

Scenarii populare

Ce construiesc dezvoltatorii cu SMS.MD API

OTP / 2FA

Autentificare în doi pași, confirmarea operațiunilor, verificare la înregistrare. Codul ajunge în secunde.

Bănci E-commerce SaaS
Notificări tranzacționale

Status comandă, confirmare plată, notificare livrare, reminder programări — automat prin API.

Logistică Medicină Finanțe
Campanii de marketing

Promoții, reactivarea bazei, oferte personalizate. Trimitere în masă cu analitica livrărilor în timp real.

Retail HoReCa Beauty

Începeți să trimiteți SMS-uri astăzi

Înregistrați-vă, adăugați fonduri și lansați prima campanie într-o singură zi lucrătoare.

Doar pentru persoane juridice din RM  ·  Depozit minim 500 MDL  ·  Fără plăți ascunse