> 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/invoice-apis.md).

# Invoice APIs

Operations related to Invoices

## Get incoming invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoices/incoming":{"get":{"tags":["Invoice APIs"],"summary":"Get incoming invoices [transaction-type: Invoice]","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":"invoice-apis/get-invoices-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 invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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"}},"InvoiceJSON":{"type":"object","properties":{"Invoice":{"type":"object","description":"","properties":{},"required":[""]}}},"Invoice":{"type":"object","description":"","properties":{},"required":[""]}},"requestBodies":{"transactionPostInvoice":{"description":"Request body","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceJSON"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Invoice"}}}}}},"paths":{"/transaction/{accountRegNo}/invoices/incoming":{"post":{"tags":["Invoice APIs"],"summary":"Create incoming invoices [transaction-type: Invoice]","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":"invoice-apis/post-invoices-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/transactionPostInvoice"}}}}}
```

## Read incoming invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoices/incoming/readinvoices":{"get":{"tags":["Invoice APIs"],"summary":"Read incoming invoices [transaction-type: Invoice]","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":"invoice-apis/get-invoices-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 invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoices/outgoing":{"get":{"tags":["Invoice APIs"],"summary":"Get outgoing invoices [transaction-type: Invoice]","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":"invoice-apis/get-invoices-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 outgoing invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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"}},"InvoiceJSON":{"type":"object","properties":{"Invoice":{"type":"object","description":"","properties":{},"required":[""]}}},"Invoice":{"type":"object","description":"","properties":{},"required":[""]}},"requestBodies":{"transactionPostInvoice":{"description":"Request body","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceJSON"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Invoice"}}}}}},"paths":{"/transaction/{accountRegNo}/invoices/outgoing":{"post":{"tags":["Invoice APIs"],"summary":"Create outgoing invoices [transaction-type: Invoice]","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":"invoice-apis/post-invoices-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/transactionPostInvoice"}}}}}
```

## Read outgoing invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoices/outgoing/readinvoices":{"get":{"tags":["Invoice APIs"],"summary":"Read outgoing invoices [transaction-type: Invoice]","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":"invoice-apis/get-invoices-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 invoice responses \[transaction-type: InvoiceResponse]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoiceresponses/incoming":{"get":{"tags":["Invoice APIs"],"summary":"Get incoming invoice responses [transaction-type: InvoiceResponse]","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":"invoiceresponses-apis/get-invoiceresponses-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 invoice responses \[transaction-type: InvoiceResponse]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoiceresponses/incoming":{"post":{"tags":["Invoice APIs"],"summary":"Create incoming invoice responses [transaction-type: InvoiceResponse]","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":"invoiceresponses-apis/post-invoiceresponses-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 invoice responses \[transaction-type: InvoiceResponse]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoiceresponses/incoming/readinvoice responses":{"get":{"tags":["Invoice APIs"],"summary":"Read incoming invoice responses [transaction-type: InvoiceResponse]","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":"invoiceresponses-apis/get-invoiceresponses-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 invoice responses \[transaction-type: InvoiceResponse]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoiceresponses/outgoing":{"get":{"tags":["Invoice APIs"],"summary":"Get outgoing invoice responses [transaction-type: InvoiceResponse]","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":"invoiceresponses-apis/get-invoiceresponses-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 outgoing invoice responses \[transaction-type: InvoiceResponse]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoiceresponses/outgoing":{"post":{"tags":["Invoice APIs"],"summary":"Create outgoing invoice responses [transaction-type: InvoiceResponse]","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":"invoiceresponses-apis/post-invoiceresponses-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 outgoing invoice responses \[transaction-type: InvoiceResponse]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoiceresponses/outgoing/readinvoice responses":{"get":{"tags":["Invoice APIs"],"summary":"Read outgoing invoice responses [transaction-type: InvoiceResponse]","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":"invoiceresponses-apis/get-invoiceresponses-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 self billing invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/selfbillinginvoices/incoming":{"get":{"tags":["Invoice APIs"],"summary":"Get incoming self billing invoices [transaction-type: Invoice]","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":"selfbillinginvoice-apis/get-invoices-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 self billing invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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"}},"InvoiceJSON":{"type":"object","properties":{"Invoice":{"type":"object","description":"","properties":{},"required":[""]}}},"Invoice":{"type":"object","description":"","properties":{},"required":[""]}},"requestBodies":{"transactionPostInvoice":{"description":"Request body","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceJSON"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Invoice"}}}}}},"paths":{"/transaction/{accountRegNo}/selfbillinginvoices/incoming":{"post":{"tags":["Invoice APIs"],"summary":"Create incoming self billing invoices [transaction-type: Invoice]","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":"selfbillinginvoice-apis/post-invoices-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/transactionPostInvoice"}}}}}
```

## Read incoming self billing invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/selfbillinginvoices/incoming/readselfbillinginvoices":{"get":{"tags":["Invoice APIs"],"summary":"Read incoming self billing invoices [transaction-type: Invoice]","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":"selfbillinginvoice-apis/get-invoices-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 self billing invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/selfbillinginvoices/outgoing":{"get":{"tags":["Invoice APIs"],"summary":"Get outgoing self billing invoices [transaction-type: Invoice]","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":"selfbillinginvoice-apis/get-invoices-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 outgoing self billing invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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"}},"InvoiceJSON":{"type":"object","properties":{"Invoice":{"type":"object","description":"","properties":{},"required":[""]}}},"Invoice":{"type":"object","description":"","properties":{},"required":[""]}},"requestBodies":{"transactionPostInvoice":{"description":"Request body","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceJSON"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Invoice"}}}}}},"paths":{"/transaction/{accountRegNo}/selfbillinginvoices/outgoing":{"post":{"tags":["Invoice APIs"],"summary":"Create outgoing self billing invoices [transaction-type: Invoice]","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":"selfbillinginvoice-apis/post-invoices-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/transactionPostInvoice"}}}}}
```

## Read outgoing self billing invoices \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/selfbillinginvoices/outgoing/readselfbillinginvoices":{"get":{"tags":["Invoice APIs"],"summary":"Read outgoing self billing invoices [transaction-type: Invoice]","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":"selfbillinginvoice-apis/get-invoices-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 invoice statuses \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoices/incoming/status":{"get":{"tags":["Invoice APIs"],"summary":"Get incoming invoice statuses [transaction-type: Invoice]","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":"invoice-apis/get-invoices-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 invoice statuses \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoices/outgoing/status":{"get":{"tags":["Invoice APIs"],"summary":"Get outgoing invoice statuses [transaction-type: Invoice]","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":"invoice-apis/get-invoices-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"}}}}}}
```

## Get incoming invoice response statuses \[transaction-type: InvoiceResponse]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoiceresponses/incoming/status":{"get":{"tags":["Invoice APIs"],"summary":"Get incoming invoice response statuses [transaction-type: InvoiceResponse]","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":"invoiceresponses-apis/get-invoiceresponses-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 invoice response statuses \[transaction-type: InvoiceResponse]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/invoiceresponses/outgoing/status":{"get":{"tags":["Invoice APIs"],"summary":"Get outgoing invoice response statuses [transaction-type: InvoiceResponse]","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":"invoiceresponses-apis/get-invoiceresponses-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"}}}}}}
```

## Get incoming self billing invoice statuses \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/selfbillinginvoices/incoming/status":{"get":{"tags":["Invoice APIs"],"summary":"Get incoming self billing invoice statuses [transaction-type: Invoice]","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":"selfbillinginvoice-apis/get-invoices-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 self billing invoice statuses \[transaction-type: Invoice]

> 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":"Invoice APIs","description":"Operations related to Invoices"}],"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}/selfbillinginvoices/outgoing/status":{"get":{"tags":["Invoice APIs"],"summary":"Get outgoing self billing invoice statuses [transaction-type: Invoice]","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":"selfbillinginvoice-apis/get-invoices-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/invoice-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.
