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

cashout_full_accepted

Goal: Send a full ticket cashout-inform and receive an accepted reply.

Sandbox module name: cashout_full_accepted. Prefer sendCashoutInform (goldens use cashout-inform); sendCashout routes to the same scenarios.

How to build the request (Java SDK)

1

Build the inner CashoutRequest

Build an inner CashoutRequest with a unique cashoutId.

2

Set ticket cashout details

Set details with CashoutDetails.newTicketCashoutDetailsBuilder() (JSON type "ticket").

3

Select the routing method

Route with either:

  • Magic ticketId: "mock_cashout_full", or

  • meta.punter.id: "customer_cashout_accepted" with any normal ticketId.

4

Attach a cash payout

Attach a cash payout (Payout.newCashPayoutBuilder()) — amount is not used for routing.

5

Wrap the request

Wrap in CashoutInformRequest.newBuilder().setCashout(...).

6

Send the request

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

No mobile / ticket context on cashout-inform content.

Java example

import com.sportradar.mbs.sdk.entities.cashout.CashoutDetails;
import com.sportradar.mbs.sdk.entities.common.AcceptanceStatus;
import com.sportradar.mbs.sdk.entities.payout.Payout;
import com.sportradar.mbs.sdk.entities.request.CashoutInformRequest;
import com.sportradar.mbs.sdk.entities.request.CashoutRequest;
import com.sportradar.mbs.sdk.entities.response.CashoutInformResponse;
import java.math.BigDecimal;

CashoutInformRequest request = CashoutInformRequest.newBuilder()
    .setCashout(CashoutRequest.newBuilder()
        .setCashoutId("co-1")
        .setDetails(CashoutDetails.newTicketCashoutDetailsBuilder()
            .setTicketId("mock_cashout_full")
            .setTicketSignature("sandbox-signature")
            .setPayout(Payout.newCashPayoutBuilder()
                .setAmount(new BigDecimal("10"))
                .setCurrency("EUR")
                .build())
            .build())
        .build())
    .build();

CashoutInformResponse response = mbsSdk.getTicketProtocol().sendCashoutInform(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

correlationId

"corr-1"

Mandatory

string

No (echoed in reply)

timestampUtc

1710000000000

Mandatory

integer

Yes

operation

"cashout-inform"

Mandatory

string

No

version

"3.0"

Mandatory

string

No (echoed in reply)

content.type

"cashout-inform"

Mandatory

string

No

content.cashout.type

"cashout"

Mandatory

string

No

content.cashout.cashoutId

"co-1"

Mandatory

string

No (echoed in reply)

content.cashout.details.type

"ticket"

Mandatory

string

No (routing: full)

content.cashout.details.ticketId

"mock_cashout_full"

Mandatory (sandbox)

string

No (routing; echoed)

content.cashout.details.ticketSignature

"sandbox-signature"

Mandatory

string

Yes

content.cashout.details.payout[].type

"cash"

Mandatory

string

Yes

content.cashout.details.payout[].amount

"10"

Mandatory

string

Yes

content.cashout.details.payout[].currency

"EUR"

Mandatory

string

Yes

Magic map: mock_cashout_fullcustomer_cashout_accepted.

Expected response

Java getter
Expected value

getStatus()

AcceptanceStatus.ACCEPTED

getCode()

0

getMessage()

"accepted" (sandbox)

getCashoutId()

"co-1" (echo)

getTicketId()

"mock_cashout_full" (echo)

Wire JSON (content type "cashout-inform-reply"):

Common mistakes

Mistake
Result

Using mock_cashout_rejected

Hits cashout_full_rejected

Partial details builder

Routes to cashout_partial steps

Wrong magic id / punter

Fallback -999

See also: Error responses in the parent manual.

Was this helpful?