Standard Wallet Integration
What is the Standard Wallet?
The Standard Wallet is a REST API definition (designed by ThrillTech) which an operator needs to implement support for. The ThrillGate service uses the Standard Wallet API (as a client) to communicate with the operator's wallet to perform the following actions:
- Player token authentication
- Debit / Credit transactions (single)
- Credit transaction batches
- Transaction cancellation
Standard Wallet Sequence flows
Below is a sequence diagram of the expected data flow between ThrillGate and the operator wallet API:

Configuring a Standard Wallet Integration in ThrillGate
To configure the ThrillGate Service to connect to your Standard Wallet API compliant service, you need to configure a Wallet resource.
To configure a wallet:
- URL:
POST http://localhost:8100/admin/wallets - Headers:
Authorization: Thrill ID Bearer token
- Body:
{
"id": "Brand1Wallet",
"operator_id": "thrilltech",
"brand_id": "brand1",
"wallet_type": "StandardWallet",
"connection_details": {
"protocol": "http",
"host": "host.docker.internal",
"port": 8201
},
"endpoints": {
"auth": {
"POST": "/wallet/authenticate"
},
"balance": {
"GET": "/wallet/balance"
},
"cancel_bet": {
"DELETE": "/wallet/cancel"
},
"transaction": {
"POST": "/wallet/transaction"
},
"transaction_batch": {
"POST": "/wallet/transaction/batch"
},
"cancel_batch": {
"DELETE": "/wallet/transaction/batch"
}
},
"config": {
"secret_key": "12345",
"accept_zero_value_credits": true,
"must_close_gamerounds": false
}
}
| Property | Description |
|---|---|
id | The ID you want to assign to the wallet. This is a unique identifier |
operator_id | The operator ID that this wallet is for |
brand_id | The brand ID that this wallet is for |
wallet_type | This must be set to StandardWallet |
connection_details.protocol | The protocol of the url. Usually http or https depending on your setup |
connection_details.host | The hostname for your server. While using the AIO container, it is recommended you keep this set to host.docker.internal |
connection_details.port | The port that your server is listening on |
endpoints | This is an object that describes the required endpoints for the Standard Wallet API |
endpoints.auth | This describes the endpoint that ThrillGate will make player authentication calls to |
endpoints.balance | This describes the endpoint that ThrillGate will make player balance requests to |
endpoints.transaction | This describes the endpoint that ThrillGate will call to perform transactions |
endpoints.cancel_bet | This describes the endpoint that ThrillGate will make to cancel transactions |
endpoints.transaction_batch | This describes the endpoint that ThrillGate will make for transaction batch calls |
endpoints.cancel_batch | This describes the endpoint that ThrillGate will make to cancel transaction batches |
config | An object that contains specific configuration elements for the Standard Wallet |
config.secret_key | This is the key that will be used to generate the HMAC value that is sent on each wallet request in the x-server-authorization header |
config.accept_zero_value_credits | This defines whether the external wallet supports Credit transactions which have a value of zero (0) |
config.must_close_gamerounds | This defines whether the external wallet requires gamerounds to be closed |
NOTE: If you need to change the definition of the endpoints, feel free to do so. Make sure that you use the correct HTTP verb and specify the endpoints as needed by your system.
Next Steps
Once you have understood the purpose of each of the Standard Wallet API calls as well as the flows around transaction and transaction batch handling, you are ready to start integrating the Standard Wallet API into your system. Refer to the provided API reference documentation and OpenAPI specs that have been provided to you.