API Documentation

Processing MLR and IMR files

Responses of Senders can contain useful additional information.

IMR and MLR Concept and Use

MLR and IMR files are optional messages, they can be returned by the receivers of your invoices and credit notes. The main volume will be IMR, as MLR is an older standard and IMR is the promoted variant. The file contains the references of the sender and the receiver, as well as the invoice number.

So you can parse the relevant information of the MLR and IMR and store it in your application.

Information to Process in IMR and MLR

Background information on IMR : https://www.billit.eu/en-int/help-page/expenditure/invoices/where-can-i-see-imr-messages-from-invoices-sent-via-peppol/ This information does also contain the possible business responses.

The main information elements to process are:

Value (example)TypeSample value
SenderParty/EndpointIDYour identifier as sender of the invoice. The schemeID indicates the type of identifier.0446725999
SenderParty/RegistrationNameThe company name of the Invoice senderInvoice Customer Company Name
ReceiverParty/EndpointIDThe identifier of the customer, the sender of the IMR message.0454298899
ReceiverParty/PartyLegalEntityThe name of the company receiving the invoice. This is the sender of the IMRInvoice Sender - Supplier Company Name
DocumentResponse/ResponseCodeThe is the coded response."IMR"
DocumentResponse/StatusReasonThis is a free description textThe document has been received
DocumentReference/IDReceiverCompanyIDQS-29569874
DocumentTypeCodeTypecode of the document, e.g. 380 is Invoice380

List of ResponseCode values

Value (example)Type
ABMessage Acknowledgement. To consider as a receipt confirmation.
APAccepted. The receiver is accepting the invoice (next stap could be the payment)
RERejected. The invoice is rejected.
IPIn process. Treatment at Customer level is ongoing.
UQUnder Query. Treatment will continue when the question is answered. This is typically a question from buyer to seller.
CAConditionally Accepted. Condition is in description, the customer is assuming that the supplier accepts the condition.
PDPaid. The customer has intiated the payment process.

Example

Below an example of the IMR UBL file (excluding the SDBH : Standard Business Document Header):

<?xml version="1.0"?>  
<ApplicationResponse xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2">
  <cbc:CustomizationID>urn:fdc:peppol.eu:poacc:trns:invoice_response:3</cbc:CustomizationID>
  <cbc:ProfileID>urn:fdc:peppol.eu:poacc:bis:invoice_response:3</cbc:ProfileID>
  <cbc:ID>660921ad-6579-4c45-90e9-92bbfe6b336d</cbc:ID>
  <cbc:IssueDate>2025-07-25</cbc:IssueDate>
  <cac:SenderParty>
    <cbc:EndpointID schemeID="0208">0446725999</cbc:EndpointID>
    <cac:PartyLegalEntity>
      <cbc:RegistrationName>Invoice Customer Company Name</cbc:RegistrationName>
    </cac:PartyLegalEntity>
  </cac:SenderParty>
  <cac:ReceiverParty>
    <cbc:EndpointID schemeID="0208">0454298999</cbc:EndpointID>
    <cac:PartyLegalEntity>
      <cbc:RegistrationName>Invoice Sender - Supplier Company Name</cbc:RegistrationName>
    </cac:PartyLegalEntity>
  </cac:ReceiverParty>
  <cac:DocumentResponse>
    <cac:Response>
      <cbc:ResponseCode>AB</cbc:ResponseCode>
      <cac:Status>
        <cbc:StatusReasonCode listID="OPStatusReason">NON</cbc:StatusReasonCode>
        <cbc:StatusReason>The document has been successfully received.</cbc:StatusReason>
      </cac:Status>
    </cac:Response>
    <cac:DocumentReference>
      <cbc:ID>QS-29569874</cbc:ID>
      <cbc:DocumentTypeCode>380</cbc:DocumentTypeCode>
    </cac:DocumentReference>
  </cac:DocumentResponse>
</ApplicationResponse>