Skip to main content
Qonto is a certified Plateforme Agréée (PA) in France’s e-invoicing network. You can send invoices to clients, receive invoices from suppliers, and generate Factur-X-compliant documents . all through our API.

Does Qonto support AFNOR XP Z12-013?

Qonto’s API does not follow the AFNOR XP Z12-013 standard. However, it covers the same e-invoicing use cases. The only difference is that it is Qonto-specific rather than following the AFNOR interoperability standard.
sending_status reports whether e-invoicing is activated on the organization. For French organizations it does not cover the Annuaire registration, which is also required to send — see Send a client invoice via e-invoice for the full list of prerequisites and the errors they produce.

I generate Factur-X invoices in my own tool: how do I send them through Qonto?

If you already produce structured invoices (Factur-X, UBL 2.1, or CII) and want Qonto to handle transmission through the e-invoicing network:
  1. Import the invoice via POST /v2/client_invoices/bulk to register it and obtain a client_invoice_id
  2. Send it via e-invoicing via POST /v2/client_invoices/{id}/send_by_einvoice. Qonto routes it to the recipient’s platform
  3. Track delivery by polling GET /v2/client_invoices/{id} for status updates
This is the PA as a Service flow. Your users keep generating invoices in your tool. Qonto handles the network routing.

French specificity

French specificity: For French organizations and partners, e-invoice refers to using Qonto’s Plateforme Agréée (also referred to as “PA”)

E-invoicing API flows

To send an invoice with Send a client invoice via e-invoice, use one of these flows:
  1. Create a client invoice in Qonto
  2. Send it via e-invoice using the endpoint POST /v2/client_invoices/{id}/send_by_einvoice
  3. Use the Qonto invoice id to track its lifecycle (einvoicing_lifecycle_events) and Mark it as paid, Unmark it as paid, etc.
This flow lets you send an invoice initially generated with a third-party invoicing tool via e-invoice, by importing it into Qonto while preserving your original Factur-X file:
  1. Generate the invoice in the Factur-X format, including the correct .xml file
  2. Import the invoice into Qonto using POST /v2/client_invoices/bulk — this preserves your original file and returns a Qonto invoice id
  3. Send the invoice via e-invoice using the endpoint POST /v2/client_invoices/{id}/send_by_einvoice
  4. Use the Qonto invoice id to track its lifecycle (einvoicing_lifecycle_events) and Mark it as paid, Unmark it as paid, etc.

Track the e-invoice lifecycle

Track downstream steps on the invoice via einvoicing_lifecycle_events. The status_code values follow the platform’s lifecycle; a typical sequence is:
  1. 200 — Submitted (deposited for e-invoicing)
  2. 201 — Issued by the platform (released into the network)
  3. 202 — Received from the platform (the receiving platform acknowledges receipt from the sender), when applicable
There is no separate lifecycle-only endpoint. Use Retrieve a client invoice (GET /v2/client_invoices/{id}): the client_invoice object includes einvoicing_lifecycle_events (each event has a lifecycle status_code—for example 201 for Issued by the platform when that milestone is recorded) and einvoicing_status. Client invoice webhooks support updated (and created) events; treat them as a signal to fetch the invoice again if you need the latest lifecycle list. The documented webhook payload includes einvoicing_status but not the full einvoicing_lifecycle_events array.

Where to go next

Generate a Factur-X invoice

Full walkthrough with Python and Node.js code examples.

PA as a Service

Use Qonto as a transmission platform for your own invoicing tool.

Factur-X reference

How Factur-X PDF generation works on Qonto.