Skip to main content

Introduction

Chorus Pro is a mandatory service provided by the French government for invoicing French public institutions. Before a supplier can issue invoices through the platform, they need a Chorus Pro technical account and must be registered with Invopop using the Chorus Pro app. In this guide you’ll learn how to create the Chorus Pro credentials and register a supplier. Once a supplier is registered, continue with the companion guide: Chorus Pro issuing invoices.

Prerequisites

To register a supplier with Chorus Pro, you will need:
  • A Chorus Pro account for the supplier (or a sandbox account for testing — see below).
  • The supplier’s VAT number.

Setup

Configure your Invopop Workspace for Chorus Pro supplier registration. Complete these steps:
1

Connect the required apps

  1. Go to Configuration > Apps in the Console.
  2. Find UN/CEFACT CII in the app list and click Connect to activate the app.
  3. Find Chorus Pro in the app list and click Connect to activate the app.
After connecting, you’ll see both UN/CEFACT CII and Chorus Pro listed in the Enabled Apps section.
Chorus Pro app connected
2

Configure the supplier registration workflow

Add a new workflow to your workspace for registering suppliers. You can start with the template below.

Chorus Pro supplier registration workflow

This workflow will issue a registration request for a supplier to complete.
Keep the workflow ID at hand as you’ll need it later.

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:
1

Create a Chorus Pro account

Sign up for a Chorus Pro account if you don’t have one.
To test in sandbox mode, create an account in the Chorus Pro sandbox. Download a CSV file with test accounts. Use one of the accounts to log in. For more information, visit the Chorus Pro documentation.
2

Navigate to API settings

Once logged in to your Chorus Pro account, navigate to the API configuration area:
  1. Go to Domains > Connections in the main menu
Navigate to Domains → Connections

Navigate to Domains → Connections

  1. Click Access Service in the Technical Account section (bottom left)
Navigate to Technical Account

Navigate to Technical Account

This opens a new page where you can manage your technical accounts.
3

Create a technical account

Set up the technical account credentials, this opens a form to 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
    Technical Account Creation

    Technical Account Creation

Click Submit to complete the setup
Return to Invopop for the next steps.

Register a supplier

Now that you have a technical account, you can register a supplier with Chorus Pro.
1

Upload a Supplier

Use the Create an entry endpoint to upload a new supplier. Include a party object in the data field. For this step, you only need the VAT number.After successful upload, you’ll see the supplier in the Parties section with status Empty.
Supplier registration in progress

Supplier registration

2

Send the Supplier to the registration workflow

Send the supplier to the registration workflow using the Create a job endpoint. Use:
  • The supplier’s silo entry UUID from the previous step
  • The Supplier Registration workflow ID from the Setup section
This workflow generates a unique URL for the supplier to access and complete the registration process. The URL is stored in the supplier’s metadata.
Supplier registration in progress
3

Complete Chorus Pro Authentication

The workflow stays in progress until the supplier completes the registration process. The supplier must access the link and add the credentials they created previously.
Supplier registration in progress
The supplier’s status will change to Registered when authentication is complete.
You can fill the form via API by sending a PUT request to the registration link. The payload should be a JSON object with the following fields:
  • username (string): The supplier’s Chorus Pro username.
  • password (string): The supplier’s Chorus Pro password.
At this point, you’re ready to start sending invoices on behalf of the supplier. Head over to the Chorus Pro issuing invoices guide to continue.

FAQ

For B2B PA flows: register the supplier via the France PA Register Party workflow (publishes the SIREN to the Annuaire and Peppol). For Chorus Pro: register the supplier with their SIRET on Chorus Pro’s portal and link credentials in the Chorus Pro app.
France PA does not require supplier-side certificates — Peppol uses Invopop’s AP cert. Chorus Pro uses an OAuth token bound to the supplier’s account; the token is encrypted at rest in Invopop.
Ensure the supplier has a valid Chorus Pro account and provided correct credentials. Contact support if registration workflow issues persist.
OAuth 2.0 client credentials issued by Chorus Pro after registration. Invopop stores the token encrypted; suppliers can revoke access at any time through Chorus Pro’s portal.
Upload the company as a party (Console → Parties → Suppliers → + New Supplier, or via the Create an Entry API) with name, tax_id, address, and email. Then run it through the party registration workflow — the contact will receive a registration wizard link to provide proof of ownership.Once approved, the party is registered on the Peppol network (SMP+SML+Peppol visibility by default with the ubl-invoice doc group) and ready to receive invoices.
A supplier with that Participant ID already exists in your workspace. Either reuse the existing party or, if it really is a new entity, check whether it should be registered under an alternative scheme (for example Belgium’s 9925 VAT scheme rather than the default 0208).
Register them through different silo entries, even though they represent the same legal party. The supplier must upload proof of ownership for each inbox.
Unique identifiers for entities on the Peppol network, made up of two parts:
  • Scheme — identifies the type of identifier (e.g. 9920 for Spanish VAT, 0208 for Belgian KBO/BCE)
  • Code — the actual identification number
Participant IDs are usually based on VAT numbers or local business identifiers, and Invopop can derive them automatically from a Tax ID. Some countries support multiple schemes — Belgium, for example, defaults to 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.
Peppol Party visibility determines what you can send and receive:
  • smp — SMP only, for testing
  • smp+sml — SMP and SML, useful when you only want to send
  • smp+sml+peppol — SMP, SML, and the Peppol Directory, recommended for both sending and receiving (and for being discoverable in the Directory)
In general, use the highest visibility available.
More available in our France FAQ section

Participate in our community

Ask and answer questions about invoicing in France →