# Acknowledgement 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 (Acknowledgement 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 (Acknowledgement 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 Acknowledgement 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](https://docs.sportradar.com/transaction30api/api-description/ticket-json-format-description/error-reply-response).

**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="error-reply-response">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><tr><td>}</td><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table>

### Acknowledgement 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>
