Introduction
RO e-Factura is Romania’s mandatory national e-invoicing system, run by the Ministry of Finance and ANAF, the Romanian tax authority. Before you can send or receive invoices through RO e-Factura on behalf of a party (supplier), the party must authorize Invopop with ANAF. Authorization uses ANAF’s OAuth flow. Invopop generates a registration link, and a person with rights for the company in SPV (Spațiul Privat Virtual), ANAF’s online portal, opens it, accepts the terms and signs in on ANAF’s site with their qualified digital certificate. Certificates belong to people, not companies: ANAF grants the access that the certificate holder has in SPV. The certificate never leaves its owner: Invopop only receives the access ANAF grants, valid for one year.- Walk you through the process of creating the workflows necessary to register your own company and/or your customers’ parties (in a white label setup) using the Romania app,
- Explain how the certificate holder accepts the terms and authorizes Invopop on ANAF’s site, and
- Explain how to renew or revoke the authorization.
Prerequisites
To register a party with RO e-Factura, you will need:- The party’s Romanian tax ID (CIF), entered as the party’s
tax_idwith countryRO. - A qualified digital certificate of a person registered in SPV as legal representative, designated representative or authorized person (împuternicit) of the company, installed in the browser used to open the registration link.
- An active SPV enrolment for the company. If the certificate holder isn’t enrolled in SPV for the company yet, they must complete ANAF’s SPV registration first. ANAF can take several days to approve it.
- The Cron app, if you want to receive invoices. The registration workflow subscribes the party to the periodic sync of received invoices.
Setup
All of the following steps must be carried out from the Invopop Console.Connect the Romania app
- Navigate to Configuration → Apps
- Find Romania in the app discovery list
- Click Connect to activate

Connect the Cron app
- Navigate to Configuration → Apps
- Find Cron in the app discovery list
- Click Connect to activate
Configure the party registration workflow
- Set state to Processing.
- Register with ANAF generates the registration link and stores it in the party’s Meta section.
- Wait ANAF link registration pauses the workflow until the certificate holder accepts the terms and completes the authorization.
- Set state to Registered.
- Subscribe to periodic execution subscribes the party to the sync workflow through the Cron app.
tax_id isn’t Romanian or ANAF turns the registration down, the job ends with a KO and the error branch runs Set state to Error. Fix the cause and run the workflow again: a party can be registered again at any time.The Subscribe to periodic execution step needs the RO sync received invoices workflow, created in the receiving invoices guide. Select it in the step, along with how often the sync should run.
- Workflow
- Code
Register a supplier
Create the party
folder to suppliers so it appears in that section. Or, in the Invopop Console, navigate to Parties → Suppliers and click + New Supplier.Use the company’s Romanian CIF and address. The county goes in state as its ISO 3166-2:RO code (B for Bucharest) and, in Bucharest, the sector goes in locality:Empty state.Run the workflow
- Via API: send the party to the registration workflow with the Create a job endpoint, using the IDs of the silo entry and the RO register party workflow.
- Via Console: in the party entry, click Select Workflow, choose your RO register party workflow, and click Run Workflow.

- To cancel the registration, cancel the job.
- To restart the registration, run the RO register party workflow again.
Get the registration link
- Your own company
- Third-party companies

Accept the terms

Authorize Invopop on ANAF's site
-
The browser asks which certificate to use. Choose the certificate registered in SPV for the company.

-
ANAF signs in with the certificate and sends the browser straight back to Invopop, which shows the result:
-
✓ Registration Successful: the window can be closed.

-
× Registration could not be completed: the page shows the error. Fix the cause and open the same link again.

-
✓ Registration Successful: the window can be closed.
Registration completes

White label registration
If you register parties for your own customers (white label), you can show the terms in your own interface and send the certificate holder straight to ANAF. Call the endpoints in this order, with your workspace’s API token:Create the party
Run the registration workflow
Show the terms to your customer
Record the acceptance
Send the ANAF link
link to the certificate holder, who signs in on ANAF’s site with their certificate. To fetch the link again later, use Fetch ANAF link.Wait for the registration
/terms endpoints answer 409 if the Register with ANAF step hasn’t run for the party, and the link endpoint answers 409 until the terms are accepted.Renew the authorization
ANAF authorizations last one year. To renew one, run the RO register party workflow again on the same party entry and complete the authorization with the certificate. The party keeps its history and received invoices continue from where they stopped. Terms already accepted carry over, so the link goes straight to ANAF unless the terms have changed since.Unregister a supplier
Unregistering a party revokes Invopop’s access to ANAF on its behalf. You might need to do so because the party is no longer your customer or because of a change in their CIF. The following workflow unregisters the party from RO e-Factura, removes the ANAF credentials stored in Invopop and stops the periodic sync:- Workflow
- Code
Legal information
RO e-Factura connection terms
RO e-Factura connection terms
FAQ
What does a party need to register with RO e-Factura?
What does a party need to register with RO e-Factura?
Can one person register several companies?
Can one person register several companies?
Where do I find the registration link?
Where do I find the registration link?
link key. It opens the terms first and then continues to ANAF. The workflow waits on the Wait ANAF link registration step until the certificate holder completes the authorization, and the link is removed once the party is registered.Can I show the terms in my own interface?
Can I show the terms in my own interface?
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.Where is the acceptance of the terms stored?
Where is the acceptance of the terms stored?
Why did my party registration fail?
Why did my party registration fail?
- 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_idcountry must beRO. - 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.
Can I test with the sandbox?
Can I test with the sandbox?
How do I stop sending and receiving for a party?
How do I stop sending and receiving for a party?
🇷🇴 Invopop resources for Romania
🇷🇴 Invopop resources for Romania