Bonus Events
Events consumed by the bonus service to evaluate eligibility, trigger grants/releases, and update wager progress. Send events in the standard PAM batch envelope. All event_name values use lowercase snake_case (for example, deposit_success and bet_placed).
Envelope (common to all events)
{
"events": [
{
"event_id": "uuid-v4",
"event_name": "lowercase_snake_case_event_name",
"schema_version": 1,
"user_id": "user_001",
"session_id": "sess_optional",
"timestamp": "2026-08-03T10:00:00.000Z",
"sdk": { "name": "client-name", "version": "1.0.0" },
"device": { "platform": "web", "os": "operating-system", "ua": "user-agent" },
"properties": {}
}
]
}event_id is the idempotency key for event ingestion.
User action events
login
login_method
string
yes
email, phone, google, apple, etc.
ip
string
no
PII — hashed before storage
registration
registration_method
string
yes
email, phone, google, apple
currency
string
yes
ISO 4217 currency code
promo_code
string
no
Promotion code used at sign-up
app_visit
visit_count
int
no
Cumulative visit count including this one
Deposit events
deposit
transaction_id
string
yes
Unique settled deposit transaction ID
amount
number
yes
Settled deposit amount
currency
string (ISO 4217)
yes
e.g. INR
payment_method
string
yes
upi, netbanking, card, wallet
promo_code
string
no
Promotion code applied to the deposit
Gameplay & betting events
bet_placed
Emitted when a wager is accepted by the RGS. This event feeds the wagering progress that releases bonus chunks. It also resets the user's session timeout.
transaction_amount
decimal string
yes
Wager amount; 4-decimal precision
bonus_amount
decimal string
yes
Bonus-funded portion; 4-decimal precision
chip_type
string
yes
Wallet source, such as CASH
wager_tnx_id
string
yes
Unique wager transaction ID
session_key
string
yes
Gaming-session identifier
platform_client_id
string
yes
Client platform identifier
product
string
yes
Product, such as RUMMY
game_type
string
yes
Game classification, such as TOURNEY
game_variant
string
no
Game variant
game_name
string
no
Display name for the game
game_action
string
yes
Action, such as REGISTER_TOURNEY
primary_transaction_id
integer
yes
Primary transaction identifier
secondary_transaction_id
integer
yes
Secondary transaction identifier
tertiary_transaction_id
integer
yes
Tertiary transaction identifier
base_request_id
integer
yes
Source request identifier
Game events
leaderboard_won
leaderboard_id
string
yes
ID of the leaderboard
rank
int
yes
User's final rank
prize_amount
decimal string
yes
In currency units; 4-decimal precision
currency
string (ISO 4217)
yes
e.g. INR
period
string
yes
DAILY, WEEKLY, MONTHLY
tournament_won
tournament_id
string
yes
ID of the tournament
rank
int
yes
User's final rank
prize_amount
decimal string
yes
In currency units; 4-decimal precision
currency
string (ISO 4217)
yes
e.g. INR
Referral events
friend_signup
A friend referred by this user completes registration.
friend_user_id
string
yes
User ID of the friend who signed up
Event → trigger mapping
Each event maps 1:1 to a bonus_release_trigger.trigger_type (trigger types remain uppercase configuration enums):
event_name
trigger_type
login
LOGIN
registration
REGISTRATION
app_visit
APP_VISIT
deposit_success
DEPOSIT
bet_placed
BET_PLACED
leaderboard_won
LEADERBOARD_WON
tournament_won
TOURNAMENT_WON
friend_signup
FRIEND_SIGNUP
Trigger rules additionally filter by occurrence (0 = every event, 1 = first only, N = Nth), min/max_trigger_amount, payment_method, product, and trigger_config_json conditions — see Configuration APIs.
PII fields
The following properties are PII and must be hashed (SHA-256 with project salt) before persistence: email, phone, ip. Raw values may transit over TLS but must never be logged or written to storage unhashed.
Last updated
Was this helpful?