

Plugin settings: the state of the link with the service — company, environment, ANAF authorisation, series and invoices left this month.
Your shop receives an order and the invoice appears on its own: numbered from the company’s series, carrying the order’s VAT, filed with ANAF through RO e-Factura (SPV) and sent to the customer by e-mail. Nothing has to be copied by hand from one system into another.
Quick setup. Paste an API key, choose the order status that triggers issuing, and that’s it — three steps, no XML to configure and no digital certificate to install. The settings screen shows you at a glance the company tied to the key, the environment (test or production), whether the ANAF authorisation is valid, and how many invoices you have left this month.
The plugin does not generate invoices itself and does not talk to ANAF directly. It sends the order to the invoicing service facturare.completez.ro, which assigns the number from the series, builds the UBL 2.1 XML according to CIUS-RO and files it with the Romanian tax authority’s SPV. The result: an invoice issued from the shop looks exactly like one issued from the service, and numbering stays a single series — not two sources overwriting each other.
RO e-Factura is Romania’s national electronic invoicing system, mandatory for business transactions. This plugin is the bridge between your WooCommerce shop and that obligation.
Completez E-Invoicing is an independent product by Completez. It is not affiliated with, endorsed or sponsored by WooCommerce, Automattic or ANAF (the Romanian tax administration). WooCommerce is a trademark of Automattic Inc.; RO e-Factura and SPV are public services of ANAF, named here only to describe what the plugin connects to.
Issuing does not happen during checkout. A call that includes filing with ANAF can take seconds, and ANAF does go down now and then; placed at payment completion, it would keep the customer on the processing page and, on a timeout, throw an error over an order that was already paid.
That is why the order enters the WooCommerce queue (Action Scheduler) and goes out right after. If issuing fails, the plugin retries on its own, with growing pauses (2 minutes to 12 hours, six attempts). Errors that a retry cannot fix — an incomplete address, a wrong key — stop on the first try, with the reason written into the order note.
The same order never receives two invoices: every request carries a unique identifier (wc_order_1024), and the service returns the invoice already issued instead of making another.
The things that, in practice, decide whether an invoice is accepted or rejected:
An account on facturare.completez.ro with the company authorised at ANAF, and an API key with write permission, created under Integrations.
The plugin sends order data to facturare.completez.ro, the service that issues the invoice and files it with ANAF. Without this service, the plugin has nothing to do.
What is sent, when an invoice is issued: the customer’s billing data (name or company name, tax ID if present, address, locality, county, country, e-mail, phone), the order lines (names, quantities, prices, VAT rates), shipping, fees, currency, payment method, the order number and date, plus an internal identifier of the order and of the customer.
When it is sent: when the invoice is issued (automatically, at the configured status, or manually from the order), when a filing is retried, on a credit note, and when fetching the PDF.
The data reaches ANAF as part of the electronic invoice, under the legal reporting obligation (RO e-Factura).
Service: facturare.completez.ro · API documentation
Terms: facturare.completez.ro/termeni · Privacy: facturare.completez.ro/privacy