e-invoicing

Compliance Network Implementation Guide

Lifecycle and use cases

France's e-invoicing reform mandates lifecycle statuses that must be exchanged between trading partners and, for some statuses, reported to the tax authority.

This obligation goes well beyond what is required in other e-invoicing markets. Understanding it is central to a compliant implementation.

The two phases

France's invoice lifecycle has two phases: a delivery phase and a treatment phase:

Delivery phase

The delivery phase covers the act of sending an invoice from the seller's platform to the buyer's platform. This phase covers events initiated by the Plateforme Agréée (PA), which report the delivery of an invoice or credit note moving from the seller through the seller's PA and buyer's PA to the buyer. The PAs set all statuses in this phase automatically.

French code SCICloudStatusCode Who sets it Required to PPF Notes
200 — Déposée (Submitted) 102 Seller's PA (Sovos) Yes Invoice validated and transmitted. Primary submission confirmation. The Plateforme de Dématérialisation Partenaire (PPF) has received the invoice.
201 — Émise par la plateforme (Issued) 204 Seller's PA (Sovos) No Sovos has forwarded the invoice to the buyer's PA.
202 — Reçue par la plateforme (Received) 214 Buyer's PA No Buyer's PA confirmed receipt.
203 — Mise à disposition (Made available) 215 Buyer's PA No Invoice delivered to the buyer.
213 — Rejetée (Rejected) 401 Seller's or buyer's PA Yes Invoice rejected during functional validation. See Send invoices for full remediation guidance.
221—Erreur_Routage/RoutingError 409 Seller's PA (Sovos) Yes Sovos couldn't route the document to the intended recipient. Sovos generates and delivers a Cross Domain Acknowledgement and Response (CDAR) for this status.

204, 214, and 215 are optional. The buyer's PA isn't compelled to send them. The PPF doesn't receive them. Their absence doesn't indicate a problem.

Note:

Notifications with sciCloudStatusCode 102 and 204 (transmission lifecycles) have no attachments.

Treatment phase

The treatment phase covers business actions posted against an invoice after the buyer receives it. The buyer starts these actions:

  • Approving the invoice

  • Refusing the invoice

  • Disputing the invoice

  • Suspending the invoice

Some actions require a later response from the seller. Buyers and sellers submit treatment-phase statuses as SBDs. See Lifecycle status body for the submission format.

French code SCICloudStatusCode Who initiates it Required to PPF Notes
204 — Prise en charge (Acknowledged) 216 Buyer No
205 — Approuvée (Approved) 203 Buyer No
206 — Approuvée partiellement (Partially approved) 217 Buyer No May give rise to a credit note.
207 — En litige (Disputed) 218 Buyer No
208 — Suspendue (Suspended) 219 Buyer No Seller must respond with Complétée plus supporting documents.
209 — Complétée (Completed) 206 Seller No Seller's response to Suspendue.
210 — Refusée (Refused) 405 Buyer Yes Reason code required. See Required statuses for details.
211 — Paiement transmis (Payment sent) 213 Buyer or seller No Optional. Useful for treasury matching.
212 — Encaissée (Payment received) 220 Seller Yes (conditions) Required when VAT due on collection. See Required statuses for details.

Required statuses

France's four required statuses have the most significant regulatory and accounting consequences. These are the first statuses you need to learn before deploying to production.
Note: For these four statuses (Déposée, Rejetée, Refusée, and Encaissée), Sovos forwards your submission to the PPF after its own validation passes. The PPF then performs a second validation and returns a response. This response arrives as a follow-up notification after you receive SCICloudStatusCode 204.

Submitted by the seller PA

SCICloudStatusCode 102, French Code 200 (Déposée)

Issued automatically by Sovos when the invoice passes validation and is transmitted. This is the primary confirmation that the invoice is in the system. The PPF has received a copy of the regulatory data (Flow 1), and the invoice is now a legal document. After this point, the invoice can't be corrected and resubmitted. Any correction requires canceling the original and issuing a new invoice.

See Send invoices for full detail.

Rejected by the seller PA or buyer PA

SCICloudStatusCode 401, French Code 213 (Rejetée)

Set by the seller's PA or the buyer's PA when functional validation fails. A rejection reason code is always included. Because Rejetée is required, it is reported to the PPF.

See Send invoices for full remediation guidance depending on which PA rejected and whether the PPF had already received the invoice.

Refused by the buyer

SCICloudStatusCode 405, French Code 210 (Refusée)

The buyer refuses the invoice or credit note in its entirety. A reason code is required. Because Refusée is required, it is reported to the PPF.

When a buyer sends Refusée, the seller must cancel the invoice in their accounting records by creating an internal credit note (avoir interne). This credit note is for accounting purposes only and must not be submitted to Sovos.

After the accounting entry is cancelled, the seller can issue a corrected invoice as a new document.

Payment received by the seller

SCICloudStatusCode 220, French Code 212 (Encaissée)

In France, VAT on services is due when payment is received by default, not at invoice date. Sellers can elect TVA sur débits (VAT on debit) to make VAT due at invoice date instead, which is the same rule that applies to goods.

Encaissée is required and reported to the PPF for the following scenarios:

  • Service invoices where the seller has not elected TVA sur débits.

  • Down payment invoices subject to the same VAT-on-collection rule.

Submit as soon as payment is reconciled. Encaissée does not apply to goods invoices, services where the seller has elected TVA sur débits, or intracommunity and reverse charge transactions.

The seller might optionally send Encaissée outside the mandatory scope to notify the buyer of payment receipt. In that case, it is transmitted to the buyer only, not to the PPF.

For a full overview of which transaction types require after-the-fact payment reporting compared to a lifecycle status, see E-reporting.

Seller cancels with corrective invoice (Annulée)

When a seller issues a corrective invoice that fully replaces a prior invoice, the original invoice's lifecycle is formally closed with an Annulée status. This status is not in the 200-213 reform code range. It is a specific treatment applied to the original invoice when its replacement is submitted.

What implementers must determine per client

Every France e-invoicing implementation requires a use case analysis. Answer these questions for every client before production deployment:

Which statuses will the client generate as a seller?
At a minimum: Encaissée (if applicable based on VAT regime and invoice type). Optionally: Complétée (if responding to buyer suspensions), Paiement transmis (if desired for treasury matching).
Which statuses will the client generate as a buyer?
At a minimum: Refusée (if rejecting invoices). Optionally: Prise en charge, Approuvée, Approuvée partiellement, En litige, Suspendue, Paiement transmis.
When must each status be triggered?
You should send Encaissée after reconciling the payment. All other treatment statuses should follow the business event promptly.

How to handle required and common statuses

SCICloudStatusCode 102 (Submitted / Déposée)
Invoice accepted and in transit. No action required, unless the status carries a NON_TRANSMISE reason code. In that case, verify that the buyer's electronic address is registered and active in the Annuaire before resubmitting.
SCICloudStatusCode 401 (Rejected / Rejetée)
As the seller, parse the reason code. See Send invoices for remediation based on which PA rejected.
SCICloudStatusCode 405 (Buyer refused / Refusée)
As the seller, create an internal credit note in your accounting records only. Don't submit it to Sovos. Issue a corrected invoice as a new document if the transaction is still valid.
SCICloudStatusCode 220 (Seller reports payment received / Encaissée)
As the buyer, reconcile against payment records.
SCICloudStatusCode 219 (Buyer is waiting for documents / Suspendue)
Buyer has placed the invoice on hold pending supporting documents. As the seller, respond with SCICloudStatusCode 206 (Complétée) and attach the requested documents.

How to submit a lifecycle status

Treatment-phase lifecycle statuses are submitted to Sovos as Standard Business Documents (SBDs) containing a CDAR XML body

For the SBDH values, embedding instructions, and CDAR schema, see Lifecycle status body.

Quick reference for CDAR content:

  • Reference the invoice using invoice number (BT-1), invoice issue date (BT-2), and seller SIREN (BT-30).

  • Set ProcessConditionCode to the French reform code (for example, 212 for Encaissée). Note this is the French reform code, not SCICloudStatusCode 220.

  • Set ProcessCondition to the status name (for example, Encaissée).

  • Include a reason code and reason text for Rejetée (French reform code 213) and Refusée (French reform code 210). These are required.

  • Use the profile URI urn:cpro.gouv.fr:1p0:CDV:invoice inExchangedDocumentContext.

Submit through the API

Endpoint: POST /v1/documents

Request:

JSON
curl --location --request POST 'https://api-test.sovos.com/v1/documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {accessToken}' \
--header 'x-correlationId: {uniqueValue}' \
--data-raw '{
    "data": "PD9...d4=",
    "dataEncoding": "base64"
}'
Important:

The access token (Bearer token) expires after one hour. To avoid authentication errors, request a new token before the current one expires. For details, see API authentication.

Include a unique x-correlationId on every request. This value is required when contacting support about a specific submission.

Success Response: HTTP 202 Accepted
A 202 confirms Sovos received the SBD. It does not mean the status has been validated or delivered. Track the outcome through notifications.

For the complete list of HTTP status codes, error response schema, and retry guidance, see HTTP status codes and POST /v1/documents.

If the Sovos API is unavailable, check the Sovos status page for real-time operational status. Submissions accepted during any PPF unavailability are retried automatically. Do not resubmit.

Retrieve and acknowledge notifications

Notifications provide status updates as the lifecycle status progresses. Use the following parameters when polling outbound France notifications:

CODE
GET /v1/notifications/FR?taxId={SIREN}&sourceSystemId={SenderSystemId}&processType=0
  • taxId: Your SIREN from the SBDH.

  • sourceSystemId: The SenderSystemId from the SBDH.

  • processType: 0 (outbound).

Note:

When you poll notifications for a lifecycle status you submitted, the notification payload includes a referenceTransactionId that links back to the original lifecycle submission. Use this value to correlate the PPF's response with the specific status you submitted.

After processing, mark notifications as read to prevent retrieving them again. Use the endpoint PUT /v1/notifications/FR, or configure auto-acknowledge on your ERP System ID in account setup.

See Check notifications for full details, including setup, pagination, and acknowledgment.

For a full reference on application response structure, status codes, and how to interpret attachments, see Understanding application responses.

You can also track lifecycle status outcomes in the document detail view in the Compliance Network portal.

Response lifecycle

After submission, Sovos validates the CDAR and routes it to the counterparty's PA. A lifecycle status workflow follows this pattern:

CODE
Submit → Sovos validates → Sovos routes to counterparty PA → PPF validates mandatory statuses

Success path: 102 → 204
Failure paths: 401 (fix and resubmit) or 204 → PPF rejection notification (fix and resubmit)

Each notification contains an Application Response with one or more status codes. The primary code to rely on is the SCICloudStatusCode, a Sovos platform code that tells you exactly where the document is in the workflow and what, if any, action you need to take.

SCICloudStatusCode Meaning Action Required
102 Sovos validation passed Wait. The CDAR has cleared Sovos validation; routing to the counterparty PA follows.
104 Document transmitted Delivery confirmed to the counterparty PA. For mandatory statuses, a TA response follows.
401 Sovos validation failed Read each SCIInternalValidationStatusCode element's StatusReason, fix the CDAR or SBDH errors, and resubmit.
PPF response for mandatory statuses

After Sovos delivers a mandatory status to the PPF (SCICloudStatusCode 204), the PPF performs its own validation and returns a result. This response arrives as a follow-up notification referencing the original lifecycle submission. A successful PPF response confirms the status is recorded by the tax authority. A PPF rejection means the CDAR passed Sovos validation but failed the PPF's functional checks.

Important:

PPF response tracking applies only to lifecycles you submit directly, as a buyer or seller. Lifecycles issued or received from platforms are not tracked in this way.

SCICloudStatus 401 — Validation failure
A 401 notification contains multiple Status elements. The top-level status uses SCICloudStatusCode. Each individual error uses SCIInternalValidationStatusCode.
CODE
<!-- Workflow status -->
<cac:Status>
  <cbc:StatusReasonCode listID="SCICloudStatusCode">401</cbc:StatusReasonCode>
  <cbc:StatusReason>Error processing document</cbc:StatusReason>
</cac:Status>

<!-- Per-error detail (one element per error) -->
<cac:Status>
  <cbc:StatusReasonCode listID="SCIInternalValidationStatusCode">401</cbc:StatusReasonCode>
  <cbc:StatusReason>ProcessConditionCode 212 requires PaymentAmount to be present</cbc:StatusReason>
</cac:Status>

Review all SCIInternalValidationStatusCode elements, fix the issues, and resubmit.

Common causes of 401 on lifecycle status submissions:

  • Missing or incorrect invoice reference (invoice number, issue date, or seller SIREN do not match the original invoice).

  • Missing reason code on Rejetée (213) or Refusée (210).

  • Invalid ProcessConditionCode value.

  • Malformed CDAR structure or missing required SBDH scope values.

Note: SCIInternalValidationStatusCode values are free-text error messages generated by the Sovos validation engine, not a fixed enumerated list. Each element's StatusReason field describes the specific rule or field that failed. There is no published list for these values. Read the StatusReason text directly to identify what needs to be corrected.
PPF rejection of mandatory statuses
For the four statuses mandatory to the PPF (Déposée, Rejetée, Refusée, and Encaissée), Sovos forwards your CDAR to the PPF after its own validation passes. The PPF then performs a second layer of validation and may reject the status with one or more rejection reason codes. This rejection arrives as a follow-up notification after you have already received SCICloudStatusCode 204.

These codes are distinct from the Sovos validation errors (SCICloudStatusCode 401). A PPF rejection means the CDAR passed Sovos validation but failed the PPF's functional checks.

Code Check Meaning
REJ_INC Status consistency One or more statuses are inconsistent with the invoice's current lifecycle state.
REJ_INEX Status conformity One or more statuses are incorrect or not permitted at this point in the lifecycle.
REJ_RG Business rule One or more business rules are not satisfied.
REJ_HAB Authorization The request is not authorized or requires a permission not held.
REJ_ENCAISSEMENT Payment amount One or more collected amounts do not match the VAT breakdown declared on the invoice.

REJ_ENCAISSEMENT applies specifically to Encaissée statuses where the payment amount submitted does not reconcile with the VAT rate breakdown on the original invoice.

For all PPF rejections, correct the CDAR and resubmit. The original mandatory status obligation remains. A PPF-rejected Encaissée or Refusée must be resubmitted with corrected data.

Use cases

Most B2B invoices and credit notes follow the flow described in Send Invoices, which AFNOR calls the nominal use case.

AFNOR has created a list of use cases defining expectations for specific business scenarios, such as third-party payment, advance invoicing, or self-billing. An implementer's job is to identify which of these use cases apply to the client's business and ensure the invoice structure and lifecycle handling are built accordingly.

The full AFNOR list is below for reference. Sovos adds support for more use cases on an ongoing basis ahead of the September 2026 mandate.

# Use Case Description
1 Multi-order and multi-delivery Invoice consolidating multiple purchase orders, multiple deliveries, or both into a single billing document.
2 Invoice already paid by the buyer or a third party Invoice issued after the buyer or a third party has already made payment.
3 Invoice to be paid by a third-party payer Invoice addressed to the buyer but payable by a designated third party identified at invoice creation.
4 Invoice to be paid by the buyer and partial coverage by a third party Invoice where the buyer pays part and a third party (insurer, subsidy provider) covers the remainder.
5 Expenses paid by employees with invoice in company name Employee pays a business expense; invoice is in the employer's name.
6 Expenses paid by employees without an invoice Employee incurs an expense with only a receipt (no formal invoice).
7 Invoice following purchase with lodged card Invoice issued following a purchase made with a corporate lodged or purchasing card.
8 Invoice payable to a third party determined at invoicing Invoice directing payment to a third party (factor, cash pool) identified at invoice issuance.
9 Invoice payable to third party managing order, receipt, and invoicing A third party (distributor or depositary) manages orders, receipts, and invoicing on behalf of the seller.
10 Invoice payable to unknown third-party beneficiary Invoice where payment may later be assigned to an unknown third party through factoring or subrogation.
11 Invoice to be received and processed by a third party on behalf of the buyer A third party gets and processes the invoice on behalf of the buyer.
12 Transparent intermediary managing invoices for buyer principal An intermediary transparently manages invoices for a buyer principal without taking ownership.
13 Subcontracting with direct payment or payment delegation Subcontracting scenario with direct payment from client to subcontractor or a payment delegation.
14 Joint contracting (co-traitance) B2B Multiple contractors jointly deliver to a single buyer under a joint contracting arrangement.
15 Invoice following order or payment by third party on behalf of buyer A third party orders or pays on behalf of the buyer.
16 Disbursement invoice for reimbursement of invoice paid by third party Invoice for reimbursement of expenses a third party paid on behalf of the buyer.
17a Invoice payable to third-party payment intermediary A marketplace collects payment from the buyer on behalf of the seller.
17b Invoice payable to third-party intermediary and third-party invoicer under mandate A marketplace collects payment and creates the invoice for the seller.
18 Debit note management Management of debit notes for added charges after invoicing.
19a Invoice issued by third-party invoicer with invoicing mandate A third party issues invoices on behalf of the seller under a formal mandate.
19b Self-billing The buyer issues the invoice on behalf of the seller (autofacturation).
20 Pre-payment invoice Invoice for an advance payment or deposit before goods or services are delivered.
21 Final invoice after advance payment Final invoice reconciling advance payments already invoiced.
22a Discounted service invoice with VAT due on payment Invoice with early payment discount for services subject to VAT on collection.
22b Discounted invoice with debit-basis VAT (goods and services) Invoice with early payment discount for goods or services with VAT on débits option.
23 Self-billing between individual and professional Self-billing between an individual (non-business) and a professional.
24 Deposit management (arrhes) Management of earnest money payments that can be forfeited.
25 Voucher and gift card management Management of Single-Purpose Voucher (SPV) and Multi-Purpose Voucher (MPV) vouchers.
26 Invoices with contractual reservation clause Invoices with a contractual reservation of ownership until payment.
27 Toll tickets sold to taxable person Toll tickets sold to taxable persons for VAT recovery.
28 Restaurant bills issued by taxable seller established in France Restaurant invoices issued by French-established taxable sellers.
29 Single taxable person (VAT group) - Article 256 C of the CGI Invoicing within a single taxable person (VAT group).
30 VAT already collected — B2C e-reporting operations with subsequent invoice B2C transaction already e-reported, followed by a subsequent B2B invoice.
31 Mixed invoices (main operation and ancillary operation) Invoice combining a main operation with ancillary operations.
32 Monthly payments Invoicing for recurring transactions with periodic payments.
33 Transactions under margin scheme Transactions under the margin scheme (biens d'occasion, oeuvres d'art).
34 Partial collection and collection cancellation Partial collections and collection cancellations.
35 Author's invoices Notes d'auteur in cultural and creative sectors.
36 Transactions subject to professional secrecy and sensitive data Transactions subject to confidentiality requirements.
37 Partnerships and joint ventures Invoicing for partnership and joint venture structures.
38 Invoices with sub-lines and line groupings Invoices with hierarchical line structures.
39 Transparent intermediary consolidating sales from multiple sellers for a single buyer An intermediary consolidates sales from multiple sellers for a single buyer.
40 Grouped payments, netting, or compensation for cross buy and sell transactions Payment netting for reciprocal buy and sell transactions.
41 Barter companies Transactions between barter or exchange network members.
42 Tax refund management VAT refund management for eligible transactions.
43 E-reporting when international B2B transactions use structured invoice formats E-reporting obligations for cross-border B2B sales and purchases where the invoice is exchanged in one of the core structured formats (UBL, CII, or Factur-X).
44 Transactions involving French overseas territories Identifies reporting obligation when a taxpayer location is in a French overseas territory (DROMs, COMs, TAAFs).