> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qonto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# E-invoicing via API

> How to send and receive electronic invoices through Qonto's API

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](https://www.boutique.afnor.org/fr-fr/norme/xp-z12013/api-pour-interfacer-les-systemes-dinformations-des-entreprises-avec-les-pla/fa212532/444702). 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.

| What you want to do | Qonto API |
| - | - |
| Send invoices to clients through the e-invoicing network | [`POST /v2/client_invoices/{id}/send_by_einvoice`](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/send-a-client-invoice-by-e-invoice) |
| Receive invoices from suppliers | [`GET /v2/supplier_invoices`](https://docs.qonto.com/api-reference/business-api/spend-management/supplier-invoices/list-supplier-invoices) |
| Import invoices generated in your own tool (Factur-X, UBL, CII) | [`POST /v2/client_invoices/bulk`](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/bulk-import-client-invoices) |
| Track invoice lifecycle and status | [`GET /v2/client_invoices/{id}`](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/retrieve-a-client-invoice) |
| Generate Factur-X invoices directly on Qonto | [Factur-X guide](https://docs.qonto.com/guides/use-cases/generate-factur-x-invoice.md) |
| Check your e-invoicing settings | [`GET /v2/einvoicing/settings`](https://docs.qonto.com/api-reference/business-api/invoicing/e-invoicing-settings/retrieve-settings) |

> [!NOTE]
>
> `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](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/send-a-client-invoice-by-e-invoice.md) 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`](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/bulk-import-client-invoices) to register it and obtain a `client_invoice_id`
2. **Send it via e-invoicing** via [`POST /v2/client_invoices/{id}/send_by_einvoice`](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/send-a-client-invoice-by-e-invoice).  Qonto routes it to the recipient's platform
3. **Track delivery** by polling [`GET /v2/client_invoices/{id}`](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/retrieve-a-client-invoice) for status updates

This is the [PA as a Service](https://docs.qonto.com/partnerships/plateforme-agreee-as-a-service.md) flow. Your users keep generating invoices in your tool.  Qonto handles the network routing.

## French specificity

> [!TIP]
>
> **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](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/send-a-client-invoice-by-e-invoice.md), use one of these flows:

> **Flow 1 — Invoices created in Qonto**
>
> 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](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/mark-a-client-invoice-as-paid.md), [Unmark it as paid](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/unmark-a-client-invoice-as-paid.md), etc.

> **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 importing it into Qonto while preserving your original Factur-X file:
>
> 1. Generate the invoice in the [Factur-X format](https://docs.qonto.com/guides/invoicing/factur-x.md), including the correct **`.xml`** file
> 2. [Import the invoice into Qonto](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/bulk-import-client-invoices.md) 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](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/mark-a-client-invoice-as-paid.md), [Unmark it as paid](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/unmark-a-client-invoice-as-paid.md), 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](https://docs.qonto.com/guides/use-cases/generate-factur-x-invoice.md)**
>
> Full walkthrough with Python and Node.js code examples.

> **[PA as a Service](https://docs.qonto.com/partnerships/plateforme-agreee-as-a-service.md)**
>
> Use Qonto as a transmission platform for your own invoicing tool.

> **[Factur-X reference](https://docs.qonto.com/guides/invoicing/factur-x.md)**
>
> How Factur-X PDF generation works on Qonto.

## Related endpoints

* [Send a client invoice via e-invoice](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/send-a-client-invoice-by-e-invoice.md)
* [Import client invoices in bulk](https://docs.qonto.com/api-reference/business-api/invoicing/client-invoices/bulk-import-client-invoices.md)
* [Get e-invoicing settings](https://docs.qonto.com/api-reference/business-api/invoicing/e-invoicing-settings/retrieve-settings.md)
