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

# France PA — invoicing

> Send and receive B2B invoices over Peppol with automatic PPF reporting.

<Note>
  E-invoicing in France applies domestic B2B invoicing where both parties are registered in the Annuaire. For B2C, cross-border, or any flow where one party is not in the Annuaire, use the [reporting flow](/guides/fr-pa-reporting) instead.
</Note>

The France PA invoicing flow covers **regulated B2B exchanges** — both parties registered in the Annuaire. The same GOBL document drives both sides: a single invoice with the `fr-ctc-flow2-v1` add-on, generated as the format negotiated with the receiver. On receipt, any of the accepted formats is converted back to that same representation.

## Formats

The PA specification accepts five formats. In practice the three base formats below cover essentially all real-world traffic, and Invopop supports both sending and receiving on all three.

| Format       | Notes                                                                                               |
| ------------ | --------------------------------------------------------------------------------------------------- |
| **UBL**      | Peppol France CIUS — recommended default. Native Peppol format with the widest receiver support.    |
| **CII**      | UN/CEFACT XML, semantically equivalent to UBL. Common in cross-border and industrial contexts.      |
| **Factur-X** | Hybrid PDF/A-3 with embedded CII. Identical to [ZUGFeRD](/guides/de-ubl) and aligned with EN 16931. |

Switching format is a workflow-config change rather than a data-model change — you author and validate one GOBL invoice, and the workflow's generation step produces whichever format the counterparty expects.

## Sending

The send workflow records the invoice for compliance, generates the chosen format, transmits it to the receiver's PA over Peppol, and forwards the F1 copy to the PPF as the fifth corner.

The **Record Invoice** step validates SIRENs and checks both parties against the Annuaire. Invoices where either side is missing are rejected — branch non-regulated traffic into the [reporting flow](/guides/fr-pa-reporting) upstream of this workflow.

<Frame>
  <img src="https://mintcdn.com/invopop/yZ7qL6iIyGoOuVDQ/assets/guides/fr-invoice.png?fit=max&auto=format&n=yZ7qL6iIyGoOuVDQ&q=85&s=89cf78fee1d8b6592b576d3b5ea17d5f" width="2648" height="1856" data-path="assets/guides/fr-invoice.png" />
</Frame>

### How it works

<Steps>
  <Step title="Set state → processing">
    Moves the invoice into a visible "in progress" state for operator dashboards.
  </Step>

  <Step title="Sign envelope">
    Locks the GOBL envelope so downstream steps work against an immutable document.
  </Step>

  <Step title="Record Invoice">
    Validates SIRENs, checks both parties against the Annuaire, and stores the invoice in the local PA database.
  </Step>

  <Step title="Generate UBL document">
    Produces a Peppol France CIUS UBL invoice or credit note. Swap for **Generate CII document** if the receiver requires CII, or **Generate PDF (Factur-X)** for hybrid PDF.
  </Step>

  <Step title="Send Peppol document">
    Transmits the generated document to the receiver's PA over the Peppol network.
  </Step>

  <Step title="Set state → sent">
    Marks Peppol delivery as successful.
  </Step>

  <Step title="Forward Invoice to PPF">
    Generates the simplified F1 invoice and forwards it, along with the mandatory `200` *déposée* status, to the PPF.
  </Step>

  <Step title="Set state → completed">
    Marks the full e-invoicing flow — Peppol delivery and PPF reporting — as complete.
  </Step>
</Steps>

<Tabs>
  <Tab title="Template">
    <Card iconType="duotone" title="France PA send invoice workflow" icon="code-branch" href="https://console.invopop.com/redirect/workflows/new?template=fr-fr-pa-send-invoice" cta="Add to my workspace">
      Records and sends a France-compliant invoice via Peppol and the PPF.
    </Card>
  </Tab>

  <Tab title="Code">
    Copy and paste into a new [Empty Invoice workflow](https://console.invopop.com/redirect/workflows/new?template=empty-invoice).

    ```json PPF send invoice workflow theme={"system"}
    {
        "name": "PPF send invoice",
        "description": "Send an invoice via Peppol and record it with PPF",
        "schema": "bill/invoice",
        "steps": [
            {
                "id": "72bc5070-1a17-11f1-a82f-e740c226ef51",
                "name": "Set state",
                "provider": "silo.state",
                "summary": "Set state to `processing`{.state .processing}",
                "config": {
                    "state": "processing"
                }
            },
            {
                "id": "f5aaed10-13c9-11f1-98a6-7dfa4cb26122",
                "name": "Sign envelope",
                "provider": "silo.close"
            },
            {
                "id": "f1e30fa0-13c9-11f1-98a6-7dfa4cb26122",
                "name": "Record document for e-invoicing",
                "provider": "gov-fr.directory.record"
            },
            {
                "id": "1b5850d0-13bf-11f1-bc3b-b99ec414b63d",
                "name": "Generate UBL document",
                "provider": "ubl.generate",
                "summary": "Peppol France CIUS v1",
                "config": {
                    "attach_invoice_pdf": false,
                    "doc_type": "peppol-fr-cius",
                    "private": false,
                    "validate_ubl": false
                }
            },
            {
                "id": "ab598990-16f0-11f1-86ba-d13d91b4f398",
                "name": "Send Peppol document",
                "provider": "peppol.send"
            },
            {
                "id": "79bd38d0-1a17-11f1-a82f-e740c226ef51",
                "name": "Set state",
                "provider": "silo.state",
                "summary": "Set state to `sent`{.state .sent}",
                "config": {
                    "state": "sent"
                }
            },
            {
                "id": "e1f6ce90-16eb-11f1-86ba-d13d91b4f398",
                "name": "Forward document to PPF",
                "provider": "gov-fr.directory.forward"
            },
            {
                "id": "80a9d5e0-1a17-11f1-a82f-e740c226ef51",
                "name": "Set state",
                "provider": "silo.state",
                "summary": "Set state to `completed`{.state .completed}",
                "config": {
                    "state": "completed"
                }
            }
        ],
        "rescue": [
            {
                "id": "892a8070-1a17-11f1-a82f-e740c226ef51",
                "name": "Set state",
                "provider": "silo.state",
                "summary": "Set state to `error`{.state .error}",
                "config": {
                    "state": "error"
                }
            }
        ]
    }
    ```
  </Tab>
</Tabs>

## Receiving

The receive workflow detects the inbound format, imports it into a GOBL document, and records it against your registered party. The same workflow handles UBL, CII, and Factur-X — the format-detection branch routes each payload to the correct importer.

<Frame>
  <img src="https://mintcdn.com/invopop/yZ7qL6iIyGoOuVDQ/assets/guides/fr-receive.png?fit=max&auto=format&n=yZ7qL6iIyGoOuVDQ&q=85&s=1853bfeb0c91d85041f6035bf88803aa" width="2644" height="2120" data-path="assets/guides/fr-receive.png" />
</Frame>

### How it works

<Steps>
  <Step title="Import Peppol document">
    Pulls the inbound payload from Peppol and branches on the detected format:

    * `UBL` → **Import UBL document** converts the UBL XML to GOBL.
    * `CII` → **Import CII document** converts the CII XML to GOBL.
    * `PDF` → **Import Factur-X PDF** extracts the embedded CII and converts it to GOBL.
  </Step>

  <Step title="Set folder → expenses">
    Files the invoice under the `Invoices · Expenses` folder so it lands in the right place for accounting workflows.
  </Step>

  <Step title="Record Invoice">
    Validates SIRENs, resolves your registered party as the customer (or supplier in self-billing flows), and guards against duplicate processing.
  </Step>

  <Step title="Set state → registered">
    Marks the incoming invoice as successfully received.
  </Step>
</Steps>

<Tabs>
  <Tab title="Template">
    <Card iconType="duotone" title="France PA receive invoice workflow" icon="code-branch" href="https://console.invopop.com/redirect/workflows/new?template=fr-fr-pa-receive-invoice" cta="Add to my workspace">
      Imports an incoming Peppol invoice (UBL, CII, or Factur-X) and records it.
    </Card>
  </Tab>

  <Tab title="Code">
    Copy and paste into a new [Empty Invoice workflow](https://console.invopop.com/redirect/workflows/new?template=empty-invoice).

    ```json PPF receive invoice workflow theme={"system"}
    {
        "name": "PPF receive invoice",
        "description": "Receive an invoice via Peppol and register it with PPF",
        "schema": "bill/invoice",
        "steps": [
            {
                "id": "db61c3c0-0fb5-11f0-b078-9fc456829eca",
                "name": "Import Peppol document",
                "provider": "peppol.import",
                "next": [
                    {
                        "status": "NA",
                        "code": "UBL",
                        "steps": [
                            {
                                "id": "62e94570-8fdb-11f0-a8fb-61ec9e5a76ba",
                                "name": "Import UBL document",
                                "provider": "ubl.import"
                            }
                        ]
                    },
                    {
                        "status": "NA",
                        "code": "CII",
                        "steps": [
                            {
                                "id": "6480ae50-8fdb-11f0-a8fb-61ec9e5a76ba",
                                "name": "Import CII document",
                                "provider": "cii.import"
                            }
                        ]
                    },
                    {
                        "status": "NA",
                        "code": "PDF",
                        "steps": [
                            {
                                "id": "26ba4f80-1e2a-11f1-8bfb-2beaa1df60f0",
                                "name": "Import Factur-X PDF",
                                "provider": "cii.pdf.import"
                            }
                        ]
                    }
                ]
            },
            {
                "id": "fdfc81a0-6e23-11f0-913b-5732f966b346",
                "name": "Set folder",
                "provider": "silo.folder",
                "summary": "Set folder to `Invoices · Expenses`{.font-medium}",
                "config": {
                    "folder": "expenses"
                }
            },
            {
                "id": "2f4ad890-1e2a-11f1-8bfb-2beaa1df60f0",
                "name": "Record document for e-invoicing",
                "provider": "gov-fr.directory.record"
            },
            {
                "id": "dd14a3e0-0fb5-11f0-b078-9fc456829eca",
                "name": "Set state",
                "provider": "silo.state",
                "summary": "Set state to `registered`{.state .registered}",
                "config": {
                    "state": "registered"
                }
            }
        ],
        "rescue": [
            {
                "id": "e109d2e0-0fb5-11f0-b078-9fc456829eca",
                "name": "Set state",
                "provider": "silo.state",
                "summary": "Set state to `error`{.state .error}",
                "config": {
                    "state": "error"
                }
            }
        ]
    }
    ```
  </Tab>
</Tabs>

## Self-billing

In self-billing (*also called autofacturation*), the **customer**, rather than the supplier, creates and issues the invoice on the supplier's behalf. The buyer's platform acts as the sending PA and triggers the flow 1 reporting to the PPF, while the supplier's platform receives the invoice.

Invopop covers self-billing with the **same send and receive workflows described above**. The only difference is on the document, which carries the `self-billed` tag.

<Note>
  France does not treat self-billing as a document type of its own: it is a standard invoice with the `untdid-document-type` extension set to `389`. The [`fr-ctc-flow2-v1`](https://docs.gobl.org/addons/fr-ctc-flow2-v1#standard-self-billed) add-on derives that code from the `self-billed` tag automatically, so you never set it yourself.
</Note>

The parties keep their natural roles, the vendor remains the `supplier`, and the buyer the `customer`. When Invopop detects the tag, it acts on behalf of the customer and adjusts the flow automatically:

* The **customer**, rather than the supplier, is validated as the registered party.
* The invoice is delivered over Peppol to the **supplier's** PA.
* The invoice is recorded and forwarded to the PPF as a self-billed invoice.

France also requires the *autofacturation* note on the invoice, which appears as a `legal` note, as shown in the [example](#example-invoices) below.

### Step by step

How each step of the self-billing use case maps to an action in Invopop, on both the buyer (sending) and supplier (receiving) side. Statuses are built and exchanged as described in the [status guide](/guides/fr-pa-status).

| Step | Actor       | In Invopop                                                                                                                                                                                              |
| ---- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1    | Buyer       | Creates a GOBL invoice tagged `self-billed`.                                                                                                                                                            |
| 2    | Buyer's PA  | The buyer's [send workflow](#sending) generates the UBL, CII, or Factur-X document and transmits it as normal. The mandatory `200` Déposée status is emitted automatically once the PPF accepts flow 1. |
| 3    | Seller's PA | The seller's [receive workflow](#receiving) imports the invoice and records it, resolving the seller's registered party as the `supplier`.                                                              |
| 4    | Seller      | Upon reception of payment, the seller builds a `bill.Payment` referencing the invoice, sends it to the customer and forwards it to the PPF.                                                             |
| 5    | Buyer       | The buyer's receive workflow imports the inbound CDAR and records it against the invoice.                                                                                                               |

## Example invoices

Each example below pairs a hand-authored minimal GOBL invoice with the built version produced by `gobl build`. Paste either into the [GOBL builder](https://build.gobl.org) to preview the document, or use the minimal version as a starting point for your own integration.

<AccordionGroup>
  <Accordion title="PA B2B invoice (domestic)">
    A regulated B2B invoice between two French parties, both registered in the Annuaire. The [`fr-ctc-flow2-v1`](https://docs.gobl.org/addons/fr-ctc-flow2-v1) add-on drives validation for the PA e-invoicing flow.

    Notice:

    * both parties carry a `SIREN` identity with `iso-scheme-id` `0002` and a `peppol` inbox under scheme `0225` so the workflow can route via Peppol,
    * `fr-ctc-billing-mode` `B7` marks this as a standard B2B invoice; `untdid-document-type` `380` confirms the commercial invoice type,
    * the `payment`, `payment-method`, and `payment-term` notes carry the French legal-mention text (penalty clauses, late-payment terms, early-payment discount), each tagged with the appropriate UNTDID 4451 subject code,
    * `ordering.code` records the customer's purchase order reference.

    <CodeGroup>
      ```json PA B2B Invoice theme={"system"}
      {
          "$schema": "https://gobl.org/draft-0/bill/invoice",
          "$regime": "FR",
          "$addons": [
              "fr-ctc-flow2-v1"
          ],
          "type": "standard",
          "series": "FAC",
          "code": "2024-00001",
          "issue_date": "2024-06-13",
          "currency": "EUR",
          "tax": {
              "ext": {
                  "fr-ctc-billing-mode": "B7",
                  "untdid-document-type": "380"
              }
          },
          "supplier": {
              "name": "Fournisseur Example SARL",
              "tax_id": {
                  "country": "FR",
                  "code": "732829320"
              },
              "identities": [
                  {
                      "type": "SIREN",
                      "code": "732829320",
                      "ext": {
                          "iso-scheme-id": "0002"
                      }
                  }
              ],
              "inboxes": [
                  {
                      "key": "peppol",
                      "scheme": "0225",
                      "code": "732829320"
                  }
              ],
              "addresses": [
                  {
                      "num": "123",
                      "street": "Rue de la Paix",
                      "locality": "Paris",
                      "code": "75001",
                      "country": "FR"
                  }
              ],
              "emails": [
                  {
                      "addr": "facturation@fournisseur.fr"
                  }
              ],
              "telephones": [
                  {
                      "num": "+33100200300"
                  }
              ]
          },
          "customer": {
              "name": "Client Example SAS",
              "tax_id": {
                  "country": "FR",
                  "code": "356000000"
              },
              "identities": [
                  {
                      "type": "SIREN",
                      "code": "356000000",
                      "ext": {
                          "iso-scheme-id": "0002"
                      }
                  }
              ],
              "inboxes": [
                  {
                      "key": "peppol",
                      "scheme": "0225",
                      "code": "356000000"
                  }
              ],
              "addresses": [
                  {
                      "num": "456",
                      "street": "Avenue des Champs-Elysees",
                      "locality": "Paris",
                      "code": "75008",
                      "country": "FR"
                  }
              ],
              "emails": [
                  {
                      "addr": "comptabilite@client.fr"
                  }
              ],
              "telephones": [
                  {
                      "num": "+33100200400"
                  }
              ]
          },
          "lines": [
              {
                  "quantity": "10",
                  "item": {
                      "name": "Services de conseil",
                      "price": "100.00",
                      "unit": "h"
                  },
                  "discounts": [
                      {
                          "percent": "10%",
                          "reason": "Remise fidelite"
                      }
                  ],
                  "taxes": [
                      {
                          "cat": "VAT",
                          "rate": "standard"
                      }
                  ]
              }
          ],
          "ordering": {
              "code": "PO-2024-001"
          },
          "notes": [
              {
                  "key": "payment",
                  "text": "Une penalite fixe de 40 EUR sera appliquee en cas de retard de paiement.",
                  "ext": {
                      "untdid-text-subject": "PMT"
                  }
              },
              {
                  "key": "payment-method",
                  "text": "Des penalites de retard s'appliquent conformement a nos conditions generales de vente.",
                  "ext": {
                      "untdid-text-subject": "PMD"
                  }
              },
              {
                  "key": "payment-term",
                  "text": "Aucun escompte n'est offert pour paiement anticipe.",
                  "ext": {
                      "untdid-text-subject": "AAB"
                  }
              }
          ],
          "payment": {
              "instructions": {
                  "key": "credit-transfer",
                  "credit_transfer": [
                      {
                          "iban": "FR7630006000011234567890189",
                          "name": "Fournisseur Example SARL"
                      }
                  ]
              },
              "terms": {
                  "detail": "Paiement a 30 jours"
              }
          }
      }
      ```

      ```json Built version theme={"system"}
      {
      	"$schema": "https://gobl.org/draft-0/bill/invoice",
      	"$regime": "FR",
      	"$addons": [
      		"eu-en16931-v2017",
      		"fr-ctc-flow2-v1"
      	],
      	"type": "standard",
      	"series": "FAC",
      	"code": "2024-00001",
      	"issue_date": "2024-06-13",
      	"currency": "EUR",
      	"tax": {
      		"rounding": "currency",
      		"ext": {
      			"fr-ctc-billing-mode": "B7",
      			"untdid-document-type": "380"
      		}
      	},
      	"supplier": {
      		"name": "Fournisseur Example SARL",
      		"tax_id": {
      			"country": "FR",
      			"code": "44732829320"
      		},
      		"identities": [
      			{
      				"scope": "legal",
      				"type": "SIREN",
      				"code": "732829320",
      				"ext": {
      					"iso-scheme-id": "0002"
      				}
      			}
      		],
      		"endpoints": [
      			{
      				"uri": "iso6523-actorid-upis::0225:732829320"
      			}
      		],
      		"inboxes": [
      			{
      				"key": "peppol",
      				"scheme": "0225",
      				"code": "732829320"
      			}
      		],
      		"addresses": [
      			{
      				"num": "123",
      				"street": "Rue de la Paix",
      				"locality": "Paris",
      				"code": "75001",
      				"country": "FR"
      			}
      		],
      		"emails": [
      			{
      				"addr": "facturation@fournisseur.fr"
      			}
      		],
      		"telephones": [
      			{
      				"num": "+33100200300"
      			}
      		]
      	},
      	"customer": {
      		"name": "Client Example SAS",
      		"tax_id": {
      			"country": "FR",
      			"code": "39356000000"
      		},
      		"identities": [
      			{
      				"scope": "legal",
      				"type": "SIREN",
      				"code": "356000000",
      				"ext": {
      					"iso-scheme-id": "0002"
      				}
      			}
      		],
      		"endpoints": [
      			{
      				"uri": "iso6523-actorid-upis::0225:356000000"
      			}
      		],
      		"inboxes": [
      			{
      				"key": "peppol",
      				"scheme": "0225",
      				"code": "356000000"
      			}
      		],
      		"addresses": [
      			{
      				"num": "456",
      				"street": "Avenue des Champs-Elysees",
      				"locality": "Paris",
      				"code": "75008",
      				"country": "FR"
      			}
      		],
      		"emails": [
      			{
      				"addr": "comptabilite@client.fr"
      			}
      		],
      		"telephones": [
      			{
      				"num": "+33100200400"
      			}
      		]
      	},
      	"lines": [
      		{
      			"i": 1,
      			"quantity": "10",
      			"item": {
      				"name": "Services de conseil",
      				"price": "100.00",
      				"unit": "h"
      			},
      			"sum": "1000.00",
      			"discounts": [
      				{
      					"reason": "Remise fidelite",
      					"percent": "10%",
      					"amount": "100.00"
      				}
      			],
      			"taxes": [
      				{
      					"cat": "VAT",
      					"key": "standard",
      					"rate": "general",
      					"percent": "20%",
      					"ext": {
      						"untdid-tax-category": "S"
      					}
      				}
      			],
      			"total": "900.00"
      		}
      	],
      	"ordering": {
      		"code": "PO-2024-001"
      	},
      	"payment": {
      		"terms": {
      			"notes": "Paiement a 30 jours"
      		},
      		"instructions": {
      			"key": "credit-transfer",
      			"credit_transfer": [
      				{
      					"iban": "FR7630006000011234567890189",
      					"name": "Fournisseur Example SARL"
      				}
      			],
      			"ext": {
      				"untdid-payment-means": "30"
      			}
      		}
      	},
      	"totals": {
      		"sum": "900.00",
      		"total": "900.00",
      		"taxes": {
      			"categories": [
      				{
      					"code": "VAT",
      					"rates": [
      						{
      							"key": "standard",
      							"ext": {
      								"untdid-tax-category": "S"
      							},
      							"base": "900.00",
      							"percent": "20%",
      							"amount": "180.00"
      						}
      					],
      					"amount": "180.00"
      				}
      			],
      			"sum": "180.00"
      		},
      		"tax": "180.00",
      		"total_with_tax": "1080.00",
      		"payable": "1080.00"
      	},
      	"notes": [
      		{
      			"key": "payment",
      			"text": "Une penalite fixe de 40 EUR sera appliquee en cas de retard de paiement.",
      			"ext": {
      				"untdid-text-subject": "PMT"
      			}
      		},
      		{
      			"key": "payment-method",
      			"text": "Des penalites de retard s'appliquent conformement a nos conditions generales de vente.",
      			"ext": {
      				"untdid-text-subject": "PMD"
      			}
      		},
      		{
      			"key": "payment-term",
      			"text": "Aucun escompte n'est offert pour paiement anticipe.",
      			"ext": {
      				"untdid-text-subject": "AAB"
      			}
      		}
      	]
      }
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="PA B2B credit note">
    A credit note that partially cancels a previously issued PA invoice. The `preceding` array references the original invoice by series, code, and issue date.

    Notice:

    * `type` is `credit-note` and `untdid-document-type` is `381` (commercial credit note),
    * the `preceding` block makes the link to the original invoice explicit — required for PA matching at the PPF.

    <CodeGroup>
      ```json PA B2B Credit Note theme={"system"}
      {
          "$schema": "https://gobl.org/draft-0/bill/invoice",
          "$regime": "FR",
          "$addons": [
              "fr-ctc-flow2-v1"
          ],
          "type": "credit-note",
          "series": "AV",
          "code": "2024-001",
          "issue_date": "2024-06-20",
          "currency": "EUR",
          "tax": {
              "ext": {
                  "fr-ctc-billing-mode": "B7",
                  "untdid-document-type": "381"
              }
          },
          "preceding": [
              {
                  "type": "standard",
                  "series": "FAC",
                  "code": "2024-001",
                  "issue_date": "2024-06-13"
              }
          ],
          "supplier": {
              "name": "Fournisseur Example SARL",
              "tax_id": {
                  "country": "FR",
                  "code": "732829320"
              },
              "identities": [
                  {
                      "type": "SIREN",
                      "code": "732829320",
                      "ext": {
                          "iso-scheme-id": "0002"
                      }
                  }
              ],
              "inboxes": [
                  {
                      "key": "peppol",
                      "scheme": "0225",
                      "code": "732829320"
                  }
              ],
              "addresses": [
                  {
                      "num": "123",
                      "street": "Rue de la Paix",
                      "locality": "Paris",
                      "code": "75001",
                      "country": "FR"
                  }
              ],
              "emails": [
                  {
                      "addr": "facturation@fournisseur.fr"
                  }
              ]
          },
          "customer": {
              "name": "Client Example SAS",
              "tax_id": {
                  "country": "FR",
                  "code": "356000000"
              },
              "identities": [
                  {
                      "type": "SIREN",
                      "code": "356000000",
                      "ext": {
                          "iso-scheme-id": "0002"
                      }
                  }
              ],
              "inboxes": [
                  {
                      "key": "peppol",
                      "scheme": "0225",
                      "code": "356000000"
                  }
              ],
              "addresses": [
                  {
                      "num": "456",
                      "street": "Avenue des Champs-Elysees",
                      "locality": "Paris",
                      "code": "75008",
                      "country": "FR"
                  }
              ],
              "emails": [
                  {
                      "addr": "comptabilite@client.fr"
                  }
              ]
          },
          "lines": [
              {
                  "quantity": "2",
                  "item": {
                      "name": "Services de conseil - Annulation partielle",
                      "price": "100.00",
                      "unit": "h"
                  },
                  "taxes": [
                      {
                          "cat": "VAT",
                          "rate": "standard"
                      }
                  ]
              }
          ],
          "notes": [
              {
                  "key": "payment",
                  "text": "Une penalite fixe de 40 EUR sera appliquee en cas de retard de paiement.",
                  "ext": {
                      "untdid-text-subject": "PMT"
                  }
              },
              {
                  "key": "payment-method",
                  "text": "Des penalites de retard s'appliquent conformement a nos conditions generales de vente.",
                  "ext": {
                      "untdid-text-subject": "PMD"
                  }
              },
              {
                  "key": "payment-term",
                  "text": "Aucun escompte n'est offert pour paiement anticipe.",
                  "ext": {
                      "untdid-text-subject": "AAB"
                  }
              }
          ],
          "payment": {
              "instructions": {
                  "key": "credit-transfer",
                  "credit_transfer": [
                      {
                          "iban": "FR7630006000011234567890189",
                          "name": "Fournisseur Example SARL"
                      }
                  ]
              }
          }
      }
      ```

      ```json Built version theme={"system"}
      {
      	"$schema": "https://gobl.org/draft-0/bill/invoice",
      	"$regime": "FR",
      	"$addons": [
      		"eu-en16931-v2017",
      		"fr-ctc-flow2-v1"
      	],
      	"type": "credit-note",
      	"series": "AV",
      	"code": "2024-001",
      	"issue_date": "2024-06-20",
      	"currency": "EUR",
      	"preceding": [
      		{
      			"type": "standard",
      			"issue_date": "2024-06-13",
      			"series": "FAC",
      			"code": "2024-001"
      		}
      	],
      	"tax": {
      		"rounding": "currency",
      		"ext": {
      			"fr-ctc-billing-mode": "B7",
      			"untdid-document-type": "381"
      		}
      	},
      	"supplier": {
      		"name": "Fournisseur Example SARL",
      		"tax_id": {
      			"country": "FR",
      			"code": "44732829320"
      		},
      		"identities": [
      			{
      				"scope": "legal",
      				"type": "SIREN",
      				"code": "732829320",
      				"ext": {
      					"iso-scheme-id": "0002"
      				}
      			}
      		],
      		"endpoints": [
      			{
      				"uri": "iso6523-actorid-upis::0225:732829320"
      			}
      		],
      		"inboxes": [
      			{
      				"key": "peppol",
      				"scheme": "0225",
      				"code": "732829320"
      			}
      		],
      		"addresses": [
      			{
      				"num": "123",
      				"street": "Rue de la Paix",
      				"locality": "Paris",
      				"code": "75001",
      				"country": "FR"
      			}
      		],
      		"emails": [
      			{
      				"addr": "facturation@fournisseur.fr"
      			}
      		]
      	},
      	"customer": {
      		"name": "Client Example SAS",
      		"tax_id": {
      			"country": "FR",
      			"code": "39356000000"
      		},
      		"identities": [
      			{
      				"scope": "legal",
      				"type": "SIREN",
      				"code": "356000000",
      				"ext": {
      					"iso-scheme-id": "0002"
      				}
      			}
      		],
      		"endpoints": [
      			{
      				"uri": "iso6523-actorid-upis::0225:356000000"
      			}
      		],
      		"inboxes": [
      			{
      				"key": "peppol",
      				"scheme": "0225",
      				"code": "356000000"
      			}
      		],
      		"addresses": [
      			{
      				"num": "456",
      				"street": "Avenue des Champs-Elysees",
      				"locality": "Paris",
      				"code": "75008",
      				"country": "FR"
      			}
      		],
      		"emails": [
      			{
      				"addr": "comptabilite@client.fr"
      			}
      		]
      	},
      	"lines": [
      		{
      			"i": 1,
      			"quantity": "2",
      			"item": {
      				"name": "Services de conseil - Annulation partielle",
      				"price": "100.00",
      				"unit": "h"
      			},
      			"sum": "200.00",
      			"taxes": [
      				{
      					"cat": "VAT",
      					"key": "standard",
      					"rate": "general",
      					"percent": "20%",
      					"ext": {
      						"untdid-tax-category": "S"
      					}
      				}
      			],
      			"total": "200.00"
      		}
      	],
      	"payment": {
      		"instructions": {
      			"key": "credit-transfer",
      			"credit_transfer": [
      				{
      					"iban": "FR7630006000011234567890189",
      					"name": "Fournisseur Example SARL"
      				}
      			],
      			"ext": {
      				"untdid-payment-means": "30"
      			}
      		}
      	},
      	"totals": {
      		"sum": "200.00",
      		"total": "200.00",
      		"taxes": {
      			"categories": [
      				{
      					"code": "VAT",
      					"rates": [
      						{
      							"key": "standard",
      							"ext": {
      								"untdid-tax-category": "S"
      							},
      							"base": "200.00",
      							"percent": "20%",
      							"amount": "40.00"
      						}
      					],
      					"amount": "40.00"
      				}
      			],
      			"sum": "40.00"
      		},
      		"tax": "40.00",
      		"total_with_tax": "240.00",
      		"payable": "240.00"
      	},
      	"notes": [
      		{
      			"key": "payment",
      			"text": "Une penalite fixe de 40 EUR sera appliquee en cas de retard de paiement.",
      			"ext": {
      				"untdid-text-subject": "PMT"
      			}
      		},
      		{
      			"key": "payment-method",
      			"text": "Des penalites de retard s'appliquent conformement a nos conditions generales de vente.",
      			"ext": {
      				"untdid-text-subject": "PMD"
      			}
      		},
      		{
      			"key": "payment-term",
      			"text": "Aucun escompte n'est offert pour paiement anticipe.",
      			"ext": {
      				"untdid-text-subject": "AAB"
      			}
      		}
      	]
      }
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="PA B2B advance payment invoice">
    An advance (down-payment) invoice — used when a payment is collected before the final goods or services are delivered.

    Notice:

    * the `prepayment` tag sets `untdid-document-type` to `386` (advance payment invoice),
    * no billing mode is set explicitly: since the invoice covers both a service and a good, the add-on defaults `fr-ctc-billing-mode` to `M1` (advance on a mixed invoice),
    * the final invoice issued at delivery normally references this advance to net it off the total.

    <CodeGroup>
      ```json PA B2B Advance Payment Invoice theme={"system"}
      {
          "$schema": "https://gobl.org/draft-0/bill/invoice",
          "$regime": "FR",
          "$addons": [
              "fr-ctc-flow2-v1"
          ],
          "$tags": [
              "prepayment"
          ],
          "type": "standard",
          "series": "FAC",
          "code": "2024-AV-001",
          "issue_date": "2024-06-01",
          "currency": "EUR",
          "supplier": {
              "name": "Fournisseur Example SARL",
              "tax_id": {
                  "country": "FR",
                  "code": "732829320"
              },
              "identities": [
                  {
                      "type": "SIREN",
                      "code": "732829320",
                      "ext": {
                          "iso-scheme-id": "0002"
                      }
                  }
              ],
              "inboxes": [
                  {
                      "key": "peppol",
                      "scheme": "0225",
                      "code": "732829320"
                  }
              ],
              "addresses": [
                  {
                      "num": "123",
                      "street": "Rue de la Paix",
                      "locality": "Paris",
                      "code": "75001",
                      "country": "FR"
                  }
              ],
              "emails": [
                  {
                      "addr": "facturation@fournisseur.fr"
                  }
              ]
          },
          "customer": {
              "name": "Client Example SAS",
              "tax_id": {
                  "country": "FR",
                  "code": "356000000"
              },
              "identities": [
                  {
                      "type": "SIREN",
                      "code": "356000000",
                      "ext": {
                          "iso-scheme-id": "0002"
                      }
                  }
              ],
              "inboxes": [
                  {
                      "key": "peppol",
                      "scheme": "0225",
                      "code": "356000000"
                  }
              ],
              "addresses": [
                  {
                      "num": "456",
                      "street": "Avenue des Champs-Elysees",
                      "locality": "Paris",
                      "code": "75008",
                      "country": "FR"
                  }
              ],
              "emails": [
                  {
                      "addr": "comptabilite@client.fr"
                  }
              ]
          },
          "lines": [
              {
                  "quantity": "1",
                  "item": {
                      "name": "Acompte - Projet de developpement",
                      "price": "5000.00"
                  },
                  "taxes": [
                      {
                          "cat": "VAT",
                          "rate": "standard"
                      }
                  ]
              },
              {
                  "quantity": "1",
                  "item": {
                      "name": "Acompte - Serveur de developpement (materiel)",
                      "price": "2000.00"
                  },
                  "taxes": [
                      {
                          "cat": "VAT",
                          "rate": "standard"
                      }
                  ]
              }
          ],
          "notes": [
              {
                  "key": "payment",
                  "text": "Une penalite fixe de 40 EUR sera appliquee en cas de retard de paiement.",
                  "ext": {
                      "untdid-text-subject": "PMT"
                  }
              },
              {
                  "key": "payment-method",
                  "text": "Des penalites de retard s'appliquent conformement a nos conditions generales de vente.",
                  "ext": {
                      "untdid-text-subject": "PMD"
                  }
              },
              {
                  "key": "payment-term",
                  "text": "Aucun escompte n'est offert pour paiement anticipe.",
                  "ext": {
                      "untdid-text-subject": "AAB"
                  }
              }
          ],
          "payment": {
              "instructions": {
                  "key": "credit-transfer",
                  "credit_transfer": [
                      {
                          "iban": "FR7630006000011234567890189",
                          "name": "Fournisseur Example SARL"
                      }
                  ]
              },
              "terms": {
                  "detail": "Paiement immediat"
              }
          }
      }
      ```

      ```json Built version theme={"system"}
      {
      	"$schema": "https://gobl.org/draft-0/bill/invoice",
      	"$regime": "FR",
      	"$addons": [
      		"eu-en16931-v2017",
      		"fr-ctc-flow2-v1"
      	],
      	"$tags": [
      		"prepayment"
      	],
      	"type": "standard",
      	"series": "FAC",
      	"code": "2024-AV-001",
      	"issue_date": "2024-06-01",
      	"currency": "EUR",
      	"tax": {
      		"rounding": "currency",
      		"ext": {
      			"fr-ctc-billing-mode": "M1",
      			"untdid-document-type": "386"
      		}
      	},
      	"supplier": {
      		"name": "Fournisseur Example SARL",
      		"tax_id": {
      			"country": "FR",
      			"code": "44732829320"
      		},
      		"identities": [
      			{
      				"scope": "legal",
      				"type": "SIREN",
      				"code": "732829320",
      				"ext": {
      					"iso-scheme-id": "0002"
      				}
      			}
      		],
      		"endpoints": [
      			{
      				"uri": "iso6523-actorid-upis::0225:732829320"
      			}
      		],
      		"inboxes": [
      			{
      				"key": "peppol",
      				"scheme": "0225",
      				"code": "732829320"
      			}
      		],
      		"addresses": [
      			{
      				"num": "123",
      				"street": "Rue de la Paix",
      				"locality": "Paris",
      				"code": "75001",
      				"country": "FR"
      			}
      		],
      		"emails": [
      			{
      				"addr": "facturation@fournisseur.fr"
      			}
      		]
      	},
      	"customer": {
      		"name": "Client Example SAS",
      		"tax_id": {
      			"country": "FR",
      			"code": "39356000000"
      		},
      		"identities": [
      			{
      				"scope": "legal",
      				"type": "SIREN",
      				"code": "356000000",
      				"ext": {
      					"iso-scheme-id": "0002"
      				}
      			}
      		],
      		"endpoints": [
      			{
      				"uri": "iso6523-actorid-upis::0225:356000000"
      			}
      		],
      		"inboxes": [
      			{
      				"key": "peppol",
      				"scheme": "0225",
      				"code": "356000000"
      			}
      		],
      		"addresses": [
      			{
      				"num": "456",
      				"street": "Avenue des Champs-Elysees",
      				"locality": "Paris",
      				"code": "75008",
      				"country": "FR"
      			}
      		],
      		"emails": [
      			{
      				"addr": "comptabilite@client.fr"
      			}
      		]
      	},
      	"lines": [
      		{
      			"i": 1,
      			"quantity": "1",
      			"item": {
      				"name": "Acompte - Projet de developpement",
      				"price": "5000.00",
      				"unit": "one"
      			},
      			"sum": "5000.00",
      			"taxes": [
      				{
      					"cat": "VAT",
      					"key": "standard",
      					"rate": "general",
      					"percent": "20%",
      					"ext": {
      						"untdid-tax-category": "S"
      					}
      				}
      			],
      			"total": "5000.00"
      		},
      		{
      			"i": 2,
      			"quantity": "1",
      			"item": {
      				"name": "Acompte - Serveur de developpement (materiel)",
      				"price": "2000.00",
      				"unit": "one"
      			},
      			"sum": "2000.00",
      			"taxes": [
      				{
      					"cat": "VAT",
      					"key": "standard",
      					"rate": "general",
      					"percent": "20%",
      					"ext": {
      						"untdid-tax-category": "S"
      					}
      				}
      			],
      			"total": "2000.00"
      		}
      	],
      	"payment": {
      		"terms": {
      			"notes": "Paiement immediat"
      		},
      		"instructions": {
      			"key": "credit-transfer",
      			"credit_transfer": [
      				{
      					"iban": "FR7630006000011234567890189",
      					"name": "Fournisseur Example SARL"
      				}
      			],
      			"ext": {
      				"untdid-payment-means": "30"
      			}
      		}
      	},
      	"totals": {
      		"sum": "7000.00",
      		"total": "7000.00",
      		"taxes": {
      			"categories": [
      				{
      					"code": "VAT",
      					"rates": [
      						{
      							"key": "standard",
      							"ext": {
      								"untdid-tax-category": "S"
      							},
      							"base": "7000.00",
      							"percent": "20%",
      							"amount": "1400.00"
      						}
      					],
      					"amount": "1400.00"
      				}
      			],
      			"sum": "1400.00"
      		},
      		"tax": "1400.00",
      		"total_with_tax": "8400.00",
      		"payable": "8400.00"
      	},
      	"notes": [
      		{
      			"key": "payment",
      			"text": "Une penalite fixe de 40 EUR sera appliquee en cas de retard de paiement.",
      			"ext": {
      				"untdid-text-subject": "PMT"
      			}
      		},
      		{
      			"key": "payment-method",
      			"text": "Des penalites de retard s'appliquent conformement a nos conditions generales de vente.",
      			"ext": {
      				"untdid-text-subject": "PMD"
      			}
      		},
      		{
      			"key": "payment-term",
      			"text": "Aucun escompte n'est offert pour paiement anticipe.",
      			"ext": {
      				"untdid-text-subject": "AAB"
      			}
      		}
      	]
      }
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="PA self-billed invoice">
    A self-billed invoice (*autofacturation*): buyer issues the invoice on the supplier's behalf and sends it through the [send workflow](/guides/fr-pa-invoicing#sending). See [Self-billing](/guides/fr-pa-invoicing#self-billing) for the full flow.

    Notice:

    * the `self-billed` tag sets `untdid-document-type` to `389` (self-billed invoice),
    * the parties keep their natural roles: the vendor is the `supplier` and the issuing buyer is the `customer`. Invopop detects the tag and routes the invoice to the supplier instead,
    * the mandatory "Autofacturation" mention travels as a `legal` note.

    <CodeGroup>
      ```json PA Self-Billed Invoice theme={"system"}
      {
          "$schema": "https://gobl.org/draft-0/bill/invoice",
          "$regime": "FR",
          "$addons": [
              "fr-ctc-flow2-v1"
          ],
          "$tags": [
              "self-billed"
          ],
          "type": "standard",
          "code": "17",
          "issue_date": "2026-07-13",
          "currency": "EUR",
          "tax": {
              "ext": {
                  "fr-ctc-billing-mode": "M1"
              }
          },
          "supplier": {
              "name": "Test supplier",
              "tax_id": {
                  "country": "FR",
                  "code": "82874367109"
              },
              "identities": [
                  {
                      "type": "SIREN",
                      "code": "874367109",
                      "ext": {
                          "iso-scheme-id": "0002"
                      }
                  }
              ],
              "people": [
                  {
                      "name": {
                          "given": "Test supplier",
                          "surname": "Invopop"
                      },
                      "role": "test",
                      "identities": [
                          {
                              "code": "test"
                          }
                      ]
                  }
              ],
              "inboxes": [
                  {
                      "key": "peppol",
                      "scheme": "0225",
                      "code": "874367109"
                  }
              ],
              "addresses": [
                  {
                      "num": "456",
                      "street": "Avenue des Champs-Elysees",
                      "locality": "Paris",
                      "code": "75008",
                      "country": "FR"
                  }
              ],
              "emails": [
                  {
                      "addr": "test@gmail.com"
                  }
              ]
          },
          "customer": {
              "name": "Camille Moreau",
              "tax_id": {
                  "country": "FR",
                  "code": "86874117109"
              },
              "identities": [
                  {
                      "type": "SIREN",
                      "code": "874117109",
                      "ext": {
                          "iso-scheme-id": "0002"
                      }
                  }
              ],
              "people": [
                  {
                      "name": {
                          "given": "Camille",
                          "surname": "Moreau"
                      },
                      "role": "test",
                      "identities": [
                          {
                              "code": "test"
                          }
                      ]
                  }
              ],
              "inboxes": [
                  {
                      "key": "peppol",
                      "scheme": "0225",
                      "code": "874117109"
                  }
              ],
              "addresses": [
                  {
                      "street": "Rue de l'Université",
                      "locality": "Paris",
                      "region": "Paris",
                      "code": "75007",
                      "country": "FR"
                  }
              ],
              "emails": [
                  {
                      "addr": "test@gmail.com"
                  }
              ]
          },
          "lines": [
              {
                  "quantity": "10",
                  "item": {
                      "name": "Services de conseil",
                      "price": "100.00",
                      "unit": "h"
                  },
                  "taxes": [
                      {
                          "cat": "VAT",
                          "key": "standard",
                          "rate": "general"
                      }
                  ]
              }
          ],
          "ordering": {
              "code": "PO-2024-001"
          },
          "payment": {
              "terms": {
                  "notes": "Paiement a 30 jours"
              },
              "instructions": {
                  "key": "credit-transfer",
                  "credit_transfer": [
                      {
                          "iban": "FR0000000000099999999999999",
                          "name": "Fournisseur Example SARL"
                      }
                  ]
              }
          },
          "notes": [
              {
                  "key": "legal",
                  "text": "Autofacturation"
              },
              {
                  "key": "payment",
                  "text": "Une penalite fixe de 40 EUR sera appliquee en cas de retard de paiement.",
                  "ext": {
                      "untdid-text-subject": "PMT"
                  }
              },
              {
                  "key": "payment-method",
                  "text": "Des penalites de retard s'appliquent conformement a nos conditions generales de vente.",
                  "ext": {
                      "untdid-text-subject": "PMD"
                  }
              },
              {
                  "key": "payment-term",
                  "text": "Aucun escompte n'est offert pour paiement anticipe.",
                  "ext": {
                      "untdid-text-subject": "AAB"
                  }
              }
          ]
      }
      ```

      ```json Built version theme={"system"}
      {
      	"$schema": "https://gobl.org/draft-0/bill/invoice",
      	"$regime": "FR",
      	"$addons": [
      		"eu-en16931-v2017",
      		"fr-ctc-flow2-v1"
      	],
      	"$tags": [
      		"self-billed"
      	],
      	"type": "standard",
      	"code": "17",
      	"issue_date": "2026-07-13",
      	"currency": "EUR",
      	"tax": {
      		"rounding": "currency",
      		"ext": {
      			"fr-ctc-billing-mode": "M1",
      			"untdid-document-type": "389"
      		}
      	},
      	"supplier": {
      		"name": "Test supplier",
      		"tax_id": {
      			"country": "FR",
      			"code": "82874367109"
      		},
      		"identities": [
      			{
      				"scope": "legal",
      				"type": "SIREN",
      				"code": "874367109",
      				"ext": {
      					"iso-scheme-id": "0002"
      				}
      			}
      		],
      		"people": [
      			{
      				"name": {
      					"given": "Test supplier",
      					"surname": "Invopop"
      				},
      				"role": "test",
      				"identities": [
      					{
      						"code": "test"
      					}
      				]
      			}
      		],
      		"inboxes": [
      			{
      				"key": "peppol",
      				"scheme": "0225",
      				"code": "874367109"
      			}
      		],
      		"addresses": [
      			{
      				"num": "456",
      				"street": "Avenue des Champs-Elysees",
      				"locality": "Paris",
      				"code": "75008",
      				"country": "FR"
      			}
      		],
      		"emails": [
      			{
      				"addr": "test@gmail.com"
      			}
      		]
      	},
      	"customer": {
      		"name": "Camille Moreau",
      		"tax_id": {
      			"country": "FR",
      			"code": "86874117109"
      		},
      		"identities": [
      			{
      				"scope": "legal",
      				"type": "SIREN",
      				"code": "874117109",
      				"ext": {
      					"iso-scheme-id": "0002"
      				}
      			}
      		],
      		"people": [
      			{
      				"name": {
      					"given": "Camille",
      					"surname": "Moreau"
      				},
      				"role": "test",
      				"identities": [
      					{
      						"code": "test"
      					}
      				]
      			}
      		],
      		"inboxes": [
      			{
      				"key": "peppol",
      				"scheme": "0225",
      				"code": "874117109"
      			}
      		],
      		"addresses": [
      			{
      				"street": "Rue de l'Université",
      				"locality": "Paris",
      				"region": "Paris",
      				"code": "75007",
      				"country": "FR"
      			}
      		],
      		"emails": [
      			{
      				"addr": "test@gmail.com"
      			}
      		]
      	},
      	"lines": [
      		{
      			"i": 1,
      			"quantity": "10",
      			"item": {
      				"name": "Services de conseil",
      				"price": "100.00",
      				"unit": "h"
      			},
      			"sum": "1000.00",
      			"taxes": [
      				{
      					"cat": "VAT",
      					"key": "standard",
      					"rate": "general",
      					"percent": "20%",
      					"ext": {
      						"untdid-tax-category": "S"
      					}
      				}
      			],
      			"total": "1000.00"
      		}
      	],
      	"ordering": {
      		"code": "PO-2024-001"
      	},
      	"payment": {
      		"terms": {
      			"notes": "Paiement a 30 jours"
      		},
      		"instructions": {
      			"key": "credit-transfer",
      			"credit_transfer": [
      				{
      					"iban": "FR0000000000099999999999999",
      					"name": "Fournisseur Example SARL"
      				}
      			],
      			"ext": {
      				"untdid-payment-means": "30"
      			}
      		}
      	},
      	"totals": {
      		"sum": "1000.00",
      		"total": "1000.00",
      		"taxes": {
      			"categories": [
      				{
      					"code": "VAT",
      					"rates": [
      						{
      							"key": "standard",
      							"ext": {
      								"untdid-tax-category": "S"
      							},
      							"base": "1000.00",
      							"percent": "20%",
      							"amount": "200.00"
      						}
      					],
      					"amount": "200.00"
      				}
      			],
      			"sum": "200.00"
      		},
      		"tax": "200.00",
      		"total_with_tax": "1200.00",
      		"payable": "1200.00"
      	},
      	"notes": [
      		{
      			"key": "legal",
      			"text": "Autofacturation",
      			"ext": {
      				"untdid-text-subject": "ABY"
      			}
      		},
      		{
      			"key": "payment",
      			"text": "Une penalite fixe de 40 EUR sera appliquee en cas de retard de paiement.",
      			"ext": {
      				"untdid-text-subject": "PMT"
      			}
      		},
      		{
      			"key": "payment-method",
      			"text": "Des penalites de retard s'appliquent conformement a nos conditions generales de vente.",
      			"ext": {
      				"untdid-text-subject": "PMD"
      			}
      		},
      		{
      			"key": "payment-term",
      			"text": "Aucun escompte n'est offert pour paiement anticipe.",
      			"ext": {
      				"untdid-text-subject": "AAB"
      			}
      		}
      	]
      }
      ```
    </CodeGroup>
  </Accordion>

  <Accordion title="PA cross-border B2B invoice (FR → DE)">
    A French supplier invoicing a customer in another EU member state. Cross-border B2B is **not** transmitted via the PA e-invoicing flow — it falls under [e-reporting](/guides/fr-pa-reporting) instead — but the same GOBL document is used as the source of truth for both.

    Notice:

    * the customer carries a DE tax ID and a generic email inbox rather than a Peppol address,
    * the VAT combo uses the `intra-community` key, which sets `untdid-tax-category` `K` automatically; the `cef-vatex` `VATEX-EU-IC` exemption reason marks the intra-community supply,
    * the [`fr-ctc-flow10-v1`](https://docs.gobl.org/addons/fr-ctc-flow10-v1) add-on validates the document for the periodic e-report to the PPF.

    <CodeGroup>
      ```json PA Cross-Border B2B Invoice (FR → DE) theme={"system"}
      {
          "$schema": "https://gobl.org/draft-0/bill/invoice",
          "$regime": "FR",
          "$addons": [
              "fr-ctc-flow10-v1"
          ],
          "type": "standard",
          "series": "FAC",
          "code": "2024-INT-001",
          "issue_date": "2024-06-15",
          "currency": "EUR",
          "tax": {
              "ext": {
                  "fr-ctc-billing-mode": "B7",
                  "untdid-document-type": "380"
              }
          },
          "supplier": {
              "name": "Fournisseur France SARL",
              "tax_id": {
                  "country": "FR",
                  "code": "732829320"
              },
              "identities": [
                  {
                      "type": "SIREN",
                      "code": "732829320",
                      "ext": {
                          "iso-scheme-id": "0002"
                      }
                  }
              ],
              "inboxes": [
                  {
                      "key": "peppol",
                      "scheme": "0225",
                      "code": "732829320"
                  }
              ],
              "addresses": [
                  {
                      "num": "123",
                      "street": "Rue de la Paix",
                      "locality": "Paris",
                      "code": "75001",
                      "country": "FR"
                  }
              ],
              "emails": [
                  {
                      "addr": "facturation@fournisseur.fr"
                  }
              ]
          },
          "customer": {
              "name": "Kunde Deutschland GmbH",
              "tax_id": {
                  "country": "DE",
                  "code": "111111125"
              },
              "inboxes": [
                  {
                      "email": "buchhaltung@kunde.de"
                  }
              ],
              "addresses": [
                  {
                      "num": "10",
                      "street": "Berliner Strasse",
                      "locality": "Berlin",
                      "code": "10117",
                      "country": "DE"
                  }
              ],
              "emails": [
                  {
                      "addr": "buchhaltung@kunde.de"
                  }
              ]
          },
          "lines": [
              {
                  "quantity": "5",
                  "item": {
                      "name": "Consulting services",
                      "price": "200.00",
                      "unit": "h"
                  },
                  "taxes": [
                      {
                          "cat": "VAT",
                          "key": "intra-community",
                          "ext": {
                              "cef-vatex": "VATEX-EU-IC"
                          }
                      }
                  ]
              }
          ],
          "notes": [
              {
                  "key": "payment",
                  "text": "A fixed penalty of 40 EUR will apply to any late payment.",
                  "ext": {
                      "untdid-text-subject": "PMT"
                  }
              },
              {
                  "key": "payment-method",
                  "text": "Late payment penalties apply as per our general terms of sale.",
                  "ext": {
                      "untdid-text-subject": "PMD"
                  }
              },
              {
                  "key": "payment-term",
                  "text": "No discount offered for early payment.",
                  "ext": {
                      "untdid-text-subject": "AAB"
                  }
              }
          ],
          "payment": {
              "instructions": {
                  "key": "credit-transfer",
                  "credit_transfer": [
                      {
                          "iban": "FR7630006000011234567890189",
                          "name": "Fournisseur France SARL"
                      }
                  ]
              },
              "terms": {
                  "detail": "Payment within 30 days"
              }
          }
      }
      ```

      ```json Built version theme={"system"}
      {
      	"$schema": "https://gobl.org/draft-0/bill/invoice",
      	"$regime": "FR",
      	"$addons": [
      		"fr-ctc-flow10-v1"
      	],
      	"type": "standard",
      	"series": "FAC",
      	"code": "2024-INT-001",
      	"issue_date": "2024-06-15",
      	"currency": "EUR",
      	"tax": {
      		"ext": {
      			"fr-ctc-billing-mode": "B7",
      			"untdid-document-type": "380"
      		}
      	},
      	"supplier": {
      		"name": "Fournisseur France SARL",
      		"tax_id": {
      			"country": "FR",
      			"code": "44732829320"
      		},
      		"identities": [
      			{
      				"scope": "legal",
      				"type": "SIREN",
      				"code": "732829320",
      				"ext": {
      					"iso-scheme-id": "0002"
      				}
      			}
      		],
      		"inboxes": [
      			{
      				"key": "peppol",
      				"scheme": "0225",
      				"code": "732829320"
      			}
      		],
      		"addresses": [
      			{
      				"num": "123",
      				"street": "Rue de la Paix",
      				"locality": "Paris",
      				"code": "75001",
      				"country": "FR"
      			}
      		],
      		"emails": [
      			{
      				"addr": "facturation@fournisseur.fr"
      			}
      		]
      	},
      	"customer": {
      		"name": "Kunde Deutschland GmbH",
      		"tax_id": {
      			"country": "DE",
      			"code": "111111125"
      		},
      		"identities": [
      			{
      				"scope": "legal",
      				"code": "DE111111125",
      				"ext": {
      					"iso-scheme-id": "0223"
      				}
      			}
      		],
      		"inboxes": [
      			{
      				"email": "buchhaltung@kunde.de"
      			}
      		],
      		"addresses": [
      			{
      				"num": "10",
      				"street": "Berliner Strasse",
      				"locality": "Berlin",
      				"code": "10117",
      				"country": "DE"
      			}
      		],
      		"emails": [
      			{
      				"addr": "buchhaltung@kunde.de"
      			}
      		]
      	},
      	"lines": [
      		{
      			"i": 1,
      			"quantity": "5",
      			"item": {
      				"name": "Consulting services",
      				"price": "200.00",
      				"unit": "h"
      			},
      			"sum": "1000.00",
      			"taxes": [
      				{
      					"cat": "VAT",
      					"key": "intra-community",
      					"ext": {
      						"cef-vatex": "VATEX-EU-IC",
      						"untdid-tax-category": "K"
      					}
      				}
      			],
      			"total": "1000.00"
      		}
      	],
      	"payment": {
      		"terms": {
      			"notes": "Payment within 30 days"
      		},
      		"instructions": {
      			"key": "credit-transfer",
      			"credit_transfer": [
      				{
      					"iban": "FR7630006000011234567890189",
      					"name": "Fournisseur France SARL"
      				}
      			]
      		}
      	},
      	"totals": {
      		"sum": "1000.00",
      		"total": "1000.00",
      		"taxes": {
      			"categories": [
      				{
      					"code": "VAT",
      					"rates": [
      						{
      							"key": "intra-community",
      							"ext": {
      								"cef-vatex": "VATEX-EU-IC",
      								"untdid-tax-category": "K"
      							},
      							"base": "1000.00",
      							"amount": "0.00"
      						}
      					],
      					"amount": "0.00"
      				}
      			],
      			"sum": "0.00"
      		},
      		"tax": "0.00",
      		"total_with_tax": "1000.00",
      		"payable": "1000.00"
      	},
      	"notes": [
      		{
      			"key": "payment",
      			"text": "A fixed penalty of 40 EUR will apply to any late payment.",
      			"ext": {
      				"untdid-text-subject": "PMT"
      			}
      		},
      		{
      			"key": "payment-method",
      			"text": "Late payment penalties apply as per our general terms of sale.",
      			"ext": {
      				"untdid-text-subject": "PMD"
      			}
      		},
      		{
      			"key": "payment-term",
      			"text": "No discount offered for early payment.",
      			"ext": {
      				"untdid-text-subject": "AAB"
      			}
      		}
      	]
      }
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>

## FAQ

<AccordionGroup>
  <Accordion title="How do I configure my workspace for French invoicing?">
    Two channels depending on the recipient: B2G uses Chorus Pro (CII format); B2B from September 2026 uses the Plateforme Agréée model (UBL, CII, or Factur-X via Peppol). Invopop is an approved PA — install the France PA app for B2B and the Chorus Pro app for B2G.
  </Accordion>

  <Accordion title="How can I view an XML attached to a PDF?">
    In Factur-X PDFs, the XML file is embedded within the PDF itself. To extract and view it, use the `Attachments` section in Adobe Acrobat Reader, or a tool like the [SysTools PDF Extractor](https://www.systoolsgroup.com/pdf/extractor/).
  </Accordion>

  <Accordion title="Is Invopop ready for the September 2026 mandate?">
    Invopop is an [officially approved Plateforme Agréée](https://www.impots.gouv.fr/je-consulte-la-liste-des-plateformes-agreees) under the DGFiP mandate. Registration, invoicing, and lifecycle status are available today; e-reporting (Flow 10) is in active development. See the [PA hub readiness matrix](/guides/fr-pa) for the current state.
  </Accordion>

  <Accordion title="What GOBL addons are required for France PA?">
    The base [`fr-fec-v3`](https://docs.gobl.org/regimes/fr) regime plus the EN 16931 profile. For Peppol delivery, `peppol-bis-v3`. The forthcoming `fr-ctc-flow10-v1` addon covers e-reporting payloads — separate from the e-invoicing flow.
  </Accordion>

  <Accordion title="Is a self-billed invoice a different document type in France?">
    No. Most Peppol countries treat self-billing as a document type of its own, but France models it as a **standard invoice** with the `untdid-document-type` extension set to `389`. In GOBL you never set the code yourself: add the `self-billed` tag and the [`fr-ctc-flow2-v1`](https://docs.gobl.org/addons/fr-ctc-flow2-v1#standard-self-billed) add-on applies it automatically. See [Self-billing](/guides/fr-pa-invoicing#self-billing) for the full flow.
  </Accordion>

  <Accordion title="What should we do if the customer doesn't belong to the Peppol network?">
    In countries where Peppol is the standard but not mandatory, you may still need to issue an e-invoice when the recipient isn't on the network. Both parties can agree on an alternative transfer method, but the invoice must still be EN16931 compliant.

    Recommended approach:

    * Set up a separate workflow that generates the XML without the send-Peppol-document step
    * Or reuse your existing workflow without the customer Peppol ID — the send step is automatically skipped
    * Fetch the generated XML and deliver it through the agreed channel, typically email
  </Accordion>

  <Accordion title="How do I handle B2C invoices in Peppol?">
    B2C invoices typically lack the structured customer information required for Peppol delivery, and most consumers don't have inboxes. Use a conditional workflow:

    1. Add an **If/Else** step that checks for a customer inbox using `count(customer.inboxes, true) > 0`.
    2. On the `false` branch, generate a PDF and email it to the customer, then stop the flow.

    This routes B2B invoices through Peppol while keeping a smooth path for consumers.
  </Accordion>

  <Accordion title="How do I handle 'Receiver Not Found' errors?">
    If a job fails with `KO` and `receiver not found in the peppol network`, treat it like an invalid email address — the recipient simply isn't reachable on Peppol. Add the **Lookup Participant ID** step (ideally in a separate validation workflow run against customer data) so you catch missing IDs before generating the invoice.
  </Accordion>

  <Accordion title="Should I set the `$regime` field when using Peppol?">
    No. The regime is automatically derived from the supplier's settings, which is the recommended approach for Peppol — leave it unset on the document.
  </Accordion>

  <Accordion title="Where do I find Peppol GOBL documentation?">
    See the [`oasis-ubl-v2`](https://docs.gobl.org/addons/oasis-ubl-v2) addon and the [Peppol app reference](/apps/peppol) for required fields, supported document types, and Participant ID schemes.
  </Accordion>
</AccordionGroup>

More available in our [France FAQ](/faq/france) section

***

<AccordionGroup>
  <Accordion title="🇫🇷 Invopop resources for France">
    |            |                                                                                                                                                                                                                                                                                                                                                                                       |
    | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Compliance | <Icon icon="https://assets.invopop.com/flags/fr.svg" /> [Invoicing compliance in France](/compliance/france)<br /> <Icon icon="timeline" /> [Compliance timeline](/timelines/france)                                                                                                                                                                                                  |
    | Apps       | <Icon icon="https://assets.invopop.com/flags/fr.svg" /> [France](/apps/france)<br /><Icon icon="https://assets.invopop.com/apps/peppol/icon.svg" /> [Peppol](/apps/peppol)<br /><Icon icon="https://assets.invopop.com/apps/chroruspro/icon.svg" /> [ChorusPro France](/apps/choruspro-france)                                                                                        |
    | Guides     | <Icon icon="book" /> [ChorusPro Guide](/guides/fr-chorus-pro)<br /><Icon icon="book" /> [PA Guide](/guides/fr-pa) — [Registration](/guides/fr-pa-registration) · [Invoicing](/guides/fr-pa-invoicing) · [Status](/guides/fr-pa-status) · [Reporting](/guides/fr-pa-reporting)                                                                                                         |
    | FAQ        | <Icon icon="square-question" /> [France FAQ](/faq/france)                                                                                                                                                                                                                                                                                                                             |
    | GOBL       | <Icon icon="https://assets.invopop.com/icons/gobl.svg" />  [France Tax Regime](https://docs.gobl.org/regimes/fr)<br /> <Icon icon="https://assets.invopop.com/icons/gobl.svg" /> [Chorus Pro Addon](https://docs.gobl.org/addons/fr-choruspro-v1)<br /> <Icon icon="https://assets.invopop.com/icons/gobl.svg" /> [French Factur-X Addon](https://docs.gobl.org/addons/fr-facturx-v1) |
    | GitHub     | <Icon icon="github" /> [gobl.xinvoice](https://github.com/invopop/gobl.xinvoice)                                                                                                                                                                                                                                                                                                      |
  </Accordion>
</AccordionGroup>
