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

cashout_full_rejected

Goal: Send a full ticket cashout-inform and receive a rejected reply with code -204.

Sandbox module name: cashout_full_rejected.

How to build the request (Java SDK)

1

Build the cashout request

Use the same shape as cashout_full_accepted: CashoutInformRequest wrapping CashoutRequest with newTicketCashoutDetailsBuilder().

2

Set the rejection route

Route with either:

  • Magic ticketId: "mock_cashout_rejected", or

  • meta.punter.id = "customer_cashout_rejected".

3

Send the request

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

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-rej")
        .setDetails(CashoutDetails.newTicketCashoutDetailsBuilder()
            .setTicketId("mock_cashout_rejected")
            .setTicketSignature("sandbox-signature")
            .setPayout(Payout.newCashPayoutBuilder()
                .setAmount(new BigDecimal("999999"))
                .setCurrency("EUR")
                .build())
            .build())
        .build())
    .build();

CashoutInformResponse response = mbsSdk.getTicketProtocol().sendCashoutInform(request);
// expect: REJECTED, getCode() == -204

Payout amount is not used for routing; any cash payout satisfies the schema.

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.cashoutId

"co-rej"

Mandatory

string

No (echoed in reply)

content.cashout.details.type

"ticket"

Mandatory

string

No (routing: full)

content.cashout.details.ticketId

"mock_cashout_rejected"

Mandatory (sandbox)

string

No (routing; echoed)

content.cashout.details.ticketSignature

"sandbox-signature"

Mandatory

string

Yes

content.cashout.details.payout

(cash payout)

Mandatory

array of object

Yes

Magic map: mock_cashout_rejectedcustomer_cashout_rejected.

Expected response

Java getter
Expected value

getStatus()

AcceptanceStatus.REJECTED

getCode()

-204

getMessage()

"Cash-out amount is too high"

getCashoutId()

"co-rej" (echo)

getTicketId()

"mock_cashout_rejected" (echo)

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

Handle with if on CashoutInformResponse (not try/catch).

Common mistakes

Mistake
Result

Using mock_cashout_full

Hits cashout_full_accepted

Expecting amount-driven reject

Sandbox rejects by route (customer_cashout_rejected), not by comparing payout

Wrong magic id / punter

Fallback -999

See also: Error responses in the parent manual.

Was this helpful?