multi_bet
Goal: Place a ticket with two bets as customer_multi_bet (only this customer allows multi-bet) and receive accepted with two betDetails.
How to build the request (Java SDK)
Other customers with multiple bets hit schema validation (RESP_ERROR_REPLY), not the -999 fallback.
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.selection.UfSelection;
import com.sportradar.mbs.sdk.entities.stake.Stake;
import java.math.BigDecimal;
TicketRequest request = TicketRequest.newBuilder()
.setTicketId("tid-multi")
.setContext(TicketContext.newBuilder()
.setLimitId(123L)
.setChannel(Channel.newMobileChannelBuilder()
.setLang("en")
.setIp("127.0.0.1")
.setDeviceId("deviceId123")
.build())
.setEndCustomer(EndCustomer.newBuilder().setId("customer_multi_bet").build())
.build())
.setBets(
Bet.newBuilder()
.setBetId("bet-1")
.setSelections(Selection.newUfSelectionBuilder()
.setProductId("3").setEventId("sr:match:15050881")
.setMarketId("m1").setOutcomeId("o1")
.setOdds(Odds.newDecimalOddsBuilder().setValue(new BigDecimal("2.0")).build())
.build())
.setStake(Stake.newCashStakeBuilder().setAmount(new BigDecimal("10")).setCurrency("EUR").build())
.build(),
Bet.newBuilder()
.setBetId("bet-2")
.setSelections(Selection.newUfSelectionBuilder()
.setProductId("3").setEventId("sr:match:22222222")
.setMarketId("m1").setOutcomeId("o1")
.setOdds(Odds.newDecimalOddsBuilder().setValue(new BigDecimal("2.0")).build())
.build())
.setStake(Stake.newCashStakeBuilder().setAmount(new BigDecimal("5")).setCurrency("EUR").build())
.build())
.build();
TicketResponse response = mbsSdk.getTicketProtocol().sendTicket(request);
// ACCEPTED; getBetDetails() length 2Wire 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.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_multi_bet"
Mandatory (sandbox)
string
No (routing)
content.bets
(2 bets)
Mandatory
array of object
No
content.bets[].selections[].type
"uf"
Mandatory
string
No (routing)
content.bets[0].selections[].eventId
"sr:match:15050881"
Mandatory
string
No (routing)
content.bets[].stake[].type
"cash"
Mandatory
string
No (routing)
Expected response
getStatus()
AcceptanceStatus.ACCEPTED
getCode()
0
getMessage()
"accepted" (sandbox)
getBetDetails()
Two entries (bet-1, bet-2)
Common mistakes
Multi-bet with a non-customer_multi_bet id
Schema validation error (not -999 fallback)
Only one bet
Still may accept but does not exercise multi-bet reply shape
See also: Error responses in the parent manual.
Was this helpful?