BambooForge Labs

Peppol Alerts, Attachments and Copy Guard

Know when a Peppol invoice fails, is rejected or sits unconfirmed; send the invoice's own files inside the e-invoice; keep a copied database off the Access Point.

Buy on the Odoo Apps StoreOpen the live demoAccounting/Accounting€79Community & Enterprise

Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0, Odoo 20.0. Technical name bambooforge_peppol_plus.

Odoo 16.0Odoo 17.0Odoo 18.0Odoo 19.0Odoo 20.0

Key facts

What it is
Know when a Peppol invoice fails, is rejected or sits unconfirmed; send the invoice's own files inside the e-invoice; keep a copied database off the Access Point.
For
Accounting/Accounting
Odoo versions
16.0, 17.0, 18.0, 19.0, 20.0 - Community and Enterprise
Runs on
Odoo.sh or Odoo you host yourself - not Odoo Online, which accepts no third-party apps
Price
79 EUR, one-time, on the Odoo Apps Store
Technical name
bambooforge_peppol_plus
Not for
It does not send invoices itself, and it does not change your Peppol registration.; It does not send to a contact's own Peppol address: Odoo always sends to the customer company.; It does not repair a connection a copy has already broken; it keeps copies from breaking it.
Manual
https://docs.bambooforge.dev/bambooforge_peppol_plus/
Live demo
https://demo20.bambooforge.dev/odoo/action-bambooforge_peppol_plus.action_bf_peppol_health_open
Store page
https://apps.odoo.com/apps/modules/20.0/bambooforge_peppol_plus
Manual last updated
2026-10-18

Peppol Alerts, Attachments and Copy Guard

Odoo sends invoices over Peppol for free, with its own account_peppol. What it does not do is tell anyone when an invoice fails, is rejected or is never confirmed; send the files already attached to the invoice along with it; or keep a copy of the database from breaking the live connection. This app does those three things, on top of Odoo's Peppol and without changing how Odoo sends.

This page is the complete manual.

Install

  1. Odoo's Peppol (account_peppol) must be installed and the company registered; this app needs nothing else.

  2. Install Peppol Alerts, Attachments and Copy Guard.

  3. Accounting administrators find Peppol Health under Accounting > Configuration.

Alerts

Every 30 minutes the app looks at the customer invoices and credit notes of each company whose Peppol connection can send, and turns what needs someone into a Peppol issue activity on the invoice:

  • Not delivered: Odoo marked the document in error. Its chatter says why; correct it and send it again.

  • Rejected by the customer: the customer's system answered with a rejection. Odoo writes their reasons in the chatter.

  • Still in the send queue: Odoo has not sent it after Queued too long after hours (default 6). The send queue may be stopped, or failing on something every time it runs.

  • No delivery confirmation: the Access Point took the document but has not confirmed its delivery after Unconfirmed too long after hours (default 48). Odoo asks the Access Point for confirmations once a day.

The activity goes to Peppol issues go to or, when that is empty, to the invoice's salesperson, else to the administrator. Odoo tells them the way it tells anyone about a new activity: in Odoo, or by email if that is what they chose. Each invoice gets one: the next run does not repeat it. When the invoice recovers, the activity is marked done with what it is now; a different problem replaces it.

While one of Odoo's three Peppol jobs (new documents, message status, participant status) is switched off, a Peppol issue activity sits on the company's contact, naming the jobs. Since 18.0 Odoo switches a job off by itself after it has failed five times over a week. It is marked done when they run again.

For invoices already waiting when the app is installed, the hours count from their last change.

Files inside the e-invoice

Customer invoice > Peppol files

Upload files there, or click Add the files already attached to this invoice to take every file of the invoice that Peppol carries. They are embedded in the e-invoice next to Odoo's own PDF every time it is sent: one invoice at a time, several together, or from Odoo's send queue.

  • Peppol carries PDF, xlsx, ods, CSV, JPEG and PNG. Any other file stays out and the chatter says which.

  • Files inside the e-invoice, at most (MB) caps the total (default 10). Files beyond it stay out, in the order they were added, and the chatter names them.

  • A file already in the e-invoice is not embedded twice.

  • Odoo embeds files in the formats it lets carry attachments (Peppol BIS Billing 3); for any other format the chatter says the format does not carry attachments.

Copy guard

A copy of the database carries the live connection's credentials, and the Access Point renews them about once a day. Whichever database calls it next with the old ones gets "invalid signature" - usually production, the morning after someone restored a backup to try something.

When the app is installed with a live Peppol connection, or within half an hour of one being connected, it records the database's identity. A copy (duplicated, or restored as a copy) gets a new identity; as long as it is not neutralised, every live Peppol call from it is refused with a message that says why, and nothing in the registration is changed. A neutralised copy is left alone: Odoo has already put its Peppol in demo mode.

When a copy really becomes production (a move to a new server restored as a copy), an accounting administrator clicks This is the production database on Peppol Health. From then on the original can no longer send through Peppol without errors. If the original database already reports "invalid signature", Odoo's own Reconnect this database in the Peppol settings renews its connection.

Peppol Health

Accounting > Configuration > Peppol Health

  • Connection: the company's Peppol status and mode (live, test or demo).

  • Documents that need someone: how many invoices are in each of the alerts above, each with a button that opens them.

  • Odoo's Peppol jobs: whether each job is on, and when it runs next.

  • Alerts and files: the settings below.

  • Check now runs the checks without waiting for the next half hour.

Settings

On Peppol Health, per company:

  • Peppol issues go to: who gets the activities. Empty: the salesperson.

  • Queued too long after (hours): default 6; 0 turns the check off.

  • Unconfirmed too long after (hours): default 48; 0 turns the check off.

  • Files inside the e-invoice, at most (MB): default 10.

What it does not do

  • It does not send invoices itself, and it does not change your Peppol registration.

  • It does not send to a contact's own Peppol address: Odoo always sends to the customer company.

  • It does not repair a connection a copy has already broken; it keeps copies from breaking it.

How we make sure it works

Before every release, 11 automated checks run against this app on Odoo 16, 17, 18, 19 and 20. Among them:

  • The live database is recorded and a neutralized one is not.

  • A copy does not contact the access point.

  • A document left in the send queue is reported.

  • A failed document becomes an activity until it recovers.

  • A switched off job is reported on the company.

The complete list is in the source you receive.

Support

support@bambooforge.dev - questions, bug reports and feature requests are answered by the developers who wrote the module.

Changelog

20.0.1.0.0

  • First release: alerts, the invoice's files inside its e-invoice, the copy guard and the Peppol Health page.