> For the complete documentation index, see [llms.txt](https://docs.sportradar.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sportradar.com/transaction30api/api-description/ticket-json-format-description/pre-validated-ticket-placement-request.md).

# Pre-validated Ticket Placement Request

<table><thead><tr><th width="115.0677490234375" align="center">Source</th><th width="55.919189453125" align="center"></th><th width="114.782958984375" align="center">Destination</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>

This type of ticket placement contains bets that do not require any validation on Sportradar's side. The bets have been validated on the client's side, and information about this is passed over in the Bet Validation object (see below).

To respond to it, Insight Tech / MTS sends a Pre-validated ticket placement response containing "operation": "ticket-placement-inform" and the content including "type": "ticket-inform-reply". The "status" can be either "accepted" or "rejected" according to the status reported by the client in the betValidations' code field.

With this type of request, only the validation process on Sportradar's side is skipped. The ticket still requires a proper settlement.

**Envelope and Content table:**

The envelope provides the Content's (Pre-validated ticket placement request) context and contains the following fields (besides Content):

* operatorId
* correlationId
* timestampUtc
* operation
* version

<table data-full-width="true"><thead><tr><th width="351">Example</th><th width="161.6900634765625">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>  "operatorId": 9985,
</code></pre></td><td>operatorId</td><td>ID to uniquely identify the client from which the ticket originated,<br>ID is provided to the client by Sportradar,<br>The client is obliged to include it in every ticket</td><td>M</td><td>Integer</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": "62ka01mxre",
</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": 1689752903000,
</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-inform",
</code></pre></td><td>operation</td><td>Declaration of ticket content type, should be "ticket-placement-inform" in the case of a Pre-validated ticket placement request</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 (Pre-validated ticket placement request) <a href="#mtsprevalidatedticketplacementrequest-v3.0-contentcontentobject-pre-validatedticketplacementrequest" id="mtsprevalidatedticketplacementrequest-v3.0-contentcontentobject-pre-validatedticketplacementrequest"></a>

This object constitutes the ticket itself and includes the following fields:

* type
* ticket
* betValidations

**Content object table:**

<table data-full-width="true"><thead><tr><th width="351">Example</th><th width="141.6771240234375">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-inform",
</code></pre></td><td>type</td><td>Declaration of content type, should be "ticket-inform" in the case of a Pre-validated ticket placement request</td><td>M</td><td>String</td></tr><tr><td><pre><code>   "ticket": {
</code></pre></td><td>ticket</td><td><p>This field corresponds to the content object of the original ticket placement request,</p><p>for syntax, see the content object description (of the <a href="/pages/iBGo6Jm1mEi546boFmKx#mtsticketplacementrequest-v3.0-contentcontentobject-ticketplacementrequest">Ticket placement request</a>)</p></td><td>M</td><td>Object</td></tr><tr><td><pre><code>      "type: "ticket",
</code></pre></td><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><pre><code>      "ticketId: "Ticket_10150",
          ..............
          ..............
     },     
</code></pre></td><td><br></td><td><br></td><td></td><td><br></td></tr><tr><td><pre><code>   "betValidations": [
</code></pre></td><td>betValidations</td><td>Bet validation information as provided by the client,<br>minimal number of bets per content (ticket) = 1,<br>maximum number = 50</td><td>M</td><td>Array</td></tr><tr><td><pre data-overflow="wrap"><code>     { "betId": "Ticket_10150_bet0",
</code></pre></td><td><ul><li>betId</li></ul></td><td>Unique bet id (in the client's system),<br>minimal string length = 1,<br>maximum length = 128</td><td>O</td><td>String</td></tr><tr><td><pre><code>       "code": 1100,
</code></pre></td><td><ul><li>code</li></ul></td><td>Bet validation information as provided by the client,<br>minimum = 0,<br>maximum = 10000</td><td>M</td><td>Integer</td></tr><tr><td><pre data-overflow="wrap"><code>       "message": "Prevalidated, OK",
</code></pre></td><td><ul><li>message</li></ul></td><td>Readable bet validation code as provided by the client,<br>minimal string length = 1,<br>maximum string length = 128</td><td>O</td><td>String</td></tr><tr><td><pre><code>       "rejected": false
       }
     ]
}       
</code></pre></td><td><ul><li>rejected</li></ul></td><td>Clients' indication if the bet has been rejected on the client side<br>(missing field means not rejected)</td><td>O</td><td>Boolean</td></tr></tbody></table>


---

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

```
GET https://docs.sportradar.com/transaction30api/api-description/ticket-json-format-description/pre-validated-ticket-placement-request.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.
