What every option has to do
Whichever route you take, the obligations are the same. What changes is who does each step, and how many times the same data is typed in.
- The invoice is issued as an XML file on the European standard EN 16931, with the Romanian rules known as RO_CIUS (Ministry of Finance guide, 2024).
- It is transmitted within 5 working days of the invoice date, and no later than 5 working days after the legal deadline for issuing it (OUG 120/2021, art. 10(7), text checked on 17 October 2026).
- The system's response is checked: a validated invoice or an error message. XML files and error messages can be downloaded for 60 days, then they are archived and released on request.
- Invoices received from suppliers are downloaded from the system too, within the same 60 days.
- A B2B invoice that does not go through the system carries a fine equal to 15% of its total (OUG 120/2021, art. 13^2).
The rules have changed many times since 2021. Read the list as a summary, not as legal advice, and confirm the current text with your accountant. The full path of an invoice through a company is in our article on invoice process automation with e-Factura.
The real options, from free to your own integration
The Ministry of Finance guide describes two technical routes: web upload, using the ministry's free app, and web services, meaning your own application connected to the system through the API. The four options a company actually has are built on those two.
| Option | How it works | Who it suits |
|---|---|---|
| The Ministry of Finance's free app plus SPV | You fill in a web form, generate the XML, check it with the free validation tool and upload it from the company's SPV account (Spațiul Privat Virtual), signed in with a digital certificate | A handful of invoices a month |
| A SaaS invoicing app (SmartBill or Oblio, for example) | You issue the invoice in the app, which transmits it to e-Factura and brings back the response | Companies that issue invoices in one place |
| The e-Factura module of your accounting software or ERP | The software you already run generates and transmits the XML | Companies whose software already has the module and is the only source of invoices |
| Your own integration from the ERP through the API | A service built for your company takes the invoice from the ERP, validates it, sends it through the API, tracks the response and downloads the invoices you receive | High volumes, several systems, company-specific rules |
Companies of 10 to 250 people usually end up choosing between a SaaS app and their own integration, so those are the two we compare below. If your ERP already has an e-Factura module that works well, check it first: most of the time it is the simplest option.
The decision table
| Criterion | SaaS invoicing app | Your own integration from the ERP |
|---|---|---|
| Invoice volume | Low or moderate, issued by a few people | High or growing, generated from orders or contracts |
| Systems that create invoices | One: the app itself | Several: ERP, online shop, subscription system, CRM |
| ERP in place | None, or it is not where invoices start | Yes, and it holds orders, stock and prices |
| Who fixes errors | Whoever issued the invoice, in the app, if they see the error in time | The error reaches the owner automatically, with the reason; a wrong rule is fixed once, in the ERP |
| Cost | A monthly subscription, no build | A one-time build, plus maintenance and renewing API access |
| Time to start | Days: account, SPV connection, master data | Weeks: diagnosis, build, a parallel run next to today's invoicing |
| Where the data lives | In the app, separate from the ERP unless you connect them | In the ERP, where the invoice starts and stays |
| What you depend on | The app vendor and the features it offers | Your integration, which must be documented and maintained |
A rule of thumb: if someone copies data from the ERP into the invoicing app, the real cost is not the subscription. It is the minutes of copying, and the typing errors that reach your customers.
When a SaaS app is enough
- Invoices are issued in one place, by one or two people.
- There is no ERP, or the ERP is not where invoices start.
- Invoices are ordinary: the same products or services, few credit notes, no special calculation rules.
- Your accountant already works in the app and takes the data from it.
- You need to be compliant with e-Factura this week, not next month.
In these cases your own integration would cost more than it saves. Pick the app, clean up the master data (customers, products, VAT rates) and decide who checks the e-Factura responses every day.
When your own integration pays
- Invoices start in the ERP or in several systems, and today someone copies them into an invoicing app.
- Volume is growing and copying has become a full-time job, or a large part of one.
- You have rules a standard app does not cover: recurring invoices from contracts, partial credit notes, several companies in one group.
- You want e-Factura errors to reach the right person the same day, not sit in a list someone opens once a week.
- You want received invoices to flow into accounting automatically and be matched to orders.
There is a middle path. Keep the SaaS app and feed it automatically from the ERP through the app's own API, if it has one. That is still an integration, but a smaller one, and transmission to the tax authority stays with the app.
What your own integration involves
Access to the RO e-Factura API is authorized through OAuth 2.0. Sign-in uses the qualified digital certificate of a person registered in SPV with rights for the company: legal representative, designated representative or authorized person. The access token is valid for 90 days and the refresh token for 365 days (ANAF, OAuth application registration procedure). In practice, access is tied to one person and their certificate. When that person leaves or the certificate expires, access has to be moved, or invoices stop going out.
- Generate the XML from the ERP data, following the RO_CIUS rules.
- Validate the file before sending, so simple errors never reach the tax authority.
- Send the invoice through the API and keep the upload index the system returns.
- Check the status and download the response: a validated invoice or an error message.
- Route every error, with its reason, to the person who can fix it, the same day.
- Download received invoices before the 60 days run out.
- Archive the XML files carrying the Ministry of Finance seal, searchable by number, partner and date.
- Get an alert before API access expires.
This is the flow we build in e-invoicing automation straight from the ERP, with validation rules written down and approved by your accountant.
A simple calculation for the decision
This is an estimate, not a client result. Say a company issues 600 invoices a month from orders held in the ERP, and someone copies each one into the invoicing app in 3 minutes. That is 1,800 minutes, or 30 hours a month. At a loaded cost of 50 lei an hour, copying costs 1,500 lei a month on top of the subscription. At 60 invoices a month the same copying costs 150 lei, too little to justify an integration.
The formula is the same at any volume. The monthly saving is the copying time avoided times the hourly cost, plus any subscription you drop, minus the integration's maintenance. Months to break even are the build cost divided by the monthly saving. Time the copying over a few real days before you do the sum.
Who is responsible when an invoice is rejected or late
Under every option, the obligation to transmit and the fines stay with the company that issues the invoice. The app or the integration only does the sending. The practical difference is where the error lands. In a SaaS app, whoever logs in sees it. In a well-built integration it reaches the person who can fix it, with the reason written out, and if the cause is a wrong rule, the rule is fixed once in the ERP rather than on every invoice.
Steps to decide
- Count the invoices you issue each month and note which systems they start in.
- Check whether your accounting software or ERP already has an e-Factura module, and who uses it.
- Time how long it takes today to copy one invoice from one system into another.
- Find out who receives e-Factura errors today, and how long they take to get there.
- Run the calculation above with your own numbers.
- If the answer is still unclear, start with The Diagnosis: we map the invoice's path through the company and put both options, with their costs, on the table.
Documents that do not come through e-Factura, such as invoices from foreign suppliers, receipts or scanned delivery notes, take a different route: AI document processing for invoices and other documents. What it costs and when it pays back is in how much automatic invoice reading costs.
Summary
- Every option has to issue XML on EN 16931 and RO_CIUS, transmit within 5 working days and check the system's response.
- A SaaS app is enough when invoices are issued in one place at low or moderate volume, and it starts in days.
- Your own integration pays when invoices start in the ERP or in several systems and copying them costs more than the build.
- API access uses the qualified digital certificate of a person with SPV rights, and it has to be renewed.
- Responsibility for transmission stays with the issuing company under every option.




