For the complete documentation index, see llms.txt. This page is also available as Markdown.

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)

1

Build a nested TicketRequest

Build it like a normal placement ticket with:

  • limitId

  • Mobile Channel

  • EndCustomer ID customer_inform

  • One UF bet on sr:match:15050881

2

Build the TicketInformRequest

Set the ticket with .setTicket(...).

3

Set the bet validation

Set .setBetValidations(BetValidation.newBuilder().setCode(3)...).

4

Send the request

Send with mbsSdk.getTicketProtocol().sendTicketInform(request).

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() == 0

Wire JSON

What the SDK sends:

Field name
Value
Mandatory / Optional
Data type
Ignored by sandbox

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

Java getter
Expected value

getStatus()

AcceptanceStatus.ACCEPTED

getCode()

0

getMessage()

"accepted" (sandbox)

getTicketId()

"tid-inform" (echo)

Wire JSON with content type "ticket-inform-reply":

Common mistakes

Mistake
Result

betValidations[0].code3

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?