Send a client invoice via e-invoice
OAuth scope: client_invoice.write
Sends the client invoice identified by the id path parameter via e-invoice.
Eligibility (prerequisites)
- The client on the invoice must be reachable on the e-invoicing network:
e_invoicing_reachableon the client (from Retrieve a client or List clients) must betrue. If it isfalse, do not call this endpoint, use Send a client invoice via email instead. - The client invoice must also not already have been submitted for e-invoice. If a send was already requested, calling this endpoint again completes successfully and does not resubmit the invoice.
Processing (asynchronous)
Relative to the e-invoicing network, delivery is asynchronous. A 204 means the request was accepted for processing, not that the invoice was fully delivered or issued on the network. The client invoice status does not change when you call this endpoint.
Tracking and observability
Track downstream steps on the invoice via einvoicing_lifecycle_events. The status_code values follow the platform’s lifecycle; a typical sequence is:
- 200 — Submitted (deposited for e-invoicing)
- 201 — Issued by the platform (released into the network)
- 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.
E-invoicing API flows
Flow 1 — Invoices created in Qonto
Flow 1 — Invoices created in Qonto
- Create a client invoice in Qonto
- Send it via e-invoice using the endpoint
POST /v2/client_invoices/{id}/send_by_einvoice - Use the Qonto invoice
idto track its lifecycle (einvoicing_lifecycle_events) and Mark is as paid, Unmark it as paid, etc.
Flow 2 — Invoices created in a third-party invoicing tool
Flow 2 — Invoices created in a third-party invoicing tool
This flow lets you send an invoice initially generated with a third-party invoicing tool via e-invoice, by first importing and creating it into Qonto:
- Generate the invoice in the Factur-X format, including the correct
.xmlfile - Create an invoice upload in Qonto
- Qonto automatically creates a client invoice and assigns a Qonto invoice
id - Send the invoice via e-invoice using the endpoint
POST /v2/client_invoices/{id}/send_by_einvoice - Use the Qonto invoice
idto track its lifecycle (einvoicing_lifecycle_events) and Mark is as paid, Unmark it as paid, etc.
Environment limitations
The e-invoicing flow is only available in the production environment. Sandbox does not support e-invoicing, as the underlying e-invoicing network operates exclusively in production - this is a platform-level constraint.
Errors
412 Precondition Failed is returned when the invoice cannot be sent via e-invoice—for example, invalid data, the recipient not being reachable on the e-invoicing network, or another unmet precondition.
Authorizations
Bearer authorization header: Bearer <token>, where <token> is the access token received from the authorization server at the end of the OAuth 2.0 flow.
Headers
Required only for Sandbox API requests; to get one, please sign up to the Developer Portal.
Path Parameters
The ID of the client invoice to send
Response
Request accepted for processing; e-invoice flow continues asynchronously