Skip to content

Conversation

@svfu-odoo
Copy link
Contributor

@svfu-odoo svfu-odoo commented Oct 16, 2025

Since some customers can not upgrade in time before Peppol becomes mandatory we backported the account_peppol module to 16.0.

This commit adds documentation on how to configure and use Peppol (by backporting the 17.0 documentation).

task-4925169

peppol backport PR: odoo/odoo#230125

Since some customers can not upgrade in time before Peppol becomes mandatory
we backported the `account_peppol` module to 16.0.

This commit adds documentation on how to configure and use Peppol
(by backporting the 17.0 documentation).

task-4925169
@robodoo
Copy link
Collaborator

robodoo commented Oct 16, 2025

Pull request status dashboard

@svfu-odoo svfu-odoo changed the title [WIP][ADD] accounting/electronic_invoicing: peppol backport [ADD] accounting/electronic_invoicing: peppol backport Oct 27, 2025
@C3POdoo C3POdoo requested a review from a team October 27, 2025 07:51
Copy link
Contributor

@dade-odoo dade-odoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR @svfu-odoo ! Hopefully we can get those users on 16 upgraded before too long :)

@dade-odoo dade-odoo requested a review from a team October 27, 2025 12:16
svfu-odoo added a commit to odoo-dev/odoo that referenced this pull request Oct 28, 2025
This commit adds Peppol support to 16.0. (Only FR and NL translations
are included.)
In 2026 Peppol becomes mandatory in Belgium.
Some users won't be able to migrate in time to 17.0+.

Some of the fixes for the document / UBL / XML generation are not available in 16.0 (yet).
An upgrade to 18.0+ may provide a better user experience for some cases.

Compared to 17.0 the phone validation was removed (since we do not do that in 18.0 either).

Follow these steps to set up Peppol for a company and send a first invoice
1. Set the "mode" (demo / test / production) you want via system parameter `account_edi_proxy_client.demo`.
   The following values are available:
   - `demo` to use a locally mocked / simulated version that does not connect with any server
   - `test` to use the Odoo Peppol test server
   - `prod` to use the Odoo Peppol production server

   (The same mode also applies to all other EDIs / Account EDI proxy users)
2. Register the company on the Peppol network in the Accounting Settings (Section "PEPPOL Electronic Document Invoicing")
3. Wait until your registration has been validated on the Peppol server side
   and your status has been updated accordingly in the accounting settings (where you registered)
   (This is not necessary in 'demo' mode since everything is locally mocked)
   - The scheduled action "PEPPOL: update participant status" fetches the status from the Peppol server
     every 6 hours; you can manually run it to speed up the process
4. Configure a journal to use Peppol.
   - Select "Peppol" in the "Advanced Settings" tab under the "Electronic Data Interchange" section
   - This should automatically have been done during the installation of the module
     for journals from countries where Peppol should be used by default
5. Configure the partner to which you want to send the invoice.
   On the partner form view go to the "Accounting" tab and look at the "Peppol" section.
   There you can
   - Select the format in which you want to sent the invoices to the partner.
     It pre-selects a format based on the country.
   - Set up the peppol address / endpoint on which the partner receives its invoices.
   - A button to check whether the endpoint is valid
6. Create an invoice in the journal from step 4 with the customer from step 5.
7. Confirm the invoice; the Peppol document should be generated.
   - It uses the format selected for the partner in step 5.
   - The "EDI Documents" tab should be visible. There should be an entry which has "Peppol" in the
     column "Format Name" and "Sent" in the column "State"
   - An (XML) file should be attached to the chatter; its filename matches the name given in the
     EDI document entry. (The filename is based on the format selected for the parter in step 5.)
   - Potential errors are displayed in a warning banner at the top of the form view
8. Click on "Send & Print" to open a wizard.
   The "Send via PEPPOL" option should be selected by default. It controls whether the invoice
   will be sent via Peppol.
9. Click on the "Send & Print" / "Send" / "Print / "Send (Peppol)" button.
   (The name depends on which of the options are in the wizard selected. But they all send via Peppol
    as long as the checkbox is ticket)
10. Done; In the chatter it should say "The document has been sent to the Peppol Access Point for processing"
    - The "PEPPOL status" field in the invoice form view gives status information about the invoice on Peppol
    - The scheduled action "PEPPOL: update message status" regularly fetches information about the invoice on Peppol
    - The "Fetch Peppol invoice status" button on each journal in the Accounting Dashboard can be used to manually
      run this action.
    - Potential errors that are fetched are posted to the chatter.

Bills from Peppol are fetched periodically via the scheduled action "PEPPOL: retrieve new documents".
It can also be done manually on-demand by clicking "Fetch from Peppol" on a purchase / bill journal in the Accounting Dashboard.

upgrade PR: odoo/upgrade#8621
documentation PR: odoo/documentation#14876
task-4925169
svfu-odoo added a commit to odoo-dev/odoo that referenced this pull request Oct 28, 2025
This commit adds Peppol support to 16.0. (Only FR and NL translations
are included.)
In 2026 Peppol becomes mandatory in Belgium.
Some users won't be able to migrate in time to 17.0+.

Some of the fixes for the document / UBL / XML generation are not available in 16.0 (yet).
An upgrade to 18.0+ may provide a better user experience for some cases.

Compared to 17.0 the phone validation was removed (since we do not do that in 18.0 either).

Follow these steps to set up Peppol for a company and send a first invoice
1. Set the "mode" (demo / test / production) you want via system parameter `account_edi_proxy_client.demo`.
   The following values are available:
   - `demo` to use a locally mocked / simulated version that does not connect with any server
   - `test` to use the Odoo Peppol test server
   - `prod` to use the Odoo Peppol production server

   (The same mode also applies to all other EDIs / Account EDI proxy users)
2. Register the company on the Peppol network in the Accounting Settings (Section "PEPPOL Electronic Document Invoicing")
3. Wait until your registration has been validated on the Peppol server side
   and your status has been updated accordingly in the accounting settings (where you registered)
   (This is not necessary in 'demo' mode since everything is locally mocked)
   - The scheduled action "PEPPOL: update participant status" fetches the status from the Peppol server
     every 6 hours; you can manually run it to speed up the process
4. Configure a journal to use Peppol.
   - Select "Peppol" in the "Advanced Settings" tab under the "Electronic Data Interchange" section
   - This should automatically have been done during the installation of the module
     for journals from countries where Peppol should be used by default
5. Configure the partner to which you want to send the invoice.
   On the partner form view go to the "Accounting" tab and look at the "Peppol" section.
   There you can
   - Select the format in which you want to sent the invoices to the partner.
     It pre-selects a format based on the country.
   - Set up the peppol address / endpoint on which the partner receives its invoices.
   - A button to check whether the endpoint is valid
6. Create an invoice in the journal from step 4 with the customer from step 5.
7. Confirm the invoice; the Peppol document should be generated.
   - It uses the format selected for the partner in step 5.
   - The "EDI Documents" tab should be visible. There should be an entry which has "Peppol" in the
     column "Format Name" and "Sent" in the column "State"
   - An (XML) file should be attached to the chatter; its filename matches the name given in the
     EDI document entry. (The filename is based on the format selected for the parter in step 5.)
   - Potential errors are displayed in a warning banner at the top of the form view
8. Click on "Send & Print" to open a wizard.
   The "Send via PEPPOL" option should be selected by default. It controls whether the invoice
   will be sent via Peppol.
9. Click on the "Send & Print" / "Send" / "Print / "Send (Peppol)" button.
   (The name depends on which of the options are in the wizard selected. But they all send via Peppol
    as long as the checkbox is ticket)
10. Done; In the chatter it should say "The document has been sent to the Peppol Access Point for processing"
    - The "PEPPOL status" field in the invoice form view gives status information about the invoice on Peppol
    - The scheduled action "PEPPOL: update message status" regularly fetches information about the invoice on Peppol
    - The "Fetch Peppol invoice status" button on each journal in the Accounting Dashboard can be used to manually
      run this action.
    - Potential errors that are fetched are posted to the chatter.

Bills from Peppol are fetched periodically via the scheduled action "PEPPOL: retrieve new documents".
It can also be done manually on-demand by clicking "Fetch from Peppol" on a purchase / bill journal in the Accounting Dashboard.

upgrade PR: odoo/upgrade#8621
documentation PR: odoo/documentation#14876
task-4925169
svfu-odoo added a commit to odoo-dev/odoo that referenced this pull request Oct 29, 2025
This commit adds Peppol support to 16.0. (Only FR and NL translations
are included.)
In 2026 Peppol becomes mandatory in Belgium.
Some users won't be able to migrate in time to 17.0+.

Some of the fixes for the document / UBL / XML generation are not available in 16.0 (yet).
An upgrade to 18.0+ may provide a better user experience for some cases.

Compared to 17.0 the phone validation was removed (since we do not do that in 18.0 either).

Follow these steps to set up Peppol for a company and send a first invoice
1. Set the "mode" (demo / test / production) you want via system parameter `account_edi_proxy_client.demo`.
   The following values are available:
   - `demo` to use a locally mocked / simulated version that does not connect with any server
   - `test` to use the Odoo Peppol test server
   - `prod` to use the Odoo Peppol production server

   (The same mode also applies to all other EDIs / Account EDI proxy users)
2. Register the company on the Peppol network in the Accounting Settings (Section "PEPPOL Electronic Document Invoicing")
3. Wait until your registration has been validated on the Peppol server side
   and your status has been updated accordingly in the accounting settings (where you registered)
   (This is not necessary in 'demo' mode since everything is locally mocked)
   - The scheduled action "PEPPOL: update participant status" fetches the status from the Peppol server
     every 6 hours; you can manually run it to speed up the process
4. Configure a journal to use Peppol.
   - Select "Peppol" in the "Advanced Settings" tab under the "Electronic Data Interchange" section
   - This should automatically have been done during the installation of the module
     for journals from countries where Peppol should be used by default
5. Configure the partner to which you want to send the invoice.
   On the partner form view go to the "Accounting" tab and look at the "Peppol" section.
   There you can
   - Select the format in which you want to sent the invoices to the partner.
     It pre-selects a format based on the country.
   - Set up the peppol address / endpoint on which the partner receives its invoices.
   - A button to check whether the endpoint is valid
6. Create an invoice in the journal from step 4 with the customer from step 5.
7. Confirm the invoice; the Peppol document should be generated.
   - It uses the format selected for the partner in step 5.
   - The "EDI Documents" tab should be visible. There should be an entry which has "Peppol" in the
     column "Format Name" and "Sent" in the column "State"
   - An (XML) file should be attached to the chatter; its filename matches the name given in the
     EDI document entry. (The filename is based on the format selected for the parter in step 5.)
   - Potential errors are displayed in a warning banner at the top of the form view
8. Click on "Send & Print" to open a wizard.
   The "Send via PEPPOL" option should be selected by default. It controls whether the invoice
   will be sent via Peppol.
9. Click on the "Send & Print" / "Send" / "Print / "Send (Peppol)" button.
   (The name depends on which of the options are in the wizard selected. But they all send via Peppol
    as long as the checkbox is ticket)
10. Done; In the chatter it should say "The document has been sent to the Peppol Access Point for processing"
    - The "PEPPOL status" field in the invoice form view gives status information about the invoice on Peppol
    - The scheduled action "PEPPOL: update message status" regularly fetches information about the invoice on Peppol
    - The "Fetch Peppol invoice status" button on each journal in the Accounting Dashboard can be used to manually
      run this action.
    - Potential errors that are fetched are posted to the chatter.

Bills from Peppol are fetched periodically via the scheduled action "PEPPOL: retrieve new documents".
It can also be done manually on-demand by clicking "Fetch from Peppol" on a purchase / bill journal in the Accounting Dashboard.

upgrade PR: odoo/upgrade#8621
documentation PR: odoo/documentation#14876
task-4925169
@xpl-odoo
Copy link
Contributor

@robodoo fw=no

@robodoo
Copy link
Collaborator

robodoo commented Oct 29, 2025

Disabled forward-porting.

Copy link
Contributor

@xpl-odoo xpl-odoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

robodoo pushed a commit that referenced this pull request Oct 29, 2025
Since some customers can not upgrade in time before Peppol becomes mandatory
we backported the `account_peppol` module to 16.0.

This commit adds documentation on how to configure and use Peppol
(by backporting the 17.0 documentation).

task-4925169

closes #14876

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
@robodoo robodoo closed this Oct 29, 2025
svfu-odoo added a commit to odoo-dev/odoo that referenced this pull request Oct 29, 2025
This commit adds Peppol support to 16.0. (Only FR and NL translations
are included.)
In 2026 Peppol becomes mandatory in Belgium.
Some users won't be able to migrate in time to 17.0+.

Some of the fixes for the document / UBL / XML generation are not available in 16.0 (yet).
An upgrade to 18.0+ may provide a better user experience for some cases.

Compared to 17.0 the phone validation was removed (since we do not do that in 18.0 either).

Follow these steps to set up Peppol for a company and send a first invoice
1. Set the "mode" (demo / test / production) you want via system parameter `account_edi_proxy_client.demo`.
   The following values are available:
   - `demo` to use a locally mocked / simulated version that does not connect with any server
   - `test` to use the Odoo Peppol test server
   - `prod` to use the Odoo Peppol production server

   (The same mode also applies to all other EDIs / Account EDI proxy users)
2. Register the company on the Peppol network in the Accounting Settings (Section "PEPPOL Electronic Document Invoicing")
3. Wait until your registration has been validated on the Peppol server side
   and your status has been updated accordingly in the accounting settings (where you registered)
   (This is not necessary in 'demo' mode since everything is locally mocked)
   - The scheduled action "PEPPOL: update participant status" fetches the status from the Peppol server
     every 6 hours; you can manually run it to speed up the process
4. Configure a journal to use Peppol.
   - Select "Peppol" in the "Advanced Settings" tab under the "Electronic Data Interchange" section
   - This should automatically have been done during the installation of the module
     for journals from countries where Peppol should be used by default
5. Configure the partner to which you want to send the invoice.
   On the partner form view go to the "Accounting" tab and look at the "Peppol" section.
   There you can
   - Select the format in which you want to sent the invoices to the partner.
     It pre-selects a format based on the country.
   - Set up the peppol address / endpoint on which the partner receives its invoices.
   - A button to check whether the endpoint is valid
6. Create an invoice in the journal from step 4 with the customer from step 5.
7. Confirm the invoice; the Peppol document should be generated.
   - It uses the format selected for the partner in step 5.
   - The "EDI Documents" tab should be visible. There should be an entry which has "Peppol" in the
     column "Format Name" and "Sent" in the column "State"
   - An (XML) file should be attached to the chatter; its filename matches the name given in the
     EDI document entry. (The filename is based on the format selected for the parter in step 5.)
   - Potential errors are displayed in a warning banner at the top of the form view
8. Click on "Send & Print" to open a wizard.
   The "Send via PEPPOL" option should be selected by default. It controls whether the invoice
   will be sent via Peppol.
9. Click on the "Send & Print" / "Send" / "Print / "Send (Peppol)" button.
   (The name depends on which of the options are in the wizard selected. But they all send via Peppol
    as long as the checkbox is ticket)
10. Done; In the chatter it should say "The document has been sent to the Peppol Access Point for processing"
    - The "PEPPOL status" field in the invoice form view gives status information about the invoice on Peppol
    - The scheduled action "PEPPOL: update message status" regularly fetches information about the invoice on Peppol
    - The "Fetch Peppol invoice status" button on each journal in the Accounting Dashboard can be used to manually
      run this action.
    - Potential errors that are fetched are posted to the chatter.

Bills from Peppol are fetched periodically via the scheduled action "PEPPOL: retrieve new documents".
It can also be done manually on-demand by clicking "Fetch from Peppol" on a purchase / bill journal in the Accounting Dashboard.

upgrade PR: odoo/upgrade#8621
documentation PR: odoo/documentation#14876
task-4925169
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants