This page contains some general thoughts about the Message Level Status (MLS) and its predecessor, the Message Level Response (MLR). MLS is mandatory for all Peppol Service Providers, whereas MLR is deprecated and will be retired. The transition is governed by the two OpenPeppol plans Peppol MLS Phase-in v1.0.0 and Peppol MLR Deprecation and Phase-out Plan v1.0.0, both published on 2026-07-02.
The intention of the MLS is to be a message between C2 and C3 instead of a message between C1 and C4 like the MLR. This makes it easier to mandate it, because only Service Providers are forced to support it. As the receiver of an MLS message (C2) it is recommended to forward the information on any specific way to your End User (C1).
The MLS is a regular Peppol document like Invoice or Order and as such needs to be transmitted like any other Peppol document
wrapped in an SBDH and send via AS4.
Different to the MLR, the MLS is not optional - every Service Provider that exchanges Peppol Document Types
must be able to send and to receive MLS messages.
Sender and receiver of an MLS are identified with the OpenPeppol Service Provider Identification Scheme (SPIS),
meaning participant identifier scheme 0242 - no other scheme is allowed.
All the documents below are publicly available at https://docs.peppol.eu/edelivery/:
MLS_TO and MLS_TYPE and the corresponding reserved SBDH attributesThe PNP is an entirely new document, so every rule in it is a new obligation for Service Providers:
0242:<6-digit-number>).
Additional SPIS Use Case ID "MLS" identifiers (e.g. 0242:<6-digit-number>-MLS) MAY be registered.FAILURE_ONLY, meaning only negative MLS responses are sent.
Positive MLS responses MUST NOT be sent unless the sending Service Provider opted in via MLS_TYPE=ALWAYS_SEND.Additionally a new timing framework with three milestones is introduced:
Based on these milestones, two Service Level Requirements are defined, both measured monthly and both only applicable to business documents with a Payload Size < 10 MB:
Note: the SLRs require that you record all three timestamps and that you are able to relate an incoming MLS message to the matching outgoing business document. So besides the pure sending and receiving, monitoring and alerting are needed as well.
Two additional rules that are easily forgotten:
all XML documents including MLS messages must use the UTF-8 character set (PNP rule XML-1), and an MLS message must never
be sent in response to another MLS or MLR message (rule OP-MLS-03).
Positive MLS messages (Response Code AP or AB) MUST NOT be sent before the delivery of the original
business document to C4 was attempted (rule OP-MLS-12).
The Peppol Business Message Envelope (SBDH) v2.0.2 introduces two new optional fields in the SBDH of the business document, that influence how C3 has to respond with an MLS. Both keys are reserved SBDH attribute keys and MUST NOT be used for any other purpose.
MLS_TO - allows C2 to specify an alternative participant identifier for receiving the MLS responses.
If present and valid, C3 MUST honour it.
The value must correlate to the SPIS Main ID of C2 from the Peppol AP Certificate - redirecting the MLS to a
different Service Provider is not allowed.
This is meant for Service Providers running multiple Access Points or Access Point instances.MLS_TYPE - allows C2 to request ALWAYS_SEND or FAILURE_ONLY.
If the field is absent or invalid, the default FAILURE_ONLY from the PNP applies.As C3 you need to parse and validate both fields from the incoming SBDH and apply the respective fallback chains defined in the SPOG MLS sections 5.1 and 5.2. As C2 you may optionally fill these fields in your outgoing SBDH.
The phase-in is based on MLS specification v1.1.0. The relevant changes compared to v1.0.0 are:
0242 - all MLS sender and receiver identifiers must use
this scheme, no other Participant Identifier Scheme is permitted.
So verify that all your MLS related SMP registrations use scheme 0242.RE) is a closed list. C3 MUST NOT reject documents for reasons outside of this list.0242 is enforced
(rules SCH-MLS-11 and SCH-MLS-16).The phase-in plan defines three milestones and two phases:
Phase 1 (T1 to T2) - be ready to send and receive MLS messages and have the SMP capabilities registered. MLS sending is not required in this phase, but MAY be activated early.
MLS_TO and MLS_TYPE from the SBDH of incoming business documents,
including the fallback logicTo finalise Phase 1, all Service Providers MUST have the MLS receiving capability registered in an SMP and operational, and MUST have passed the Peppol Testbed MLS Test Suite. Whoever did not complete Phase 1 by T2 is in breach of the PNP rules MLS-1 and MLS-2.
Phase 2 (T2 to T3) - start actively sending MLS messages. Sending MAY be activated before T2 once the Phase 1 implementation is complete and tested, and MUST be active for all Service Providers by T3. The 1-month window is explicitly meant as a transition buffer and not as a grace period for a delayed implementation. Whoever activated the sending must comply with the PNP rules MLS-3 and MLS-4 from the moment of the activation. The SLR measurement begins at T3, so the time before can be used to baseline the own SLR performance.
A note for Peppol Authorities that offer a Centralised SMP solution: they MAY mandate the registration of the SPID participants for local Service Providers, but they MUST NOT mandate it for foreign Service Providers, as many - especially international - Service Providers run their own SMP. If you are using a Centralised SMP, clarify with your Peppol Authority whether the MLS participant registration is handled centrally or whether you need to do it yourself.
My peppol-commons project offers the
sub-module peppol-mls to deal with MLS messages.
It allows to read and create the MLS payload in a consistent way.
For the SMP lookup the same project has a peppol-smp-client module.
Wrapping the MLS in SBDH and sending the message can be done with any compliant Peppol AS4 solution like phase4.
The MLR is a message between End Users (C1 and C4) executed by Service Providers (C2 and C3).
The official specification can be found at
https://docs.peppol.eu/poacc/upgrade-3/profiles/36-mlr/.
The MLR is a regular Peppol document like Invoice or Order and as such needs to be transmitted like any other Peppol document
wrapped in an SBDH and send via AS4.
The MLR is an optional document and is NOT mandatory. So not every sender of a business document supports the reception of MLRs.
To check if MLR reception is supported, an SMP lookup is needed.
Please note that the usage of C1, C2, C3 and C4 should be reversed to be precise but in this document, the usage of
C1, C2, C3 and C4 always refers to the role for the transmission of the source document to avoid confusion.
Please note, that an MLR message can be send as a response to any business document as long as its reception is supported.
The scope in which the MLR MAY be used is clearly defined in the specification chapter 2.2. As the sender is obliged to only send valid (=validated) content, validation on receiver side is an optional task. And don't mix MLR with BLR (Business Level Response - e.g. Invoice Response) because they have different meanings.
The following process description shows a best practice process proposal. The assumption is, that receiver side validation was performed and the response should be transmitted back to C1. Note: as soon as MLS sending is activated, this process is superseded by MLS, because one business document MUST only be responded with either MLR or MLS, and MLS has priority (SPOG MLS chapter 3.2).
SignalMessage with an Error element insideThe phase-out is driven by one rule from the SPOG MLS chapter 3.2:
One business document MUST only be responded with either MLR or MLS. If a receiver can handle both MLR and MLS, the usage of MLS MUST have priority.
The direct consequence is, that the phase-out does not start at T3 but already at T2: as soon as a Service Provider activates the MLS sending, that Service Provider MUST stop sending MLR.
Phase 2 (T2 to T3):
Phase 3 (T3 to T4):
From T4 onwards the MLR is fully retired: all MLR sending is prohibited without exception and no Service Provider is allowed to receive MLR messages. The eDEC Code List entry for MLR is marked as "removed" and the OpenPeppol Operating Office formally retires the MLR specification.
My peppol-commons project offers the
sub-module peppol-mlr to deal with MLR messages.
It allows to read and create the MLR payload in a consistent way.
For the SMP lookup the same project has a peppol-smp-client module.
Wrapping the MLR in SBDH and sending the message can be done with any compliant Peppol AS4 solution like phase4.
MLS provides the complete functional coverage of MLR - every situation that MLR handles is handled by MLS using the same
Response Codes (RE for rejection, AP for acceptance and AB for acknowledgement),
so no functional capability is lost in the transition.
On top of that, MLS adds the following:
RE and Status Reason Code
FD (Failed Delivery) and is entirely outside the scope of MLR.SV, BV, BW, FD), which improves the
predictability for C2.MLS_TO - MLR has no equivalent.MLS_TYPE - with MLR the decision to send rests entirely
with C3.
The structural differences are equally relevant:
MLR uses cac:SenderParty/cbc:EndpointID and cac:ReceiverParty/cbc:EndpointID with any
Electronic Address Scheme (EAS) identifier and is exchanged between C1 and C4,
whereas MLS uses the SPIS scheme 0242 exclusively and is strictly a C2 to C3 communication.
And MLR does not require a dedicated SMP registration for the receiving capabilities, whereas MLS does - which is exactly
what makes the "MLS has priority" rule technically enforceable, because C3 can determine via SMP lookup whether C2 has
MLS receiving capabilities or not.
| Feature | MLR | MLS |
|---|---|---|
Rejection response (RE) | Yes | Yes |
Acceptance with confirmation (AP) | Yes | Yes |
Acknowledgement without validation (AB) | Yes | Yes |
Delivery failure to C4 (FD) | No | Yes |
| Exhaustive rejection reason codes | No (open list) | Yes (closed list) |
| Mandatory structured line level detail | No (optional) | Yes (mandatory for RE) |
Sender directed MLS receiver (MLS_TO) | No | Yes |
Sender controlled response type (MLS_TYPE) | No | Yes |
| Issue time with time zone | No (date only) | Yes |
| Mandatory sending | No (optional) | Yes (from T3) |
| Service Level Requirements | No | Yes (SLR MLS-1, SLR MLS-2) |
| Addressee | End Users (C1, C4) | Service Providers (C2, C3) |
| Dedicated SMP registration required | No | Yes |
| No response to another status message | Yes | Yes |
Both plans share the same milestones, so this is the combined view:
| Milestone | Date | MLS | MLR |
|---|---|---|---|
| T1 | 2026-07-01 | Specifications are effective, the phase-in clock starts. Start of Phase 1 (8 months). | Unchanged - MLR may still be used |
| T2 | 2027-02-28 | End of Phase 1. MLS receiving MUST be in production and registered in an SMP. The MLS sending activation window opens (Phase 2, 1 month). | Start of the phase-out. Whoever activates MLS sending MUST stop sending MLR. |
| T3 | 2027-03-31 | End of Phase 2. MLS sending is mandatory for everybody and SLR MLS-1 and SLR MLS-2 are enforceable. | MLR specification is deprecated and the eDEC Code List entry is marked as "deprecated". Sending is only allowed as a last-resort fallback if C2 has no MLS receiving capability in the SMP. |
| T4 | 2027-05-01 | - | MLR is fully retired. Sending is prohibited, receiving is no longer required and the eDEC Code List entry is marked as "removed". |
Note: the two documents name the milestones T2 and T3 with slightly different dates. The MLS Phase-in plan uses "February 28th, 2027" (T2) and "March 31st, 2027" (T3), whereas the MLR Phase-out plan refers to the very same milestones as "March 1st, 2027" and "April 1st, 2027". Practically both denote the same points in time - the end of February 2027 and the end of March 2027. T4 is defined as a maximum of one month after T3.
Alternatively you can find some examples at https://github.com/phax/peppol-commons/tree/master/peppol-mls/src/test/resources/external/test-files/good