graph LR
GAMES[Games]:::GAME_STYLE
GAME_PROVIDER[Game Provider]:::GAME_STYLE
BRIDGE{Atlas RGS}:::ATLAS_STYLE
OPERATOR_API[General Operator Wallet API]:::CASINO_STYLE
GAMES -.- GAME_PROVIDER
GAME_PROVIDER -.- BRIDGE
BRIDGE -- Game Provider API --- OPERATOR_API
The General Operator API is an API to connect operators to the Atlas RGS.
The API consists out of two parts.
- Operator Service API
- Operator Wallet API
General Operator Service API
The Operator Service API is implemented in the Atlas RGS and can be used by the Operator.
graph RL
BRIDGE{Atlas RGS}:::ATLAS_STYLE
OPERATOR_API[Operator]:::CASINO_STYLE
OPERATOR_API -- Operator Service API --> BRIDGE
Game Entry
The Operator Service API implements an endpoint that initiates the launch of one of the game provider’s games.
History
The Operator Service API implements an endpoint the serves a web page with the player’s history for a game.
Voucher - Optional
An operator can gift vouchers to a player. Vouchers are tied to a specific game. If a game is played with an active voucher, then for a number of spins, the bet will be paid by the operator, instead of the player.
Using the Operator Service API, vouchers can be added, cancelled, or a list of existing vouchers can be retrieved.
General Operator Wallet API
The Operator Wallet API has to be implemented by the Operator and is used by Atlas RGS.
graph LR
BRIDGE{Atlas RGS}:::ATLAS_STYLE
OPERATOR_API[Operator API]:::CASINO_STYLE
BRIDGE -- General Operator Wallet API --> OPERATOR_API
Wallet
The wallet endpoints allow the Atlas RGS to initiate various actions of a player’s wallet, such as placing a bet, booking a win and requesting a player’s current balance.
Requests which are failing due to network problems or with error types ‘internal’, ‘other’ will be retried. When all retries failed, a rollback mechanism will be started.
2 retries with a waiting period of 500ms will be sent. In case a transaction caused by this request id was already performed, the same response has to be returned.
When all retries failed the Atlas RGS considers the booking request as failed and initiates rollback requests. The rollback request will be retried with an increasing waiting time interval (1s, 5s, 30s, 1m, 5m, 10m, 30m).
Authentification
The authorization is secured by the hmac-sha-256 algorithm. The value is sent base64 encoded as auth property. A static secret is shared between the RGS and operator and is used to salt the “value”.
The “value” to be salted differs by the kind of request. Wallet API requests use the token and the Service API requests use a concatination of playerId, gameId and casinoId.
The resulting auth is sent in the “auth” field of the requests.
Sample
| Variable | Content |
|---|---|
| value | d2be60f7-d8da-4ab3-b527-f0a033ee08ce |
| secret | specialSecret |
| resulting auth | 3/zfPpq8jHHpfQOME8/rvJw8oIFTCk2RCIZRZ/u7m1s= |
Error Types
| Error Type | Description |
|---|---|
| unauthorized | Auth does not match |
| bad_request | Bad request properties |
| round_already_closed | The request game round has already been closed by the operator |
| balance_insufficient | Balance is too low to execute booking request |
| loss_limit | A loss limit was reached |
| voucher_invalid | The provided voucherId was not found or is invalid |
| transaction_not_found | The rollback could not be performed because there was no transaction to this request id found |
| session_invalid | The session of the player became invalid |
| internal | Unhandled internal exception occurred |
| other |