POST endpoint that handles all operation types, identified by the type field in the request body.
Endpoint contract
| Property | Value |
|---|---|
| URL | Provided by you (e.g. https://api.yoursite.com/wallet-callback). |
| HTTP method | Always POST. |
| Authentication | Authorization: Bearer <your_wallet_key> (agreed during setup). |
| Request body | JSON, with type indicating the operation. |
| Successful response | HTTP 200 OK with the updated balance: { "balance": 100.50 }. |
Supported operation types
type | Description | Reference |
|---|---|---|
BALANCE | Read the current balance for a player. | Balance Read |
BET | Deduct the bet amount from the player’s balance. | Transactions |
WIN | Credit the win amount to the player’s balance. | Transactions |
VOID | Refund a previously placed bet (round cancelled). | Transactions |
Common request fields
Every call from PlayStarters to your endpoint includes the following fields:Your unique identifier for the player (the same value you passed as
playerId to POST /operator/launch).Operation type. One of
BALANCE, BET, WIN, VOID.Transaction amount in the player’s currency.
0 for BALANCE operations.ISO 4217 currency code (e.g.
EUR).Unique identifier for this request. Use it for idempotency.
UUID of the game the transaction belongs to. Empty string for
BALANCE.Present only on
WIN and VOID. Correlates the transaction with the original BET’s request_id.Successful response
Always return HTTP200 OK with the player’s updated balance:
Error response
The only error response PlayStarters expects is insufficient funds on aBET. See Transactions for the exact format.
