Skip to Content

Peppol MLR Dashboard EU

65.10 65.10

Instant digital delivery after payment confirmation.
License: OPL-1, every download is watermarked.
Terms and Conditions

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

CodeMeaning
APAccepted
ABMessage acknowledgement
RERejected

OpenPeppol subset of UN/CEFACT UNCL 4343, as bound to the MLR cbc:ResponseCode element.

Why it failed — StatusReasonCode

CodeMeaningSeverity
BVBusiness rule violation, fatalFatal
SVSyntax violationFatal
BWBusiness rule violation, warningWarning

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

StepWhat 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

Findings

Import Mlr

Import Mlr

Rejected

Rejected

Responses

Responses

Update date: 2026-07-02