> For the complete documentation index, see [llms.txt](https://api.qvalia.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api.qvalia.io/api-documentation/apis/transaction-api/message-level-status-apis.md).

# Message Level Status APIs

Operations related to MessageLevelStatus

## Get incoming message level status \[transaction-type: MessageLevelStatus]

> The response, in JSON, will always include the three latest messages, per default. Using XML you always only get one (as there's no "array" function for XML).\
> \
> With JSON, use the \`limit\` parameter to change the number of returned messages and combine it with \`offset\` to traverse through your available messages.\
> \
> To get new messages only, use the  \`"Read"\` endpoint instead!

```json
{"openapi":"3.0.2","info":{"title":"Qvalia Transaction API","version":"1.0.0"},"tags":[{"name":"MessageLevelStatus APIs","description":"Operations related to MessageLevelStatus"}],"servers":[{"url":"https://api-qa.qvalia.com"},{"url":"https://api.qvalia.com"}],"security":[{"api_key":[]},{"jwt":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"},"jwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT-based authentication. The Authorization header must be set as:\nAuthorization: Bearer <token>\nObtain a token via POST /token/{accountRegNo} (see Account API).\n"}},"parameters":{"accountRegNo":{"name":"accountRegNo","in":"path","required":true,"schema":{"type":"string","description":"","default":""},"description":"Account registration number issued by Qvalia"},"limit":{"name":"limit","in":"query","required":false,"schema":{"type":"number","description":"How many messages to return in Array (XML is always one!)","default":3},"description":"How many messages to return in Array (XML is always one!)"},"offset":{"name":"offset","in":"query","required":false,"schema":{"type":"number","description":"Where to start index for using limit/offset listing","default":0},"description":"Where to start index for using limit/offset listing"},"includeRead":{"name":"includeRead","in":"query","required":false,"schema":{"type":"boolean","description":"If you are using the \"read\" enpoints, make it include previously read messages","default":false},"description":"If you are using the \"read\" enpoints, make it include previously read messages"},"integrationId":{"name":"integrationId","in":"query","required":false,"schema":{"type":"string","description":"","default":""},"description":"Qvalia unique identifier for the transaction/message"},"documentId":{"name":"documentId","in":"query","required":false,"schema":{"type":"string","description":"","default":""},"description":"The document identifier of teh message, e.g. Invoice number"},"from":{"name":"from","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date created from YYYY-MM-DD, e.g. 2024-01-01"},"to":{"name":"to","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date created to YYYY-MM-DD, e.g. 2024-01-01"},"updatedAtFrom":{"name":"updatedAtFrom","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date updated from YYYY-MM-DD, e.g. 2024-01-01"},"updatedAtTo":{"name":"updatedAtTo","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date updated to YYYY-MM-DD, e.g. 2024-01-01"},"Authorization":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","description":"","default":""},"description":"API key"},"Accept":{"name":"Accept","in":"header","required":false,"schema":{"type":"string","default":"application/json"},"description":"Either \"application/json\" (default) or \"application/xml\""}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/transactionResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/transactionResponseXML"}}},"headers":{"integrationid":{"schema":{"type":"string"},"description":"Only included as header in XML!"}}},"204":{"description":"No content","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"debug_error_message":{"type":"string","description":""},"debug_error_code":{"type":"integer","description":""}},"required":[""]}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}}},"schemas":{"transactionResponse":{"type":"object","properties":{"status":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"{transaction-type}":{"type":"object"},"integrationId":{"type":"string"}}}}},"xml":{"name":"{transaction-type}"}},"transactionResponseXML":{"type":"object","properties":{"message-data-elements":{"type":"object"}},"xml":{"name":"{transaction-type}"}}}},"paths":{"/transaction/{accountRegNo}/messagelevelstatus/incoming":{"get":{"tags":["MessageLevelStatus APIs"],"summary":"Get incoming message level status [transaction-type: MessageLevelStatus]","description":"The response, in JSON, will always include the three latest messages, per default. Using XML you always only get one (as there's no \"array\" function for XML).\n\nWith JSON, use the `limit` parameter to change the number of returned messages and combine it with `offset` to traverse through your available messages.\n\nTo get new messages only, use the  `\"Read\"` endpoint instead!","operationId":"messagelevelstatus-apis/get-messagelevelstatus-incoming","parameters":[{"$ref":"#/components/parameters/accountRegNo"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"},{"$ref":"#/components/parameters/includeRead"},{"$ref":"#/components/parameters/integrationId"},{"$ref":"#/components/parameters/documentId"},{"$ref":"#/components/parameters/from"},{"$ref":"#/components/parameters/to"},{"$ref":"#/components/parameters/updatedAtFrom"},{"$ref":"#/components/parameters/updatedAtTo"},{"$ref":"#/components/parameters/Authorization"},{"$ref":"#/components/parameters/Accept"}],"responses":{"200":{"$ref":"#/components/responses/200"},"204":{"$ref":"#/components/responses/204"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"422":{"$ref":"#/components/responses/422"},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Create incoming message level status \[transaction-type: MessageLevelStatus]

> The request can be either JSON or XML. Each individual message must be POST'ed as an object, JSON Array is not suported!

```json
{"openapi":"3.0.2","info":{"title":"Qvalia Transaction API","version":"1.0.0"},"tags":[{"name":"MessageLevelStatus APIs","description":"Operations related to MessageLevelStatus"}],"servers":[{"url":"https://api-qa.qvalia.com"},{"url":"https://api.qvalia.com"}],"security":[{"api_key":[]},{"jwt":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"},"jwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT-based authentication. The Authorization header must be set as:\nAuthorization: Bearer <token>\nObtain a token via POST /token/{accountRegNo} (see Account API).\n"}},"parameters":{"accountRegNo":{"name":"accountRegNo","in":"path","required":true,"schema":{"type":"string","description":"","default":""},"description":"Account registration number issued by Qvalia"},"overwrite":{"name":"overwrite","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"For POST requests, chose to overwrite upon a `409 Conflict` response to reprocess the message with the same document ID and receiver (i.e. send the same message again)"},"Authorization":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","description":"","default":""},"description":"API key"},"contentType":{"name":"Content-Type","in":"header","required":false,"schema":{"type":"string","default":"application/json"},"description":"Either \"application/json\" (default) or \"application/xml\""}},"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"debug_error_message":{"type":"string","description":""},"debug_error_code":{"type":"integer","description":""}},"required":[""]}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"200-post":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/transactionPostResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/transactionPostResponseXML"}}}}},"schemas":{"transactionPostResponse":{"type":"object","properties":{"status":{"type":"string"},"data":{"type":"object","properties":{"message":{"type":"string"},"{transaction-type}_id":{"type":"string"},"integrationId":{"type":"string"}}}},"xml":{"name":"success"}},"transactionPostResponseXML":{"type":"object","properties":{"message":{"type":"string"},"{transaction-type}_id":{"type":"string"},"integrationId":{"type":"string"}},"xml":{"name":"success"}},"ApplicationResponseJSON":{"type":"object","properties":{"ApplicationResponse":{"type":"object","description":"","properties":{},"required":[""]}}},"ApplicationResponse":{"type":"object","description":"","properties":{},"required":[""]}},"requestBodies":{"transactionPostApplicationResponse":{"description":"Request body","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponseJSON"}},"application/xml":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}}}},"paths":{"/transaction/{accountRegNo}/messagelevelstatus/incoming":{"post":{"tags":["MessageLevelStatus APIs"],"summary":"Create incoming message level status [transaction-type: MessageLevelStatus]","description":"The request can be either JSON or XML. Each individual message must be POST'ed as an object, JSON Array is not suported!","operationId":"messagelevelstatus-apis/post-messagelevelstatus-incoming","parameters":[{"$ref":"#/components/parameters/accountRegNo"},{"$ref":"#/components/parameters/overwrite"},{"$ref":"#/components/parameters/Authorization"},{"$ref":"#/components/parameters/contentType"}],"responses":{"200":{"$ref":"#/components/responses/200-post"},"204":{"$ref":"#/components/responses/204"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"422":{"$ref":"#/components/responses/422"},"500":{"$ref":"#/components/responses/500"}},"requestBody":{"$ref":"#/components/requestBodies/transactionPostApplicationResponse"}}}}}
```

## Read incoming message level status \[transaction-type: MessageLevelStatus]

> Through this endpoint you will get any unread (=previously fetched) message(s). After you have fetched through this request the message will be automatically marked as \`read\`\
> \
> The response, in JSON, will always include the three latest messages, per default. Using XML you always only get one (as there's no "array" function for XML).\
> \
> With JSON, use the \`limit\` parameter to change the number of returned messages and combine it with \`offset\` to traverse through your available messages.

```json
{"openapi":"3.0.2","info":{"title":"Qvalia Transaction API","version":"1.0.0"},"tags":[{"name":"MessageLevelStatus APIs","description":"Operations related to MessageLevelStatus"}],"servers":[{"url":"https://api-qa.qvalia.com"},{"url":"https://api.qvalia.com"}],"security":[{"api_key":[]},{"jwt":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"},"jwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT-based authentication. The Authorization header must be set as:\nAuthorization: Bearer <token>\nObtain a token via POST /token/{accountRegNo} (see Account API).\n"}},"parameters":{"accountRegNo":{"name":"accountRegNo","in":"path","required":true,"schema":{"type":"string","description":"","default":""},"description":"Account registration number issued by Qvalia"},"limit":{"name":"limit","in":"query","required":false,"schema":{"type":"number","description":"How many messages to return in Array (XML is always one!)","default":3},"description":"How many messages to return in Array (XML is always one!)"},"offset":{"name":"offset","in":"query","required":false,"schema":{"type":"number","description":"Where to start index for using limit/offset listing","default":0},"description":"Where to start index for using limit/offset listing"},"includeRead":{"name":"includeRead","in":"query","required":false,"schema":{"type":"boolean","description":"If you are using the \"read\" enpoints, make it include previously read messages","default":false},"description":"If you are using the \"read\" enpoints, make it include previously read messages"},"Authorization":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","description":"","default":""},"description":"API key"},"Accept":{"name":"Accept","in":"header","required":false,"schema":{"type":"string","default":"application/json"},"description":"Either \"application/json\" (default) or \"application/xml\""}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/transactionResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/transactionResponseXML"}}},"headers":{"integrationid":{"schema":{"type":"string"},"description":"Only included as header in XML!"}}},"204":{"description":"No content","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"debug_error_message":{"type":"string","description":""},"debug_error_code":{"type":"integer","description":""}},"required":[""]}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}}},"schemas":{"transactionResponse":{"type":"object","properties":{"status":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"{transaction-type}":{"type":"object"},"integrationId":{"type":"string"}}}}},"xml":{"name":"{transaction-type}"}},"transactionResponseXML":{"type":"object","properties":{"message-data-elements":{"type":"object"}},"xml":{"name":"{transaction-type}"}}}},"paths":{"/transaction/{accountRegNo}/messagelevelstatus/incoming/readmessagelevelstatus":{"get":{"tags":["MessageLevelStatus APIs"],"summary":"Read incoming message level status [transaction-type: MessageLevelStatus]","description":"Through this endpoint you will get any unread (=previously fetched) message(s). After you have fetched through this request the message will be automatically marked as `read`\n\nThe response, in JSON, will always include the three latest messages, per default. Using XML you always only get one (as there's no \"array\" function for XML).\n\nWith JSON, use the `limit` parameter to change the number of returned messages and combine it with `offset` to traverse through your available messages.","operationId":"messagelevelstatus-apis/get-messagelevelstatus-incoming-read","parameters":[{"$ref":"#/components/parameters/accountRegNo"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"},{"$ref":"#/components/parameters/includeRead"},{"$ref":"#/components/parameters/Authorization"},{"$ref":"#/components/parameters/Accept"}],"responses":{"200":{"$ref":"#/components/responses/200"},"204":{"$ref":"#/components/responses/204"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"422":{"$ref":"#/components/responses/422"},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Get outgoing message level status \[transaction-type: MessageLevelStatus]

> The response, in JSON, will always include the three latest messages, per default. Using XML you always only get one (as there's no "array" function for XML).\
> \
> With JSON, use the \`limit\` parameter to change the number of returned messages and combine it with \`offset\` to traverse through your available messages.\
> \
> To get new messages only, use the  \`"Read"\` endpoint instead!

```json
{"openapi":"3.0.2","info":{"title":"Qvalia Transaction API","version":"1.0.0"},"tags":[{"name":"MessageLevelStatus APIs","description":"Operations related to MessageLevelStatus"}],"servers":[{"url":"https://api-qa.qvalia.com"},{"url":"https://api.qvalia.com"}],"security":[{"api_key":[]},{"jwt":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"},"jwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT-based authentication. The Authorization header must be set as:\nAuthorization: Bearer <token>\nObtain a token via POST /token/{accountRegNo} (see Account API).\n"}},"parameters":{"accountRegNo":{"name":"accountRegNo","in":"path","required":true,"schema":{"type":"string","description":"","default":""},"description":"Account registration number issued by Qvalia"},"limit":{"name":"limit","in":"query","required":false,"schema":{"type":"number","description":"How many messages to return in Array (XML is always one!)","default":3},"description":"How many messages to return in Array (XML is always one!)"},"offset":{"name":"offset","in":"query","required":false,"schema":{"type":"number","description":"Where to start index for using limit/offset listing","default":0},"description":"Where to start index for using limit/offset listing"},"includeRead":{"name":"includeRead","in":"query","required":false,"schema":{"type":"boolean","description":"If you are using the \"read\" enpoints, make it include previously read messages","default":false},"description":"If you are using the \"read\" enpoints, make it include previously read messages"},"integrationId":{"name":"integrationId","in":"query","required":false,"schema":{"type":"string","description":"","default":""},"description":"Qvalia unique identifier for the transaction/message"},"documentId":{"name":"documentId","in":"query","required":false,"schema":{"type":"string","description":"","default":""},"description":"The document identifier of teh message, e.g. Invoice number"},"from":{"name":"from","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date created from YYYY-MM-DD, e.g. 2024-01-01"},"to":{"name":"to","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date created to YYYY-MM-DD, e.g. 2024-01-01"},"updatedAtFrom":{"name":"updatedAtFrom","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date updated from YYYY-MM-DD, e.g. 2024-01-01"},"updatedAtTo":{"name":"updatedAtTo","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date updated to YYYY-MM-DD, e.g. 2024-01-01"},"Authorization":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","description":"","default":""},"description":"API key"},"Accept":{"name":"Accept","in":"header","required":false,"schema":{"type":"string","default":"application/json"},"description":"Either \"application/json\" (default) or \"application/xml\""}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/transactionResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/transactionResponseXML"}}},"headers":{"integrationid":{"schema":{"type":"string"},"description":"Only included as header in XML!"}}},"204":{"description":"No content","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"debug_error_message":{"type":"string","description":""},"debug_error_code":{"type":"integer","description":""}},"required":[""]}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}}},"schemas":{"transactionResponse":{"type":"object","properties":{"status":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"{transaction-type}":{"type":"object"},"integrationId":{"type":"string"}}}}},"xml":{"name":"{transaction-type}"}},"transactionResponseXML":{"type":"object","properties":{"message-data-elements":{"type":"object"}},"xml":{"name":"{transaction-type}"}}}},"paths":{"/transaction/{accountRegNo}/messagelevelstatus/outgoing":{"get":{"tags":["MessageLevelStatus APIs"],"summary":"Get outgoing message level status [transaction-type: MessageLevelStatus]","description":"The response, in JSON, will always include the three latest messages, per default. Using XML you always only get one (as there's no \"array\" function for XML).\n\nWith JSON, use the `limit` parameter to change the number of returned messages and combine it with `offset` to traverse through your available messages.\n\nTo get new messages only, use the  `\"Read\"` endpoint instead!","operationId":"messagelevelstatus-apis/get-messagelevelstatus-outgoing","parameters":[{"$ref":"#/components/parameters/accountRegNo"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"},{"$ref":"#/components/parameters/includeRead"},{"$ref":"#/components/parameters/integrationId"},{"$ref":"#/components/parameters/documentId"},{"$ref":"#/components/parameters/from"},{"$ref":"#/components/parameters/to"},{"$ref":"#/components/parameters/updatedAtFrom"},{"$ref":"#/components/parameters/updatedAtTo"},{"$ref":"#/components/parameters/Authorization"},{"$ref":"#/components/parameters/Accept"}],"responses":{"200":{"$ref":"#/components/responses/200"},"204":{"$ref":"#/components/responses/204"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"422":{"$ref":"#/components/responses/422"},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Create message level status \[transaction-type: MessageLevelStatus]

> The response, in JSON, will always include the three latest messages, per default. Using XML you always only get one (as there's no "array" function for XML).\
> \
> With JSON, use the \`limit\` parameter to change the number of returned messages and combine it with \`offset\` to traverse through your available messages.\
> \
> To get new messages only, use the  \`"Read"\` endpoint instead!

```json
{"openapi":"3.0.2","info":{"title":"Qvalia Transaction API","version":"1.0.0"},"tags":[{"name":"MessageLevelStatus APIs","description":"Operations related to MessageLevelStatus"}],"servers":[{"url":"https://api-qa.qvalia.com"},{"url":"https://api.qvalia.com"}],"security":[{"api_key":[]},{"jwt":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"},"jwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT-based authentication. The Authorization header must be set as:\nAuthorization: Bearer <token>\nObtain a token via POST /token/{accountRegNo} (see Account API).\n"}},"parameters":{"accountRegNo":{"name":"accountRegNo","in":"path","required":true,"schema":{"type":"string","description":"","default":""},"description":"Account registration number issued by Qvalia"},"overwrite":{"name":"overwrite","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"For POST requests, chose to overwrite upon a `409 Conflict` response to reprocess the message with the same document ID and receiver (i.e. send the same message again)"},"Authorization":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","description":"","default":""},"description":"API key"},"contentType":{"name":"Content-Type","in":"header","required":false,"schema":{"type":"string","default":"application/json"},"description":"Either \"application/json\" (default) or \"application/xml\""}},"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"debug_error_message":{"type":"string","description":""},"debug_error_code":{"type":"integer","description":""}},"required":[""]}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"200-post":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/transactionPostResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/transactionPostResponseXML"}}}}},"schemas":{"transactionPostResponse":{"type":"object","properties":{"status":{"type":"string"},"data":{"type":"object","properties":{"message":{"type":"string"},"{transaction-type}_id":{"type":"string"},"integrationId":{"type":"string"}}}},"xml":{"name":"success"}},"transactionPostResponseXML":{"type":"object","properties":{"message":{"type":"string"},"{transaction-type}_id":{"type":"string"},"integrationId":{"type":"string"}},"xml":{"name":"success"}},"ApplicationResponseJSON":{"type":"object","properties":{"ApplicationResponse":{"type":"object","description":"","properties":{},"required":[""]}}},"ApplicationResponse":{"type":"object","description":"","properties":{},"required":[""]}},"requestBodies":{"transactionPostApplicationResponse":{"description":"Request body","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponseJSON"}},"application/xml":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}}}},"paths":{"/transaction/{accountRegNo}/messagelevelstatus/outgoing":{"post":{"tags":["MessageLevelStatus APIs"],"summary":"Create message level status [transaction-type: MessageLevelStatus]","description":"The response, in JSON, will always include the three latest messages, per default. Using XML you always only get one (as there's no \"array\" function for XML).\n\nWith JSON, use the `limit` parameter to change the number of returned messages and combine it with `offset` to traverse through your available messages.\n\nTo get new messages only, use the  `\"Read\"` endpoint instead!","operationId":"messagelevelstatus-apis/post-messagelevelstatus-outgoing","parameters":[{"$ref":"#/components/parameters/accountRegNo"},{"$ref":"#/components/parameters/overwrite"},{"$ref":"#/components/parameters/Authorization"},{"$ref":"#/components/parameters/contentType"}],"responses":{"200":{"$ref":"#/components/responses/200-post"},"204":{"$ref":"#/components/responses/204"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"422":{"$ref":"#/components/responses/422"},"500":{"$ref":"#/components/responses/500"}},"requestBody":{"$ref":"#/components/requestBodies/transactionPostApplicationResponse"}}}}}
```

## Read message level statuss \[transaction-type: MessageLevelStatus]

> Through this endpoint you will get any unread (=previously fetched) message(s). After you have fetched through this request the message will be automatically marked as \`read\`\
> \
> The response, in JSON, will always include the three latest messages, per default. Using XML you always only get one (as there's no "array" function for XML).\
> \
> With JSON, use the \`limit\` parameter to change the number of returned messages and combine it with \`offset\` to traverse through your available messages.

```json
{"openapi":"3.0.2","info":{"title":"Qvalia Transaction API","version":"1.0.0"},"tags":[{"name":"MessageLevelStatus APIs","description":"Operations related to MessageLevelStatus"}],"servers":[{"url":"https://api-qa.qvalia.com"},{"url":"https://api.qvalia.com"}],"security":[{"api_key":[]},{"jwt":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"},"jwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT-based authentication. The Authorization header must be set as:\nAuthorization: Bearer <token>\nObtain a token via POST /token/{accountRegNo} (see Account API).\n"}},"parameters":{"accountRegNo":{"name":"accountRegNo","in":"path","required":true,"schema":{"type":"string","description":"","default":""},"description":"Account registration number issued by Qvalia"},"limit":{"name":"limit","in":"query","required":false,"schema":{"type":"number","description":"How many messages to return in Array (XML is always one!)","default":3},"description":"How many messages to return in Array (XML is always one!)"},"offset":{"name":"offset","in":"query","required":false,"schema":{"type":"number","description":"Where to start index for using limit/offset listing","default":0},"description":"Where to start index for using limit/offset listing"},"includeRead":{"name":"includeRead","in":"query","required":false,"schema":{"type":"boolean","description":"If you are using the \"read\" enpoints, make it include previously read messages","default":false},"description":"If you are using the \"read\" enpoints, make it include previously read messages"},"Authorization":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","description":"","default":""},"description":"API key"},"Accept":{"name":"Accept","in":"header","required":false,"schema":{"type":"string","default":"application/json"},"description":"Either \"application/json\" (default) or \"application/xml\""}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/transactionResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/transactionResponseXML"}}},"headers":{"integrationid":{"schema":{"type":"string"},"description":"Only included as header in XML!"}}},"204":{"description":"No content","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"debug_error_message":{"type":"string","description":""},"debug_error_code":{"type":"integer","description":""}},"required":[""]}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}}},"schemas":{"transactionResponse":{"type":"object","properties":{"status":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"{transaction-type}":{"type":"object"},"integrationId":{"type":"string"}}}}},"xml":{"name":"{transaction-type}"}},"transactionResponseXML":{"type":"object","properties":{"message-data-elements":{"type":"object"}},"xml":{"name":"{transaction-type}"}}}},"paths":{"/transaction/{accountRegNo}/messagelevelstatus/outgoing/readmessagelevelstatus":{"get":{"tags":["MessageLevelStatus APIs"],"summary":"Read message level statuss [transaction-type: MessageLevelStatus]","description":"Through this endpoint you will get any unread (=previously fetched) message(s). After you have fetched through this request the message will be automatically marked as `read`\n\nThe response, in JSON, will always include the three latest messages, per default. Using XML you always only get one (as there's no \"array\" function for XML).\n\nWith JSON, use the `limit` parameter to change the number of returned messages and combine it with `offset` to traverse through your available messages.","operationId":"messagelevelstatus-apis/get-messagelevelstatus-outgoing-read","parameters":[{"$ref":"#/components/parameters/accountRegNo"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"},{"$ref":"#/components/parameters/includeRead"},{"$ref":"#/components/parameters/Authorization"},{"$ref":"#/components/parameters/Accept"}],"responses":{"200":{"$ref":"#/components/responses/200"},"204":{"$ref":"#/components/responses/204"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"422":{"$ref":"#/components/responses/422"},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Get incoming message level status statuses \[transaction-type: MessageLevelStatus]

> Returns lightweight delivery/processing status metadata for the matching messages — the message \`uuid\`, the incoming \`readAt\` timestamp and a \`metadata\` object whose \`status\` reflects the latest message-log status — WITHOUT the heavy document payload.\
> \
> Uses the same query-string filters as the resource's GET on \`/incoming\` and \`/outgoing\`. By default only unread messages are returned; set \`includeRead=true\` to also include previously read messages.\
> \
> The response is always JSON (an array of status objects); there is no XML representation for this endpoint.

```json
{"openapi":"3.0.2","info":{"title":"Qvalia Transaction API","version":"1.0.0"},"tags":[{"name":"MessageLevelStatus APIs","description":"Operations related to MessageLevelStatus"}],"servers":[{"url":"https://api-qa.qvalia.com"},{"url":"https://api.qvalia.com"}],"security":[{"api_key":[]},{"jwt":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"},"jwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT-based authentication. The Authorization header must be set as:\nAuthorization: Bearer <token>\nObtain a token via POST /token/{accountRegNo} (see Account API).\n"}},"parameters":{"accountRegNo":{"name":"accountRegNo","in":"path","required":true,"schema":{"type":"string","description":"","default":""},"description":"Account registration number issued by Qvalia"},"limit":{"name":"limit","in":"query","required":false,"schema":{"type":"number","description":"How many messages to return in Array (XML is always one!)","default":3},"description":"How many messages to return in Array (XML is always one!)"},"offset":{"name":"offset","in":"query","required":false,"schema":{"type":"number","description":"Where to start index for using limit/offset listing","default":0},"description":"Where to start index for using limit/offset listing"},"includeRead":{"name":"includeRead","in":"query","required":false,"schema":{"type":"boolean","description":"If you are using the \"read\" enpoints, make it include previously read messages","default":false},"description":"If you are using the \"read\" enpoints, make it include previously read messages"},"integrationId":{"name":"integrationId","in":"query","required":false,"schema":{"type":"string","description":"","default":""},"description":"Qvalia unique identifier for the transaction/message"},"documentId":{"name":"documentId","in":"query","required":false,"schema":{"type":"string","description":"","default":""},"description":"The document identifier of teh message, e.g. Invoice number"},"from":{"name":"from","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date created from YYYY-MM-DD, e.g. 2024-01-01"},"to":{"name":"to","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date created to YYYY-MM-DD, e.g. 2024-01-01"},"updatedAtFrom":{"name":"updatedAtFrom","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date updated from YYYY-MM-DD, e.g. 2024-01-01"},"updatedAtTo":{"name":"updatedAtTo","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date updated to YYYY-MM-DD, e.g. 2024-01-01"},"Authorization":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","description":"","default":""},"description":"API key"}},"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"statusResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","description":"Qvalia unique identifier for the transaction/message"},"readAt":{"type":"string","format":"date-time","nullable":true,"description":"When the (incoming) message was marked as read, or `null` if unread/not applicable"},"metadata":{"type":"object","description":"Status metadata for the message. The `status` property reflects the latest message-log status.","properties":{"status":{"type":"string"}}}}}}}}}}},"paths":{"/transaction/{accountRegNo}/messagelevelstatus/incoming/status":{"get":{"tags":["MessageLevelStatus APIs"],"summary":"Get incoming message level status statuses [transaction-type: MessageLevelStatus]","description":"Returns lightweight delivery/processing status metadata for the matching messages — the message `uuid`, the incoming `readAt` timestamp and a `metadata` object whose `status` reflects the latest message-log status — WITHOUT the heavy document payload.\n\nUses the same query-string filters as the resource's GET on `/incoming` and `/outgoing`. By default only unread messages are returned; set `includeRead=true` to also include previously read messages.\n\nThe response is always JSON (an array of status objects); there is no XML representation for this endpoint.","operationId":"messagelevelstatus-apis/get-messagelevelstatus-incoming-status","parameters":[{"$ref":"#/components/parameters/accountRegNo"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"},{"$ref":"#/components/parameters/includeRead"},{"$ref":"#/components/parameters/integrationId"},{"$ref":"#/components/parameters/documentId"},{"$ref":"#/components/parameters/from"},{"$ref":"#/components/parameters/to"},{"$ref":"#/components/parameters/updatedAtFrom"},{"$ref":"#/components/parameters/updatedAtTo"},{"$ref":"#/components/parameters/Authorization"}],"responses":{"200":{"$ref":"#/components/responses/statusResponse"},"204":{"$ref":"#/components/responses/204"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"422":{"$ref":"#/components/responses/422"},"500":{"$ref":"#/components/responses/500"}}}}}}
```

## Get outgoing message level status statuses \[transaction-type: MessageLevelStatus]

> Returns lightweight delivery/processing status metadata for the matching messages — the message \`uuid\`, the incoming \`readAt\` timestamp and a \`metadata\` object whose \`status\` reflects the latest message-log status — WITHOUT the heavy document payload.\
> \
> Uses the same query-string filters as the resource's GET on \`/incoming\` and \`/outgoing\`. By default only unread messages are returned; set \`includeRead=true\` to also include previously read messages.\
> \
> The response is always JSON (an array of status objects); there is no XML representation for this endpoint.

```json
{"openapi":"3.0.2","info":{"title":"Qvalia Transaction API","version":"1.0.0"},"tags":[{"name":"MessageLevelStatus APIs","description":"Operations related to MessageLevelStatus"}],"servers":[{"url":"https://api-qa.qvalia.com"},{"url":"https://api.qvalia.com"}],"security":[{"api_key":[]},{"jwt":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","name":"Authorization","in":"header"},"jwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT-based authentication. The Authorization header must be set as:\nAuthorization: Bearer <token>\nObtain a token via POST /token/{accountRegNo} (see Account API).\n"}},"parameters":{"accountRegNo":{"name":"accountRegNo","in":"path","required":true,"schema":{"type":"string","description":"","default":""},"description":"Account registration number issued by Qvalia"},"limit":{"name":"limit","in":"query","required":false,"schema":{"type":"number","description":"How many messages to return in Array (XML is always one!)","default":3},"description":"How many messages to return in Array (XML is always one!)"},"offset":{"name":"offset","in":"query","required":false,"schema":{"type":"number","description":"Where to start index for using limit/offset listing","default":0},"description":"Where to start index for using limit/offset listing"},"includeRead":{"name":"includeRead","in":"query","required":false,"schema":{"type":"boolean","description":"If you are using the \"read\" enpoints, make it include previously read messages","default":false},"description":"If you are using the \"read\" enpoints, make it include previously read messages"},"integrationId":{"name":"integrationId","in":"query","required":false,"schema":{"type":"string","description":"","default":""},"description":"Qvalia unique identifier for the transaction/message"},"documentId":{"name":"documentId","in":"query","required":false,"schema":{"type":"string","description":"","default":""},"description":"The document identifier of teh message, e.g. Invoice number"},"from":{"name":"from","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date created from YYYY-MM-DD, e.g. 2024-01-01"},"to":{"name":"to","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date created to YYYY-MM-DD, e.g. 2024-01-01"},"updatedAtFrom":{"name":"updatedAtFrom","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date updated from YYYY-MM-DD, e.g. 2024-01-01"},"updatedAtTo":{"name":"updatedAtTo","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD, e.g. 2024-01-01","default":""},"description":"Date updated to YYYY-MM-DD, e.g. 2024-01-01"},"Authorization":{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","description":"","default":""},"description":"API key"}},"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","description":""},"error":{"type":"string","description":""},"message":{"type":"string","description":""}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":""},"type":{"type":"string","description":""},"data":{"type":"string","description":""},"metadata":{"type":"object","description":"","properties":{"description":{"type":"string","description":""},"details":{"type":"object","description":"","properties":{},"required":[""]}},"required":[""]}}}}}},"statusResponse":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","description":"Qvalia unique identifier for the transaction/message"},"readAt":{"type":"string","format":"date-time","nullable":true,"description":"When the (incoming) message was marked as read, or `null` if unread/not applicable"},"metadata":{"type":"object","description":"Status metadata for the message. The `status` property reflects the latest message-log status.","properties":{"status":{"type":"string"}}}}}}}}}}},"paths":{"/transaction/{accountRegNo}/messagelevelstatus/outgoing/status":{"get":{"tags":["MessageLevelStatus APIs"],"summary":"Get outgoing message level status statuses [transaction-type: MessageLevelStatus]","description":"Returns lightweight delivery/processing status metadata for the matching messages — the message `uuid`, the incoming `readAt` timestamp and a `metadata` object whose `status` reflects the latest message-log status — WITHOUT the heavy document payload.\n\nUses the same query-string filters as the resource's GET on `/incoming` and `/outgoing`. By default only unread messages are returned; set `includeRead=true` to also include previously read messages.\n\nThe response is always JSON (an array of status objects); there is no XML representation for this endpoint.","operationId":"messagelevelstatus-apis/get-messagelevelstatus-outgoing-status","parameters":[{"$ref":"#/components/parameters/accountRegNo"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"},{"$ref":"#/components/parameters/includeRead"},{"$ref":"#/components/parameters/integrationId"},{"$ref":"#/components/parameters/documentId"},{"$ref":"#/components/parameters/from"},{"$ref":"#/components/parameters/to"},{"$ref":"#/components/parameters/updatedAtFrom"},{"$ref":"#/components/parameters/updatedAtTo"},{"$ref":"#/components/parameters/Authorization"}],"responses":{"200":{"$ref":"#/components/responses/statusResponse"},"204":{"$ref":"#/components/responses/204"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"422":{"$ref":"#/components/responses/422"},"500":{"$ref":"#/components/responses/500"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://api.qvalia.io/api-documentation/apis/transaction-api/message-level-status-apis.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
