Remediază respingerile ANAF de arhivă (SPV)
Arhiva lunară ANAF este produsă și semnată chiar de AMEF; e-bon doar o exportă live de pe dispozitiv, ca să o poți descărca și depune în Spațiul Privat Virtual (SPV). Respingerile sosesc deci în SPV — pe recipisă sau în mesajul atașat depunerii — nu în e-bon, care nu primește și nu urmărește decizia ANAF. Această rețetă arată cum să interpretezi respingerea și să produci o depunere care trece.
anafStatus — SPV este singurul loc în care apare respingerea. Oricare ar fi cauza, remedierea se termină mereu la fel: re-exportă o arhivă proaspătă de pe dispozitiv și redepune — nu repara și nu reîncărca fișierul respins anterior.
Identifică categoria respingerii
- Interval de lună greșit — arhiva a fost exportată pentru altă perioadă decât cea declarată (o lună decalată sau un interval parțial în loc de luna calendaristică întreagă). ANAF se așteaptă ca arhiva să acopere exact luna raportată.
- Dispozitiv / serie fiscală greșită — arhiva aparține altui AMEF decât cel din depunere. Ușor de nimerit când sunt înregistrate mai multe dispozitive și în export a fost selectat cel greșit.
- Descărcare coruptă sau modificată — ZIP-ul a fost trunchiat în tranzit sau conținutul lui a fost deschis, editat, redenumit ori reîmpachetat. Semnătura AMEF-ului acoperă artefactele octet cu octet, deci orice modificare o invalidează.
- Problemă de certificat / firmware pe dispozitiv — certificatul fiscal al AMEF-ului a expirat, ceasul dispozitivului este suficient de decalat încât marcajul de timp din semnătură este refuzat, sau firmware-ul produce un format de arhivă mai vechi decât acceptă ANAF în prezent. Se rezolvă pe dispozitiv, nu în e-bon.
Re-exportă o arhivă proaspătă
Arhiva este citită live de pe dispozitiv, deci dispozitivul trebuie să fie online (aplicația de control conectată) — dispozitivele offline întorc 503 cu un cod de conectivitate (E600/E601/E602).
- Din Portal — deschide Rapoarte → Export ANAF, selectează dispozitivul, alege luna și apasă Exportă și descarcă. Vezi Portal · Rapoarte.
- Din API — cere arhiva pentru luna calendaristică (necesită permisiunea
reports):
curl -X POST "https://api.e-bon.ro/api/v1/devices/{deviceId}/reports/anaf-export" \
-H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
-d '{ "fromDate": "2026-06-01", "toDate": "2026-06-30" }'
Decodează câmpul export.base64 și salvează-l ca .zip — export.filename și export.sizeBytes îți spun cum să-l numești și cât ar trebui să aibă. O nepotrivire de dimensiune după salvare înseamnă că descărcarea a fost coruptă; exportă din nou.
Aplică remedierea
Citește mesajul de respingere din SPV literal
Nu parafraza și nu traduce mesajul ANAF înainte să-l cauți — string-urile sunt stabile și se găsesc pe portalul de documentație ANAF. Păstrează textul original în limba română.
Potrivește mesajul cu o categorie
Folosește categoriile de mai sus. Elementele distinctive sunt perioada, seria fiscală și orice mențiune despre „semnătură" sau integritatea fișierului.
Rezolvă cauza de bază
Pentru interval de lună greșit și dispozitiv greșit nu este nimic de reparat — doar re-exportă cu luna corectă și dispozitivul corect selectate. Pentru descărcare coruptă sau modificată, re-exportă și de această dată depune ZIP-ul neatins — nu-l deschide și reîmpacheta. Pentru probleme de certificat / firmware, contactează tehnicianul autorizat al AMEF-ului sau producătorul imprimantei — e-bon nu poate reînnoi un certificat fiscal și nu poate actualiza firmware de la distanță.
Re-exportă și redepune în SPV
Odată cauza rezolvată, exportă o arhivă proaspătă de pe dispozitiv și depune noul ZIP în SPV. Fiecare export este produs din nou din memoria fiscală și jurnalul dispozitivului — nu există o copie stocată de redepus.
Obține ajutor suplimentar
Deschide un caz de suport la contact@e-bon.ro sau e-bon.ro/contact cu ID-ul dispozitivului, intervalul de lună exportat și textul literal al respingerii ANAF din SPV. Dacă bănuiești că este o categorie de respingere nedocumentată anterior, semnaleaz-o explicit ca să actualizăm rețeta.
Eșecuri de livrare a webhook-urilor și auto-dezactivare
Cum interpretezi `lastError`, programul de retry pe 5 încercări, auto-dezactivarea după 20 de eșecuri și cum reactivezi un webhook în siguranță.
Nepotrivire de semnătură HMAC
De ce verificarea `X-EBon-Signature` eșuează pe endpoint-ul tău — drift de ceas, secret greșit după rotație și capcane la re-serializarea body-ului.