Cash-out Responses
Client
←
MTS
Cash-out response types
Cash-out Inform Reply (operation "cashout-inform", content type "cashout-inform-reply") is the response to the Cash-out Inform request.
Cash-out Build Reply (operation "cashout-build", content type "cashout-build-reply") is the response to the Cash-out Build request.
Cash-out Placement Reply (operation "cashout-placement", content type "cashout-placement-reply") is the response to the Cash-out Placement request.
Auto Cash-out Reply (operation "auto-cashout", content type "auto-cashout-reply") is the response to the Auto Cash-out request.
Auto Cash-out Cancel Reply (operation "auto-cashout-cancel", content type "auto-cashout-cancel-reply") is the response to the Auto Cash-out Cancel request.
Cash-out Build Subscription Reply (operation "cashout-build-subscription", content type "cashout-build-subscription-reply") is the response to the Cash-out Build Subscription request.
The "ticket-cashout" operation and "cashout-reply" content type will be deprecated, but are currently still used to maintain compatibility. They will be returned if the "ticket-cashout" operation and "cashout" content type were sent as a request.
For an overview of requests and responses, please see Cash-out Requests.
Envelope and Content table:
The envelope provides the content's (Cash-out response) context and contains the following fields (besides Content):
correlationId
timestampUtc
operation
version
content
See Content object description below
M
Object
correlationId
Client defined string to facilitate the request-response pairing, Sportradar is obliged to return the same string in every response
M
String
timestampUtc
Timestamp of ticket placement as submitted by the client (Unix time in milliseconds format), minimal: 1, maximum: 9223372036854776000
M
Integer
operation
Declaration of ticket content type, should be "cashout-inform" in case of Cash-out Inform Reply or "cashout-build" or "cashout-placement" or "auto-cashout" or "auto-cashout-cancel" or "cashout-build-subscription"
M
String
version
Indicates the ticket format version
M
String
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". For description, see Error-reply Response.
1. cashout-inform-reply Content object
The Content object includes the following fields:
type
cashoutId
signature
status
ticketId
code
message
Content object table:
Object
type
Declaration of content type, should be "cashout-inform-reply"
or "error-reply" in the case of major ticket errors or internal system errors (see also Error-reply Response).
M
String
cashoutId
ID from the corresponding request, minimal string length = 1, maximum string length = 128
O
String
signature
String calculated and sent by MTS to be used as a proof that the response has actually been provided by MTS, minimal string length = 1, maximum string length = 128
M
String
status
Request outcome, enumerator:
accepted
rejected
M
String
ticketId
ID of the initial ticket (defined by client) which is to be affected with this cash-out
M
String
code
Cash-out response code, see list of codes below
M
Integer
message
Readable ticket response validation code, minimal string length = 1, maximum string length = 128
O
String
2. cashout-build-reply Content object
The Content object includes the following fields:
type
cashoutId
signature
status
ticketId
code
message
ltd
cashout
endCustomerSuggestions
channelSuggestions
betDetails
exchangeRate
cashoutChanges
Content object table:
Object
type
Declaration of content type, should be "cashout-build-reply"
or "error-reply" in the case of major ticket errors or internal system errors (see also Error-reply Response).
M
String
cashoutId
ID from the corresponding request, minimal string length = 1, maximum string length = 128
O
String
signature
String calculated and sent by MTS to be used as a proof that the response has actually been provided by MTS, minimal string length = 1, maximum string length = 128
M
String
status
Request outcome, enumerator:
accepted
rejected
O
ticketId
ID of the initial ticket (defined by client) which is to be affected with this cash-out
M
String
code
Cash-out response code, see list of codes below
M
Integer
message
Readable ticket response validation code, minimal string length = 1, maximum string length = 128
O
String
ltd
Live time delay suggestion
O
Object
modelSuggestedLtd
Action suggested by the AI LTD model, enum:
Delay (currently the only option implemented)
Skip
None
O
String
configuredLtd
Configured LTD calculated from event coverage or explicit LTD setting, all data is configured in the MTS Console, min: 0, max: 15
O
Integer
suggestedLtd
Suggested LTD calculated from event data latency AI model, min: 0, max: 15
O
Integer
accountLbsLtdOffset
LTD offset derived from account (punter) Late Bet Score, min: 0, max: 15
O
Integer
liveSelectionLtdOffset
LTD offset derived from the number of live selections, configured in MTS Console (default: -2 seconds in the case of 3 or more live selections),
must be less than zero or zero
O
Integer
appliedLtd
MTS recommended LTD, calculated from: max of configured and suggested + account offset + live selection offset, min: 0, max: 15
O
Integer
cashout
Cashout suggestions
O
Object
cashoutType
Enum:
ticket
bet
O
String
cashoutId
Unique cash-out ID from the client's system, min length 1, max length 128
O
String
maxPayout
Current maximum potential ticket win (cashout cannot be greater that this),
Array of Payout With Source objects, min. number =1, max. number = 5
O
Array
fairCashout
Fair cashout calculation: Fair Cashout Value = Σ [Combination Stake × Combination Odds × Combination Probability]. Array of Payout With Source objects, min. number =1, max. number = 5
O
Array
cashout
Calculation: Fair Cashout is used as the foundation and adjusted using additional margin factors and compensation factors (configurable in the Insight Tech UI). Array of Payout With Source objects, min. number =1, max. number = 5
O
Array
endCustomerSuggestions
O
Object
endCustomer
Data about client's end-customer (bettor)
M
Object
id
End customer's unique ID (in client's system). The same as included in the original ticket.
M
String
confidence
End customer's suggested CCF, Java regex: ^\d{1,8}(.\d{1,8})?$
O
String
appliedConfidence
Calculated end-customer (punter) CCF
O
String
suggestedConfidence
AI model suggested end-customer (punter) CCF
O
String
suggestedLateBetScore
AI model suggested end-customer (punter) LBS
O
String
suggestedMarkerScore
AI model suggested end-customer (punter) Marker Score
O
String
suggestedBotScore
AI model suggested end-customer (punter) Bot Score
O
String
betDetails
O
Array
betId
Unique bet id (in the client's system), minimal string length = 1, maximum length = 128
O
String
payout
Sum of previous payouts on the bet, min no. of array items = 1, max no. = 5 For object description, see Payout With Source object
O
Array
settledPercentage
Percentage of currently settled stake, Java regex: ^0(.\d{1,8})?$
O
String
cashoutChanges
Reflects accepted changes when the actual cashout differs from what was requested.
O
Object
payout
See the payout object description in the Details ("type": "ticket") table, min. number =1, max. number = 5
O
Array
Payout With Source object
The Payout With Source object contains the following fields:
type
amount
currency
source
traceId
stakeOrigin
Payout With Source object table :
{
type
Enum:
cash
withheld
M
String
amount
String pattern: 1 up to 8 digits, optionally followed by a decimal point and 1 up to 8 digits, Java regex: ^\\d{1,8}(\\.\\d{1,8})?$
M
String
currency
2 to 4 letter currency code, BTC and mBTC are also supported (4 letters only apply to mBTC). For more details please check https://www.iso.org/iso-4217-currency-codes.html
M
String
source
Enum:
cash
bonus
odds-boost
cancel
cashout
ext-settlement
manual-cancel
manual-cashout
M
String
traceId
A string to help identify the source of operation/action/state
Minimal string length = 1, maximum length = 128
O
String
stakeOrigin
Enum:
cash
bonus
free
free-cash
free-rollover
O
String
Build Reply Selection Detail object
The Build Reply Selection Detail object contains the following fields:
selection
appliedEventRating
suggestedEventRating
configuredLtd
suggestedLtd
appliedMarketFactor
currentProbability
currentResult
Build Reply Selection Detail object table :
selection
A selection that was included in the Ticket Placement Request is returned here, however included can be only selections of "type":"uf" or "type":"external" or "type":"uf-custom-bet"
M
Object
appliedEventRating
Applied event rating for the selection
O
Integer
suggestedEventRating
Suggested event rating for the selection
O
Integer
configuredLtd
Configured LTD calculated from event coverage or explicit LTD setting, min. = 0, max. = 15
O
Integer
suggestedLtd
Suggested LTD calculated from event data latency mode, min. = 0, max. = 15
O
Integer
appliedMarketFactor
Applied market factor for the selection, Java regex: ^0(\\.\\d{1,8})?|1(\\.0{1,8})?$
O
String
currentProbability
Current probabilities for the selection
O
Object
type
Enum:
win
push
M
String
win
Java regex: ^0(\\.\\d{1,8})?|1(\\.0{1,8})?$
M
String
halfWin
Not present if "type": "win", Java regex: ^0(\\.\\d{1,8})?|1(\\.0{1,8})?$
M Only if "type": "push"
String
halfWin
Not present if "type": "win", Java regex: ^0(\\.\\d{1,8})?|1(\\.0{1,8})?$
M Only if "type": "push"
String
halfLose
Not present if "type": "win", Java regex: ^0(\\.\\d{1,8})?|1(\\.0{1,8})?$
M Only if "type": "push"
String
currentResult
Current result for the selection
O
Object
type
Enum:
unsettled
win
lost
void
cashout
cancel
M
String
voidFactor
Only present if "type": "win" or "type": "lost", Void factor for the selection result, Java regex: ^0(\\.\\d{1,8})?|1(\\.0{1,8})?$
O
String
deadHeatFactor
Only present if "type": "win", Dead-heat factor for the selection result, Java regex: ^0(\\.\\d{1,8})?|1(\\.0{1,8})?$
O
String
3. cashout-placement-reply Content object
The Content object includes the following fields:
type
cashoutId
signature
status
ticketId
code
message
cashoutChanges
Content object table:
type
SDeclaration of content type, should be "cashout-placement-reply"
or "error-reply" in the case of major ticket errors or internal system errors (see also Error-reply Response)
M
String
cashoutId
ID from the corresponding request, minimal string length = 1, maximum string length = 128
O
String
signature
String calculated and sent by MTS to be used as a proof that the response has actually been provided by MTS, minimal string length = 1, maximum string length = 128
M
String
status
Request outcome, enum:
accepted
rejected
M
String
ticketId
ID of the initial ticket (defined by client) which is to be affected with this cash-out
M
String
code
Cash-out response code, see list of codes below
M
Integer
message
Readable ticket response validation code, minimal string length = 1, maximum string length = 128
O
String
cashoutChanges
Reflects accepted changes when the actual cashout differs from what was requested.
O
Object
payout
See the payout array description in the Details ("type": "ticket") table; min. number =1, max. number = 5
O
Array
4. auto-cashout-reply, auto-cashout-cancel-reply Content objects
The Content object includes the following fields:
type
autoCashoutId (or cancellationId in the case of auto-cashout-cancel-reply)
signature
status
ticketId
code
message
Content object table:
type
Declaration of content type, should be "auto-cashout-reply" or "auto-cashout-cancel-reply"
or "error-reply" in the case of major ticket errors or internal system errors (see also Error-reply Response)
M
String
autoCashoutId (or cancellationId in case of "auto-cashout-cancel-reply))
ID from the corresponding request, minimal string length = 1, maximum string length = 128
O
String
signature
String calculated and sent by MTS to be used as a proof that the response has actually been provided by MTS, minimal string length = 1, maximum string length = 128
M
String
status
Request outcome, enum:
accepted
rejected
M
String
ticketId
ID of the initial ticket (defined by client) which is to be affected with this cash-out
M
String
code
Cash-out response code, see list of codes below
M
Integer
message
Readable ticket response validation code, minimal string length = 1, maximum string length = 128
O
String
5. cashout-build-subscription-reply Content object
The Cash-out Build Subscription Reply responds to a Cash-out Build Subscription request. It includes the same fields as the standard Cash-out Build Reply. It also returns the current cash-out value for the subscribed ticket or bet. If that value changes, MTS sends subsequent suggestions over a separate Transaction Stream WebSocket connection. Each update uses the cashout-build-reply format. The subscription stays active for up to 5 minutes. To establish the Transaction Stream WebSocket connection, see Connectivity.
The Content object includes the following fields:
type
cashoutId
signature
status
ticketId
code
message
ltd
cashout
endCustomerSuggestions
channelSuggestions
betDetails
exchangeRate
Content object table:
Object
type
Declaration of content type, should be "cashout-build-subscription-reply"
or "error-reply" in the case of major ticket errors or internal system errors (see also Error-reply Response).
M
String
cashoutId
ID from the corresponding request, minimal string length = 1, maximum string length = 128
O
String
signature
String calculated and sent by MTS to be used as a proof that the response has actually been provided by MTS, minimal string length = 1, maximum string length = 128
M
String
status
Request outcome, enumerator:
accepted
rejected
O
String
ticketId
ID of the initial ticket (defined by client) which is to be affected with this cash-out
M
String
code
Cash-out response code, see list of codes below
M
Integer
message
Readable ticket response validation code, minimal string length = 1, maximum string length = 128
O
String
channelSuggestions
Channel suggestions
O
Object
Interpreting build and placement responses
A cashout-build-reply describes the current state of the ticket at the time the build was processed. It is not a reservation, guarantee, or quote with a mandatory expiry period.
The values can change between build and placement because of:
market probability changes;
settlement of selections;
market suspension or closure;
event-state changes;
live time-delay processing;
changes to the ticket's eligibility.
The client must therefore treat the build response as informational until a cashout-placement-reply with an accepted status has been received.
A placement request is validated using the current state at placement time. There are no general placement tolerances for an outdated build value. If the requested value is no longer valid, or the ticket is no longer eligible, placement may be rejected.
If the placement context enables automatic acceptance of a changed cash-out value, the response may contain the actual accepted payout in cashoutChanges. The client must use the accepted value from the placement response when updating the bettor's balance.
After a placement request has been sent, the client should stop unnecessary build requests and prevent duplicate user actions for the same target until the placement response has been processed.
Identifier handling
The following identifiers have different purposes:
ticketId: the client-defined identity of the original ticket;ticketSignature: the signature returned by MTS with the original ticket-placement response and used to identify the ticket in later cash-out requests;cashoutId: a client-facing identifier for a cash-out request;correlationId: a client-facing identifier used to pair a request and response;signature: an MTS-generated proof attached to a response.
The cashoutId and correlationId should be unique. They are intended for client-side tracking, response correlation, and troubleshooting. They are not the primary internal identifiers used by MTS for transaction processing and persistence.
The signature returned in a cashout-build-reply is not currently required in a later cashout-placement request.
Placement response and local payout
For a managed cash-out, the client must wait for the cashout-placement-reply before paying the bettor locally.
status = accepted: the managed cash-out was accepted. The client can finalise the local payout using the accepted payout represented by the response.status = rejected: the client must not pay the bettor based on the preceding build response. If the ticket remains eligible, the client may request a new build and present an updated offer.a major ticket or internal processing failure may be returned as
type = error-reply; clients should apply the general error-handling rules for that response type.
A successful placement updates the cash-out state and liabilities. It does not require a subsequent cashout-inform request.
Cash-out response codes
For general validation codes, please refer to Validation codes.
Transaction processed
Client (bookmaker) not found
Cash-out disabled for particular client (bookmaker) or Limit ID
Ticket not found
Ticket rejected
Ticket version lower than 3.0
Requested cash-out is lower than the minimum allowed amount
Requested cash-out exceeds the maximum allowed amount
Bet ID not found
Ticket has been already manually settled
Cash-out factor is outside the allowed range of 0-100%
Cash-out factor is lower than existing (when the cash-out factor is lower than the previous one)
Conflicting previous cash-out (bet/ticket level)
Auto cash-out request contains threshold configuration that is currently not supported.
Auto cash-out request contains unsupported payout configuration.
Auto cash-out value exceeds the maximum allowed payout.
Auto cash-out request already fulfilled: current cash-out value meets or exceeds the requested threshold.
Requested cash-out amount differs from the current cash-out value.
Requested cash-out amount exceeds the current cash-out value.
Operator (Limit ID) not authorised to use the cash-out validation feature (cashout-placement)
Operator (Limit ID) not authorised to use the cash-out API feature
Cash-out settings not found for Limit ID
Cash-out currency was not found in the transaction
Cash-out calculation failed due to internal or upstream error
Fair odds are lower than the accepted odds. Cash-out is not permitted when expected profit/loss is negative at ticket placement time.
Selection contains unsupported product ID
Selection has unsupported event status
Probabilities not found for selection
Ticket external selections are not allowed
Market suspended (offer status inactive, no PAPI fallback)
Invalid selection status (PAPI cashout_status)
Custom Bet probabilities not received
Tournament is not active in the admin console.
Event is not active in the admin console.
Market is not active in the admin console.
Internal system error
Last updated
Was this helpful?