Adjusts a player balance using DEBIT or CREDIT events. Every round must be marked as finished when no more transactions can be expected. A round can have a single DEBIT, and can have zero or multiple CREDIT events.
POST /v1/transaction
Headers: X-HMAC-Signature, Authorization, X-Request-ID
Request
Request Parameters
|
Field |
Required/Optional |
Data Type |
Description |
|---|---|---|---|
|
playerId |
Required |
string |
Unique identifier for the player. |
|
provider |
Required |
string |
Identifier for the game provider. |
|
game |
Required |
string |
Identifier for the game being launched. |
|
transactionId |
Required |
string |
Unique identifier for this transaction, serving as the idempotency key for the transaction and round combination. This ensures that duplicate requests with the same round ID will not create multiple transactions. |
|
roundId |
Required |
string |
Unique identifier for this round. |
|
amount |
Required |
decimal |
Amount to adjust the balance with, in player currency. Greater or equal to zero. |
|
transactionType |
Required |
enum |
Possible values: "debit": reduce the player balance, i.e. wager "credit": increase the player balance, i.e. payout |
|
roundFinished |
Optional |
boolean |
Flag to indicate that the round has been completed. Once set, no more transactions for that round can be processed. Assumed as false if not provided. Every round must be completed at some point. |
|
freeGameInfo |
Optional |
object |
Provide the free game offer and instance if the round should be considered as a free game round. |
|
ip |
Required |
string |
IPv4 of the player. |
|
gameInfo |
Optional |
object |
If a bet includes multiple components, each will be itemized here for detailed breakdown (e.g., side bets). |
Request Example
{
"playerId": "44-12345-67890",
"provider": "gameprovider",
"game": "fantasyquest",
"transactionId": "guid/uuid/string",
"roundId": "guid/uuid/string",
"amount": 10.00,
"transactionType": "debit",
"roundFinished": true,
"freeGameInfo": {
"instanceId": 1,
"offerId": 99
},
"ip": "1.2.3.4",
"gameInfo": {
"gameTransactionType": "spin",
"metaData": [
{
"betType": "standard",
"amount": 10.00
}
]
}
}
gameInfo object
|
Field |
Required/Optional |
Data Type |
Description |
|---|---|---|---|
|
gameTransactionType |
Optional |
enum |
Type of transaction. Possible values: |
|
metaData |
Optional |
array |
If a bet includes multiple components, each will be itemized here for detailed breakdown. |
metaData object
|
Field |
Required/Optional |
Data Type |
Description |
|---|---|---|---|
|
betType |
Optional |
string |
Description of what the bet was made on. |
|
amount |
Optional |
decimal |
The amount for this component of the bet. |
Response
Response Parameters
|
Field |
Required/Optional |
Data Type |
Description |
|---|---|---|---|
|
balance |
Required |
decimal |
Current balance of the player, in player’s currency. |
|
freeGameInfo |
Optional |
array |
List of free games available to the player for this game. |
Response Example
{
"balance": 1480.50,
"freeGameInfo": [
{
"instanceId": 1,
"offerId": 99,
"offerName": "Sample Free Spins",
"instanceInfo": {
"canBeRejected": false,
"nearestCostPerBet": 5,
"numberOfRoundsRemaining": 2,
"numberOfRoundsAwarded": 10,
"instanceStartDateUtc": "2025-05-23T11:54:37Z",
"instanceEndDateUtc": "2025-05-25T13:34:37Z"
}
}
]
}