- Description
- Limitations
- Actions
- Workflows
- Documents
PA (Plateforme Agréée) Guide
- Domestic B2B invoicing and B2C/cross-border via e-reporting.
- French format support: UBL (Peppol France CIUS), CII, Factur-X.
- Annuaire (French Directory) supplier registration.
- PA overview · Registration · Invoicing · Status · Reporting
FAQ
Invoicing questionsHow do I configure my workspace for French invoicing?
How do I configure my workspace for French invoicing?
How can I view an XML attached to a PDF?
How can I view an XML attached to a PDF?
Attachments section in Adobe Acrobat Reader, or a tool like the SysTools PDF Extractor.Is Invopop ready for the September 2026 mandate?
Is Invopop ready for the September 2026 mandate?
What GOBL addons are required for France PA?
What GOBL addons are required for France PA?
peppol-bis-v3. The forthcoming fr-ctc-flow10-v1 addon covers e-reporting payloads — separate from the e-invoicing flow.Is a self-billed invoice a different document type in France?
Is a self-billed invoice a different document type in France?
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 add-on applies it automatically. See Self-billing for the full flow.What should we do if the customer doesn't belong to the Peppol network?
What should we do if the customer doesn't belong to the Peppol network?
- 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
How do I handle B2C invoices in Peppol?
How do I handle B2C invoices in Peppol?
- Add an If/Else step that checks for a customer inbox using
count(customer.inboxes, true) > 0. - On the
falsebranch, generate a PDF and email it to the customer, then stop the flow.
How do I handle 'Receiver Not Found' errors?
How do I handle 'Receiver Not Found' errors?
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.Should I set the `$regime` field when using Peppol?
Should I set the `$regime` field when using Peppol?
Where do I find Peppol GOBL documentation?
Where do I find Peppol GOBL documentation?
oasis-ubl-v2 addon and the Peppol app reference for required fields, supported document types, and Participant ID schemes.How do I onboard a new supplier in France?
How do I onboard a new supplier in France?
How are supplier credentials stored in Invopop for France?
How are supplier credentials stored in Invopop for France?
How do I register a supplier with France PA?
How do I register a supplier with France PA?
What certificates does France PA require to authenticate a supplier?
What certificates does France PA require to authenticate a supplier?
How do I register for a Peppol inbox in Invopop?
How do I register for a Peppol inbox in Invopop?
ubl-invoice doc group) and ready to receive invoices.I get 'XXXX:XXXXXXXXX is already registered' when registering a supplier — what now?
I get 'XXXX:XXXXXXXXX is already registered' when registering a supplier — what now?
9925 VAT scheme rather than the default 0208).How do I assign multiple inboxes to a single supplier?
How do I assign multiple inboxes to a single supplier?
What are Participant IDs?
What are Participant IDs?
- Scheme — identifies the type of identifier (e.g.
9920for Spanish VAT,0208for Belgian KBO/BCE) - Code — the actual identification number
0208 but some entities are only registered under 9925 (VAT). If you hit a “receiver not found” error, the recipient may be registered under an alternative scheme.What visibility level should I set on my Peppol Party?
What visibility level should I set on my Peppol Party?
smp— SMP only, for testingsmp+sml— SMP and SML, useful when you only want to sendsmp+sml+peppol— SMP, SML, and the Peppol Directory, recommended for both sending and receiving (and for being discoverable in the Directory)
How do I import received invoices in France?
How do I import received invoices in France?
How does Invopop convert received French invoices into GOBL?
How does Invopop convert received French invoices into GOBL?
gobl.peppol; CII and Factur-X via gobl.cii. The original structured XML (or PDF/A-3 with embedded XML) is preserved as a silo entry attachment.How do I import received invoices via France PA?
How do I import received invoices via France PA?
What format do received France PA invoices arrive in?
What format do received France PA invoices arrive in?
Can I receive invoices at more than one platform (PDP) for the same company?
Can I receive invoices at more than one platform (PDP) for the same company?
SIREN— the company as a whole.SIREN_SIRET— a specific establishment.SIREN_SIRET_ROUTINGCODE— a site, department, or workflow within an establishment.SIREN_SUFFIX— a custom routing suffix.
How do I import received invoices via Peppol?
How do I import received invoices via Peppol?
Can I remove UBL or CII from the 'Peppol receive invoice' workflow if I only use one format?
Can I remove UBL or CII from the 'Peppol receive invoice' workflow if I only use one format?
How are incoming Peppol documents converted into GOBL?
How are incoming Peppol documents converted into GOBL?
How do I schedule periodic reports for France?
How do I schedule periodic reports for France?
What format does France expect for periodic reports?
What format does France expect for periodic reports?
fr-ctc-flow10-v1 GOBL addon.How often must I submit France PA reports?
How often must I submit France PA reports?
What format does France PA expect for periodic reports?
What format does France PA expect for periodic reports?
Plateforme Agréée scope
Beta or In development.| Capability | Status | Notes |
|---|---|---|
| Annuaire registration | Available | Self-serve KYC in development |
| Send invoices (UBL, CII, Factur-X) | Available | API may change before Sept 2026 |
| Receive invoices | Available | API may change before Sept 2026 |
| Lifecycle status (CDAR) | Beta | Moving to a first-class GOBL document |
| E-reporting (Flow 10) | In development | fr-ctc-flow10-v1 add-on not yet released |
Register in Annuaire
Register party on Peppol
Register reporter
Disable in Annuaire
Disable reporter
Record invoice
Generate UBL document
Generate CII document
Send Peppol document
Forward invoice to PPF
Import Peppol document
Import UBL document
Import CII document
Import Factur-X PDF
Generate CDAR
Record status
Forward status to PPF
PA send invoice
PA send invoice
{
"name": "PPF send document",
"description": "Send an invoice, status or payment via Peppol and record it with PPF",
"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": "bf2c86b0-8127-11f1-9e29-9d2d7ab31d21",
"name": "Document is an invoice?",
"provider": "silo.if",
"next": [
{
"status": "NA",
"code": "true",
"steps": [
{
"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
}
}
]
},
{
"status": "NA",
"code": "false",
"steps": [
{
"id": "e30aa7b0-8127-11f1-9e29-9d2d7ab31d21",
"name": "Generate CDAR Status",
"provider": "cii.generate",
"summary": "France CTC Flow 6 CDAR (lifecycle status/payment)",
"config": {
"attach_invoice_pdf": false,
"doc_type": "fr-ctc-cdar-flow6",
"validate_cii": false
}
}
]
}
],
"config": {
"expr": "doc['$schema'] endsWith 'bill/invoice'",
"scope": "env"
}
},
{
"id": "f1e30fa0-13c9-11f1-98a6-7dfa4cb26122",
"name": "Record document for e-invoicing",
"provider": "gov-fr.directory.record"
},
{
"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"
}
}
]
}
PA receive invoice
PA receive invoice
{
"name": "PPF receive document",
"description": "Receive an invoice, status or payment via Peppol and register it with PPF",
"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"
}
]
}
],
"notes": "Receives the Peppol document and returns the format in a code (UBL/CII/PDF)"
},
{
"id": "9c15ac60-7b8c-11f1-bf7f-e1e339678581",
"name": "Document is invoice?",
"provider": "silo.if",
"next": [
{
"code": "true",
"steps": [
{
"id": "a48f03f0-7b8c-11f1-bf7f-e1e339678581",
"name": "Sign Envelope",
"provider": "silo.close",
"next": [],
"notes": "If it's an invoice, sign, generate a PDF and place it in the Expenses folder"
},
{
"id": "a80b8080-7b8c-11f1-bf7f-e1e339678581",
"name": "Generate PDF",
"provider": "pdf",
"next": [],
"summary": "French - A4",
"config": {
"logo_height": 40,
"locale": "fr",
"date_format": "%Y-%m-%d",
"time_format": "%H:%M",
"layout": "A4",
"scripting": false,
"label": "",
"watermark": "",
"currency_template": "",
"negative_template": "",
"thousands_separator": "",
"decimal_mark": "",
"duplicate": false
}
},
{
"id": "ab7e1200-7b8c-11f1-bf7f-e1e339678581",
"name": "Set Folder",
"provider": "silo.folder",
"next": [],
"summary": "Set folder to `Invoices · Expenses`{.font-medium}",
"config": {
"folder": "expenses"
}
}
]
}
],
"summary": "",
"config": {
"expr": "$schema endsWith \"bill/invoice\"",
"scope": "doc"
},
"notes": "Checks for bill/invoice document"
},
{
"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 `received`{.state .received}",
"config": {
"state": "received"
}
}
],
"rescue": [
{
"id": "e109d2e0-0fb5-11f0-b078-9fc456829eca",
"name": "Set state",
"provider": "silo.state",
"summary": "Set state to `error`{.state .error}",
"config": {
"state": "error"
}
}
]
}
Factur-X invoice
Factur-X invoice
{
"name": "Factur-X issue invoice",
"description": "Generate a Factur-X invoice (PDF with embedded CII)",
"schema": "bill/invoice",
"steps": [
{
"id": "bd7eb640-abd0-11ef-a013-91c68ca9f44b",
"name": "Set state",
"provider": "silo.state",
"summary": "Set state to `processing`{.state .processing}",
"config": {
"state": "processing"
}
},
{
"id": "58fb4ce0-6626-11f0-b9ab-1bbe1fa4398c",
"name": "Sign envelope",
"provider": "silo.close"
},
{
"id": "3548d720-6623-11f0-b3db-e7255a5da07c",
"name": "Generate CII document",
"provider": "cii.generate",
"summary": "Factur-X v1",
"config": {
"doc_type": "facturx-v1"
}
},
{
"id": "56bda1e0-8ef7-11f0-aa0e-dd7c69b95f3c",
"name": "Generate PDF",
"provider": "pdf",
"summary": "French · A4",
"config": {
"logo_height": 40,
"locale": "fr",
"date_format": "%Y-%m-%d",
"layout": "A4",
"scripting": false
}
},
{
"id": "c6192a60-abd0-11ef-a013-91c68ca9f44b",
"name": "Set state",
"provider": "silo.state",
"summary": "Set state to `sent`{.state .sent}",
"config": {
"state": "sent"
}
}
],
"rescue": [
{
"id": "c94982c0-abd0-11ef-a013-91c68ca9f44b",
"name": "Set state",
"provider": "silo.state",
"summary": "Set state to `error`{.state .error}",
"config": {
"state": "error"
}
}
]
}
PA register party
PA register party
{
"name": "PPF register supplier",
"description": "Register a supplier with the French Directory and Peppol",
"schema": "org/party",
"steps": [
{
"id": "0adf46e0-8fdb-11f0-a8fb-61ec9e5a76ba",
"name": "Sign PPF agreement",
"provider": "gov-fr.agreement.sign",
"notes": "Generates the PA mandate to authorize Invopop to act on behalf of the supplier"
},
{
"id": "0e44b900-8fdb-11f0-a8fb-61ec9e5a76ba",
"name": "Set state",
"provider": "silo.state",
"summary": "Set state to `processing`{.state .processing}",
"config": {
"state": "processing"
}
},
{
"id": "12aaf950-8fdb-11f0-a8fb-61ec9e5a76ba",
"name": "Wait for PPF agreement upload",
"provider": "gov-fr.agreement.wait.approval",
"notes": "Pauses until the signed agreement is uploaded and accepted"
},
{
"id": "b194f710-5451-11f1-baf5-4f2c2882107f",
"name": "Set state",
"provider": "silo.state",
"summary": "Set state to `completed`{.state .completed}",
"config": {
"state": "completed"
}
},
{
"id": "d10a4680-1e29-11f1-8bfb-2beaa1df60f0",
"name": "Register party in Directory",
"provider": "gov-fr.directory.register",
"notes": "Submits the SIREN to the French Annuaire for invoice routing"
},
{
"id": "7a5a4db0-0fae-11f0-b37b-0be1c251a274",
"name": "Register party on Peppol",
"provider": "peppol.register",
"summary": "Enabled · groups: france",
"config": {
"directory": true,
"disable": false,
"doc_groups": [
"france"
],
"visibility": "smp+sml+peppol"
},
"notes": "Publishes the party, enabling Peppol routing for sending and receiving"
},
{
"id": "b523ae4a-7b39-4410-abaa-b03a4e33f7bd",
"name": "Register party for reporting",
"provider": "gov-fr.reporting.register",
"notes": "Registers the SIREN for reporting"
},
{
"id": "7c2fa9f0-0fae-11f0-b37b-0be1c251a274",
"name": "Set state",
"provider": "silo.state",
"summary": "Set state to `registered`{.state .registered}",
"config": {
"state": "registered"
}
}
],
"rescue": [
{
"id": "a34e83f0-25dc-11f0-b641-350e77c28eed",
"name": "Set state",
"provider": "silo.state",
"summary": "Set state to `error`{.state .error}",
"config": {
"state": "error"
}
}
]
}
PA deregister party
PA deregister party
{
"name": "PPF unregister supplier",
"description": "Unregister a supplier from Peppol and the French Directory",
"schema": "org/party",
"steps": [
{
"id": "453beac0-70a7-11f1-aca9-697108ec55ef",
"name": "Unregister supplier from Peppol",
"provider": "peppol.unregister"
},
{
"id": "13c84e60-5452-11f1-baf5-4f2c2882107f",
"name": "Disable party in Directory",
"provider": "gov-fr.directory.disable"
},
{
"id": "c91ae086-f830-425b-b67c-72af00efc22c",
"name": "Disable party for reporting",
"provider": "gov-fr.reporting.disable"
},
{
"id": "1b8a6b80-5452-11f1-baf5-4f2c2882107f",
"name": "Set state",
"provider": "silo.state",
"summary": "Set state to `void`{.state .void}",
"config": {
"state": "void"
}
}
],
"rescue": [
{
"id": "23e0d3a0-5452-11f1-baf5-4f2c2882107f",
"name": "Set state",
"provider": "silo.state",
"summary": "Set state to `error`{.state .error}",
"config": {
"state": "error"
}
}
]
}
Supplier
Supplier
iso-scheme-id 0002, a 0225 Peppol inbox matching the SIREN, and a French address.{
"$schema": "https://gobl.org/draft-0/org/party",
"name": "Marseille Commerce SAS",
"tax_id": {
"country": "FR",
"code": "83526018155"
},
"identities": [
{
"type": "SIREN",
"code": "526018155",
"ext": {
"iso-scheme-id": "0002"
}
}
],
"people": [
{
"name": {
"given": "Claire",
"surname": "Moreau"
},
"role": "Directrice",
"identities": [{
"label": "Passport/document number",
"code": "123456"
}]
}
],
"inboxes": [
{
"key": "peppol",
"scheme": "0225",
"code": "526018155"
}
],
"addresses": [
{
"num": "25",
"street": "Avenue des Champs-Élysées",
"locality": "Paris",
"code": "75008",
"country": "FR"
}
],
"emails": [
{
"addr": "facturation@marseillecommerce.fr"
}
],
"telephones": [
{
"num": "+33100200300"
}
]
}
Customer
Customer
0002), matching 0225 Peppol inbox, and a French address.{
"$schema": "https://gobl.org/draft-0/org/party",
"name": "Grande Distribution SA",
"tax_id": {
"country": "FR",
"code": "44732829320"
},
"identities": [
{
"type": "SIREN",
"code": "732829320",
"ext": {
"iso-scheme-id": "0002"
}
}
],
"inboxes": [
{
"key": "peppol",
"scheme": "0225",
"code": "732829320"
}
],
"addresses": [
{
"num": "40",
"street": "Boulevard du Commerce",
"locality": "Paris",
"code": "75012",
"country": "FR"
}
],
"emails": [
{
"addr": "comptabilite@grandedistribution.fr"
}
],
"telephones": [
{
"num": "+33100200400"
}
]
}
PA B2B invoice (domestic)
PA B2B invoice (domestic)
fr-ctc-flow2-v1 add-on drives validation for the PA e-invoicing flow.Notice:- both parties carry a
SIRENidentity withiso-scheme-id0002and apeppolinbox under scheme0225so the workflow can route via Peppol, fr-ctc-billing-modeS1marks the standard submission (dépôt) of a services invoice;untdid-document-type380confirms the commercial invoice type,- the
payment,payment-method, andpayment-termnotes carry the French legal-mention text (penalty clauses, late-payment terms, early-payment discount), each tagged with the appropriate UNTDID 4451 subject code, ordering.coderecords the customer’s purchase order reference.
{
"$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": "S1",
"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"
}
}
}
{
"$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": "S1",
"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"
}
}
]
}
PA B2B invoice (building subcontracting, autoliquidation)
PA B2B invoice (building subcontracting, autoliquidation)
fr-ctc-flow2-v1) even though it carries no VAT — it is not e-reporting.Notice:- the VAT combo uses the
reverse-chargekey, which setsuntdid-tax-categoryAEand produces a0.00VAT total, with no tax rate or amount on the line, - the
reverse-chargenote text is set explicitly to cite article 283-2 nonies (subcontracting); left to the regime default it would cite the generic article 283-1, fr-ctc-billing-modeisS1— a plain services submission: the reverse charge is carried entirely by the VAT key and note.S5(subcontractor invoice) applies only to subcontracting with payment delegation (paiement direct), which is not the case here,- the reverse charge only applies where the customer is a taxable person — invoicing a non-taxable property owner would carry standard VAT instead.
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"fr-ctc-flow2-v1"
],
"$tags": [
"reverse-charge"
],
"type": "standard",
"series": "ST",
"code": "2026-00001",
"issue_date": "2026-09-15",
"currency": "EUR",
"tax": {
"ext": {
"fr-ctc-billing-mode": "S1",
"untdid-document-type": "380"
},
"notes": [
{
"cat": "VAT",
"key": "reverse-charge",
"text": "Autoliquidation – TVA due par le preneur, article 283-2 nonies du CGI."
}
]
},
"supplier": {
"name": "Plomberie Dupont SARL",
"tax_id": {
"country": "FR",
"code": "303265045"
},
"identities": [
{
"type": "SIREN",
"code": "303265045",
"ext": {
"iso-scheme-id": "0002"
}
}
],
"inboxes": [
{
"key": "peppol",
"scheme": "0225",
"code": "303265045"
}
],
"addresses": [
{
"num": "12",
"street": "Rue des Artisans",
"locality": "Lyon",
"code": "69003",
"country": "FR"
}
]
},
"customer": {
"name": "Bâtiment Martin SA",
"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": "5",
"street": "Avenue de la Construction",
"locality": "Villeurbanne",
"code": "69100",
"country": "FR"
}
]
},
"payment": {
"terms": {
"key": "due-date",
"due_dates": [
{
"date": "2026-10-15",
"amount": "10000.00"
}
]
},
"instructions": {
"key": "credit-transfer",
"credit_transfer": [
{
"iban": "FR7630006000011234567890189"
}
]
}
},
"lines": [
{
"quantity": "1",
"item": {
"name": "Travaux de plomberie en sous-traitance",
"price": "10000.00"
},
"taxes": [
{
"cat": "VAT",
"key": "reverse-charge"
}
]
}
]
}
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"eu-en16931-v2017",
"fr-ctc-flow2-v1"
],
"$tags": [
"reverse-charge"
],
"type": "standard",
"series": "ST",
"code": "2026-00001",
"issue_date": "2026-09-15",
"currency": "EUR",
"tax": {
"rounding": "currency",
"ext": {
"fr-ctc-billing-mode": "S1",
"untdid-document-type": "380"
},
"notes": [
{
"cat": "VAT",
"key": "reverse-charge",
"text": "Autoliquidation – TVA due par le preneur, article 283-2 nonies du CGI.",
"ext": {
"untdid-tax-category": "AE"
}
}
]
},
"supplier": {
"name": "Plomberie Dupont SARL",
"tax_id": {
"country": "FR",
"code": "40303265045"
},
"identities": [
{
"scope": "legal",
"type": "SIREN",
"code": "303265045",
"ext": {
"iso-scheme-id": "0002"
}
}
],
"endpoints": [
{
"uri": "iso6523-actorid-upis::0225:303265045"
}
],
"inboxes": [
{
"key": "peppol",
"scheme": "0225",
"code": "303265045"
}
],
"addresses": [
{
"num": "12",
"street": "Rue des Artisans",
"locality": "Lyon",
"code": "69003",
"country": "FR"
}
]
},
"customer": {
"name": "Bâtiment Martin SA",
"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": "5",
"street": "Avenue de la Construction",
"locality": "Villeurbanne",
"code": "69100",
"country": "FR"
}
]
},
"lines": [
{
"i": 1,
"quantity": "1",
"item": {
"name": "Travaux de plomberie en sous-traitance",
"price": "10000.00",
"unit": "one"
},
"sum": "10000.00",
"taxes": [
{
"cat": "VAT",
"key": "reverse-charge",
"ext": {
"untdid-tax-category": "AE"
}
}
],
"total": "10000.00"
}
],
"payment": {
"terms": {
"key": "due-date",
"due_dates": [
{
"date": "2026-10-15",
"amount": "10000.00"
}
]
},
"instructions": {
"key": "credit-transfer",
"credit_transfer": [
{
"iban": "FR7630006000011234567890189"
}
],
"ext": {
"untdid-payment-means": "30"
}
}
},
"totals": {
"sum": "10000.00",
"total": "10000.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "reverse-charge",
"ext": {
"untdid-tax-category": "AE"
},
"base": "10000.00",
"amount": "0.00"
}
],
"amount": "0.00"
}
],
"sum": "0.00"
},
"tax": "0.00",
"total_with_tax": "10000.00",
"payable": "10000.00"
},
"notes": [
{
"key": "payment",
"text": "Conditions de paiement selon les conditions générales de vente.",
"ext": {
"untdid-text-subject": "PMT"
}
},
{
"key": "payment-method",
"text": "Pénalités et indemnités de retard applicables conformément aux conditions générales de vente.",
"ext": {
"untdid-text-subject": "PMD"
}
},
{
"key": "payment-term",
"text": "Aucun escompte n'est accordé pour paiement anticipé.",
"ext": {
"untdid-text-subject": "AAB"
}
}
]
}
PA B2B credit note
PA B2B credit note
preceding array references the original invoice by series, code, and issue date.Notice:typeiscredit-noteanduntdid-document-typeis381(commercial credit note),- the
precedingblock makes the link to the original invoice explicit — required for PA matching at the PPF.
{
"$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": "S1",
"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"
}
]
}
}
}
{
"$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": "S1",
"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"
}
}
]
}
PA B2B advance payment invoice
PA B2B advance payment invoice
- the
prepaymenttag setsuntdid-document-typeto386(advance payment invoice), - no billing mode is set explicitly: the add-on defaults
fr-ctc-billing-modetoM1(submission of a mixed invoice — here a service plus a good); the advance nature is carried by the document type, not the billing mode, - the final invoice issued at delivery normally references this advance to net it off the total.
{
"$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"
}
}
}
{
"$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"
}
}
]
}
PA B2B final invoice (after down payment)
PA B2B final invoice (after down payment)
FAC 2024-AV-001) is netted off the total.Notice:fr-ctc-billing-modeis pinned toM4(mixed, final invoice after down payment); left unset it would default back toM1,- flow 2 forbids advance-payment document types (386, 500, 503) on final invoices, so
untdid-document-typestays380(BR-FR-CO-08), payment.advancesrecords the 8,400.00 already paid, referencing the advance invoice —totals.duecomes out to the remaining 12,000.00,- the due-date payment terms cover only the outstanding balance.
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"fr-ctc-flow2-v1"
],
"type": "standard",
"series": "FAC",
"code": "2024-00107",
"issue_date": "2024-07-15",
"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": "Projet de developpement - prestation complete",
"price": "15000.00"
},
"taxes": [
{
"cat": "VAT",
"rate": "standard"
}
]
},
{
"quantity": "1",
"item": {
"name": "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": {
"key": "due-date",
"due_dates": [
{
"date": "2024-08-15",
"amount": "12000.00"
}
]
},
"advances": [
{
"description": "Acompte verse - facture FAC 2024-AV-001",
"amount": "8400.00"
}
]
},
"tax": {
"ext": {
"fr-ctc-billing-mode": "M4"
}
}
}
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"eu-en16931-v2017",
"fr-ctc-flow2-v1"
],
"type": "standard",
"series": "FAC",
"code": "2024-00107",
"issue_date": "2024-07-15",
"currency": "EUR",
"tax": {
"rounding": "currency",
"ext": {
"fr-ctc-billing-mode": "M4",
"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"
}
]
},
"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": "Projet de developpement - prestation complete",
"price": "15000.00",
"unit": "one"
},
"sum": "15000.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "20%",
"ext": {
"untdid-tax-category": "S"
}
}
],
"total": "15000.00"
},
{
"i": 2,
"quantity": "1",
"item": {
"name": "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": {
"key": "due-date",
"due_dates": [
{
"date": "2024-08-15",
"amount": "12000.00"
}
]
},
"advances": [
{
"description": "Acompte verse - facture FAC 2024-AV-001",
"amount": "8400.00"
}
],
"instructions": {
"key": "credit-transfer",
"credit_transfer": [
{
"iban": "FR7630006000011234567890189",
"name": "Fournisseur Example SARL"
}
],
"ext": {
"untdid-payment-means": "30"
}
}
},
"totals": {
"sum": "17000.00",
"total": "17000.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"untdid-tax-category": "S"
},
"base": "17000.00",
"percent": "20%",
"amount": "3400.00"
}
],
"amount": "3400.00"
}
],
"sum": "3400.00"
},
"tax": "3400.00",
"total_with_tax": "20400.00",
"payable": "20400.00",
"advance": "8400.00",
"due": "12000.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"
}
}
]
}
PA B2B invoice after a B2C sale (VAT already collected)
PA B2B invoice after a B2C sale (VAT already collected)
fr-ctc-billing-modeis pinned toS7(services, VAT already collected): the VAT was already reported with the B2C sale, so this invoice must not re-declare it. Left unset, the add-on would default to an already-paid mode and the VAT would be counted twice,B7is the goods counterpart — e.g. retail goods sold over the counter and invoiced to a business afterwards,- the 100% advance records the on-site card payment, leaving
totals.dueat0.00, - restaurant meals carry the intermediate 10% VAT rate.
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"fr-ctc-flow2-v1"
],
"type": "standard",
"series": "FAC",
"code": "2026-00318",
"issue_date": "2026-09-18",
"currency": "EUR",
"tax": {
"ext": {
"fr-ctc-billing-mode": "S7"
}
},
"supplier": {
"name": "Le Bistrot du Marché SARL",
"tax_id": {
"country": "FR",
"code": "303265045"
},
"identities": [
{
"type": "SIREN",
"code": "303265045",
"ext": {
"iso-scheme-id": "0002"
}
}
],
"inboxes": [
{
"key": "peppol",
"scheme": "0225",
"code": "303265045"
}
],
"addresses": [
{
"num": "18",
"street": "Rue du Marché",
"locality": "Lyon",
"code": "69002",
"country": "FR"
}
]
},
"customer": {
"name": "Conseil & Associés 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": "9",
"street": "Place Bellecour",
"locality": "Lyon",
"code": "69002",
"country": "FR"
}
]
},
"lines": [
{
"quantity": "4",
"item": {
"name": "Repas d'affaires - menu du jour",
"price": "42.00"
},
"taxes": [
{
"cat": "VAT",
"rate": "intermediate"
}
]
}
],
"payment": {
"advances": [
{
"description": "Réglé sur place par carte bancaire",
"percent": "100%"
}
]
}
}
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"eu-en16931-v2017",
"fr-ctc-flow2-v1"
],
"type": "standard",
"series": "FAC",
"code": "2026-00318",
"issue_date": "2026-09-18",
"currency": "EUR",
"tax": {
"rounding": "currency",
"ext": {
"fr-ctc-billing-mode": "S7",
"untdid-document-type": "380"
}
},
"supplier": {
"name": "Le Bistrot du Marché SARL",
"tax_id": {
"country": "FR",
"code": "40303265045"
},
"identities": [
{
"scope": "legal",
"type": "SIREN",
"code": "303265045",
"ext": {
"iso-scheme-id": "0002"
}
}
],
"endpoints": [
{
"uri": "iso6523-actorid-upis::0225:303265045"
}
],
"inboxes": [
{
"key": "peppol",
"scheme": "0225",
"code": "303265045"
}
],
"addresses": [
{
"num": "18",
"street": "Rue du Marché",
"locality": "Lyon",
"code": "69002",
"country": "FR"
}
]
},
"customer": {
"name": "Conseil \u0026 Associés 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": "9",
"street": "Place Bellecour",
"locality": "Lyon",
"code": "69002",
"country": "FR"
}
]
},
"lines": [
{
"i": 1,
"quantity": "4",
"item": {
"name": "Repas d'affaires - menu du jour",
"price": "42.00",
"unit": "one"
},
"sum": "168.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "intermediate",
"percent": "10%",
"ext": {
"untdid-tax-category": "S"
}
}
],
"total": "168.00"
}
],
"payment": {
"advances": [
{
"description": "Réglé sur place par carte bancaire",
"percent": "100%",
"amount": "184.80"
}
]
},
"totals": {
"sum": "168.00",
"total": "168.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"untdid-tax-category": "S"
},
"base": "168.00",
"percent": "10%",
"amount": "16.80"
}
],
"amount": "16.80"
}
],
"sum": "16.80"
},
"tax": "16.80",
"total_with_tax": "184.80",
"payable": "184.80",
"advance": "184.80",
"due": "0.00"
},
"notes": [
{
"key": "payment",
"text": "Conditions de paiement selon les conditions générales de vente.",
"ext": {
"untdid-text-subject": "PMT"
}
},
{
"key": "payment-method",
"text": "Pénalités et indemnités de retard applicables conformément aux conditions générales de vente.",
"ext": {
"untdid-text-subject": "PMD"
}
},
{
"key": "payment-term",
"text": "Aucun escompte n'est accordé pour paiement anticipé.",
"ext": {
"untdid-text-subject": "AAB"
}
}
]
}
PA B2B self-billed invoice (autofacturation)
PA B2B self-billed invoice (autofacturation)
fr-ctc-flow2-v1).Notice:- the
self-billedtag setsuntdid-document-typeto389(self-billed invoice) — supplier and customer keep their real commercial roles, the tag records that the customer produced the document, - the PA validation flips the routing check on self-billed types: it is the customer, as issuer, that must carry the
0225inbox matching its SIREN, - the
legalnote carries the mandatory Autofacturation mention, auto-tagged withuntdid-text-subjectABL; the standard French payment mentions (PMT, PMD, AAB) are filled with regime defaults at build time, - the reduced 5.5% VAT rate applies to the foodstuffs being supplied.
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"fr-ctc-flow2-v1"
],
"$tags": [
"self-billed"
],
"type": "standard",
"series": "AF",
"code": "2026-00042",
"issue_date": "2026-09-30",
"currency": "EUR",
"tax": {
"ext": {
"fr-ctc-billing-mode": "B1"
}
},
"supplier": {
"name": "Ferme de la Vallée SARL",
"tax_id": {
"country": "FR",
"code": "303265045"
},
"identities": [
{
"type": "SIREN",
"code": "303265045",
"ext": {
"iso-scheme-id": "0002"
}
}
],
"inboxes": [
{
"key": "peppol",
"scheme": "0225",
"code": "303265045"
}
],
"addresses": [
{
"num": "3",
"street": "Chemin des Vergers",
"locality": "Avignon",
"code": "84000",
"country": "FR"
}
]
},
"customer": {
"name": "Grande Distribution SA",
"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": "40",
"street": "Boulevard du Commerce",
"locality": "Paris",
"code": "75012",
"country": "FR"
}
]
},
"lines": [
{
"quantity": "500",
"item": {
"name": "Légumes de saison - livraison septembre",
"price": "2.40",
"unit": "kg"
},
"taxes": [
{
"cat": "VAT",
"rate": "reduced"
}
]
}
],
"notes": [
{
"key": "legal",
"text": "Autofacturation - facture établie par le client au nom et pour le compte du fournisseur."
}
],
"payment": {
"terms": {
"key": "due-date",
"due_dates": [
{
"date": "2026-10-30",
"amount": "1266.00"
}
]
},
"instructions": {
"key": "credit-transfer",
"credit_transfer": [
{
"iban": "FR7630006000011234567890189"
}
]
}
}
}
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"eu-en16931-v2017",
"fr-ctc-flow2-v1"
],
"$tags": [
"self-billed"
],
"type": "standard",
"series": "AF",
"code": "2026-00042",
"issue_date": "2026-09-30",
"currency": "EUR",
"tax": {
"rounding": "currency",
"ext": {
"fr-ctc-billing-mode": "B1",
"untdid-document-type": "389"
}
},
"supplier": {
"name": "Ferme de la Vallée SARL",
"tax_id": {
"country": "FR",
"code": "40303265045"
},
"identities": [
{
"scope": "legal",
"type": "SIREN",
"code": "303265045",
"ext": {
"iso-scheme-id": "0002"
}
}
],
"endpoints": [
{
"uri": "iso6523-actorid-upis::0225:303265045"
}
],
"inboxes": [
{
"key": "peppol",
"scheme": "0225",
"code": "303265045"
}
],
"addresses": [
{
"num": "3",
"street": "Chemin des Vergers",
"locality": "Avignon",
"code": "84000",
"country": "FR"
}
]
},
"customer": {
"name": "Grande Distribution SA",
"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": "40",
"street": "Boulevard du Commerce",
"locality": "Paris",
"code": "75012",
"country": "FR"
}
]
},
"lines": [
{
"i": 1,
"quantity": "500",
"item": {
"name": "Légumes de saison - livraison septembre",
"price": "2.40",
"unit": "kg"
},
"sum": "1200.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "reduced",
"percent": "5.5%",
"ext": {
"untdid-tax-category": "S"
}
}
],
"total": "1200.00"
}
],
"payment": {
"terms": {
"key": "due-date",
"due_dates": [
{
"date": "2026-10-30",
"amount": "1266.00"
}
]
},
"instructions": {
"key": "credit-transfer",
"credit_transfer": [
{
"iban": "FR7630006000011234567890189"
}
],
"ext": {
"untdid-payment-means": "30"
}
}
},
"totals": {
"sum": "1200.00",
"total": "1200.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"untdid-tax-category": "S"
},
"base": "1200.00",
"percent": "5.5%",
"amount": "66.00"
}
],
"amount": "66.00"
}
],
"sum": "66.00"
},
"tax": "66.00",
"total_with_tax": "1266.00",
"payable": "1266.00"
},
"notes": [
{
"key": "legal",
"text": "Autofacturation - facture établie par le client au nom et pour le compte du fournisseur.",
"ext": {
"untdid-text-subject": "ABL"
}
},
{
"key": "payment",
"text": "Conditions de paiement selon les conditions générales de vente.",
"ext": {
"untdid-text-subject": "PMT"
}
},
{
"key": "payment-method",
"text": "Pénalités et indemnités de retard applicables conformément aux conditions générales de vente.",
"ext": {
"untdid-text-subject": "PMD"
}
},
{
"key": "payment-term",
"text": "Aucun escompte n'est accordé pour paiement anticipé.",
"ext": {
"untdid-text-subject": "AAB"
}
}
]
}
Factur-X B2B invoice
Factur-X B2B invoice
fr-facturx-v1 add-on for the Factur-X format with fr-ctc-flow2-v1, so the same document is also valid for the PA e-invoicing flow.Notice:- the two add-ons compose:
fr-facturx-v1drives the Factur-X output whilefr-ctc-flow2-v1applies the PA validation; theeu-en16931-v2017profile they share is added automatically as a dependency, - each party declares only a
SIRETidentity — at build time the regime derives the legalSIRENidentity (iso-scheme-id0002) from it, next to the0225Peppol inboxes required for PA routing, fr-ctc-billing-modeisS2(services, already paid) because the 100% advance settles the invoice at issue; that mode requires payment terms whose due dates cover the total, leavingtotals.dueat0.00,- the French payment mentions (PMT, PMD, AAB) are filled with regime defaults at build time.
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"fr-ctc-flow2-v1",
"fr-facturx-v1"
],
"type": "standard",
"series": "SAMPLE",
"code": "2345",
"issue_date": "2025-06-18",
"currency": "EUR",
"tax": {
"ext": {
"fr-ctc-billing-mode": "S2"
}
},
"supplier": {
"name": "Provide One SARL",
"tax_id": {
"country": "FR",
"code": "43498927917"
},
"identities": [
{
"type": "SIRET",
"code": "49892791768734"
}
],
"inboxes": [
{
"key": "peppol",
"scheme": "0225",
"code": "498927917"
}
],
"addresses": [
{
"num": "42",
"street": "Avenue des Ternes",
"locality": "Paris",
"code": "75017",
"country": "FR"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"customer": {
"name": "Sample Consumer SAS",
"tax_id": {
"country": "FR",
"code": "39356000000"
},
"identities": [
{
"type": "SIRET",
"code": "35600000012345"
}
],
"inboxes": [
{
"key": "peppol",
"scheme": "0225",
"code": "356000000"
}
],
"addresses": [
{
"num": "1",
"street": "Rue Sundacsakn",
"locality": "Saint-Germain-En-Laye",
"code": "75050",
"country": "FR"
}
],
"emails": [
{
"addr": "email@sample.com"
}
]
},
"lines": [
{
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"discounts": [
{
"reason": "Special discount",
"percent": "10%"
}
],
"taxes": [
{
"cat": "VAT",
"rate": "standard"
}
]
}
],
"payment": {
"advances": [
{
"description": "Paid in full",
"percent": "100%"
}
],
"terms": {
"key": "due-date",
"due_dates": [
{
"date": "2025-06-18",
"amount": "1944.00"
}
]
},
"instructions": {
"key": "card",
"card": {}
}
}
}
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"eu-en16931-v2017",
"fr-ctc-flow2-v1",
"fr-facturx-v1"
],
"type": "standard",
"series": "SAMPLE",
"code": "2345",
"issue_date": "2025-06-18",
"currency": "EUR",
"tax": {
"rounding": "currency",
"ext": {
"fr-ctc-billing-mode": "S2",
"untdid-document-type": "380"
}
},
"supplier": {
"name": "Provide One SARL",
"tax_id": {
"country": "FR",
"code": "43498927917"
},
"identities": [
{
"type": "SIRET",
"code": "49892791768734",
"ext": {
"iso-scheme-id": "0009"
}
},
{
"scope": "legal",
"type": "SIREN",
"code": "498927917",
"ext": {
"iso-scheme-id": "0002"
}
}
],
"endpoints": [
{
"uri": "iso6523-actorid-upis::0225:498927917"
}
],
"inboxes": [
{
"key": "peppol",
"scheme": "0225",
"code": "498927917"
}
],
"addresses": [
{
"num": "42",
"street": "Avenue des Ternes",
"locality": "Paris",
"code": "75017",
"country": "FR"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"customer": {
"name": "Sample Consumer SAS",
"tax_id": {
"country": "FR",
"code": "39356000000"
},
"identities": [
{
"type": "SIRET",
"code": "35600000012345",
"ext": {
"iso-scheme-id": "0009"
}
},
{
"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": "1",
"street": "Rue Sundacsakn",
"locality": "Saint-Germain-En-Laye",
"code": "75050",
"country": "FR"
}
],
"emails": [
{
"addr": "email@sample.com"
}
]
},
"lines": [
{
"i": 1,
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"sum": "1800.00",
"discounts": [
{
"reason": "Special discount",
"percent": "10%",
"amount": "180.00"
}
],
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "20%",
"ext": {
"untdid-tax-category": "S"
}
}
],
"total": "1620.00"
}
],
"payment": {
"terms": {
"key": "due-date",
"due_dates": [
{
"date": "2025-06-18",
"amount": "1944.00"
}
]
},
"advances": [
{
"description": "Paid in full",
"percent": "100%",
"amount": "1944.00"
}
],
"instructions": {
"key": "card",
"card": {},
"ext": {
"untdid-payment-means": "48"
}
}
},
"totals": {
"sum": "1620.00",
"total": "1620.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"untdid-tax-category": "S"
},
"base": "1620.00",
"percent": "20%",
"amount": "324.00"
}
],
"amount": "324.00"
}
],
"sum": "324.00"
},
"tax": "324.00",
"total_with_tax": "1944.00",
"payable": "1944.00",
"advance": "1944.00",
"due": "0.00"
},
"notes": [
{
"key": "payment",
"text": "Conditions de paiement selon les conditions générales de vente.",
"ext": {
"untdid-text-subject": "PMT"
}
},
{
"key": "payment-method",
"text": "Pénalités et indemnités de retard applicables conformément aux conditions générales de vente.",
"ext": {
"untdid-text-subject": "PMD"
}
},
{
"key": "payment-term",
"text": "Aucun escompte n'est accordé pour paiement anticipé.",
"ext": {
"untdid-text-subject": "AAB"
}
}
]
}
PA intra-community B2B invoice
PA intra-community B2B invoice
- the customer carries a DE tax ID and a generic email inbox rather than a Peppol address,
- the VAT combo uses the
intra-communitykey, which setsuntdid-tax-categoryKautomatically; thecef-vatexVATEX-EU-ICexemption reason marks the intra-community supply, - the
fr-ctc-flow10-v1add-on validates the document for the periodic e-report to the PPF.
{
"$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": "S1",
"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"
}
}
}
{
"$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": "S1",
"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"
}
}
]
}
PA cross-border self-billed invoice
PA cross-border self-billed invoice
fr-ctc-flow10-v1 add-on.Notice:- the
self-billedtag records that the customer issued the document; the e-reporting obligation stays with the French supplier, who includes the sale in its periodic Flux 10 submission, - Flow 10 has no dedicated self-billed document code —
untdid-document-typestays380, unlike e-invoicing where the tag maps to389, - the intra-community VAT combo (
untdid-tax-categoryK,cef-vatexVATEX-EU-IC) zero-rates the supply, as in the other cross-border example.
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"fr-ctc-flow10-v1"
],
"$tags": [
"self-billed"
],
"type": "standard",
"series": "AF",
"code": "2026-INT-007",
"issue_date": "2026-09-30",
"currency": "EUR",
"tax": {
"ext": {
"fr-ctc-billing-mode": "B1"
}
},
"supplier": {
"name": "Domaine de la Vallée SARL",
"tax_id": {
"country": "FR",
"code": "303265045"
},
"identities": [
{
"type": "SIREN",
"code": "303265045",
"ext": {
"iso-scheme-id": "0002"
}
}
],
"addresses": [
{
"num": "3",
"street": "Chemin des Vergers",
"locality": "Avignon",
"code": "84000",
"country": "FR"
}
]
},
"customer": {
"name": "Weinhandel München GmbH",
"tax_id": {
"country": "DE",
"code": "111111125"
},
"inboxes": [
{
"email": "buchhaltung@weinhandel.de"
}
],
"addresses": [
{
"num": "10",
"street": "Weinstrasse",
"locality": "München",
"code": "80331",
"country": "DE"
}
]
},
"lines": [
{
"quantity": "120",
"item": {
"name": "Côtes du Rhône 2024 (carton de 6)",
"price": "45.00",
"unit": "item"
},
"taxes": [
{
"cat": "VAT",
"key": "intra-community",
"ext": {
"cef-vatex": "VATEX-EU-IC"
}
}
]
}
],
"notes": [
{
"key": "legal",
"text": "Autofacturation - facture établie par le client au nom et pour le compte du fournisseur."
}
],
"payment": {
"instructions": {
"key": "credit-transfer",
"credit_transfer": [
{
"iban": "FR7630006000011234567890189"
}
]
},
"terms": {
"detail": "Paiement à 30 jours"
}
}
}
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "FR",
"$addons": [
"fr-ctc-flow10-v1"
],
"$tags": [
"self-billed"
],
"type": "standard",
"series": "AF",
"code": "2026-INT-007",
"issue_date": "2026-09-30",
"currency": "EUR",
"tax": {
"ext": {
"fr-ctc-billing-mode": "B1",
"untdid-document-type": "380"
}
},
"supplier": {
"name": "Domaine de la Vallée SARL",
"tax_id": {
"country": "FR",
"code": "40303265045"
},
"identities": [
{
"scope": "legal",
"type": "SIREN",
"code": "303265045",
"ext": {
"iso-scheme-id": "0002"
}
}
],
"addresses": [
{
"num": "3",
"street": "Chemin des Vergers",
"locality": "Avignon",
"code": "84000",
"country": "FR"
}
]
},
"customer": {
"name": "Weinhandel München GmbH",
"tax_id": {
"country": "DE",
"code": "111111125"
},
"identities": [
{
"scope": "legal",
"code": "DE111111125",
"ext": {
"iso-scheme-id": "0223"
}
}
],
"inboxes": [
{
"email": "buchhaltung@weinhandel.de"
}
],
"addresses": [
{
"num": "10",
"street": "Weinstrasse",
"locality": "München",
"code": "80331",
"country": "DE"
}
]
},
"lines": [
{
"i": 1,
"quantity": "120",
"item": {
"name": "Côtes du Rhône 2024 (carton de 6)",
"price": "45.00",
"unit": "item"
},
"sum": "5400.00",
"taxes": [
{
"cat": "VAT",
"key": "intra-community",
"ext": {
"cef-vatex": "VATEX-EU-IC",
"untdid-tax-category": "K"
}
}
],
"total": "5400.00"
}
],
"payment": {
"terms": {
"notes": "Paiement à 30 jours"
},
"instructions": {
"key": "credit-transfer",
"credit_transfer": [
{
"iban": "FR7630006000011234567890189"
}
]
}
},
"totals": {
"sum": "5400.00",
"total": "5400.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "intra-community",
"ext": {
"cef-vatex": "VATEX-EU-IC",
"untdid-tax-category": "K"
},
"base": "5400.00",
"amount": "0.00"
}
],
"amount": "0.00"
}
],
"sum": "0.00"
},
"tax": "0.00",
"total_with_tax": "5400.00",
"payable": "5400.00"
},
"notes": [
{
"key": "legal",
"text": "Autofacturation - facture établie par le client au nom et pour le compte du fournisseur."
}
]
}
Domestic B2C payment
Domestic B2C payment
(date, currency) and are rate-agnostic at the bucket level, so the tax breakdown lives directly on each line rather than on a referenced invoice.Notice:typeisreceiptandmethod.keycredit-transferrecords how the money was received,- no
customeris set — domestic B2C payments don’t need counterparty identification, lines[i].documentis omitted on purpose: a line without adocumentreference is what classifies the payment as domestic B2C; a line with one would route it to international B2B instead,lines[i].tax.categories[...].rates[...]carries the VAT base, percent and amount directly on each line, since domestic B2C buckets aggregate by(date, currency)and don’t reference an underlying invoice.
{
"$schema": "https://gobl.org/draft-0/bill/payment",
"$regime": "FR",
"type": "receipt",
"method": {
"key": "credit-transfer"
},
"series": "B",
"code": "PAY-B2C-001",
"issue_date": "2026-04-15",
"value_date": "2026-04-15",
"currency": "EUR",
"supplier": {
"name": "Bistrot Lyon SAS",
"tax_id": {
"country": "FR",
"code": "50522465228"
},
"addresses": [
{
"country": "FR"
}
]
},
"lines": [
{
"i": 1,
"amount": "600.00",
"tax": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"base": "500.00",
"percent": "20%",
"amount": "100.00"
}
],
"amount": "100.00"
}
],
"sum": "100.00"
}
}
],
"total": "600.00"
}
{
"$schema": "https://gobl.org/draft-0/bill/payment",
"$regime": "FR",
"type": "receipt",
"series": "B",
"code": "PAY-B2C-001",
"issue_date": "2026-04-15",
"value_date": "2026-04-15",
"currency": "EUR",
"supplier": {
"name": "Bistrot Lyon SAS",
"tax_id": {
"country": "FR",
"code": "50522465228"
},
"addresses": [
{
"country": "FR"
}
]
},
"lines": [
{
"i": 1,
"amount": "600.00",
"tax": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"base": "500.00",
"percent": "20%",
"amount": "100.00"
}
],
"amount": "100.00"
}
],
"sum": "100.00"
}
}
],
"methods": [
{
"key": "credit-transfer",
"amount": "600.00"
}
],
"total": "600.00"
}
International B2B payment
International B2B payment
customeris populated with the foreign counterparty (DE tax ID),lines[i].documentreferences the invoice being settled bycodeandissue_date— this is both howgov-fr.reporting.recordclassifies the payment as international B2B and how GOBL allocates the cashed amount across the original invoice’s tax rates,- if the referenced invoice had mixed VAT rates and this payment only partially settles it, GOBL splits the cash proportionally across rates at calculation time — you don’t write that math.
{
"$schema": "https://gobl.org/draft-0/bill/payment",
"$regime": "FR",
"type": "receipt",
"method": {
"key": "credit-transfer"
},
"series": "B",
"code": "PAY-DE-001",
"issue_date": "2026-04-20",
"value_date": "2026-04-20",
"currency": "EUR",
"supplier": {
"name": "Bistrot Lyon SAS",
"tax_id": {
"country": "FR",
"code": "50522465228"
},
"addresses": [
{
"country": "FR"
}
]
},
"customer": {
"name": "Müller GmbH",
"tax_id": {
"country": "DE",
"code": "136695976"
},
"addresses": [
{
"country": "DE"
}
]
},
"lines": [
{
"i": 1,
"document": {
"type": "standard",
"series": "B",
"code": "INTL-DE-APR-001",
"issue_date": "2026-04-20"
},
"amount": "2400.00",
"tax": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"base": "2000.00",
"percent": "20%",
"amount": "400.00"
}
],
"amount": "400.00"
}
],
"sum": "400.00"
}
}
],
"total": "2400.00"
}
{
"$schema": "https://gobl.org/draft-0/bill/payment",
"$regime": "FR",
"type": "receipt",
"series": "B",
"code": "PAY-DE-001",
"issue_date": "2026-04-20",
"value_date": "2026-04-20",
"currency": "EUR",
"supplier": {
"name": "Bistrot Lyon SAS",
"tax_id": {
"country": "FR",
"code": "50522465228"
},
"addresses": [
{
"country": "FR"
}
]
},
"customer": {
"name": "Müller GmbH",
"tax_id": {
"country": "DE",
"code": "136695976"
},
"addresses": [
{
"country": "DE"
}
]
},
"lines": [
{
"i": 1,
"document": {
"type": "standard",
"issue_date": "2026-04-20",
"series": "B",
"code": "INTL-DE-APR-001"
},
"amount": "2400.00",
"tax": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"base": "2000.00",
"percent": "20%",
"amount": "400.00"
}
],
"amount": "400.00"
}
],
"sum": "400.00"
}
}
],
"methods": [
{
"key": "credit-transfer",
"amount": "2400.00"
}
],
"total": "2400.00"
}
🇫🇷 Invopop resources for France
🇫🇷 Invopop resources for France
| Compliance | Compliance timeline |
| Apps | |
| Guides | Chorus Pro — Supplier registration · Issuing invoices PA Guide — Registration · Invoicing · Status · Reporting |
| FAQ | France FAQ |
| GOBL | |
| GitHub | gobl.xinvoice |