| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1304 |
| Technical Name |
peppol_mlr_dashboard |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1304 |
| Technical Name |
peppol_mlr_dashboard |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Peppol MLR Dashboard EU
Peppol Message Level Response (MLR) monitoring dashboard: rejected transmissions with reason-code breakdown
What this module does
When you send an invoice over the Peppol network, the receiver's access point can return a Message Level Response (MLR) telling you whether the document was accepted, acknowledged or rejected. A rejection means your invoice never reached the buyer's system — and if you do not notice it, you do not get paid.
This module turns those MLR files into a single monitoring dashboard. It imports the UBL ApplicationResponse XML your access point delivers, parses the overall outcome and every individual validation finding, and surfaces the rejected transmissions together with a clear reason-code breakdown — so you can fix the data and re-send fast.
Built on the published Peppol code lists
Every code this module recognises comes straight from the Peppol BIS Message Level Response 3.0 specification — nothing is invented.
Overall outcome — ResponseCode
| Code | Meaning |
|---|---|
AP | Accepted |
AB | Message acknowledgement |
RE | Rejected |
OpenPeppol subset of UN/CEFACT UNCL 4343, as bound to the
MLR cbc:ResponseCode element.
Why it failed — StatusReasonCode
| Code | Meaning | Severity |
|---|---|---|
BV | Business rule violation, fatal | Fatal |
SV | Syntax violation | Fatal |
BW | Business rule violation, warning | Warning |
The OpenPeppol MLR StatusReason code list, carried in
cac:Status/cbc:StatusReasonCode.
Key features
MLR import (BYOK)
Upload the ApplicationResponse XML file your access point delivers, or paste it directly. The parser handles document-level and line-level findings, sender / receiver participants and the referenced business document reference.
Rejected-transmission view
A dedicated list of every rejected transmission, colour-coded by outcome, with the referenced document id, fatal / warning counts and the originating partner endpoint at a glance.
Reason-code breakdown
The dashboard aggregates every finding by Peppol StatusReason code, showing how many findings and how many distinct documents each reason affects, with fatal / warning severity badges.
KPIs & rates
Headline metrics for any date window: total transmissions, rejection rate, acceptance rate, fatal and warning finding counts, the top recurring reason, and a ranking of senders by their rejection count.
Outcome distribution
A per-ResponseCode distribution (AP / AB / RE) over the selected period, so you can watch the accept-vs-reject mix trend over time.
Findings explorer
Browse every individual finding across all responses, grouped by reason code, severity or referenced document, with the exact rule / business-term identifier carried in the MLR.
How it works
| Step | What happens |
|---|---|
| 1. Import | Upload or paste the MLR (UBL ApplicationResponse) your access point delivered. |
| 2. Parse | The overall ResponseCode and every Status finding are extracted and stored. |
| 3. Monitor | Rejected transmissions appear in their own view with fatal / warning counts. |
| 4. Analyse | The dashboard breaks failures down by reason code and ranks senders by rejection. |
| 5. Act | Fix the flagged data and re-send the corrected document through your access point. |
Scope & boundary
This is a monitoring and reporting module. It reads and analyses the Message Level Responses that your own access point delivers into your database (BYOK). It does not connect to the Peppol network, it is not a certified access point, and it does not transmit any document on your behalf.
- Community-only dependencies:
account,base,mail. - Works on Odoo 18 and Odoo 19.
- No external service calls; all parsing and analytics run inside your database.
Screenshots
Findings
Import Mlr
Rejected
Responses
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module