oneapi
Sign in
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 ?limita matches (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"
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403modul_interzisThe token has no access to the route's module.
404negasitUnknown nomenclature.
422xml_invalidA parameter failed validation (limita, q); detalii says which and why.
429cota_depasitaThe 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"
    }
}