Construiește declarația
Trimiţi transportul în JSON şi primeşti XML-ul RO e-Transport (v2), trecut prin XSD şi prin regulile Schematron. Codurile de operaţiune, scop, vamă şi punct de trecere se verifică pe nomenclatoarele oficiale.
Corpul cererii
Se trimite ca JSON, în corpul cererii (Content-Type: application/json) — nu în şirul de interogare.
{
"declarant": "990000005",
"operatiune": "30",
"ref_declarant": "AVZ-2026-0142",
"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": {
"tara_organizator": "RO",
"cod_organizator": "990000005",
"denumire_organizator": "Exemplu Furnizor SRL",
"data": "2026-09-10",
"nr_vehicul": "CJ10ABC"
},
"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"
}
]
}
{
"declarant": "990000005",
"operatiune": "20",
"ref_declarant": "LIC-2026-0007",
"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": {
"tara_organizator": "RO",
"cod_organizator": "990000005",
"denumire_organizator": "Exemplu Furnizor SRL",
"data": "2026-09-18",
"nr_vehicul": "CJ10ABC"
},
"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"
}
]
}
{
"declarant": "990000005",
"operatiune": "50",
"ref_declarant": "EXP-2026-0011",
"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": {
"tara_organizator": "RO",
"cod_organizator": "990000005",
"denumire_organizator": "Exemplu Furnizor SRL",
"data": "2026-09-22",
"nr_vehicul": "TM20XYZ"
},
"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"
}
]
}
Parametri de interogare
local (implicit, XSD + Schematron oficial rulate local) sau none (doar generare).
ex. localex. anafex. none
true (implicit) întoarce 422 fără XML dacă validarea eșuează; false întoarce XML-ul oricum, cu valid:false și erorile.
ex. false
xml (implicit) sau base64.
ex. base64
Cum se comportă
- Primește un JSON de business — declarant, tip operațiune, bunuri (cu cod NC, cantitate, greutate, valoare), partener, transport (vehicul, organizator), locuri de plecare/sosire și documente — și întoarce declarația RO e-Transport ca XML v2 (
mfp:anaf:dgti:eTransport:declaratie:v2), gata de depus în SPV. - Tipul operațiunii determină restul. Scopurile permise, câmpurile obligatorii și dacă un traseu are locație internă sau punct de frontieră depind de
codTipOperatiune(AIC, LIC, TTN, IMP, EXP etc.). Motorul verifică coerența și avertizează unde ceva nu se leagă. validatealege validarea:local(implicit) rulează XSD-ul oficial + Schematron-ul ANAF local;nonedoar generează XML-ul.- Un câmp necunoscut în corp e respins, nu ignorat.
umîn loc deunitate,valoare_leiîn loc devaloare— primești422 camp_necunoscutcu lista celor acceptate la acel nivel, nu o declarație căreia îi lipsește tăcut valoarea. - Fără submitere la SPV. Livrăm XML-ul valid; codul UIT se obține când clientul depune declarația în SPV (pas care cere autentificare — în afara acestui toolkit stateless).
- Zero retenție. Payload-ul nu se scrie pe disc, nu se loghează și nu intră în chei de cache.
La ce folosește
- Generarea XML-ului e-Transport dintr-un WMS/ERP, înainte de depunerea în SPV.
- Validarea unei declarații contra XSD + Schematron oficial, fără a o trimite încă la ANAF.
Structura răspunsului
null la validate=none.
ETRANSP-v2.
format.
strict=false (la strict=true vin în plicul de eroare).
{cod,mesaj,camp}.
Exemple de răspuns
body: {"declarant": "990000005", "operatiune": "30", "ref_declarant": "AVZ-2026-0142", "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": {"tara_organizator": "RO", "cod_organizator": "990000005", "denumire_organizator": "Exemplu Furnizor SRL", "data": "2026-09-10", "nr_vehicul": "CJ10ABC"}, "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"}]}
{
"data": {
"valid": true,
"standard": "ETRANSP-v2",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<eTransport xmlns=\"mfp:anaf:dgti:eTransport:declaratie:v2\" codDeclarant=\"990000005\" refDeclarant=\"AVZ-2026-0142\">\n <notificare codTipOperatiune=\"30\">\n <bunuriTransportate codScopOperatiune=\"101\" codTarifar=\"84713000\" denumireMarfa=\"Laptop 14 inch\" cantitate=\"20.00\" codUnitateMasura=\"H87\" greutateNeta=\"30.00\" greutateBruta=\"38.00\" valoareLeiFaraTva=\"64000.00\"/>\n <partenerComercial codTara=\"RO\" cod=\"990000072\" denumire=\"Exemplu Client SRL\"/>\n <dateTransport nrVehicul=\"CJ10ABC\" codTaraOrgTransport=\"RO\" codOrgTransport=\"990000005\" denumireOrgTransport=\"Exemplu Furnizor SRL\" dataTransport=\"2026-09-10\"/>\n <locStartTraseuRutier>\n <locatie codJudet=\"12\" denumireLocalitate=\"Cluj-Napoca\" denumireStrada=\"Str. Memorandumului\" numar=\"28\" codPostal=\"400114\"/>\n </locStartTraseuRutier>\n <locFinalTraseuRutier>\n <locatie codJudet=\"40\" denumireLocalitate=\"Sector 1\" denumireStrada=\"Calea Victoriei\" numar=\"1\" codPostal=\"010071\"/>\n </locFinalTraseuRutier>\n <documenteTransport tipDocument=\"30\" numarDocument=\"AVZ-2026-0142\" dataDocument=\"2026-09-10\"/>\n </notificare>\n</eTransport>\n",
"meta": {
"namespace": "mfp:anaf:dgti:eTransport:declaratie:v2",
"cod_tip_operatiune": "30",
"nr_bunuri": 1,
"nr_documente": 1
},
"errors": [],
"warnings": []
},
"meta": {
"generat_la": "2026-10-06T23: 59: 43+03: 00"
}
}
body: {"declarant": "990000005", "operatiune": "20", "ref_declarant": "LIC-2026-0007", "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": {"tara_organizator": "RO", "cod_organizator": "990000005", "denumire_organizator": "Exemplu Furnizor SRL", "data": "2026-09-18", "nr_vehicul": "CJ10ABC"}, "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"}]}
{
"data": {
"valid": true,
"standard": "ETRANSP-v2",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<eTransport xmlns=\"mfp:anaf:dgti:eTransport:declaratie:v2\" codDeclarant=\"990000005\" refDeclarant=\"LIC-2026-0007\">\n <notificare codTipOperatiune=\"20\">\n <bunuriTransportate codScopOperatiune=\"101\" codTarifar=\"84713000\" denumireMarfa=\"Laptop 14 inch\" cantitate=\"50.00\" codUnitateMasura=\"H87\" greutateNeta=\"75.00\" greutateBruta=\"95.00\" valoareLeiFaraTva=\"160000.00\"/>\n <partenerComercial codTara=\"DE\" cod=\"DE999000009\" denumire=\"Exemplu Client GmbH\"/>\n <dateTransport nrVehicul=\"CJ10ABC\" codTaraOrgTransport=\"RO\" codOrgTransport=\"990000005\" denumireOrgTransport=\"Exemplu Furnizor SRL\" dataTransport=\"2026-09-18\"/>\n <locStartTraseuRutier>\n <locatie codJudet=\"12\" denumireLocalitate=\"Cluj-Napoca\" denumireStrada=\"Str. Memorandumului\" numar=\"28\" codPostal=\"400114\"/>\n </locStartTraseuRutier>\n <locFinalTraseuRutier codPtf=\"1\"/>\n <documenteTransport tipDocument=\"30\" numarDocument=\"LIC-2026-0007\" dataDocument=\"2026-09-18\"/>\n </notificare>\n</eTransport>\n",
"meta": {
"namespace": "mfp:anaf:dgti:eTransport:declaratie:v2",
"cod_tip_operatiune": "20",
"nr_bunuri": 1,
"nr_documente": 1
},
"errors": [],
"warnings": []
},
"meta": {
"generat_la": "2026-10-06T23: 59: 43+03: 00"
}
}
body: {"declarant": "990000005", "operatiune": "50", "ref_declarant": "EXP-2026-0011", "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": {"tara_organizator": "RO", "cod_organizator": "990000005", "denumire_organizator": "Exemplu Furnizor SRL", "data": "2026-09-22", "nr_vehicul": "TM20XYZ"}, "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"}]}
{
"data": {
"valid": true,
"standard": "ETRANSP-v2",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<eTransport xmlns=\"mfp:anaf:dgti:eTransport:declaratie:v2\" codDeclarant=\"990000005\" refDeclarant=\"EXP-2026-0011\">\n <notificare codTipOperatiune=\"50\">\n <bunuriTransportate codScopOperatiune=\"9999\" codTarifar=\"94036010\" denumireMarfa=\"Mobilier din lemn\" cantitate=\"120.00\" codUnitateMasura=\"H87\" greutateNeta=\"2400.00\" greutateBruta=\"2650.00\" valoareLeiFaraTva=\"96000.00\"/>\n <partenerComercial codTara=\"RS\" cod=\"RS100001111\" denumire=\"Exemplu Partener DOO\"/>\n <dateTransport nrVehicul=\"TM20XYZ\" codTaraOrgTransport=\"RO\" codOrgTransport=\"990000005\" denumireOrgTransport=\"Exemplu Furnizor SRL\" dataTransport=\"2026-09-22\"/>\n <locStartTraseuRutier>\n <locatie codJudet=\"35\" denumireLocalitate=\"Timisoara\" denumireStrada=\"Calea Aradului\" numar=\"10\" codPostal=\"300636\"/>\n </locStartTraseuRutier>\n <locFinalTraseuRutier codBirouVamal=\"22801\"/>\n <documenteTransport tipDocument=\"30\" numarDocument=\"EXP-2026-0011\" dataDocument=\"2026-09-22\"/>\n </notificare>\n</eTransport>\n",
"meta": {
"namespace": "mfp:anaf:dgti:eTransport:declaratie:v2",
"cod_tip_operatiune": "50",
"nr_bunuri": 1,
"nr_documente": 1
},
"errors": [],
"warnings": []
},
"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 | JSON de business invalid (câmp lipsă/greșit) sau — la strict=true — declarație care nu trece validarea. Corpul poartă error + errors[]/warnings[]. |
| 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": "JSON de business invalid (câmp lipsă/greșit) sau — la strict=true — declarație care nu trece validarea. Corpul poartă error + errors[]/warnings[].",
"camp": "validate",
"request_id": "0199c1f0-6e1a-7c3d-9b2f-4a8e5d1c7b04"
}
}