Skip to main content

Send MLR response


Send a Message Level Response, also known as MLR, to acknowledge, accept, or reject an incoming Peppol invoice.

Endpoint

PropertyValue
URLPOST /peppol/send-mlr
MethodPOST
AuthR-Auth: <company-jwt>
Content-Typeapplication/json

Example Request

curl --location '{{baseUrl}}/peppol/send-mlr' \
--header 'Content-Type: application/json' \
--header 'R-Auth: {{companyJwt}}' \
--data-raw '{
"companyId": "{{companyId}}",
"invoiceId": "{{invoiceId}}",
"responseCode": "ACCEPTANCE",
"note": null,
"errorLines": null
}'

Request body

{
"companyId": "<companyId>",
"invoiceId": "<invoiceId>",
"responseCode": "ACCEPTANCE",
"note": null,
"errorLines": null
}

Request fields

FieldTypeRequiredDescription
companyIdUUIDYesBuyer company UUID
invoiceIdUUIDYesid from the Search documents response
responseCodestringYesACCEPTANCE, ACKNOWLEDGING, or REJECTION
notestringNoOptional free-text note
errorLinesarrayNoRequired only for REJECTION

Response codes

ValueDescription
ACCEPTANCEBuyer accepts the invoice
ACKNOWLEDGINGBuyer acknowledges receipt, decision pending
REJECTIONBuyer rejects the invoice

Error lines for rejection

Use errorLines only when responseCode is REJECTION.

{
"errorLines": [
{
"description": "Invoice amount does not match purchase order",
"errorField": "LegalMonetaryTotal",
"responseCode": "REJECTION",
"statusReasonCode": "BUSINESS_RULE_VIOLATION_FATAL"
}
]
}

Error line fields

FieldRequiredDescription
descriptionNoHuman-readable error description
errorFieldNoInvoice field that caused the rejection
responseCodeYesAlways REJECTION
statusReasonCodeYesBUSINESS_RULE_VIOLATION_FATAL, BUSINESS_RULE_VIOLATION_WARNING, or SYNTAX_VIOLATION

Response

200 OK