Anaf v1 / e-Transport
Nomenclatures
The official e-Transport nomenclatures: operation types, purposes, counties, border crossing points, customs offices, document types. Use q to search inside them.
GET
https://oneapi.ro/api/anaf/v1/etransport/codes/{nomenclator}
Path parameters
NameTypeDescriptionExample
nomenclatorrequired
string
Name of the code list requested (units of measure, countries, operation types…).
Query parameters
NameTypeDescriptionAccepted values
limitaoptional
string | null
How many entries to return; the large lists (CN, customs offices) hold thousands of codes.
e.g. 5
qoptional
string | null
Text to search in the code list (code or label).
e.g. lapte
How it behaves
- Returns an official nomenclature used in the declaration:
operatiuni,scopuri,judete,ptf(border crossing points),birouri_vamale,tari,tipuri_document. Extracted from the official ANAF XSD. nc(the Combined Nomenclature — the tariff code, ~12,500 codes) is too large to return whole: pass a?q=— either a code prefix (e.g.2203) or a word from the description (e.g.bere) — and you get up to?limitamatches (default 50, max 500).
What it is for
- Populating a form with the valid values, before
build. - Finding the NC tariff code matching a good (
?q=).
Response structure
FieldTypeDescription
data.nomenclator
string
The name of the requested nomenclature.
data.valori
object
The code → name pairs.
meta.generat_la
string
When the response was built (ISO 8601).
data.q
string
The search query (only for
nc).
Response examples
GEThttps://oneapi.ro/api/anaf/v1/etransport/codes/operatiuni
{
"data": {
"nomenclator": "operatiuni",
"valori": {
"10": {
"sigla": "AIC",
"denumire": "Achiziţie intracomunitară"
},
"12": {
"sigla": "LHI",
"denumire": "Operațiuni în sistem lohn (UE) - intrare"
},
"14": {
"sigla": "SCI",
"denumire": "Stocuri la dispoziția clientului (Call-off stock) - intrare"
},
"20": {
"sigla": "LIC",
"denumire": "Livrare intracomunitară"
},
"22": {
"sigla": "LHE",
"denumire": "Operațiuni în sistem lohn (UE) - ieșire"
},
"24": {
"sigla": "SCE",
"denumire": "Stocuri la dispoziția clientului (Call-off stock) - ieșire"
},
"30": {
"sigla": "TTN",
"denumire": "Transport pe teritoriul naţional"
},
"40": {
"sigla": "IMP",
"denumire": "Import"
},
"50": {
"sigla": "EXP",
"denumire": "Export"
},
"60": {
"sigla": "DIN",
"denumire": "Tranzacţie intracomunitară - Intrare pentru depozitare/formare nou transport"
},
"70": {
"sigla": "DIE",
"denumire": "Tranzacţie intracomunitară - Ieşire după depozitare/formare nou transport"
}
}
},
"meta": {
"generat_la": "2026-10-06T23: 59: 44+03: 00"
}
}
GEThttps://oneapi.ro/api/anaf/v1/etransport/codes/scopuri
{
"data": {
"nomenclator": "scopuri",
"valori": {
"101": "Comercializare",
"201": "Producție",
"301": "Gratuități",
"401": "Echipament comercial",
"501": "Mijloace fixe",
"601": "Consum propriu",
"703": "Operațiuni de livrare cu instalare",
"704": "Transfer între gestiuni",
"705": "Bunuri puse la dispoziția clientului",
"801": "Leasing financiar/operațional",
"802": "Bunuri în garanție",
"901": "Operațiuni scutite",
"1001": "Investiție in curs",
"1101": "Donații, ajutoare",
"9901": "Altele",
"9999": "Același cu operațiunea"
}
},
"meta": {
"generat_la": "2026-10-06T23: 59: 44+03: 00"
}
}
GEThttps://oneapi.ro/api/anaf/v1/etransport/codes/judete
{
"data": {
"nomenclator": "judete",
"valori": {
"1": "Alba",
"2": "Arad",
"3": "Argeş",
"4": "Bacău",
"5": "Bihor",
"6": "Bistriţa-Năsăud",
"7": "Botoşani",
"8": "Braşov",
"9": "Brăila",
"10": "Buzău",
"11": "Caraş-Severin",
"51": "Călăraşi",
"12": "Cluj",
"13": "Constanţa",
"14": "Covasna",
"15": "Dâmboviţa",
"16": "Dolj",
"17": "Galaţi",
"52": "Giurgiu",
"18": "Gorj",
"19": "Harghita",
"20": "Hunedoara",
"21": "Ialomiţa",
"22": "Iaşi",
"23": "Ilfov",
"24": "Maramureş",
"25": "Mehedinţi",
"26": "Mureş",
"27": "Neamţ",
"28": "Olt",
"29": "Prahova",
"30": "Satu Mare",
"31": "Sălaj",
"32": "Sibiu",
"33": "Suceava",
"34": "Teleorman",
"35": "Timiş",
"36": "Tulcea",
"37": "Vaslui",
"38": "Vâlcea",
"39": "Vrancea",
"40": "Municipiul Bucureşti"
}
},
"meta": {
"generat_la": "2026-10-06T23: 59: 44+03: 00"
}
}
GEThttps://oneapi.ro/api/anaf/v1/etransport/codes/nc?q=lapte&limita=5
{
"data": {
"nomenclator": "nc",
"q": "lapte",
"valori": {
"0401": "Lapte și smântână din lapte, neconcentrate, fără adaos de zahăr sau alți îndulcitori",
"0402": "Lapte și smântână din lapte, concentrate sau cu adaos de zahăr sau alți îndulcitori",
"04022911": "Lapte special numit „pentru sugari”, în recipiente închise ermetic, cu un conținut net de maximum 500 g și cu un conținut de grăsimi de peste 10 % din greutate",
"0403": "Iaurt; lapte acru, lapte și smântână covăsite, chefir și alte sortimente de lapte și smântână fermentate sau acrite, chiar concentrate, sau cu adaos de zahăr sau alți îndulcitori, sau aromatizate, sau cu adaos de fructe, fructe cu coajă lemnoasă sau cacao",
"04032041": "Cu un conținut sub 1,5 % de grăsimi din lapte, sub 5 % zaharoză (inclusiv zahăr invertit) sau izoglucoză, sub 5 % glucoză, amidon sau fecule"
}
},
"meta": {
"generat_la": "2026-10-06T23: 59: 44+03: 00"
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | modul_interzis | The token has no access to the route's module. |
| 404 | negasit | Unknown nomenclature. |
| 422 | xml_invalid | A parameter failed validation (limita, q); detalii says which and why. |
| 429 | cota_depasita | The plan's monthly quota has been exceeded (see Retry-After). |
Errors in the Anaf module use the same envelope as the rest of the platform, with two extra fields: {eroare: {cod, mesaj, camp, request_id}}. eroare.cod is stable and is what you branch on; on validation (422) the code is case-specific: xml_invalid, xml_nu_e_factura, unitate_necunoscuta, luna_invalida and so on. camp points at the offending field when one can be identified.
{
"eroare": {
"cod": "xml_invalid",
"mesaj": "A parameter failed validation (limita, q); detalii says which and why.",
"camp": "nomenclator",
"request_id": "0199c1f0-6e1a-7c3d-9b2f-4a8e5d1c7b04"
}
}