Skip to content
back to search

OCA/l10n-romania · 19.0

Romania - Mesaje SPV

l10n_ro_message_spv

AGPL-3Localizationv19.0.2.8.037updated 2 days ago

Odoo Community Association

Romania - Mesaje SPV

Production/Stable License: AGPL-3 OCA/l10n-romania Translate me on Weblate Try me on Runboat

Acest modul facilitează gestionarea mesajelor din Spațiul Privat Virtual (SPV) ANAF, asigurând descărcarea și procesarea automată a facturilor electronice (e-Factura):

  • Funcționalități:
    • Descărcare automată mesaje SPV: sincronizare periodică (via cron) a listei de mesaje din SPV pentru facturi primite, trimise sau erori.
    • Procesare fișiere ZIP: descărcarea automată a arhivelor ZIP de la ANAF și extragerea fișierelor XML semnate.
    • Creare automată facturi de furnizor: generează schițe de factură (draft) direct din fișierele XML descărcate, mapând automat furnizorul pe baza codului fiscal (CIF).
    • Gestionare PDF-uri e-Factura:
      • Generare PDF ANAF: posibilitatea de a genera și descărca vizualizarea PDF oficială a XML-ului folosind serviciile ANAF.
      • Extragere PDF încorporat: extrage PDF-urile atașate direct în fișierul XML (dacă există).
    • Monitorizare stări: urmărirea stării fiecărui mesaj (Draft, Downloaded, Invoice, Error, Done) și a încercărilor de descărcare.
    • Integrare cu fluxul de facturare: legarea automată a mesajelor de facturile existente în sistem pe baza ID-ului de tranzacție sau a referinței.
    • Căutare produs după codul furnizorului: la importul UBL/CIUS-RO, produsul este identificat automat după codul furnizorului (SellersItemIdentification sau StandardItemIdentification) folosind product.supplierinfo, cu prioritate maximă față de celelalte criterii de căutare.
    • Salvare cod furnizor pe linia de factură: codul furnizorului (l10n_ro_vendor_code) este salvat pe linia de factură la import, chiar dacă produsul nu a fost găsit, pentru a permite asocierea ulterioară la validarea facturii.
    • Sincronizarea datelor produselor: permite salvarea automată a codurilor de furnizor pentru produse la validarea facturilor primite.
    • Configurare număr de zile pentru descărcarea e-facturilor (l10n_ro_download_einvoices_days): numărul maxim de zile pentru care se descarcă mesajele din SPV (implicit 60 de zile).
    • Configurare număr de zile pentru reîmprospătarea mesajelor (l10n_ro_refresh_message_days): numărul maxim de zile pentru care se reîmprospătează mesajele e-Factura (implicit 60 de zile).

Diferențe față de modulul standard l10n_ro_edi

Modulul l10n_ro_message_spv extinde modulul standard Odoo l10n_ro_edi (Romania - E-invoicing), adăugând funcționalități suplimentare pentru gestionarea avansată a mesajelor din SPV.

Ce face modulul standard l10n_ro_edi?

  • Trimitere facturi de ieșire către SPV ANAF (e-Factura) cu urmărirea stării (Trimis / Validat / Refuzat).
  • Sincronizare automată (via cron) a stărilor facturilor trimise și descărcarea răspunsurilor de la SPV.
  • Descărcare facturi primite (received bills): creează automat o factură draft de furnizor din XML-ul primit, atașează XML-ul și PDF-ul generat de ANAF.
  • Jurnal configurabil pentru facturile importate (l10n_ro_edi_anaf_imported_inv_journal_id).
  • Deduplicare facturi primite pe baza sumei totale, CIF-ului furnizorului și datei.

Ce adaugă l10n_ro_message_spv în plus?

Funcționalitatel10n_ro_edi (standard)l10n_ro_message_spv (acest modul)
Trimitere facturi ieșire✅ (moștenit)
Descărcare facturi primite✅ (simplu)✅ (extins)
Interfață dedicată mesaje SPV✅ cu stări: Draft, Downloaded, Invoice, Error, Done
Monitorizare încercări descărcare
Procesare fișiere ZIP ANAF
Generare PDF oficial ANAF
Extragere PDF încorporat în XML
Căutare produs după cod furnizor✅ via product.supplierinfo
Salvare l10n_ro_vendor_code pe linie
Sincronizare coduri furnizor la validare
Configurare zile descărcare mesaje SPV✅ (l10n_ro_download_einvoices_days)
Configurare zile reîmprospătare mesaje✅ (l10n_ro_refresh_message_days)

Notă: l10n_ro_message_spv depinde de l10n_ro_edi și îl extinde — nu îl înlocuiește. Ambele module trebuie instalate pentru funcționalitate completă.


De ce este importantă descărcarea periodică a mesajelor din SPV?

Descărcarea mesajelor și a facturilor din SPV nu este doar o recomandare de „bună practică", ci o necesitate critică din motive legale, fiscale și tehnice.

1. Termenul de Arhivare în SPV (Limitarea Tehnică)

Sistemul ANAF nu este un spațiu de stocare permanentă.

  • Ștergerea automată: Mesajele și documentele (inclusiv facturile din e-Factura) sunt păstrate în SPV pentru o perioadă limitată (de regulă 60 de zile).
  • Consecință: Dacă nu le descarci în acest interval, ele dispar din interfață și recuperarea lor devine un proces birocratic anevoios sau chiar imposibil prin metodele standard.

2. Valabilitatea Juridică și Fiscală

Conform legislației din România (Codul Fiscal), documentul original care stă la baza deducerii TVA și a cheltuielilor este fișierul XML însoțit de sigiliul electronic al Ministerului Finanțelor.

  • Proba în caz de control: În fața inspectorilor ANAF, simpla vizualizare a facturii în portal nu este suficientă. Trebuie să poți prezenta fișierul descărcat care conține semnătura electronică ce atestă autenticitatea.
  • Arhivarea obligatorie: Firmele sunt obligate prin lege să arhiveze documentele contabile pe termene lungi (de regulă 10 ani). Deoarece SPV le șterge după 60 de zile, sarcina arhivării îți revine exclusiv ție.

3. Integrarea în Contabilitate

Majoritatea programelor de contabilitate au nevoie de fișierele XML descărcate pentru a automatiza procesele.

  • Fără descărcare, datele trebuie introduse manual, ceea ce crește riscul de erori umane.
  • Descărcarea permite corelarea rapidă între plățile efectuate și facturile primite.

Ce trebuie descărcat?

Nu este suficient să salvezi doar PDF-ul (care este doar o reprezentare vizuală). Trebuie să salvezi:

  1. Fișierul XML: Acesta este documentul „rege" din punct de vedere legal.
  2. Recipisa (Semnătura electronică): Fișierul care confirmă că XML-ul a fost validat de sistemul ANAF.

Table of contents

Configuration

Changelog

19.0.2.7.0 (2026-07-28)

  • The product can now be corrected on a bill line imported from SPV without losing the data received from the supplier: the description and the unit price read from the XML are kept when a different product is selected. Previously the description was overwritten with the product name as soon as the product changed on bills fetched by the standard l10n_ro_edi SPV import (those bills carry l10n_ro_edi_index, not l10n_ro_edi_download, so the former guard did not apply to them).
  • The guard is now evaluated per line instead of per bill: lines added by hand on an SPV bill are filled in from the product as usual, while the imported lines keep their SPV values.
  • The vendor item code received from SPV is available as an optional column on the bill lines, so the user can see what the supplier invoiced while correcting the product.

19.0.2.1.2 (2026-07-09)

  • Fixed duplicate vendor bills when a bill already exists in Odoo (e.g. created from a purchase order) and is still in draft when the matching invoice is later downloaded from SPV: the deduplication search used to only match posted invoices, so a draft bill with the same reference and vendor was never found, and a second draft bill was created for the same document. The search now matches any non-cancelled invoice.

19.0.2.1.1 (2026-07-05)

  • Clicking "Download embedded PDF" when the invoice XML has no embedded PDF now raises a user-friendly error instead of navigating to a raw 404 page.
  • The form view no longer shows the derived attachment fields (ZIP, XML, ANAF PDF, embedded PDF) with their file names, since those are only materialized on demand and often have no name to display. The four download actions are now buttons with suggestive icons in the form header instead.

19.0.2.0.0 (2026-07-02)

Storage optimization: the signed ANAF ZIP is now the only file stored per SPV message.

  • The XML extracted from the ZIP is no longer stored as a separate attachment at download time; the message metadata (reference, amount, invoice date, currency) is parsed in memory.
  • attachment_xml_id, attachment_anaf_pdf_id and attachment_embedded_pdf_id became non-stored computed fields that expose the files materialized on the linked invoice.
  • The XML is created once, directly on the vendor bill, when the invoice is created from the message; the PDF embedded in the XML is attached once on the bill as its preview (main attachment).
  • The ANAF PDF and the embedded PDF are no longer persisted per message: the download buttons stream them on the fly, derived from the ZIP, via the new /l10n_ro/message_spv/<id>/{xml,anaf_pdf,embedded_pdf} routes.
  • Migration: derived attachments of messages linked to an invoice are relinked to the invoice; those of messages without an invoice are deleted (they can be re-extracted from the ZIP), reclaiming the duplicated filestore space.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Terrabit

Contributors

  • Terrabit:
    • Dorin Hongu <<dhongu@gmail.com>>

Do not contact contributors directly about support or help with technical issues.

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

dhongu

This module is part of the OCA/l10n-romania project on GitHub.

You are welcome to contribute. To learn how please visit <https://odoo-community.org/page/Contribute>.