oneapi
Autentificare
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 fie litri, fie km împreună cu consum_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.
  • total se calculează din prețul publicat. din_care e o reconstrucție pe componente, iar din_care.insumeaza_totalul spune dacă ele chiar adună la total. Când e false, 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ă."
        }
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
404negasitNu există preț pe litru pentru combinația cerută, sau produsul se publică pe tonă.
422validareLipsește produs, sau cantitatea nu e dată corect (nici litri, nici perechea km + consum_litri_la_100km, ori amândouă deodată).
429cota_depasitaCota 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ă)."
    }
}