Financial Events
These events track all financial activity including balance changes, transactions, and wallet operations.
The OnGetCash, OnReturnCash, and OnGetBalance events correspond directly to the Seamless Wallet API methods. These events are only triggered for Seamless Wallet integrations.
OnPlayerBalanceChanged
Triggered when a player's balance is updated.
When it fires:
- Any balance change (deposit, withdrawal, win, loss, bonus, etc.)
- Both real money and bonus balance changes
| Field | Type | Description |
|---|---|---|
playerId | integer | User ID |
externalId | string | External system player ID |
externalSystemCode | string | External system code |
skinId | integer | User's skin ID |
moneyType | integer | Currency code |
oldAmount | integer | Previous real balance (in cents) |
newAmount | integer | New real balance (in cents) |
oldBonusAmount | integer | Previous bonus balance (in cents) |
newBonusAmount | integer | New bonus balance (in cents) |
newInPlayAmount | integer | New in-play amount (in cents) |
Example:
{
"playerId": 81622,
"externalId": "EXT123",
"externalSystemCode": "default",
"skinId": 0,
"moneyType": 80,
"oldAmount": 100000,
"newAmount": 95000,
"oldBonusAmount": 5000,
"newBonusAmount": 5000,
"newInPlayAmount": 5000
}
OnTransactionNotification
Triggered when a transaction is created for a player.
When it fires:
- Any transaction is processed (deposit, withdrawal, rake, prize, etc.)
| Field | Type | Description |
|---|---|---|
transactionId | integer | Transaction ID in EvenBet system |
paramPlayerId | integer | User ID |
paramExternalId | string | External system player ID |
paramExternalSystemCode | string | External system code |
skinId | integer | User's skin ID |
moneyType | integer | Currency code |
amount | integer | Transaction amount (with currency precision) |
transactionType | integer | Transaction type |
transactionSubType | integer | Transaction subtype |
spendingPriority | integer | Spending priority |
paramTableId | integer | Related table ID |
paramTournamentId | integer | Related tournament ID |
notes | string | Transaction notes |
createdStamp | string | Creation timestamp |
paramExternalSessionId | string | External session identifier |
playerId | integer | Not used — see paramPlayerId |
externalId | string | Not used — see paramExternalId |
externalSystemCode | string | Not used — see paramExternalSystemCode |
externalSessionId | string | Not used — see paramExternalSessionId |
Example:
{
"transactionId": 337686,
"paramPlayerId": 106,
"paramExternalId": "12341234",
"paramExternalSystemCode": "12345",
"skinId": 0,
"moneyType": 80,
"amount": 1,
"transactionType": 501,
"transactionSubType": 113,
"spendingPriority": 0,
"paramTableId": 846897,
"paramTournamentId": 0,
"notes": "",
"createdStamp": "2024-03-07 04:23:20",
"paramExternalSessionId": ""
}
The amount field uses the currency's configured precision. For USD (precision 2), a value of 100 means $1.00.
OnP2PTransfer
Triggered when a player attempts to transfer money to another player.
When it fires:
- Player initiates P2P transfer
- Transfer request is processed
| Field | Type | Description |
|---|---|---|
senderId | integer | Sender's user ID |
senderExternalId | string | Sender's external ID |
senderExternalSystemCode | string | Sender's external system code |
senderSkinId | integer | Sender's skin ID |
receiverId | integer | Receiver's user ID |
receiverExternalId | string | Receiver's external ID |
receiverExternalSystemCode | string | Receiver's external system code |
receiverSkinId | integer | Receiver's skin ID |
moneyType | integer | Currency code |
amount | integer | Transfer amount (in cents) |
request | boolean | true = pending request, false = completed |
success | boolean | true = successful |
Example:
{
"senderId": 81622,
"senderExternalId": "EXT123",
"senderExternalSystemCode": "default",
"senderSkinId": 0,
"receiverId": 81623,
"receiverExternalId": "EXT456",
"receiverExternalSystemCode": "default",
"receiverSkinId": 0,
"moneyType": 80,
"amount": 10000,
"request": false,
"success": true
}
OnCasinoRoundClosed
Triggered when a casino game round is completed.
When it fires:
- Casino round completes normally
- Casino round cancelled
- Casino round reopened for correction
| Field | Type | Description |
|---|---|---|
provider | string | Casino provider code |
externalRoundId | string | Round ID in provider's system |
playerId | integer | User ID |
externalId | string | External system player ID |
externalSystemCode | string | External system code |
skinId | integer | User's skin ID |
closeMethod | integer | Close method code |
closedByPlayerId | integer | User who closed the round (player or admin) |
hasTransaction | boolean | Whether transaction data is included |
transaction | object | Transaction details (see below) |
hasRoundExtInfo | boolean | Internal use |
creditBalancePriority | integer | Spending priority for winnings |
betMultiplier | decimal | Final coefficient |
betType | integer | Bet type (for sports: 0=unknown, 1=ordinary, 2=express) |
oldRoundCloseMethod | integer | Previous close method (for reopenings) |
objectId | integer | Player ID |
Transaction Object
| Field | Type | Description |
|---|---|---|
playerId | integer | User ID |
moneyType | integer | Currency code |
amount | integer | Amount (in cents) |
subtype | integer | Transaction subtype |
notes | string | Transaction notes |
isReverse | boolean | true = debit, false = credit |
isResultSuccess | boolean | Transaction successful |
resultText | string | Result message |
resultTransactionId | integer | Transaction ID (if successful) |
spendingPriority | integer | Spending priority |
entityType | integer | Entity type (3 = casino) |
entityId | integer | Internal round ID |
skipCreation | boolean | Skip server transaction (seamless wallet) |
Example:
[
{
"provider": "MyProvider",
"externalRoundId": "436546-4554",
"playerId": 23110634,
"externalId": "EXT123",
"externalSystemCode": "default",
"skinId": 0,
"closeMethod": 1,
"closedByPlayerId": 23110634,
"hasTransaction": true,
"transaction": {
"playerId": 23110634,
"moneyType": 80,
"amount": 5000,
"isReverse": false,
"isResultSuccess": true,
"resultTransactionId": 123456
},
"betType": 0,
"objectId": 23110634
}
]
Seamless Wallet Events
The following events are triggered only for Seamless Wallet integrations. They correspond to the callback API methods your system implements.
OnGetCash
Triggered when funds are requested from an external wallet.
When it fires:
- Player sits at a table (buy-in)
- Player registers for a tournament
- Player purchases rebuy/add-on
Corresponds to: Withdrawal Request (GetCash)
| Field | Type | Description |
|---|---|---|
transactionId | integer | Transaction ID |
playerId | integer | User ID |
externalId | string | External system player ID |
externalSystemCode | string | External system code |
skinId | integer | User's skin ID |
moneyType | integer | Currency code |
amount | integer | Amount (in cents) |
tableId | integer | Table ID |
tournamentId | integer | Tournament ID |
transactionType | integer | Transaction type |
transactionSubType | integer | Transaction subtype |
playerOnTableId | integer | Table session ID |
playerInTournamentId | integer | Tournament session ID |
tournamentBuyIn | integer | Tournament buy-in portion |
tournamentEntryFee | integer | Tournament entry fee portion |
tournamentBountyKnockout | integer | Tournament knockout fee portion |
externalParams | string | Custom parameters from client |
Example:
{
"transactionId": 123456789,
"playerId": 81622,
"externalId": "EXT123",
"externalSystemCode": "default",
"skinId": 0,
"moneyType": 80,
"amount": 15000,
"tableId": 34534,
"tournamentId": 0,
"transactionType": 501,
"transactionSubType": 113,
"playerOnTableId": 10351
}
OnReturnCash
Triggered when funds are returned to an external wallet.
When it fires:
- Player leaves a table
- Player receives tournament prize
- Player receives refund (cancelled tournament, etc.)
Corresponds to: Deposit Request (ReturnCash)
| Field | Type | Description |
|---|---|---|
transactionId | integer | Transaction ID |
playerId | integer | User ID |
externalId | string | External system player ID |
externalSystemCode | string | External system code |
skinId | integer | User's skin ID |
moneyType | integer | Currency code |
amount | integer | Amount (in cents) |
playerEntryIdx | integer | Entry number |
tableId | integer | Table ID |
tournamentId | integer | Tournament ID |
transactionType | integer | Transaction type |
transactionSubType | integer | Transaction subtype |
playerOnTableId | integer | Table session ID |
playerInTournamentId | integer | Tournament session ID |
sumBetAmount | integer | Total bets placed |
tournamentBuyIn | integer | Tournament buy-in portion |
tournamentEntryFee | integer | Tournament entry fee portion |
tournamentBountyKnockout | integer | Tournament knockout fee portion |
numHandsPlayed | integer | Hands played in session |
Example:
{
"transactionId": 123456790,
"playerId": 81622,
"externalId": "EXT123",
"externalSystemCode": "default",
"skinId": 0,
"moneyType": 80,
"amount": 23000,
"playerEntryIdx": 0,
"tableId": 34534,
"tournamentId": 0,
"playerOnTableId": 10351,
"sumBetAmount": 45000,
"numHandsPlayed": 47
}
OnGetBalance
Triggered when a balance is requested from an external wallet.
When it fires:
- Player logs in
- Balance refresh requested (
RefreshExternalPlayerBalances)
Corresponds to: Balance Request (GetBalance)
| Field | Type | Description |
|---|---|---|
playerId | integer | User ID |
externalId | string | External system player ID |
externalSystemCode | string | External system code |
skinId | integer | User's skin ID |
moneyType | integer | Currency code |
Example:
{
"playerId": 81622,
"externalId": "EXT123",
"externalSystemCode": "default",
"skinId": 0,
"moneyType": 80
}
Related Events
- Game & Table Events — For events that trigger financial transactions
- Tournament Events — For tournament-related financial events
- Seamless Wallet Transaction Flow — Complete guide to wallet operations