# 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 mlsDocumentId in the final InvoiceSent / InvoiceReceived webhook.
  • The TDD's MLS from the tax authority is reported as tddMlsDocumentId in 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.

# See also

© 2026 eConnect International B.V.