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
POST /v3/messages
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"
  }'
200 OK
{
  "status":   "success",
  "httpCode": 200,
  "data": {
    "id":       "787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6",
    "to":       "+37369000000",
    "cost":     "0.30",
    "currency": "MDL"
  }
}

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). Se taxează tot ce este acceptat de operator — indiferent de rezultatul livrării.

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 X-Api-Token. 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/v3/messages \
  -H "X-Api-Token: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "CompanyName",
    "to":   "+37369000000",
    "text": "Comanda dvs. nr. 1042 a fost acceptata. Asteptati apelul managerului."
  }'

# Răspuns:
{
  "status":   "success",
  "httpCode": 200,
  "data": {
    "id":      "787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6",
    "cost":    "0.30",
    "currency": "MDL"
  }
}
# Campanie în masă după lista de numere (până la 500 per cerere)
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": "Reducere 20% doar azi! Cod promotional: SALE20"
  }'

# Răspuns:
{
  "status":   "success",
  "httpCode": 200,
  "data": {
    "bulkId": "019fd720-1a7d-715c-a4ef-bfe26b903293"
  }
}
# Verificarea statusului de livrare după ID
curl https://api.sms.md/v3/messages/787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6 \
  -H "X-Api-Token: YOUR_API_TOKEN"

# Răspuns:
{
  "status":   "success",
  "httpCode": 200,
  "data": {
    "id":     "787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6",
    "status": { "id": 3, "name": "Delivered" },
    "dateUpdated": "2026-03-24T14:32:11+03:00"
  }
}
// Folosiți Guzzle sau orice client 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' => 'Comanda dvs. nr. 1042 a fost acceptata.',
    ],
]);
$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' => 'Reducere 20% doar astazi!',
    ],
]);
$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') {
    // Mesaj livrat
}
import requests

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

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: 'Reducere 20% doar astazi!',
  }),
});
const { data } = await response.json();
console.log(`ID campanie: ${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('Livrat', data.dateUpdated);
}

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

Setați un URL DLR în Setări → API — vom trimite o cerere POST pe serverul dvs. la fiecare schimbare de status a SMS-ului.

Queued Acceptat de sistem, în așteptarea trimiterii. Încă netaxat.
Sent Transmis operatorului spre livrare. Se taxează.
Delivered Operatorul a confirmat livrarea către destinatar. Se taxează.
Undelivered Transmis operatorului, dar livrarea a eșuat — filtrare de conținut, telefon inaccesibil. Se taxează.
Failed Respins de platformă sau operator înainte de trimitere — parametri, număr sau nume expeditor incorect. Nu se taxează.
Unknown Sistemul nu a primit un rezultat sigur al livrării. Se taxează dacă mesajul a fost transmis operatorului.
POST your_server.com/dlr
// Cerere POST de intrare pe URL-ul dvs. DLR
{
  "id":           "787ab0aa-09cd-44f2-aa98-6ebc3cdb2ec6",
  "phone":        "37369000000",
  "text":         "Ваш код: 4821",
  "status_id":    3,
  "status_name":  "Delivered",
  "date_created": "2026-03-24 14:32:11"
}
Serverul dvs. răspunde
// HTTP 200 OK

Parametri principali

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

Parametru Tip Obligatoriu Descriere
to string да Numărul destinatarului — local fără prefix (69123456) sau cu codul țării (+37369123456)
from string да Numele expeditorului până la 15 caractere, aprobat de operatori
text string да Textul mesajului, până la 800 de caractere. 160 GSM-7 / 70 Unicode caractere pentru un segment taxabil
sendAt string нет Ora trimiterii amânate, Y-m-d H:i:s în ora Moldovei. 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