Complete reference for all event types supported by the Revvvs S2S API.
Event Reference
All events share a set of common fields and have type-specific fields.
Common fields
Every event must include these fields:
| Field | Type | Required | Description |
|---|---|---|---|
event_type | string | Yes | The type of event (see below) |
event_time | string | Yes | ISO 8601 datetime in UTC when the event occurred in your system |
brand_id | string (UUID) | Yes | The brand this event belongs to |
player_external_ref | string | Yes | Your internal player identifier (stable, unique per brand) |
idempotency_key | string | Yes | Unique key for deduplication (max 500 characters) |
source_system | string | No | Identifier for which of your systems sent this event |
event_version | string | No | Schema version (default: "1.0") |
click_id | string (UUID) | No | The click ID from the affiliate tracking link (recommended on registration) |
Event types
registration
Sent when a player creates an account on your platform.
| Field | Type | Required | Description |
|---|---|---|---|
country | string (ISO 3166-1 alpha-2) | No | Player's country |
metadata.registration_source | string | No | How they registered (web, mobile app, etc.) |
metadata.device_type | string | No | Device used to register |
metadata.landing_page | string | No | Which landing page they came from |
Example:
{
"event_type": "registration",
"event_time": "2026-03-15T10:00:00Z",
"brand_id": "your-brand-uuid",
"player_external_ref": "player_001",
"idempotency_key": "reg_player_001_20260315",
"click_id": "abc-123-def",
"country": "GB"
}
first_deposit
Sent when a player makes their first-ever deposit. This typically triggers CPA commissions.
| Field | Type | Required | Description |
|---|---|---|---|
currency | string (3-letter ISO) | Yes | Currency of the deposit |
amount | number | Yes | Deposit amount |
metadata.payment_method | string | No | Payment method used |
metadata.bonus_code | string | No | Bonus code applied |
Example:
{
"event_type": "first_deposit",
"event_time": "2026-03-15T10:30:00Z",
"brand_id": "your-brand-uuid",
"player_external_ref": "player_001",
"idempotency_key": "ftd_player_001_20260315",
"currency": "EUR",
"amount": 50.00,
"metadata": { "payment_method": "visa" }
}
deposit
Sent for every deposit after the first.
| Field | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Currency |
amount | number | Yes | Deposit amount |
metadata.payment_method | string | No | Payment method |
metadata.deposit_number | integer | No | Sequential deposit number |
withdrawal
Sent when a player withdraws funds.
| Field | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Currency |
amount | number | Yes | Withdrawal amount |
ngr_update
This is the primary input for RevShare commission calculation.
Sent when a player's Net Gaming Revenue changes. Send the total NGR figure, not a delta. NGR can be negative (player is winning).
| Field | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Currency |
amount | number | Yes | NGR amount (positive = operator revenue, negative = player winning) |
metadata.period_start | string | No | Start of the NGR calculation period |
metadata.period_end | string | No | End of the NGR calculation period |
metadata.calculation_method | string | No | How NGR was calculated |
Example:
{
"event_type": "ngr_update",
"event_time": "2026-03-15T23:59:00Z",
"brand_id": "your-brand-uuid",
"player_external_ref": "player_001",
"idempotency_key": "ngr_player_001_20260315",
"currency": "EUR",
"amount": 500.00,
"metadata": {
"period_start": "2026-03-01T00:00:00Z",
"period_end": "2026-03-15T23:59:59Z"
}
}
wager_placed (optional)
Sent when a player places a bet. This is optional. It provides product-level analytics but is not required for commission calculation.
| Field | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Currency |
amount | number | Yes | Wager amount |
metadata.product | string | No | "casino", "sports", "poker", or "other" |
metadata.game_id | string | No | Game identifier |
metadata.game_name | string | No | Game name |
wager_settled (optional)
Sent when a bet is settled. Optional. Provides analytics enrichment.
| Field | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Currency |
amount | number | Yes | Net result (positive = player win, negative = operator revenue) |
metadata.product | string | No | "casino", "sports", "poker", or "other" |
metadata.original_wager_amount | number | No | The original bet amount |
bonus_awarded
Sent when a bonus is awarded to a player.
| Field | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Currency |
amount | number | Yes | Bonus amount |
metadata.bonus_id | string | No | Bonus identifier |
metadata.bonus_type | string | No | Type of bonus |
bonus_cost
Sent when a bonus cost is applied (deducted from affiliate earnings).
| Field | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Currency |
amount | number | Yes | Cost amount |
chargeback
Sent when a player's deposit is charged back. This creates a deduction in the affiliate's commission.
| Field | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Currency |
amount | number | Yes | Chargeback amount |
metadata.original_deposit_ref | string | No | Reference to the original deposit |
metadata.reason | string | No | Chargeback reason |
fee_applied
Sent when a fee is applied that should be deducted from affiliate commissions.
| Field | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Currency |
amount | number | Yes | Fee amount |
metadata.fee_type | string | No | Type of fee |
account_flag_changed
Sent when a player's account status changes (e.g., self-exclusion, duplicate detection).
| Field | Type | Required | Description |
|---|---|---|---|
metadata.flag | string | Yes | New status: "self_excluded", "duplicate", "blocked", "closed", or "active" |
metadata.previous_flag | string | No | Previous status |
metadata.reason | string | No | Reason for the change |
Example:
{
"event_type": "account_flag_changed",
"event_time": "2026-03-15T14:00:00Z",
"brand_id": "your-brand-uuid",
"player_external_ref": "player_001",
"idempotency_key": "flag_player_001_selfex",
"metadata": {
"flag": "self_excluded",
"reason": "Player requested self-exclusion"
}
}
Next: Tracking Links