Skip to content

Wallet

Wallet calls

What we send to your wallet and the answers we expect.

POST{WALLET_URL}/bet
POST{WALLET_URL}/win
POST{WALLET_URL}/refund
POST{WALLET_URL}/balance

Signed as described in Signatures, with X-Provider-Id: orrery. Timeout 4.5 s, no redirects followed.

FieldbetwinrefundNotes
transaction_idyesyesyesUUID, the same on every retry of this leg
sessionyesyesyesyour wallet_session, or null
player_id, operator_id, currencyyesyesyesfrom the launch
game_idyesyesyesflip-flap
round_idyesyesyesour round id, a string
amountstake × costthe round's payoutthe bet's amountinteger, minor units, >= 0
modeyesBASE (cost 1x) or MULTIBALL (cost 100x)
round_finalfalsetruetruethe round is closed when this leg is applied
bet_transaction_idyesthe round's bet
refunded_transaction_idyesthe bet being given back

/balance carries session, player_id, operator_id and currency.

Answers we expect#

AnswerWhat happens
200 {"balance", "currency", "transaction_id", "wallet_transaction_id"?}Applied. A retry of an applied transaction_id must answer the same 200 again and change nothing.
4xx {"error": "INSUFFICIENT_FUNDS"}On a bet the player cannot afford: the player sees “insufficient balance”, the round is void, no win leg follows.
4xx {"error": "<CODE>"}Any other refusal; the leg was not applied. Shown to the player: SESSION_EXPIRED, SESSION_NOT_FOUND, PLAYER_BLOCKED, LIMIT_REACHED, COUNTRY_BLOCKED; others show a general error.
timeout, no connection, 5xx, unreadableUnknown: a bet is refunded, a win is retried (see Round lifecycle).

Counts as no answer

A 2xx that carries an error, another currency or another transaction_id.