Documentation Index
Fetch the complete documentation index at: https://invopop-mintlify-changelog-week-1778411791.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Introduction
In this guide, youโll learn how to issue invoices to French public institutions using Chorus Pro. It will walk you through:- Understanding Chorus Pro and its format requirements
- Setting up Invopop workflows:
- Supplier registration workflow
- Invoice submission workflow
- Preparing the Chorus Pro platform and creating credentials
- Registering a supplier with Chorus Pro
- Submitting your first invoice to a French public institution
What is Chorus Pro?
Chorus Pro is a mandatory service provided by the French government for invoicing French public institutions. The platform allows businesses to upload invoices in multiple e-invoicing formats and track them throughout the French public administration process. All invoices to French public sector entities must be submitted through Chorus Pro. The platform supports various e-invoicing formats including Cross Industry Invoice (CII), and implements the European Norm 16931 (EN16931) European standard for electronic invoicing with additional French-specific requirements.Understanding Chorus Pro Format Requirements
Chorus Pro accepts invoices in CII format based on the EN16931 European standard. However, it adds specific French extensions and validation requirements: EN16931 Standard The EN16931 defines the semantic data model for electronic invoices. The standard ensures interoperability across European Union (EU) member states while allowing for country-specific extensions. Chorus Pro Extensions Chorus Pro extends the base EN16931 standard with additional French requirements:- SIRET number validation for French entities
- Specific invoice types for different purposes
- Service codes for government departments
| - | Sandbox | Live |
|---|---|---|
| Supplier | Test Chorus Pro account (qualif.chorus-pro.gouv.fr) | Real Chorus Pro account required |
| Accounts | Downloadable CSV with test accounts | โ |
Setup
Configure your Invopop Workspace for Chorus Pro invoicing. Complete these steps:Connect the required apps
- Go to Configuration > Apps in the Console.
- Find UN/CEFACT CII in the app list and click Connect to activate the app.
- Find Chorus Pro in the app list and click Connect to activate the app.

Configure the supplier registration workflow
- Template
- Code
- Build from scratch
Chorus Pro supplier registration workflow
Chorus Pro Credentials
This section explains what suppliers need to configure within their Chorus Pro account to enable integration with Invopop. To configure Chorus Pro, complete these steps:Create a Chorus Pro account
Navigate to API settings
- Go to Domains > Connections in the main menu

- Click Access Service in the Technical Account section (bottom left)

Create a technical account
- Set the type of request to Creation of a technical account
- Select your company in the company field
-
This creates a login and password. Copy these credentials as youโll need them when registering with Invopop

Running
Now youโll learn how to register a supplier and issue Chorus Pro invoices:Register a Supplier
Now that you have a technical account, you can register a supplier with Chorus Pro.Upload a Supplier
Empty.
Send the Supplier to the registration workflow
- The supplierโs silo entry UUID from the previous step
- The Supplier Registration workflow ID from the Setup section

Complete Chorus Pro Authentication

Registered when authentication is complete.username(string): The supplierโs Chorus Pro username.password(string): The supplierโs Chorus Pro password.
Send an Invoice
Once a supplier is registered, you can send invoices to French public institutions through Chorus Pro.Create an Invoice
Chorus Pro B2G Invoice
Chorus Pro B2G Invoice
- the minimal version (
chorus-pro-b2g.min.mdx) contains only the essential fields required to create the B2G invoice, - the
fr-chorus-pro-v1addon ensures the document will be validated using the Chorus Pro rules built into the GOBL library, - the customer must be a French public sector entity with a valid SIRET number,
- specific Chorus Pro extensions and identifiers are required for public procurement (such as service codes and commitment numbers),
- there are no totals or calculations in the minimal version; all these will be calculated automatically when running
gobl build, - the built version (
chorus-pro-b2g.mdx) shows the normalized document with calculated totals, line item sums, TVA breakdowns, and automatically generated fields, - the invoice will be formatted according to Chorus Pro requirements and submitted through the platform, and,
- all invoices to French public entities above โฌ25,000 must be submitted through Chorus Pro.
eu-en16931-v2017 and the fr-choruspro-v1 addon. These addons enable all the necessary validations in your GOBL invoice.Send to Chorus Pro
- The invoiceโs silo entry UUID from the previous step
- The Chorus Pro Invoice workflow ID from the Setup section

Track Invoice Status
FAQ
How 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.What invoice formats does Chorus Pro support?
What invoice formats does Chorus Pro support?
Do I need a SIRET number to use Chorus Pro?
Do I need a SIRET number to use Chorus Pro?
Can I modify invoices after sending to Chorus Pro?
Can I modify invoices after sending to Chorus Pro?
How do I find my invoice in Chorus Pro?
How do I find my invoice in Chorus Pro?
Are there file size limits for Chorus Pro invoices?
Are there file size limits for Chorus Pro invoices?
What GOBL fields are required for Chorus Pro?
What GOBL fields are required for Chorus Pro?
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.๐ซ๐ท Invopop resources for France
๐ซ๐ท Invopop resources for France
| Compliance | Compliance timeline |
| Apps | |
| Guides | ChorusPro Guide PA Guide โ Registration ยท Invoicing ยท Status ยท Reporting |
| FAQ | France FAQ |
| GOBL | |
| GitHub | gobl.xinvoice |