Anaf v1 / e-Transport
Citește declarația
Dintr-o notificare e-Transport scoate datele în JSON: bunurile, partenerul, transportatorul, locurile de start şi de final, documentele însoţitoare.
POST
https://oneapi.ro/api/anaf/v1/etransport/parse
Corpul cererii
Corpul cererii e documentul întreg, trimis brut (Content-Type: application/xml) — nu un obiect cu câmpuri.
Declarație de transport
Livrare intracomunitară
Export
Parametri de interogare
Ruta nu acceptă parametri de interogare.
Cum se comportă
- Documentul se poate trimite şi ca fişier:
multipart/form-datacu câmpulfisier(curl -F fisier=@document.xml), în locul corpului brut. Conţinutul fişierului devine corpul cererii, deci rezultatul e identic; opţiunile rămân în query string, iar alt câmp de formular lângăfisierdă422 camp_necunoscut. - Primește XML-ul unei declarații e-Transport v2 și întoarce JSON-ul de business corespunzător — inversul lui
build. Împreună fac round-trip-ul JSON ⇄ XML. - Zero retenție: parsarea e stateless, in-memory.
La ce folosește
- Citirea unei declarații primite, fără a scrie parser de XML.
- Round-trip: parsezi, modifici un câmp, re-generezi cu
build.
Structura răspunsului
CâmpTipDescriere
data.declarant
string
data.ref_declarant
string
data.operatiune
string
data.bunuri[].scop
string
data.bunuri[].cod_tarifar
string
data.bunuri[].denumire
string
Denumirea, aşa cum o publică sursa.
data.bunuri[].cantitate
integer
data.bunuri[].unitate
string
Unitatea de măsură a valorilor. Citeşte-o înainte de a le pune pe un grafic sau de a le aduna.
data.bunuri[].greutate_neta
integer
data.bunuri[].greutate_bruta
integer
data.bunuri[].valoare
integer
Valoarea publicată de sursă pentru combinaţia de mai sus.
data.partener.tara
string
Ţara la care se referă valoarea.
data.partener.cod
string
Codul din nomenclatorul sursei — cheia pe care se filtrează.
data.partener.denumire
string
Denumirea, aşa cum o publică sursa.
data.transport.nr_vehicul
string
data.transport.tara_organizator
string
data.transport.cod_organizator
string
data.transport.denumire_organizator
string
data.transport.data
string
JSON-ul de business — aceeași formă pe care o acceptă
build.
data.loc_start.locatie.judet
string
Judeţul la care se referă valoarea.
data.loc_start.locatie.localitate
string
data.loc_start.locatie.strada
string
data.loc_start.locatie.numar
string
Numărul de elemente numărate.
data.loc_start.locatie.cod_postal
string
data.loc_final.locatie.judet
string
Judeţul la care se referă valoarea.
data.loc_final.locatie.localitate
string
data.loc_final.locatie.strada
string
data.loc_final.locatie.numar
string
Numărul de elemente numărate.
data.loc_final.locatie.cod_postal
string
data.documente[].tip
string
data.documente[].numar
string
Numărul de elemente numărate.
data.documente[].data
string
JSON-ul de business — aceeași formă pe care o acceptă
build.
meta.generat_la
string
Momentul la care s-a construit răspunsul (ISO 8601).
Exemple de răspuns
body: @etransport.xml
POSThttps://oneapi.ro/api/anaf/v1/etransport/parse
{
"data": {
"declarant": "990000005",
"ref_declarant": "AVZ-2026-0142",
"operatiune": "30",
"bunuri": [
{
"scop": "101",
"cod_tarifar": "84713000",
"denumire": "Laptop 14 inch",
"cantitate": 20,
"unitate": "H87",
"greutate_neta": 30,
"greutate_bruta": 38,
"valoare": 64000
}
],
"partener": {
"tara": "RO",
"cod": "990000072",
"denumire": "Exemplu Client SRL"
},
"transport": {
"nr_vehicul": "CJ10ABC",
"tara_organizator": "RO",
"cod_organizator": "990000005",
"denumire_organizator": "Exemplu Furnizor SRL",
"data": "2026-09-10"
},
"loc_start": {
"locatie": {
"judet": "12",
"localitate": "Cluj-Napoca",
"strada": "Str. Memorandumului",
"numar": "28",
"cod_postal": "400114"
}
},
"loc_final": {
"locatie": {
"judet": "40",
"localitate": "Sector 1",
"strada": "Calea Victoriei",
"numar": "1",
"cod_postal": "010071"
}
},
"documente": [
{
"tip": "30",
"numar": "AVZ-2026-0142",
"data": "2026-09-10"
}
]
},
"meta": {
"generat_la": "2026-10-06T23: 59: 43+03: 00"
}
}
body: @etransport-lic.xml
POSThttps://oneapi.ro/api/anaf/v1/etransport/parse
{
"data": {
"declarant": "990000005",
"ref_declarant": "LIC-2026-0007",
"operatiune": "20",
"bunuri": [
{
"scop": "101",
"cod_tarifar": "84713000",
"denumire": "Laptop 14 inch",
"cantitate": 50,
"unitate": "H87",
"greutate_neta": 75,
"greutate_bruta": 95,
"valoare": 160000
}
],
"partener": {
"tara": "DE",
"cod": "DE999000009",
"denumire": "Exemplu Client GmbH"
},
"transport": {
"nr_vehicul": "CJ10ABC",
"tara_organizator": "RO",
"cod_organizator": "990000005",
"denumire_organizator": "Exemplu Furnizor SRL",
"data": "2026-09-18"
},
"loc_start": {
"locatie": {
"judet": "12",
"localitate": "Cluj-Napoca",
"strada": "Str. Memorandumului",
"numar": "28",
"cod_postal": "400114"
}
},
"loc_final": {
"ptf": "1"
},
"documente": [
{
"tip": "30",
"numar": "LIC-2026-0007",
"data": "2026-09-18"
}
]
},
"meta": {
"generat_la": "2026-10-06T23: 59: 43+03: 00"
}
}
body: @etransport-exp.xml
POSThttps://oneapi.ro/api/anaf/v1/etransport/parse
{
"data": {
"declarant": "990000005",
"ref_declarant": "EXP-2026-0011",
"operatiune": "50",
"bunuri": [
{
"scop": "9999",
"cod_tarifar": "94036010",
"denumire": "Mobilier din lemn",
"cantitate": 120,
"unitate": "H87",
"greutate_neta": 2400,
"greutate_bruta": 2650,
"valoare": 96000
}
],
"partener": {
"tara": "RS",
"cod": "RS100001111",
"denumire": "Exemplu Partener DOO"
},
"transport": {
"nr_vehicul": "TM20XYZ",
"tara_organizator": "RO",
"cod_organizator": "990000005",
"denumire_organizator": "Exemplu Furnizor SRL",
"data": "2026-09-22"
},
"loc_start": {
"locatie": {
"judet": "35",
"localitate": "Timisoara",
"strada": "Calea Aradului",
"numar": "10",
"cod_postal": "300636"
}
},
"loc_final": {
"birou_vamal": "22801"
},
"documente": [
{
"tip": "30",
"numar": "EXP-2026-0011",
"data": "2026-09-22"
}
]
},
"meta": {
"generat_la": "2026-10-06T23: 59: 43+03: 00"
}
}
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. |
| 422 | xml_invalid | XML care nu se poate parsa sau nu e o declarație e-Transport recognoscibilă. |
| 429 | cota_depasita | Cota 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": "xml_invalid",
"mesaj": "XML care nu se poate parsa sau nu e o declarație e-Transport recognoscibilă.",
"camp": null,
"request_id": "0199c1f0-6e1a-7c3d-9b2f-4a8e5d1c7b04"
}
}