ticket_inform
Send a ticket-inform (prevalidated) request for customer customer_inform with betValidations[0].code 3 and receive accepted.
Sandbox module name: ticket_inform_prevalidated.
How to build the request (Java SDK)
The SDK envelope operation is "ticket-placement-inform"; the content type is "ticket-inform".
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.BetValidation;
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.TicketInformRequest;
import com.sportradar.mbs.sdk.entities.request.TicketRequest;
import com.sportradar.mbs.sdk.entities.response.TicketInformResponse;
import com.sportradar.mbs.sdk.entities.selection.Selection;
import com.sportradar.mbs.sdk.entities.stake.Stake;
import java.math.BigDecimal;
TicketRequest ticket = TicketRequest.newBuilder()
.setTicketId("tid-inform")
.setContext(TicketContext.newBuilder()
.setLimitId(123L)
.setChannel(Channel.newMobileChannelBuilder()
.setLang("en")
.setIp("127.0.0.1")
.setDeviceId("deviceId123")
.build())
.setEndCustomer(EndCustomer.newBuilder()
.setId("customer_inform")
.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())
.build();
TicketInformRequest request = TicketInformRequest.newBuilder()
.setTicket(ticket)
.setBetValidations(BetValidation.newBuilder()
.setBetId("bet-1")
.setCode(3)
.setRejected(true)
.setMessage("Liability breached, bet rejected.")
.build())
.build();
TicketInformResponse response = mbsSdk.getTicketProtocol().sendTicketInform(request);
// expect: response.getStatus() == AcceptanceStatus.ACCEPTED, getCode() == 0Wire JSON
What the SDK sends:
operatorId
9985
Mandatory
integer
Yes
operation
"ticket-placement-inform"
Mandatory
string
No
content.type
"ticket-inform"
Mandatory
string
No
content.ticket.context.endCustomer.id
"customer_inform"
Mandatory (sandbox)
string
No (routing)
content.ticket.context.channel.type
"mobile"
Mandatory
string
Yes
content.ticket.context.limitId
123
Mandatory
integer
Yes
content.betValidations[0].code
3
Mandatory (sandbox)
integer
No (routing)
content.betValidations[0].betId
"bet-1"
Optional
string
Yes
content.betValidations[0].rejected
true
Optional
boolean
Yes
content.betValidations[0].message
(string)
Optional
string
Yes
Nested ticket selections / stake
as in example
Mandatory
object
Yes (event not in inform facet)
Routing facet: ("ticket-inform", "customer_inform", 3).
Expected response
getStatus()
AcceptanceStatus.ACCEPTED
getCode()
0
getMessage()
"accepted" (sandbox)
getTicketId()
"tid-inform" (echo)
Wire JSON with content type "ticket-inform-reply":
Common mistakes
betValidations[0].code ≠ 3
Fallback -999
EndCustomer not "customer_inform"
Fallback -999
Calling sendTicket instead of sendTicketInform
Placement routing, not ticket-inform
Omitting betValidations
No validation-code facet match → fallback
See also: Error responses in the parent manual.
Was this helpful?