# Acknowledgment Reply Messages

<table><thead><tr><th width="114.609375" align="center">Destination</th><th width="54.75262451171875" align="center"></th><th width="115.19964599609375" align="center">Source</th></tr></thead><tbody><tr><td align="center"><strong>Client</strong></td><td align="center"><strong>←</strong></td><td align="center"><strong>MTS</strong></td></tr></tbody></table>

**Envelope and Content table:**

The envelope provides the Content's (Acknowledgment reply message) context and contains the following fields (besides Content):

* correlationId
* timestampUtc
* operation
* version

<table data-full-width="true"><thead><tr><th width="351.3306884765625">Example</th><th width="151.5078125">Field Name</th><th>Field Description</th><th width="100">Mandatory/ Optional</th><th width="100">Data Type</th></tr></thead><tbody><tr><td><pre><code>{
</code></pre></td><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><pre><code>  "content": {
       ........
       ........
   },    
</code></pre></td><td>content</td><td>See Content object description below</td><td>M</td><td>Object</td></tr><tr><td><pre><code>  "correlationId": "623dHlyMq82",
</code></pre></td><td>correlationId</td><td>Client defined string to facilitate the request-response pairing,<br>Sportradar is obliged to return the same string in every response</td><td>M</td><td>String</td></tr><tr><td><pre><code>  "timestampUtc": 1678357236000,
</code></pre></td><td>timestampUtc</td><td>Timestamp of ticket placement as submitted by the client (Unix time milliseconds format),<br>minimal: 1,<br>maximum: 9223372036854776000</td><td>M</td><td>Integer</td></tr><tr><td><pre data-overflow="wrap"><code>  "operation": "ticket-placement-ack",
</code></pre></td><td>operation</td><td><p>In case of Acknowledgement reply messages - enumerator:</p><ul><li>"ticket-placement-ack"</li><li>"ticket-cancel-ack"</li><li>"ticket-cashout-ack"</li><li>"ticket-ext-settlement-ack"</li><li>"cashout-inform-ack"</li><li>"cashout-placement-ack"</li></ul></td><td>M</td><td>String</td></tr><tr><td><pre><code>  "version": "3.0"
</code></pre></td><td>version</td><td>Indicates the ticket format version</td><td>M</td><td>String</td></tr><tr><td>}</td><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>

### Content object (Acknowledgment reply message) <a href="#mtsacknowledgementreplymessages-v3.0-contentcontentobject-acknowledgementreplymessage" id="mtsacknowledgementreplymessages-v3.0-contentcontentobject-acknowledgementreplymessage"></a>

This object constitutes the reply message itself and includes the following fields:

* type
* cancellationId or cashoutId or settlementId (depends on Acknowledgment reply message type)
* signature
* status
* ticketId
* code
* message

**Please note** that in the case of major ticket errors or internal system errors, the content object has a different structure and contains "type": "error-reply" instead of "type": "\*-ack-reply. For description, see [Error-reply Response](/transaction30api/api-description/ticket-json-format-description/error-reply-response.md).

**Content object table**

<table data-full-width="true"><thead><tr><th width="350.63372802734375">Example</th><th width="169.142333984375">Field Name</th><th>Field Description</th><th width="100">Mandatory/ Optional</th><th width="100">Data Type</th></tr></thead><tbody><tr><td><pre><code>"content": {
</code></pre></td><td><br></td><td><br></td><td><br></td><td>Object</td></tr><tr><td><pre><code>    "type": "ticket-ack-reply",
</code></pre></td><td>type</td><td><p>Declaration of content type, enumerator:</p><ul><li>ticket-ack-reply</li><li>cancel-ack-reply</li><li>cashout-ack-reply</li><li>ext-settlement-ack-reply</li><li>cashout-inform-ack-reply</li><li>cashout-placement-ack-reply</li></ul><p>Type relates to the envelope's "operation" field</p><p>Each of the above types can be replaced with "type": "error-reply" in the case of major ticket errors or internal system errors (see also <a href="/pages/GY3OQHnyZI8vYXBbPRN4">Error-reply Response</a>).</p></td><td>M</td><td>String</td></tr><tr><td><pre data-overflow="wrap"><code>    "cancellationId": "CANC8787414",
</code></pre></td><td>cancellationId or cashoutId or settlementId</td><td>"type": "ticket-ack-reply" → field is omitted,<br>"type": "cancel-ack-reply" → cancellationId,<br>"type": "cashout-ack-reply" → cashoutId,<br>"type": "ext-settlement-ack-reply" → settlementId,<br>"type": "cashout-inform-ack" → cashoutId,<br>"type": "cashout-placement-ack" → cashoutId</td><td><p>M</p><p>except for "type": "ticket-ack-reply"</p></td><td>String</td></tr><tr><td><pre><code>    "signature": "CLflbr+1eMqoks73z
</code></pre><pre><code>rNhwVimGF1Yo8CitmWYH4g5zwI=",
</code></pre></td><td>signature</td><td>String calculated and sent by MTS to be used as a proof that the reply has actually been provided by MTS,<br>minimal string length = 1,<br>maximum string length = 128</td><td>M</td><td>String</td></tr><tr><td><pre><code>    "status": "accepted",
</code></pre></td><td>status</td><td><p>Request outcome, enumerator:</p><ul><li>accepted</li><li>rejected</li></ul></td><td>M</td><td>String</td></tr><tr><td><pre><code>    "ticketId": "Ticket_3690",
</code></pre></td><td>ticketId</td><td>ID of the initial ticket (defined by client)</td><td>M</td><td>String</td></tr><tr><td><pre><code>    "code": 0,    
</code></pre></td><td>code</td><td>Ack. reply code,<br>see list of codes below</td><td>M</td><td>Integer</td></tr><tr><td><pre data-overflow="wrap"><code>    "message": "Transaction processed"
 },
</code></pre></td><td>message</td><td>Readable ticket response validation code, minimal string length = 1,<br>maximum string length = 128</td><td>O</td><td>String</td></tr></tbody></table>

### Acknowledgment reply codes <a href="#mtsacknowledgementreplymessages-v3.0-acknowledgementreplycodes" id="mtsacknowledgementreplymessages-v3.0-acknowledgementreplycodes"></a>

<table><thead><tr><th width="159.40789794921875">Code</th><th>Description</th></tr></thead><tbody><tr><td><pre><code>0
</code></pre></td><td>Transaction processed</td></tr><tr><td><pre><code>-101
</code></pre></td><td>Client (bookmaker) not found</td></tr><tr><td><pre><code>-103
</code></pre></td><td>Ticket not found</td></tr></tbody></table>


---

# Agent Instructions: 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:

```
GET https://docs.sportradar.com/transaction30api/api-description/ticket-json-format-description/acknowledgement-reply-messages.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
