Skip to main content

Register suppliers

Supplier registration guide ›

Issue invoices

Issuing guide ›

Receive invoices

Receiving guide ›
RO e-Factura is Romania’s mandatory national e-invoicing system, run by the Ministry of Finance and the tax authority, ANAF (Agenția Națională de Administrare Fiscală). Businesses reach it through the API or through SPV (Spațiul Privat Virtual), ANAF’s online portal.Electronic invoicing in Romania operates on a clearance model: every B2B invoice in scope must be uploaded to RO e-Factura within 5 working days of issue, and B2C invoices are reported the same way. The platform validates each invoice, seals it with the Ministry of Finance signature and makes it available to the buyer in SPV. The sealed XML is the legal invoice.Invoices are encoded in UBL 2.1 following CIUS-RO, the Romanian profile of EN 16931. Invopop authorizes on behalf of each party through ANAF’s OAuth flow, so the party’s digital certificate never leaves its owner.Key features
  • Workflow automation: Automated workflows for registering parties, sending invoices, and importing received invoices through RO e-Factura.
  • Party registration: Register a party with its Romanian tax ID (CIF). The certificate holder accepts the terms and authorizes Invopop once on ANAF’s site, from a link stored in the party’s meta. Partners can show and accept the terms in their own interface through the API.
  • Authorization renewal: ANAF authorizations last one year. Invopop renews access in the background during that year. Notifications before the party has to register again are in development.
  • CIUS-RO XML generation: Compliant UBL 2.1 generation for invoices, credit notes, corrective, self-billed and accounting invoices, checked against the official ANAF schematron before upload.
  • Clearance tracking: Invopop waits for ANAF’s decision on each upload and attaches the official XML returned by ANAF to the invoice.
  • Automatic routing: B2B, B2C, self-billed and enforcement uploads are picked from the invoice itself, with no configuration.
  • Invoice import & sync: Periodically fetch invoices received in SPV and import them into Invopop in GOBL format.
Sandbox and live environmentsInvopop sandbox workspaces send every invoice to ANAF’s test environment, where documents have no fiscal value. Live workspaces send to ANAF’s production environment.
Check out the guides below to get started:

FAQ

Invoicing questions
UBL 2.1 in the Romanian profile of EN 16931, called CIUS-RO (version 1.0.1). RO e-Factura also accepts CII (D16B). The platform checks the invoice against the EN 16931 rules and the national BR-RO rules.
No. The legal invoice is the XML file that the Ministry of Finance seals after validation. A PDF has no legal value, but you can give one to your customer as a readable copy.
You cannot cancel a sealed invoice. Issue a credit note (type 381) or a corrective invoice (type 384) that references the original invoice.
No. The platform statuses show only whether the invoice passed validation. The buyer settles a dispute directly with the supplier, and the supplier corrects the invoice with a new document.
Since 1 August 2025, the standard rate is 21% and the reduced rate is 11%. If an invoice is in another currency, the VAT amounts must also show in RON.
For 60 days. After that, ANAF archives the files, and a copy is available only on request. Keep your own copy of each sealed invoice.
Yes. The buyer issues the invoice in the supplier’s name, with type code 389.
Invoices that declare the ro-efactura-v1 addon: standard invoices (380), invoices for accounting purposes (751, with the accounting tag), self-billed invoices (389, with the self-billed tag), credit notes (381) and corrective invoices (384).
Usually a few minutes. After the upload, the Send e-Factura XML to ANAF step waits and checks the upload status until ANAF answers ok or nok. The job finishes when ANAF has decided.
When ANAF accepts the invoice, Invopop attaches the official XML returned by ANAF to the invoice entry as anaf-efactura.xml, next to the generated efactura.xml. The archive is also kept in Invopop’s database.
The job fails with the errors ANAF returned. Correct the invoice and run the workflow again; a rejected invoice can be sent again.
No. Invopop never uploads an accepted invoice twice. To change an accepted invoice, issue a credit note or a corrective invoice that references it.
Invopop picks the ANAF upload options from the invoice itself. An invoice to a customer without a tax ID goes to the B2C endpoint, and a self-billed invoice is uploaded with the customer’s CIF and flagged as autofactura. No workflow configuration is needed.
Registering supplier questions
A Romanian tax ID (CIF) and a qualified digital certificate of a person with access to the company’s SPV (Spațiul Privat Virtual) as legal representative or authorized person. The certificate holder opens the registration link, accepts the terms and authorizes Invopop on ANAF’s site. Invopop never sees or stores the certificate.
Yes. An accountant or representative with SPV rights for several companies can use the same certificate for all of them, but each company is a separate party in Invopop. Run the registration workflow and complete the authorization once per party.
Yes. If you register parties for your own customers, fetch the terms with GET /apps/gov-ro/v1/entry/{silo_entry_id}/terms, show them in your own interface and record your customer’s acceptance with POST on the same path. The response carries the ANAF link to send to the certificate holder. See the white label registration flow.
Invopop records the acceptance together with the exact terms accepted and when, whether they were accepted on the registration page or through the API. Nothing is stored on the party entry. The terms are accepted on every registration, including a renewal.
Common reasons:
  • Wrong certificate: the certificate chosen in the browser does not belong to a person with SPV rights for the company’s CIF.
  • SPV rights missing: the certificate holder is not registered in SPV as legal representative or authorized person of the company.
  • Party not Romanian: the party’s tax_id country must be RO.
  • Terms not accepted: the ANAF authorization only goes through once the terms have been accepted.
  • Registration expired: the terms of a registration can only be accepted while it is open. One left unaccepted for 32 days shows registration expired, register the party again: run the registration workflow again and use the new link.
After fixing the cause, open the same registration link again.
The page shown at the end of the authorization tells whether it succeeded, and shows the error otherwise. The workflow error logs in the Invopop Console have more detail.
One year. Invopop renews access automatically during that year, after which the party has to complete the registration again. Notifications before the deadline are in development and will soon be supported through the app configuration.
Yes. In an Invopop sandbox workspace, every call goes to ANAF’s test environment, so invoices sent there have no fiscal value. The registration still uses a real digital certificate, since ANAF authenticates the same way in both environments.
Run the RO unregister party workflow on the party. It removes the ANAF authorization from Invopop and unsubscribes the party from periodic sync. To receive again, run the registration workflow again.
Receiving questions
Invoices other companies issued to the registered party and that ANAF made available in its SPV, from the moment the party completed registration. Invoices received before registration are not imported.
No. The RO sync received invoices workflow creates one import job per received invoice, using the workflow set as Import Workflow in its Receive all new invoices from RO e-Factura step. Don’t run the import workflow directly.
Each sync picks up from where the last successful one finished, so no invoice is missed. ANAF keeps messages for 60 days, so a party that stops syncing for longer loses the older ones.
The ANAF archive is kept in Invopop’s database, and a new invoice entry is created in the silo with the invoice converted to GOBL. The workflow then sets the folder and state, typically Invoices · Expenses and Registered.
More answers in our Romania FAQ section

Participate in our community

Ask and answer questions about the Romania app →