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.
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"
}
}
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
Î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.
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.
Trimiteți primul SMS
Folosiți exemplele de cod de mai sus. O singură cerere POST — și aplicația dvs. poate trimite SMS.
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.
// 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" }
// 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.
Notificări tranzacționale
Status comandă, confirmare plată, notificare livrare, reminder programări — automat prin API.
Campanii de marketing
Promoții, reactivarea bazei, oferte personalizate. Trimitere în masă cu analitica livrărilor în timp real.
Î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