# Message Level Status (MLS)
A Message Level Status (MLS) is the technical acknowledgement sent back to the original sender of a document, confirming whether it was accepted or rejected. Within Continuous Transaction Controls (CTC), both the invoice and its Tax Data Document (TDD) require their own MLS: one from the recipient, one from the tax authority.
CTC doesn't change the MLS itself. See Send an MLS response for the status codes, reason codes, and how to reply.
# In the flow
- The invoice's own MLS is reported as
mlsDocumentIdin the finalInvoiceSent/InvoiceReceivedwebhook. - The TDD's MLS from the tax authority is reported as
tddMlsDocumentIdin that same webhook. - Both can be downloaded as proof via
GET /api/v1/{partyId}/generic/{documentId}/download.
You can also hook into MessageLevelStatusSent / MessageLevelStatusReceived for a generic feed of every MLS document, not just the ones tied to CTC. See Send an MLS response and Receive an MLS response. Most integrations don't need this.
# Specification
See the official Peppol Message Level Status specification (opens new window) for full protocol details.