Responses from the public sector (Message Level Response - MLR)
Abstract
This page describes the business response returned from receiver (customer) to sender (supplier) confirming accepted (or rejected) processing of the document sent. For the moment PEPPOL BIS MLR is used to send those messages. In the nearby future a new PEPPOL format (Invoice Message Response 063A) will be used since this kind of message will allow to support all kinds of Business Responses to the sender. Be aware that this kind of responses is only possible for documents sent through the PEPPOL network and not for documents entered manually through the Mercurius portal.
After retrieving and marking (deleting from the list) a document in Mercurius, customers reply with some kind a business response to Mercurius (could take some time to process). Not every backend has the ability to provide all possible business response codes. This document describes how the response could get to the supplier of the document.
Typical example of Application Response received from backend:
Possible values in ResponseCode:
Depending on the ResponseCode, the status for the document in Mercurius is changed to:
- Processed (codes ending in :1)
- Rejected (all codes not ending in :1)
Mercurius is now sending a response to the supplier based on:
- If supplier has receiving capabilities "Application Response" defined (SMP), the message is transformed into PEPPOL Message Level Response (36A) using MessageLevelResponse36A .
SMP should reply receiving capabilities as: - If no Message Level Response defined (in SMP) as receiving capabilities, then the message is sent as email to the Contact in the received document (
AccountingSupplierParty\Party\Contact\ElectronicMail
). - If no Message Level response and no e-mail are defined, then no message is sent but the Application Response can be consulted in Mercurius in messages (technical level).
Examples of MLR:
- Response OK. Note ResponseCode = AP (Approved)
- Response NOK. Note the ResponseCode = RE (Rejected) and text in Description
Note that the MLR is immediately "pushed" to the supplier (so no inbox involved like incoming documents). This sending can be verified in the MDN-message attached to the Application Response.
eg:
Date: Tue, 03 Oct 2017 14:07:37 GMT Message-ID: <1097101196.79.1507039657195.JavaMail.DYN-P-WEB03$@DYN-P-WEB03> Subject: AS2 MDN as you requested MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-1; boundary="----=_Part_78_1641003993.1507039657195" AS2-To: APP_1000000324 AS2-From: APP_1000000289 Transfer-Encoding: chunked AS2-Version: 1.0 Server: Oxalis ------=_Part_78_1641003993.1507039657195 Content-Type: multipart/report; report-type=disposition-notification; boundary="----=_Part_76_210309696.1507039657179" ------=_Part_76_210309696.1507039657179 Content-Type: text/plain Content-Transfer-Encoding: 7bit The following headers were received: date: Tue, 03 Oct 2017 16:07:36 +0200 from: peppol@babelway.net message-id: <d5813a00-791a-40f7-8651-8763bd9da36e.331693.20171003160736774@fe2.babelway.net> subject: Babelway Peppol AS2 message mime-version: 1.0 content-type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-1; boundary="----=_Part_19507_1267381525.1507039656941" user-agent: babelway-OpenAS2/AS2Sender as2-version: 1.1 recipient-address: https://peppol.dynatos.be/oxalis/as2 as2-from: APP_1000000324 as2-to: APP_1000000289 disposition-notification-to: fe2.babelway.net disposition-notification-options: signed-receipt-protocol=required, pkcs7-signature; signed-receipt-micalg=required, sha1 cache-control: no-cache pragma: no-cache host: peppol.dynatos.be accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 connection: keep-alive content-length: 6051 The message sent to AS2 System id APP_1000000324 on di, 03 okt 2017 16:07:37 +0200 with subject AS2 MDN as you requested has been received. It has been processed successfully. ------=_Part_76_210309696.1507039657179 Content-Type: message/disposition-notification Content-Transfer-Encoding: 7bit Reporting-UA: Oxalis Disposition: automatic-action/MDN-sent-automatically; processed Original-Recipient: rfc822; APP_1000000324 Final-Recipient: rfc822; APP_1000000324 Original-Message-ID: <d5813a00-791a-40f7-8651-8763bd9da36e.331693.20171003160736774@fe2.babelway.net> X-PEPPOL-TimeStamp: 2017-10-03T16:07:37.148+02:00 X-Original-Message-digest: 8Iv8GZvs0JLznM8W61AKxNmgXb4ixvsKYA+zbmIHw9E= X-Original-Message-alg: SHA-256 Received-Content-MIC: nSLxZb3U3kv1YH8qIyzF2pXvl5Q=, sha1 ------=_Part_76_210309696.1507039657179-- ------=_Part_78_1641003993.1507039657195 Content-Type: application/pkcs7-signature; name=smime.p7s; smime-type=signed-data Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 ------=_Part_78_1641003993.1507039657195--
Technical format reference: https://github.com/OpenPEPPOL/documentation/tree/master/PostAward/MessageLevelResponse36A