Carburanti v1 / Carburanti
Costul unei alimentări sau deplasări
POST fiindcă intrarea (kilometri parcurși, consum, cantitate) descrie activitatea clientului și
n-are ce căuta în logurile de acces sau în istoricul browserului.
POST
https://oneapi.ro/api/carburanti/v1/decont
Corpul cererii
Se trimite ca JSON, în corpul cererii (Content-Type: application/json) — nu în şirul de interogare.
NumeTipDescriereValori acceptate
taraopțional
string | null
Codul de ţară pentru preţul de referinţă. Implicit
RO.
ATBEBGCYCZDEDKEEESFIFRGRHRHUIEITLTLULVMTNLPLPTROSESISKUKEUEA
produsobligatoriu
string
Codul produsului. Obligatoriu: decontul se face la preţul produsului alimentat.
benzina95motorinamotorina_incalzirepacura_sulf_micpacura_sulf_maregpl
dataopțional
string | null
Data preţului folosit în decont,
AAAA-LL-ZZ. Implicit: cea mai recentă săptămână.
litriopțional
number | null
Litrii consumaţi. Ori pe ăştia, ori perechea
km + consum_litri_la_100km.
1000000
kmopțional
number | null
Kilometrii parcurşi, folosiţi împreună cu
consum_litri_la_100km.
1000000
consum_litri_la_100kmopțional
number | null
Consumul mediu, litri la 100 km.
200
Deplasare pe kilometri
Corpul cererii
{
"produs": "motorina",
"km": 420,
"consum_litri_la_100km": 6.5
}
Alimentare, la o dată din trecut
Corpul cererii
{
"produs": "benzina95",
"litri": 45,
"data": "2022-03-14"
}
Alimentare în altă ţară
Corpul cererii
{
"produs": "benzina95",
"litri": 50,
"tara": "HU"
}
Drum lung, consum mai mare
Corpul cererii
{
"produs": "motorina",
"km": 1200,
"consum_litri_la_100km": 7.2
}
Parametri de interogare
Ruta nu acceptă parametri de interogare.
Cum se comportă
- Metoda e POST fiindcă intrarea descrie activitatea clientului — kilometri parcurși, consum, cantitate — și n-are ce căuta în logurile de acces sau în istoricul browserului.
- Corpul cererii are câmpurile:
produs(obligatoriu),tara,data, și fielitri, fiekmîmpreună cuconsum_litri_la_100km. Cele două căi se exclud: dacă s-ar accepta amândouă, ar trebui aleasă tăcut una, iar cifra din decont ar depinde de o convenție pe care n-o vezi. Câmpurile de corp nu apar în tabelul de parametri — acela documentează doar query string-ul. totalse calculează din prețul publicat.din_caree o reconstrucție pe componente, iardin_care.insumeaza_totalulspune dacă ele chiar adună latotal. Când efalse, nu forța egalitatea: prețul publicat e cifra bună, componentele sunt orientative pentru acea săptămână.- Se pot deconta doar produsele cu preț pe litru. Păcura, publicată pe tonă, întoarce
404. - Suma e o bază de calcul justificabilă pe o sursă publică, nu o factură și nu prețul plătit efectiv la o stație anume.
La ce folosește
- Calculezi valoarea unui decont de deplasare la prețul oficial din săptămâna în care a avut loc, nu la cel de azi.
- Verifici o notă de cheltuială: câți litri și ce sumă ar fi trebuit, la kilometrii declarați și consumul mașinii.
- Estimezi bugetul de combustibil al unei flote pornind de la kilometraj și consum mediu.
Structura răspunsului
Toate câmpurile de mai jos sunt în data.
CâmpTipDescriere
tara
string
Țara folosită.
produs
string
Produsul.
denumire
string
Denumirea lizibilă.
saptamana
string
Săptămâna de preț folosită.
ceruta
string
Data cerută.
moneda
string
Moneda tuturor sumelor din răspuns.
cantitate.litri
number
Litrii folosiți la calcul.
cantitate.dedusa_din_distanta
boolean
true dacă litrii au fost calculați din km și consum.
cantitate.km
number
Distanța trimisă, dacă a fost trimisă.
cantitate.consum_litri_la_100km
number
Consumul trimis, dacă a fost trimis.
pret_pe_litru
number
Prețul publicat pe litru, cu taxe.
total
number
Suma de decontat: litri × preț publicat pe litru.
din_care.fara_taxe
number
Partea fără taxe, reconstruită.
din_care.acciza
number
Acciza inclusă, reconstruită.
din_care.tva
number
TVA-ul inclus, reconstruit.
din_care.insumeaza_totalul
boolean
Dacă cele trei componente adună exact la
total.
din_care.atentie
string
Prezent doar când componentele nu însumează totalul, cu explicația.
reconciliere
object
Aceeași structură ca la
GET /taxe.
sursa
object
Sursa, licența și avertismentul că e preț mediu național.
Exemple de răspuns
body: {"produs": "motorina", "km": 420, "consum_litri_la_100km": 6.5}
POSThttps://oneapi.ro/api/carburanti/v1/decont
{
"data": {
"tara": "RO",
"produs": "motorina",
"denumire": "Motorină auto",
"saptamana": "2026-09-14",
"ceruta": "2026-09-14",
"moneda": "RON",
"cantitate": {
"litri": 27.3,
"dedusa_din_distanta": true,
"km": 420,
"consum_litri_la_100km": 6.5
},
"pret_pe_litru": 10.512,
"total": 286.98,
"din_care": {
"fara_taxe": 179.75,
"acciza": 57.42,
"tva": 49.81,
"insumeaza_totalul": true
},
"reconciliere": {
"posibila": true,
"pret_publicat": 10511.99,
"abatere_procent": 0,
"se_inchide": true,
"observatie": "Defalcarea reproduce prețul publicat; diferența rămasă vine din rotunjiri și din medierea săptămânală."
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)",
"observatie": "Preț mediu național pentru săptămâna indicată, nu prețul unei stații anume. Suma e o bază de calcul justificabilă, nu o factură."
}
}
}
body: {"produs": "benzina95", "litri": 45, "data": "2022-03-14"}
POSThttps://oneapi.ro/api/carburanti/v1/decont
{
"data": {
"tara": "RO",
"produs": "benzina95",
"denumire": "Benzină Euro-super 95",
"saptamana": "2022-03-14",
"ceruta": "2022-03-14",
"moneda": "RON",
"cantitate": {
"litri": 45,
"dedusa_din_distanta": false,
"km": null,
"consum_litri_la_100km": null
},
"pret_pe_litru": 7.975,
"total": 358.88,
"din_care": {
"fara_taxe": 216.4,
"acciza": 85.17,
"tva": 57.3,
"insumeaza_totalul": true
},
"reconciliere": {
"posibila": true,
"pret_publicat": 7975.02,
"abatere_procent": 0,
"se_inchide": true,
"observatie": "Defalcarea reproduce prețul publicat; diferența rămasă vine din rotunjiri și din medierea săptămânală."
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)",
"observatie": "Preț mediu național pentru săptămâna indicată, nu prețul unei stații anume. Suma e o bază de calcul justificabilă, nu o factură."
}
}
}
body: {"produs": "benzina95", "litri": 50, "tara": "HU"}
POSThttps://oneapi.ro/api/carburanti/v1/decont
{
"data": {
"tara": "HU",
"produs": "benzina95",
"denumire": "Benzină Euro-super 95",
"saptamana": "2026-09-14",
"ceruta": "2026-09-14",
"moneda": "HUF",
"cantitate": {
"litri": 50,
"dedusa_din_distanta": false,
"km": null,
"consum_litri_la_100km": null
},
"pret_pe_litru": 626.1483,
"total": 31307.41,
"din_care": {
"fara_taxe": 17524.01,
"acciza": 7127.5,
"tva": 6696.41,
"insumeaza_totalul": true
},
"reconciliere": {
"posibila": true,
"pret_publicat": 626148.28,
"abatere_procent": 0.608,
"se_inchide": true,
"observatie": "Defalcarea reproduce prețul publicat; diferența rămasă vine din rotunjiri și din medierea săptămânală."
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)",
"observatie": "Preț mediu național pentru săptămâna indicată, nu prețul unei stații anume. Suma e o bază de calcul justificabilă, nu o factură."
}
}
}
body: {"produs": "motorina", "km": 1200, "consum_litri_la_100km": 7.2}
POSThttps://oneapi.ro/api/carburanti/v1/decont
{
"data": {
"tara": "RO",
"produs": "motorina",
"denumire": "Motorină auto",
"saptamana": "2026-09-14",
"ceruta": "2026-09-14",
"moneda": "RON",
"cantitate": {
"litri": 86.4,
"dedusa_din_distanta": true,
"km": 1200,
"consum_litri_la_100km": 7.2
},
"pret_pe_litru": 10.512,
"total": 908.24,
"din_care": {
"fara_taxe": 568.89,
"acciza": 181.72,
"tva": 157.63,
"insumeaza_totalul": true
},
"reconciliere": {
"posibila": true,
"pret_publicat": 10511.99,
"abatere_procent": 0,
"se_inchide": true,
"observatie": "Defalcarea reproduce prețul publicat; diferența rămasă vine din rotunjiri și din medierea săptămânală."
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)",
"observatie": "Preț mediu național pentru săptămâna indicată, nu prețul unei stații anume. Suma e o bază de calcul justificabilă, nu o factură."
}
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 404 | negasit | Nu există preț pe litru pentru combinația cerută, sau produsul se publică pe tonă. |
| 422 | validare | Lipsește produs, sau cantitatea nu e dată corect (nici litri, nici perechea km + consum_litri_la_100km, ori amândouă deodată). |
| 429 | cota_depasita | Cota lunară a planului a fost depăşită (vezi Retry-After). |
Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.
{
"eroare": {
"cod": "validare",
"mesaj": "Lipsește produs, sau cantitatea nu e dată corect (nici litri, nici perechea km + consum_litri_la_100km, ori amândouă deodată)."
}
}