odds_format_rejected
Goal: Place a single UF ticket with non-decimal odds as customer_rejected_odds and receive rejected -421 (Odds value is too high).
Same odds formats as odds_format_accepted except malay (no reject route for malay).
Wire odds.type
Routing facet
fractional
fractional
moneyline
american
hong-kong
hong_kong
indonesian
indonesian
How to build the request (Java SDK)
Java example
import com.sportradar.mbs.sdk.entities.channel.Channel;
import com.sportradar.mbs.sdk.entities.common.AcceptanceStatus;
import com.sportradar.mbs.sdk.entities.common.Bet;
import com.sportradar.mbs.sdk.entities.common.EndCustomer;
import com.sportradar.mbs.sdk.entities.common.TicketContext;
import com.sportradar.mbs.sdk.entities.odds.Odds;
import com.sportradar.mbs.sdk.entities.request.TicketRequest;
import com.sportradar.mbs.sdk.entities.response.TicketResponse;
import com.sportradar.mbs.sdk.entities.selection.Selection;
import com.sportradar.mbs.sdk.entities.stake.Stake;
import java.math.BigDecimal;
import java.math.BigInteger;
TicketRequest request = TicketRequest.newBuilder()
.setTicketId("tid-frac-rej")
.setContext(TicketContext.newBuilder()
.setLimitId(123L)
.setChannel(Channel.newMobileChannelBuilder()
.setLang("en")
.setIp("127.0.0.1")
.setDeviceId("deviceId123")
.build())
.setEndCustomer(EndCustomer.newBuilder()
.setId("customer_rejected_odds")
.build())
.build())
.setBets(Bet.newBuilder()
.setBetId("bet-1")
.setSelections(Selection.newUfSelectionBuilder()
.setProductId("3")
.setEventId("sr:match:15050881")
.setMarketId("m1")
.setOutcomeId("o1")
.setOdds(Odds.newFractionalOddsBuilder()
.setNumerator(BigInteger.valueOf(3))
.setDenominator(BigInteger.valueOf(1))
.build())
.build())
.setStake(Stake.newCashStakeBuilder()
.setAmount(new BigDecimal("10"))
.setCurrency("EUR")
.build())
.build())
.build();
TicketResponse response = mbsSdk.getTicketProtocol().sendTicket(request);
// expect: AcceptanceStatus.REJECTED, getCode() == -421Wire JSON (what the SDK sends)
operatorId
9985
Mandatory
integer
Yes
correlationId
"corr-1"
Mandatory
string
No (echoed in reply)
timestampUtc
1710000000000
Mandatory
integer
Yes
operation
"ticket-placement"
Mandatory
string
No
version
"3.0"
Mandatory
string
No (echoed in reply)
content
(object)
Mandatory
object
No
content.type
"ticket"
Mandatory
string
No
content.ticketId
"tid-frac-rej"
Mandatory
string
No (echoed in reply)
content.context
(object)
Mandatory
object
No
content.context.limitId
123
Mandatory
integer
Yes
content.context.channel
(object)
Mandatory
object
Yes
content.context.channel.type
"mobile"
Mandatory
string
Yes
content.context.channel.lang
"en"
Mandatory
string
Yes
content.context.channel.ip
"127.0.0.1"
Optional
string
Yes
content.context.channel.deviceId
"deviceId123"
Optional
string
Yes
content.context.endCustomer
(object)
Mandatory (sandbox)
object
No
content.context.endCustomer.id
"customer_rejected_odds"
Mandatory (sandbox)
string
No (routing)
content.bets
(1 bet)
Mandatory
array of object
No
content.bets[].betId
"bet-1"
Optional
string
No (echoed in reply)
content.bets[].selections
(1 selection)
Mandatory
array of object
No
content.bets[].selections[].type
"uf"
Mandatory
string
No (routing)
content.bets[].selections[].eventId
"sr:match:15050881"
Mandatory
string
No (routing)
content.bets[].selections[].marketId
"m1"
Mandatory
string
No (routing)
content.bets[].selections[].outcomeId
"o1"
Mandatory
string
No (routing)
content.bets[].selections[].productId
"3"
Mandatory
string
No (routing)
content.bets[].selections[].odds.type
"fractional" (or moneyline / hong-kong / indonesian)
Mandatory
string
No (routing)
content.bets[].stake
(1 stake)
Mandatory
array of object
No
content.bets[].stake[].type
"cash"
Mandatory
string
No (routing)
content.bets[].stake[].amount
"10"
Mandatory
string
Yes
content.bets[].stake[].currency
"EUR"
Mandatory
string
Yes
Expected response
getStatus()
AcceptanceStatus.REJECTED
getCode()
-421
getMessage()
"Odds value is too high"
getTicketId()
"tid-frac-rej" (echo)
Common mistakes
EndCustomer still "customer"
Accepted odds-format path instead of reject
Decimal odds
Does not match odds_format_rejected rows
Malay odds
No reject route — fallback
See also: Error responses in the parent manual.
Was this helpful?