> ## 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>

## 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"
      				}
      			}
      		],
      		"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"
      				}
      			}
      		],
      		"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"
      				}
      			}
      		],
      		"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"
      				}
      			}
      		],
      		"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:

    * `fr-ctc-billing-mode` is `B1` (advance / down payment) and `untdid-document-type` is `386`,
    * 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"
          ],
          "type": "standard",
          "series": "FAC",
          "code": "2024-AV-001",
          "issue_date": "2024-06-01",
          "currency": "EUR",
          "tax": {
              "ext": {
                  "fr-ctc-billing-mode": "B1",
                  "untdid-document-type": "386"
              }
          },
          "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"
                      }
                  ]
              }
          ],
          "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"
      	],
      	"type": "standard",
      	"series": "FAC",
      	"code": "2024-AV-001",
      	"issue_date": "2024-06-01",
      	"currency": "EUR",
      	"tax": {
      		"rounding": "currency",
      		"ext": {
      			"fr-ctc-billing-mode": "B1",
      			"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"
      				}
      			}
      		],
      		"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"
      				}
      			}
      		],
      		"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"
      		}
      	],
      	"payment": {
      		"terms": {
      			"notes": "Paiement immediat"
      		},
      		"instructions": {
      			"key": "credit-transfer",
      			"credit_transfer": [
      				{
      					"iban": "FR7630006000011234567890189",
      					"name": "Fournisseur Example SARL"
      				}
      			],
      			"ext": {
      				"untdid-payment-means": "30"
      			}
      		}
      	},
      	"totals": {
      		"sum": "5000.00",
      		"total": "5000.00",
      		"taxes": {
      			"categories": [
      				{
      					"code": "VAT",
      					"rates": [
      						{
      							"key": "standard",
      							"ext": {
      								"untdid-tax-category": "S"
      							},
      							"base": "5000.00",
      							"percent": "20%",
      							"amount": "1000.00"
      						}
      					],
      					"amount": "1000.00"
      				}
      			],
      			"sum": "1000.00"
      		},
      		"tax": "1000.00",
      		"total_with_tax": "6000.00",
      		"payable": "6000.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 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,
    * VAT is `exempt` with the `untdid-tax-category` `K` and `cef-vatex` `VATEX-EU-IC` to mark the intra-community supply,
    * once the [`fr-ctc-flow10-v1`](https://docs.gobl.org/addons/fr-ctc-flow10-v1) add-on is released, this document will additionally feed 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-flow2-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",
                          "rate": "exempt",
                          "ext": {
                              "untdid-tax-category": "K",
                              "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": [
      		"eu-en16931-v2017",
      		"fr-ctc-flow2-v1"
      	],
      	"type": "standard",
      	"series": "FAC",
      	"code": "2024-INT-001",
      	"issue_date": "2024-06-15",
      	"currency": "EUR",
      	"tax": {
      		"rounding": "currency",
      		"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"
      		},
      		"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": "exempt",
      					"ext": {
      						"cef-vatex": "VATEX-EU-IC",
      						"untdid-tax-category": "E"
      					}
      				}
      			],
      			"total": "1000.00"
      		}
      	],
      	"payment": {
      		"terms": {
      			"notes": "Payment within 30 days"
      		},
      		"instructions": {
      			"key": "credit-transfer",
      			"credit_transfer": [
      				{
      					"iban": "FR7630006000011234567890189",
      					"name": "Fournisseur France SARL"
      				}
      			],
      			"ext": {
      				"untdid-payment-means": "30"
      			}
      		}
      	},
      	"totals": {
      		"sum": "1000.00",
      		"total": "1000.00",
      		"taxes": {
      			"categories": [
      				{
      					"code": "VAT",
      					"rates": [
      						{
      							"key": "exempt",
      							"ext": {
      								"cef-vatex": "VATEX-EU-IC",
      								"untdid-tax-category": "E"
      							},
      							"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="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>
