oneapi
Autentificare
Anaf v1 / e-Factura

Nomenclatoare

Codurile publice de care ai nevoie ca să construieşti o factură valabilă: unităţi de măsură, categorii de TVA, mijloace de plată, subdiviziuni. Exact listele pe care le verifică validarea.

GET
https://oneapi.ro/api/anaf/v1/efactura/codes/{nomenclator}

Parametri de cale

NumeTipDescriereExemplu
nomenclatorobligatoriu string Numele nomenclatorului de coduri cerut (unităţi de măsură, ţări, tipuri de operaţiune…).

Parametri de interogare

Ruta nu acceptă parametri de interogare.

Cum se comportă

  • Întoarce valorile unui nomenclator public folosit la construirea unei facturi: unităţi de măsură (units), categorii de TVA (vat_categories), modalităţi de plată (payment_means), judeţe (counties). Nomenclatorul cerut vine în path.
  • Este o rută de discovery, deschisă — fără feature gate — tocmai ca să poţi popula liste de selecţie sau valida coduri local înainte de a chema build. Codurile sunt cele oficiale CIUS-RO / EN 16931.
  • Un nomenclator necunoscut întoarce 404 cu cod: nomenclator_necunoscut, nu o listă goală — ca o greşeală de nume să fie vizibilă, nu tăcută.

La ce folosește

  • Popularea unui dropdown de unităţi de măsură sau modalităţi de plată în UI.
  • Validarea locală a unui cod (ex. categorie TVA) înainte de a-l trimite la build.
  • Maparea codurilor din răspunsuri la denumiri lizibile, fetchate o singură dată.

Structura răspunsului

CâmpTipDescriere
data.nomenclator string Numele nomenclatorului cerut, ecou al parametrului din path.
data.valori object Lista de coduri, fiecare cu codul şi denumirea lizibilă.
meta.generat_la string Momentul la care s-a construit răspunsul (ISO 8601).

Exemple de răspuns

GEThttps://oneapi.ro/api/anaf/v1/efactura/codes/units
{
    "data": {
        "nomenclator": "units",
        "valori": {
            "buc": "H87",
            "bucata": "H87",
            "bucati": "H87",
            "pcs": "H87",
            "piece": "H87",
            "unitate": "C62",
            "unit": "C62",
            "ub": "C62",
            "serviciu": "C62",
            "abonament": "C62",
            "lucrare": "C62",
            "kg": "KGM",
            "kilogram": "KGM",
            "g": "GRM",
            "gram": "GRM",
            "t": "TNE",
            "tona": "TNE",
            "l": "LTR",
            "litru": "LTR",
            "litri": "LTR",
            "ml": "MLT",
            "m": "MTR",
            "metru": "MTR",
            "ml liniar": "MTR",
            "mp": "MTK",
            "m2": "MTK",
            "metru patrat": "MTK",
            "mc": "MTQ",
            "m3": "MTQ",
            "metru cub": "MTQ",
            "km": "KMT",
            "ora": "HUR",
            "h": "HUR",
            "ore": "HUR",
            "zi": "DAY",
            "zile": "DAY",
            "day": "DAY",
            "luna": "MON",
            "month": "MON",
            "an": "ANN",
            "ani": "ANN",
            "year": "ANN",
            "set": "SET",
            "pereche": "PR",
            "kwh": "KWH"
        }
    },
    "meta": {
        "generat_la": "2026-10-06T23: 59: 42+03: 00"
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403modul_interzisTokenul nu are acces la modulul rutei.
404negasitnomenclator_necunoscut: numele din path nu corespunde niciunui nomenclator.
429cota_depasitaCota lunară a planului a fost depăşită (vezi Retry-After).

Erorile modulului Anaf au acelaşi plic ca restul platformei, cu două câmpuri în plus: {eroare: {cod, mesaj, camp, request_id}}. eroare.cod e stabil şi e cel după care ramifici în cod; la validare (422) codul e specific cazului: xml_invalid, xml_nu_e_factura, unitate_necunoscuta, luna_invalida ş.a. camp arată câmpul vinovat, când se poate identifica.

{
    "eroare": {
        "cod": "negasit",
        "mesaj": "nomenclator_necunoscut: numele din path nu corespunde niciunui nomenclator.",
        "camp": "nomenclator",
        "request_id": "0199c1f0-6e1a-7c3d-9b2f-4a8e5d1c7b04"
    }
}