Anaf v1 / Declarații D
Citește declarația
Drumul invers al construirii: dintr-o declaraţie depusă scoate datele de business în JSON, cu aceleaşi chei pe care le-ai trimite la build.
POST
https://oneapi.ro/api/anaf/v1/declaratii/{form}/parse
Parametri de cale
NumeTipDescriereExemplu
formobligatoriu
string
Codul formularului (
D100, D112, D300, D394…). Lista completă e la /anaf/v1/declaratii/forms.
Corpul cererii
Corpul cererii e documentul întreg, trimis brut (Content-Type: application/xml) — nu un obiect cu câmpuri.
D394 depus
D100 depus
D390 depus
D311 depus
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 „D" și întoarce JSON-ul de business — inversul lui
build. - Zero retenție: parsarea e stateless, in-memory.
La ce folosește
- Citirea unei declarații primite/generate, fără a scrie parser de XML.
Structura răspunsului
CâmpTipDescriere
data
object
JSON-ul de business — aceeași formă pe care o acceptă
build.
data.luna
integer
Luna la care se referă datele.
data.an
integer
Anul la care se referă datele.
data.tip_D394
string
data.op_efectuate
boolean
data.declarant.cui
string
Codul de identificare fiscală, fără prefixul
RO.
data.declarant.caen
string
Codul CAEN al activităţii, în revizia seriei.
data.declarant.den
string
data.declarant.adresa
string
Adresa, în forma publicată de sursă.
data.declarant.telefon
string
data.reprezentant.den
string
data.reprezentant.functie
string
data.reprezentant.adresa
string
Adresa, în forma publicată de sursă.
data.intocmit.den
string
data.intocmit.cif
string
data.intocmit.calitate
string
data.informatii.nrCui1
string
data.informatii.nrCui2
string
data.informatii.nrCui3
string
data.informatii.nrCui4
string
data.informatii.nr_BF_i1
string
data.informatii.incasari_i1
string
data.informatii.incasari_i2
string
data.informatii.nrFacturi_terti
string
data.informatii.nrFacturi_benef
string
data.informatii.nrFacturi
string
data.informatii.nrFacturiL_PF
string
data.informatii.nrFacturiLS_PF
string
data.informatii.val_LS_PF
string
data.informatii.tvaDedAI24
string
data.informatii.tvaDedAI21
string
data.informatii.tvaDedAI11
string
data.informatii.tvaDedAI20
string
data.informatii.tvaDedAI19
string
data.informatii.tvaDedAI9
string
data.informatii.tvaDedAI5
string
data.informatii.solicit
string
data.rezumat1[].tip_partener
string
data.rezumat1[].cota
string
data.rezumat1[].facturiL
string
data.rezumat1[].bazaL
string
data.rezumat1[].tvaL
string
data.rezumat2[].cota
string
data.rezumat2[].bazaFSLcod
string
data.rezumat2[].TVAFSLcod
string
data.rezumat2[].bazaFSL
string
data.rezumat2[].TVAFSL
string
data.rezumat2[].bazaFSA
string
data.rezumat2[].TVAFSA
string
data.rezumat2[].bazaFSAI
string
data.rezumat2[].TVAFSAI
string
data.rezumat2[].bazaBFAI
string
data.rezumat2[].TVABFAI
string
data.rezumat2[].nrFacturiL
string
data.rezumat2[].bazaL
string
data.rezumat2[].tvaL
string
data.rezumat2[].nrFacturiA
string
data.rezumat2[].bazaA
string
data.rezumat2[].tvaA
string
data.rezumat2[].nrFacturiAI
string
data.rezumat2[].bazaAI
string
data.rezumat2[].tvaAI
string
data.rezumat2[].bazaL_PF
string
data.rezumat2[].tvaL_PF
string
data.parteneri[].tip
string
data.parteneri[].tip_partener
integer
data.parteneri[].cota
integer
data.parteneri[].cui
string
Codul de identificare fiscală, fără prefixul
RO.
data.parteneri[].den
string
data.parteneri[].nr_facturi
integer
data.parteneri[].baza
integer
data.parteneri[].tva
integer
meta.generat_la
string
Momentul la care s-a construit răspunsul (ISO 8601).
Exemple de răspuns
body: @d394.xml
POSThttps://oneapi.ro/api/anaf/v1/declaratii/D394/parse
{
"data": {
"luna": 9,
"an": 2026,
"tip_D394": "L",
"op_efectuate": true,
"declarant": {
"cui": "990000005",
"caen": "6201",
"den": "Exemplu Furnizor SRL",
"adresa": "Cluj-Napoca, Str. Memorandumului 28",
"telefon": "0264000000"
},
"reprezentant": {
"den": "Exemplu Reprezentant",
"functie": "Administrator",
"adresa": "Cluj-Napoca, Str. Memorandumului 28"
},
"intocmit": {
"den": "Exemplu Contabil",
"cif": "990000005",
"calitate": "administrator"
},
"informatii": {
"nrCui1": "1",
"nrCui2": "0",
"nrCui3": "0",
"nrCui4": "0",
"nr_BF_i1": "0",
"incasari_i1": "0",
"incasari_i2": "0",
"nrFacturi_terti": "0",
"nrFacturi_benef": "0",
"nrFacturi": "1",
"nrFacturiL_PF": "0",
"nrFacturiLS_PF": "0",
"val_LS_PF": "0",
"tvaDedAI24": "0",
"tvaDedAI21": "0",
"tvaDedAI11": "0",
"tvaDedAI20": "0",
"tvaDedAI19": "0",
"tvaDedAI9": "0",
"tvaDedAI5": "0",
"solicit": "0"
},
"rezumat1": [
{
"tip_partener": "1",
"cota": "21",
"facturiL": "1",
"bazaL": "700",
"tvaL": "147"
}
],
"rezumat2": [
{
"cota": "21",
"bazaFSLcod": "0",
"TVAFSLcod": "0",
"bazaFSL": "0",
"TVAFSL": "0",
"bazaFSA": "0",
"TVAFSA": "0",
"bazaFSAI": "0",
"TVAFSAI": "0",
"bazaBFAI": "0",
"TVABFAI": "0",
"nrFacturiL": "1",
"bazaL": "700",
"tvaL": "147",
"nrFacturiA": "0",
"bazaA": "0",
"tvaA": "0",
"nrFacturiAI": "0",
"bazaAI": "0",
"tvaAI": "0",
"bazaL_PF": "0",
"tvaL_PF": "0"
}
],
"parteneri": [
{
"tip": "L",
"tip_partener": 1,
"cota": 21,
"cui": "990000072",
"den": "Exemplu Client SRL",
"nr_facturi": 1,
"baza": 700,
"tva": 147
}
]
},
"meta": {
"generat_la": "2026-10-06T23: 59: 41+03: 00"
}
}
body: @d100.xml
POSThttps://oneapi.ro/api/anaf/v1/declaratii/D100/parse
{
"data": {
"luna": 9,
"an": 2026,
"optiuni": {
"d_anulare": 0
},
"declarant": {
"cui": "990000005",
"den": "Exemplu Furnizor SRL",
"nume": "Exemplu",
"prenume": "Ion",
"functie": "Administrator",
"adresa": "Cluj-Napoca, Str. Memorandumului 28"
},
"total_plata": 2400,
"obligatii": [
{
"cod_oblig": 102,
"cod_bugetar": "20100101",
"scadenta": "25.10.2026",
"nr_evid": "1",
"suma_dat": 1200,
"suma_plata": 1200
}
]
},
"meta": {
"generat_la": "2026-10-06T23: 59: 41+03: 00"
}
}
body: @d390.xml
POSThttps://oneapi.ro/api/anaf/v1/declaratii/D390/parse
{
"data": {
"luna": 9,
"an": 2026,
"declarant": {
"cui": "990000005",
"den": "Exemplu Furnizor SRL",
"nume": "Exemplu",
"prenume": "Ion",
"functie": "Administrator",
"adresa": "Cluj-Napoca, Str. Memorandumului 28"
},
"operatiuni": [
{
"tip": "L",
"tara": "DE",
"cod": "999000009",
"denumire": "Exemplu Client GmbH",
"baza": 15000
}
]
},
"meta": {
"generat_la": "2026-10-06T23: 59: 41+03: 00"
}
}
body: @d311.xml
POSThttps://oneapi.ro/api/anaf/v1/declaratii/D311/parse
{
"data": {
"luna": 9,
"an": 2026,
"temei": 1,
"data": "06.10.2026",
"declarant": {
"cui": "990000005",
"den": "Exemplu Furnizor SRL",
"nume": "Exemplu",
"prenume": "Ion",
"functie": "Administrator",
"adresa": "Cluj-Napoca, Str. Memorandumului 28"
},
"total_plata": 850
},
"meta": {
"generat_la": "2026-10-06T23: 59: 41+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. |
| 404 | negasit | Formular nesuportat. |
| 422 | xml_invalid | XML care nu se poate parsa sau nu e formularul așteptat. |
| 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 formularul așteptat.",
"camp": "form",
"request_id": "0199c1f0-6e1a-7c3d-9b2f-4a8e5d1c7b04"
}
}