Prinzi diferențele înainte ca ANAF să te notifice.
ANAF îți trimite un decont de TVA precompletat (format D300), construit din e-Factura, e-Transport și SAF-T. Când decontul tău diferă de cel precompletat, primești o notificare de conformare și ai 20 de zile să răspunzi. Noi reconciliem cele două deconturi și îți arătăm exact diferențele — înainte de notificare.
Nu generăm decontul precompletat și nu-l depunem — ANAF îl produce, tu răspunzi prin SPV. Noi facem partea utilă: pui deconturile față în față și primești diferențele pe rânduri, exact ce ar semnala notificarea de conformare. Procesarea e în memorie; conținutul nu atinge un disc de-al nostru.
// JSON: { precompletat, propriu }
// → { are_diferente: true, nr_diferente: 2,
// total_precompletat: 48210.00, total_propriu: 47960.00,
// diferente: [ { camp, precompletat, propriu, diferenta } ] }
POST /etva/v1/parse // decontul precompletat, ca JSON
{
"are_diferente": true, "nr_diferente": 2,
"total_precompletat": 48210.00, "total_propriu": 47960.00,
"diferente": [
{ "camp": "tva_colectata", "precompletat": 61200.00, "propriu": 60950.00, "diferenta": 250.00 }
]
}
- Sistem
- RO e-TVA
- Bază legală
- OPANAF 6234/2024
- Format decont
- D300
- Operațiuni
- reconciliere · parse
- Termen notificare
- 20 de zile
- Retenție
- niciuna
Notificarea de conformare vine cu un ceas de 20 de zile.
ANAF compară decontul tău de TVA cu cel precompletat din datele pe care le are deja. Când nu se potrivesc, primești o notificare de conformare — și un termen scurt să lămurești fiecare diferență.
Decontul precompletat
ANAF îți construiește un decont de TVA precompletat (D300) din ce raportezi deja: e-Factura, e-Transport și SAF-T. Nu tu îl generezi — îl primești, gata întocmit, din datele fiscului.
Decontul tău
În paralel, tu depui propriul decont de TVA, întocmit de contabilitatea sau ERP-ul tău. Cele două ar trebui să spună același lucru — dar rareori coincid la virgulă.
Notificarea de conformare
Când decontul tău diferă semnificativ de cel precompletat, ANAF emite o notificare de conformare (OPANAF 6234/2024) care listează exact rândurile care nu se potrivesc.
Termenul de 20 de zile
De la notificare ai 20 de zile să răspunzi: fie corectezi decontul, fie explici diferențele. Termenul curge indiferent dacă ai văzut sau nu unde e problema.
Diferența ascunsă în rânduri
Un decont are zeci de rânduri — livrări, achiziții, TVA colectată, TVA deductibilă, ajustări. Diferența poate fi pe un singur rând, iar găsirea ei la mână, sub presiunea termenului, e lentă și predispusă la greșeli.
Riscul de conformare
O notificare ignorată sau tratată greșit crește riscul de inspecție și indicatorul de risc fiscal. Cel mai bun răspuns e să nu ai diferențe surpriză — să le vezi înainte ca ANAF să te notifice.
Reconciliere și citire. Fără generare, fără depunere.
Fiecare e un apel POST independent. Nu construim decontul precompletat și nu-l depunem — îl citim și îl comparăm cu al tău. Folosești pe cea de care ai nevoie.
/reconciliere
Reconciliază
Trimiți decontul precompletat de la ANAF și decontul tău, primești diferențele pe rânduri: ce câmp, valoarea precompletată, valoarea ta și diferența. Exact ce ar semnala notificarea de conformare — dar înainte de ea.
/parse
Citește
Decontul precompletat (XML) devine JSON curat: rândurile decontului D300 cu valorile lor, gata de citit din cod. Îl înțelegi fără să atingi XML-ul și fără să scrii un parser propriu.
Datele tale de TVA nu ajung nicăieri. Nici la noi, nici la ANAF.
Ăsta e răspunsul la „de ce aș trimite deconturile mele de TVA la un terț”. Pentru că, practic, nu le trimiți nicăieri — reconciliem și uităm.
Procesare în memorie
Cele două deconturi nu se scriu niciodată pe disc. Intră în request, sunt comparate în memorie și dispar când răspunsul pleacă. Nu există un decont de-al tău la noi.
Comparație locală
Reconcilierea rulează la noi, pe serverul care ține răspunsul tău. Nu trimitem deconturile la ANAF ca să aflăm diferențele — comparația e aici, rezultatul e local.
Loguri fără conținut
Ce reținem e un cod de rezultat și o durată — atât. CUI-ul, valorile de TVA, rândurile decontului nu intră în niciun log, nici la noi, nici la un serviciu de observabilitate.
Doar diferențele
Răspunsul întoarce doar diferențele și totalurile de care ai nevoie ca să corectezi. Nimic nu e păstrat după ce pleacă răspunsul — nici precompletatul, nici al tău.
Nu-ți spunem doar că „nu se potrivește”. Îți spunem exact pe ce rând.
Punem decontul precompletat și pe al tău față în față și îți dăm diferențele pe rânduri — aceleași pe care le-ar lista notificarea de conformare, dar înainte să o primești.
Diferență pe fiecare câmp
Pentru fiecare rând care nu se potrivește primești câmpul implicat, valoarea precompletată de ANAF, valoarea ta și diferența dintre ele. Diferența dintre a ști că e o problemă și a ști exact unde e.
Verdict și totaluri
Răspunsul îți spune dacă există diferențe, câte sunt, plus totalul precompletat și totalul tău. O privire și știi dacă decontul tău e aliniat sau nu.
Înainte de notificare
Rulezi reconcilierea când vrei tu — la închiderea lunii, înainte de depunere — și corectezi diferențele din timp. Notificarea de conformare devine un non-eveniment, nu o cursă de 20 de zile.
Fără depunere în SPV
Reconcilierea e complet locală: implicit, nimic nu pleacă de la noi către ANAF. Răspunsul la notificarea de conformare îl depui tu prin SPV, cu credențialele tale — noi îți dăm diferențele înainte de acel pas.
Rândurile decontului D300, comparate unul câte unul.
Nu doar totalul de TVA de plată. Fiecare rând relevant al decontului, pus față în față și numărat.
Reconciliem rândurile decontului D300 precompletat față de al tău, cu diferența calculată pe fiecare. Dacă întâlnești un rând pe care nu-l tratăm corect, scrie-ne — cazurile reale au prioritate în ce construim.
Două deconturi intră. Diferențele ies.
Trimiți decontul precompletat și pe al tău într-un JSON, primești lista de diferențe pe rânduri. Fără SDK obligatoriu — clientul HTTP pe care îl ai deja.
# reconciliere: decontul precompletat de la ANAF + al tău → diferențele pe rânduri
curl "https://oneapi.ro/api/anaf/v1/etva/reconciliere" \
-H "Authorization: Bearer $ONEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "precompletat": "<Decont…/>", "propriu": "<Decont…/>" }'
# → 200 OK
{
"are_diferente": true,
"nr_diferente": 2,
"total_precompletat": 48210.00,
"total_propriu": 47960.00,
"diferente": [
{ "camp": "tva_colectata", "precompletat": 61200.00, "propriu": 60950.00, "diferenta": 250.00 },
{ "camp": "tva_deductibila", "precompletat": 12990.00, "propriu": 12990.00, "diferenta": 0.00 }
]
}
Câmpul, valorile și diferența
O reconciliere nu-ți dă doar „nu se potrivește”. Îți spune dacă există diferențe, câte sunt, totalurile, plus fiecare câmp cu valoarea precompletată, valoarea ta și diferența. Suficient ca să corectezi din prima, nu să cauți la mână prin decont.
# deconturi aliniate → nicio diferență
{ "are_diferente": false,
"nr_diferente": 0,
"total_precompletat": 47960.00,
"total_propriu": 47960.00,
"diferente": [] }
Înainte să primești prima notificare.
Restul, în întrebări frecvente și în documentație.