Supported message brokers and events
Integrations with the following message brokers are supported by the EvenBet system: Kafka, RabbitMQ, SQS, Redis. If you want to enable one of them, please, contact your account manager.
Below, you can find the list of events that can be traced in the EvenBet system.
- OnGameDone – this event takes place before the ShowResults and displays the general hand outcome.
- OnGameHistoryDone – this event is sent after the ShowResults. It contains the game details.
- OnPlayerSeatedDown – this event takes place when a player takes a seat at the table.
- OnTournamentPlayerSeatedDown – this event takes place when a player takes a seat at the tournament table.
- OnPlayerEntrySeatedDown – this event takes place when a user is seated to a fast fold table.
- OnPlayerTournamentTicketUpdated – this event takes place when a ticket is issued, used for tournament registration, returned to the user because he unregistered from the tournament or the tournament was cancelled.
- OnPlayerWinInTournament – this event takes place when a player wins a prize in a tournament.
- OnTournamentStateChanged – this event takes place when the tournament changes its status.
- OnPlayerLeftTournament – this event takes place when the player is eliminated from a tournament.
- OnPlayerUnregisteredFromTournament – this event takes place when the player is eliminated from a tournament.
- OnUserLoggedIn – this event takes place when the user logins to the client application. It includes the logins to the casino websites.
- OnUserLoggedOut – this event takes place when the user logs out of the client application. It includes the logouts from the casino websites.
- OnPlayerRegistered – this event takes place when a new user is created from the client application or Backoffice.
- OnPlayerLeaveTable – this event takes place when the user leaves the table.
- OnTournamentCompleted – this event takes place when the tournament is finished.
- OnTournamentPlayerRegisterResult – this event takes place when the user successfully registers for tournament.
- OnPlayerRebuyOrAddonMaked – this event takes place when the user successfully purchases rebuy/add-on in tournament.
- OnFraudIncidentUpdated – this event takes place when anti-fraud incident is updated.
- OnFraudIncidentCreated – this event takes place when anti-fraud incident is created.
- OnFraudAutoReactionApplied – this event takes place when auto-reaction is applied to a player because of an anti-fraud incident.
- OnFraudIncidentStatusChangedAutomatically – this event takes place when incident status is changed automatically.
- OnCooperativeBlockUpdated – this event takes place when team block is updated.
- OnCooperativeBlockDeleted – this event takes place when team block is deleted.
- OnCasinoRoundClosed – this event takes place when a casino round is closed (completed).
- OnPlayerBalanceChanged – this event is triggered when user balance is changed.
- OnTransactionNotification – this event is triggered when transaction is created for the player.
- OnP2PTransfer – this event is triggered when a user attempts to transfer money to another user.
- OnGetCash – this event is triggered when user requests money from an external system (only for seamless wallet systems).
- OnReturnCash – this event is triggered when money is returned to the external system from poker (only for seamless wallet systems).
- OnGetBalance – the balance is requested at the login and during the requests 'RefreshExternalPlayerBalances' from the external wallet. When it happens, this event is triggered.
- OnUpdatePlayerBlockStatus – this event is triggered when the user is blocked.
- OnTFAPreLogin – this event is triggered when the player enters their login and starts the TFA process; the recipient should send or prepare an SMS code or other confirmation methods.
- OnTFALogin – this event is triggered when the player already provided a code from SMS or email; the recipient should check the auth field and respond by calling the poker_player_tfa_login_result method.
- OnExternalLogin – event takes place in case the skin or player account requires login through the external subsystem; the result with the response should be sent through calling the poker_external_login_validation_result method.
- OnTournamentCreated – this event is triggered when a tournament is created successfully.
- OnTableCreated – this event is triggered upon successful creation of a table, including scenarios when a new club table or balanced table is created.
- OnPlayerAccountChanged – this event takes place when a player's account information or associated attributes are updated.
OnGameDone
This event takes place before the ShowResults and displays the general hand outcome.
JSON sample | Description |
---|---|
{ | |
gameId: 236645, | Internal ID |
tableId: 242487, | Table ID |
tournamentId: 23432, | Tournament ID |
totalRake: 180, | Rake amount |
gameStart: "2020-08-14 03:50:19", | Game start |
gameEnd: "2020-08-14 03:51:49", | Game end date |
tableCards: "3;28;1;2;3" | Community cards |
tableCardsLowerRow: "", | Lower set of community cards dealt during Run it twice mode |
rakePart: 0.025 | Rake percent(1/100) |
rakeCap: 300, | Rake cap |
numPlayersOnFlop:5 | Number of players on Flop |
numPlayersOnTurn:4 | Number of players on Turn |
numPlayersOnRiver:3 | Number of players on River |
numPlayersOnShowDown:2 | Number of players on ShowDown |
gameType: 65, | Game type code |
unclaimedPot: 0, | The amount of unclaimed pot |
moneyType: 82, | The code of the currency used at the table. |
smallBlind: 100, | Small blind amount |
bigBlind: 200, | Big blind amount |
ante: 0, | Ante amount |
participations: [ | Array of all game participants |
{ | |
playerId: 47830, | Internal ID of player |
skinId: 0, | Skin ID |
bet: 5000 | Player bet |
pot: 0, | Player pot part |
rake: 125000, | Player rake |
isOut: "False", | True – if player sit out before showdown or make muck |
outRound: 0, | 0/1 – preflop, 2 – flop, 3 – turn, 4 – river, 5 - showdown |
isWin: "False", | True – player wins, False – player loss |
isAway": false, | True – the user was Away at the start of the hand |
isSB: false, | True – player is in the SB position |
isBB: false, | True – player is in the BB position |
isStraddle: false, | True – the user posted straddle |
highCombination: "50;47;45;18;16", | Player cards |
highCombinationCode: "H.50;47;45;18;16.H.H", | Player's high combination. The first letter represents the combination type, the numbers are card codes, the second letter indicates the game type (e.g., H for Hold'em), and the final letter shows the game mode: H for Hi or L for Low. |
lowCombinationCode: "J..H.L", | Player's low combination. The first letter represents the combination type, the numbers are card codes, the second letter indicates the game type (e.g., H for Hold'em), and the final letter shows the game mode: H for Hi or L for Low. |
pocketCards: "3;28", | Player cards |
stackAtHandBegin: 90000, | Stack at the beginning of the hand in cents |
stackAtHandEnd: 85000, | Stack at the end of the hand in cents |
externalId: "751632", | External system player identifier |
externalSystemCode: "default", | External system reference |
betOnPreflop | Player bet on Preflop |
betOnFlop | Player bet on Flop |
betOnTurn | Player bet on Turn |
betOnRiver | Player bet on River |
insuranceFee: 0, | The amount of insurance fee paid by the player |
insuranceClaim: 0, | The amount of insurance claim paid by the player |
playerOnTableId | Table Session ID |
playerInTournamentId | Tournament Session ID |
scorePoints: 12, | Player's score in a deal/hand (used in rummy, Chinese poker, big2 and callbreak) |
wonPoints: 12, | The points won by the user (used in rummy, Chinese poker, big2 and callbreak) |
totalPoints: 12, | Overall user's points (used in rummy, Chinese poker, big2 and callbreak) |
rank: 1 | Player's rank. Here is how it is calculated: Rummy - rank is calculated for a separate deal, the user with the lowest scorePoints will have the lowest rank (0); for a game, it would be the user with the biggest won pot or lowest number of totalPoints (highest for the Deals); Hold'em - the user with the biggest won pot or biggest bet will have the lowest rank (0) Chinese - the user with the biggest won pot or biggest number of points will have the lowest rank (0) Big2 - the user with the biggest number of totalPoints will have the lowest rank (0) Callbreak - the user with the biggest number of totalPoints will have the lowest rank (0) |
externalSessionId | Additional field with session identifier |
}, ], } |
OnGameHistoryDone
This event is sent after the ShowResults. It contains the game details.
JSON sample | Description |
---|---|
{ | |
gameId | Game Identifier |
tableId | Table Identifier |
chunkStart | Date of events chunk |
events | Table events |
} |
OnPlayerSeatedDown
This event takes place when a player takes a seat at the table.
JSON sample | Description |
---|---|
{ params: { | |
objectId: 81622, | User ID |
tableId: 34534 | Table identifier |
playerId: 81622 | User ID |
playerOnTableId: 10351 | Table Session ID |
externalId: 234324 | External identifier |
externalSystemCode: "default", | External system reference |
entryCnt: 1 | Entry number |
skinId: 0, | Skin identifier |
numActivePlayers: 2 | Current number of active players |
isTopUp: True | SeatDown with money request |
rakeCap: 300, | Rake cap |
rakePart: 0.025 | Rake percent(1/100) |
maxPlayers: 6 | Size of table |
externalSessionId | Additional field with session identifier |
}, } |
OnTournamentPlayerSeatedDown
This event takes place when a player takes a seat at the tournament table (both initial seating and all further seatings during the table balancing).
JSON sample | Description |
---|---|
{ params: { | |
tournamentId: 36124574 | The ID of the tournament |
firstSeating: true | Set true on the initial seating period in the tournament before the games began |
tableId: 37496730 | ID of the tournament table |
playerId: 13296 | User ID |
playerEntryIdx: 0 | Entry number |
skinId: 2 | ID of user's skin |
externalId: "" | User ID in the external system |
externalSystemCode: "" | Code of the external system |
playerInTournamentId: 36010919 | Tournament Session ID |
tournamentName: "SnG headsup" | Tournament name |
tournamentType: 71 | Tournament type: - ttAny = -1 - any tournament type, used for filtering; - ttScheduled = 83 - the tournament that starts at a specific time; - ttSitAndGo = 71 - the tournament that starts when the required number of participants register for it; - ttManual = 77 - the tournament that starts when the creator manually launches it (either from Backoffice or from the club). |
objectId: 13296 | User ID |
externalSessionId | Additional field with session identifier |
OnPlayerEntrySeatedDown
This event takes place when a user is seated to a fast fold table.
JSON sample | Description |
---|---|
playerId: 6121 | User ID |
tableId: 25291772 | Table identifier |
playerEntryIdx: 1 | Entry number |
skinId: 0 | ID of user's skin |
externalId: "999" | User ID in the external system |
externalSystemCode: "A" | Code of the external system |
playerOnTableId: 36120986 | Table Session ID |
objectId: 6121 | User ID |
externalSessionId | Additional field with session identifier |
OnPlayerTournamentTicketUpdated
This event takes place when a ticket is issued, used for tournament registration, returned to the user because he unregistered from the tournament or the tournament was cancelled.
JSON sample | Description |
---|---|
{ params: { | |
playerId | User ID |
externalId | External ID |
externalSystemCode | System code |
skinId: 0, | Skin ID |
tournamentId | tournament identifier |
ticketId | ticket identifier |
ticketValue | value of ticket |
creditReason | Unknown = 95, (default value) Admin =65, (the ticket was created by the administrator) TournamentPrize = 84, (the ticket was won in tournament) AfterRegistration = 82, (the ticket was emitted automatically to the user after registration) Use = 85, (the ticket was used to register for tournament) Revert = 66, (the ticket price was returned to the player or poker room after the ticket was expired) |
debitReason | Unknown = 95, Admin =65, TournamentPrize = 84, AfterRegistration = 82, Use = 85, Revert = 66, |
externalSessionId | Additional field with session identifier |
}, } |
OnPlayerWinInTournament
This event takes place when a player wins a prize in a tournament.
JSON sample | Description |
---|---|
{ params: { | |
playerId: 81622, | User ID |
tournamentId: 23423 | Tournament Identifier |
tournamentName: Test | Tournament Name |
placeFrom: 1 | low place |
placeTo: 1 | high place |
amount: 100 | tournament prize |
externalId: 23 | External system player identifier |
externalSystemCode: default | External system code |
skinId: 0, | Skin ID |
wonTicket | 1 - won ticket, 0 - cash |
externalSessionId | Additional field with session identifier |
}, } |
OnTournamentStateChanged
This event takes place when the tournament changes its status.
JSON sample | Description |
---|---|
{ params: { | |
tournamentId: 23423 | Tournament ID |
tournamentState: 65 | WaitForAnnounce (created but not yet visable on the client side) = 87 Announced = 65 Registering = 71 Seating = 83 Running = 82 Cancelled = 67 Done = 68 Unfinished = 85 |
isPrizePaid: false | Shows if the prize was paid in tournament (true/false). |
}, } |
OnPlayerLeftTournament
This event takes place when the player is eliminated from a tournament.
JSON sample | Description |
---|---|
{ params: { | |
tournamentId: 23423 | Tournament Identifier |
playerId: 81622, | User ID |
externalId: "751632", | External system player identifier |
externalSystemCode: "default", | External system reference |
playerEntryIdx: 1 | Entry number |
schemeId: 0 | Deprecated |
placeFrom: 1 | Low place |
placeTo: 1 | high place |
prizePlace: 1 | Shows if the user won a prize (of any type) |
mainPrizeAmount: 200 | The part of the main prize pool won by the user |
skinId: 0, | Skin ID |
level: 0 | The tournament blind level reached by the user |
playerInTournamentId: 1002 | Tournament Session ID |
object_id: 81622, | User ID |
externalSessionId | Additional field with session identifier |
}, } |
OnPlayerUnregisteredFromTournament
This event takes place when a player unregisters from a tournament.
JSON sample | Description |
---|---|
{ params: { | |
object_id: 81622, | User ID |
playerId: 81622, | User ID |
tournamentId: 23423 | Tournament ID |
externalId: "751632", | External system player identifier |
externalSystemCode: "default", | External system reference |
skinId: 0, | Skin ID |
externalSessionId | Additional field with session identifier |
}, } |
OnUserLoggedIn
This event takes place when the user logins to the client application. It includes the logins to the casino websites.
JSON sample | Description |
---|---|
{ params: { | |
playerId: 81622, | User ID |
externalId: "83688319", | User external identifier |
externalSystemCode: "test", | System code |
nick: "LOCALBOT_5822", | Player nickname |
clientVersion: "HTML5", | The client version used by the player |
skin: 'base', | Skin Key |
deviceId: 0, | Internal user device identifier |
deviceUniqueId: '12321321' | Unique device identifier |
platform: 'html5' | System platform |
osName: 'Windows' | Operation system name |
osVersion: 10 | Operation system version |
motherboardId: "", | Motherboard ID |
cpuId: "", | CPU ID |
appVersion: "23.1.1.7d9855c", | The used version of the client application |
ip: 8.8.8.8 | Player's IP |
macAddress: "", | Player's MAC-address |
latitude: 23.232 | Player's Latitude |
longitude: 23.3432 | Player's Longitude |
skinId: 0, | Skin ID |
isFirstLogin: false | Shows if it was user's first login |
externalSessionId | Additional field with session identifier |
}, } |
OnUserLoggedOut
This event takes place when the user logs out of the client application. It includes the logouts from the casino websites.
JSON sample | Description |
---|---|
params: { | |
playerId: 6158, | User ID |
externalId: "78963", | User external identifier |
externalSystemCode: "", | System code |
nick: "john", | Player nickname |
clientVersion: "HTML5", | The client version used by the player |
skin: "evenbet", | Skin Key |
deviceId: 219, | Internal user device identifier |
deviceUniqueId: "e742b6874741c1266b0539f9e89bb75d", | Unique device identifier |
platform: "H", | System platform |
osName: "W", | Operation system name |
osVersion: "10.0", | Operation system version |
motherboardId: "", | Motherboard ID |
cpuId: "", | CPU ID |
appVersion: "23.1.1.7d9855c", | The used version of the client application |
ip: "192.168.3.56", | Player's IP |
latitude: 0, | Player's Latitude |
longitude: 0, | Player's Longitude |
skinId: 0 | Skin ID |
externalSessionId | Additional field with session identifier |
} } |
OnPlayerRegistered
This event takes place when a new user is created from the client application or Backoffice.
JSON sample | Description |
---|---|
{ params: { | |
playerId | ID of the player |
activationCode | |
callbackParam | |
deviceId | Device identifier |
}, } |
OnPlayerLeaveTable
This event takes place when the user leaves the table. For cash tables, the event takes place when the money is returned to his balance, and for tournaments it happens when the user is eliminated from the tournament or taken to a new table during the table balancing.
JSON sample | Description |
---|---|
{ params: { | |
objectId: 105, | User ID |
playerId: 105, | User ID |
amount: 8000, | Amount in cents |
externalSystemCode: "434", | System code |
externalSessionId, " " | Additional field with session identifier |
templateTableId: 1075896, | Template (parent) table ID 0 - indicates that there is no template for this table |
skinId: 0, | Skin ID |
standUpCause: 18, | Reasons a player was made to stand up during the game: 0 — Unknown — The reason for standing up is not known. 1 — FFRealTableDestroy — The real table in Fast Fold poker was destroyed, forcing all players to stand up. For example, the table was cleared when the game ends, and the players were reassigned. 2 — FFPlayerDisconnect — The player disconnected during Fast Fold poker. 3 — FFPlayerEntryDestroy — The single player's entry in the Fast Fold game was destroyed, resulting in their stand-up. 4 — FFPlayerEntryFastFolded — The player clicked the "Fold" button quickly, resulting in a stand-up. 5 — FFPlayerEntrySitOut — In the Fast Fold game, the player's sitout timer ran out, leading to the player standing up. 6 — FFPlayerEntryLeaveTable — The player manually chose to leave the table in the Fast Fold game. 7 — TableClosed — The table was closed. For example, the tournament ended, the table was closed in the admin panel, or during balancing. 8 — CrashRecovery — The system recovered from a crash. 9 — FictitiousGameStateReset — Fast Fold logic-related. For example, a player joined a fictitious table with no other players. When the game started, the player was moved to a real table, and the fictitious table was closed. 10 — Kick — The player was kicked and stood up due to a kick/ban. 11 — DefaultAction — TThe player's default action was to stand up, which was performed automatically. In Rummy, this involves a drop followed by a stand-up. 12 — UnauthorizeSession — The player's session was unauthorized, for example, in case the player was logged out. 13 — ReservedSeatTimeout — A player reserved a seat but did not join the game for an extended period. For example, the player did not buy in within the specified time frame. 14 — DisconnectTimeout — A player was in a disconnected state for an extended period. 15 — SitoutTimeout — A player was in a sit out state for an extended period (this reason does not apply to a Fast Fold table). 16 — NoCashTimeout — A player had no cash for an extended period and did not replenish their funds if the option was available. 17 — SafeBlockTimeOut — The player was blocked and given time to finish the games at all tables, but if there was no action, the player was removed from the game after the current hands were completed. Further, the player could not join a new table while under this block. 18 — ManualLeaveTable — A player performed stand-up manually. 19 — NoCash — The cash amount was less than the minimum required at the table. For example, the player attempted to sit down but did not have sufficient funds. 20 — UnreserveSeat — The player reserved a seat but chose not to buy in and withdrew from the reservation. 21 — UnjoinControlList — The player left the table's waiting list and is no longer in line for a seat at that table. 22 — MovePlayer — The player was moved to a different table at tournament table balancing. 23 — TourKnockOut — The player was knocked out from the tournament. 24 — UnregisterPlayer — The player was unregistered from the tournament. 25 — TourWinner — The player was eliminated from the tournament but still won a prize. 26 — TourFinalStage — A player was transferred to the final tournament table. 27 — UnionStage — In multi-entry tournaments, the event was triggered when a player's multiple entries were merged into a single one. 30 — Eliminated — A player was eliminated after points were added to all seats (big2 and rummy). |
sessionTime: 8.0, | Time spent on table |
playerEntryIdx: 0, | Entry number |
externalId: "123412344", | User external identifier |
tableId: 1166896, | Table identifier |
} } |
OnTournamentCompleted
This event takes place when the tournament is finished.
JSON sample | Description |
---|---|
{ params: { | |
lateRegFinishedStamp: 0000-00-00 00:00:00 | The time when late registration period was completed |
objectId: 81622 | Tournament identifier |
switchToSharePrizeDistribution: false | IIndicates that shared prize distribution was used in the tournament |
usedSharedPrizeType: 95 | Shared Prize Type: '95' – No shared prize '80' – Player decision '69' – Equal distribution '83' – Stake-based distribution '73' – ICM-based distribution |
moneyType: 80 | Currency code in the Evenbet system |
sharedPrizeCalculatedOnCompleteAfterAddonPauseByTD: false | Indicates that the sharedPrize was calculated after the Add-on pause based on actual ticket distribution. |
feeList: [ | List of participants |
numberAddon : 1 | Number of player's addons |
rebuyFee : 1 | Player's rebuy fee |
playerId : 12 | Internal player identifier |
externalSystemCode : 434 | Code of the external system |
buyIn : 1 | Player's buy-in |
skinId : 2 | Skin ID |
externalId : 123412344 | User external identifier |
entryFee : 1 | Player's entry fee |
sharedPrizeType : 95 | The prize split type selected by the player. Filled only if the tournament’s sharedPrizeType is Player decision. |
numberRebuy : 1 | Number of player's rebuys |
playerEntryIdx : 1 | Entry number |
extraBuyIn : 1 | Total of extra buy ins |
isSharePrize: false | Indicates whether the player made a share prize decision |
addonFee : 1 | Player's addon fee |
level: 0 | The blind level reached by the user |
placeFrom: 0 | Low place |
placeTo: 0 | High place |
tournamentId: 81622 | Tournament identifier |
lateRegFinishedStamp: 0000-00-00 00:00:00 | The time when late registration period was completed |
] } } |