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:

FieldTypeRequiredDescription
event_typestringYesThe type of event (see below)
event_timestringYesISO 8601 datetime in UTC when the event occurred in your system
brand_idstring (UUID)YesThe brand this event belongs to
player_external_refstringYesYour internal player identifier (stable, unique per brand)
idempotency_keystringYesUnique key for deduplication (max 500 characters)
source_systemstringNoIdentifier for which of your systems sent this event
event_versionstringNoSchema version (default: "1.0")
click_idstring (UUID)NoThe click ID from the affiliate tracking link (recommended on registration)

Event types

registration

Sent when a player creates an account on your platform.

FieldTypeRequiredDescription
countrystring (ISO 3166-1 alpha-2)NoPlayer's country
metadata.registration_sourcestringNoHow they registered (web, mobile app, etc.)
metadata.device_typestringNoDevice used to register
metadata.landing_pagestringNoWhich 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.

FieldTypeRequiredDescription
currencystring (3-letter ISO)YesCurrency of the deposit
amountnumberYesDeposit amount
metadata.payment_methodstringNoPayment method used
metadata.bonus_codestringNoBonus 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.

FieldTypeRequiredDescription
currencystringYesCurrency
amountnumberYesDeposit amount
metadata.payment_methodstringNoPayment method
metadata.deposit_numberintegerNoSequential deposit number

withdrawal

Sent when a player withdraws funds.

FieldTypeRequiredDescription
currencystringYesCurrency
amountnumberYesWithdrawal 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).

FieldTypeRequiredDescription
currencystringYesCurrency
amountnumberYesNGR amount (positive = operator revenue, negative = player winning)
metadata.period_startstringNoStart of the NGR calculation period
metadata.period_endstringNoEnd of the NGR calculation period
metadata.calculation_methodstringNoHow 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.

FieldTypeRequiredDescription
currencystringYesCurrency
amountnumberYesWager amount
metadata.productstringNo"casino", "sports", "poker", or "other"
metadata.game_idstringNoGame identifier
metadata.game_namestringNoGame name

wager_settled (optional)

Sent when a bet is settled. Optional. Provides analytics enrichment.

FieldTypeRequiredDescription
currencystringYesCurrency
amountnumberYesNet result (positive = player win, negative = operator revenue)
metadata.productstringNo"casino", "sports", "poker", or "other"
metadata.original_wager_amountnumberNoThe original bet amount

bonus_awarded

Sent when a bonus is awarded to a player.

FieldTypeRequiredDescription
currencystringYesCurrency
amountnumberYesBonus amount
metadata.bonus_idstringNoBonus identifier
metadata.bonus_typestringNoType of bonus

bonus_cost

Sent when a bonus cost is applied (deducted from affiliate earnings).

FieldTypeRequiredDescription
currencystringYesCurrency
amountnumberYesCost amount

chargeback

Sent when a player's deposit is charged back. This creates a deduction in the affiliate's commission.

FieldTypeRequiredDescription
currencystringYesCurrency
amountnumberYesChargeback amount
metadata.original_deposit_refstringNoReference to the original deposit
metadata.reasonstringNoChargeback reason

fee_applied

Sent when a fee is applied that should be deducted from affiliate commissions.

FieldTypeRequiredDescription
currencystringYesCurrency
amountnumberYesFee amount
metadata.fee_typestringNoType of fee

account_flag_changed

Sent when a player's account status changes (e.g., self-exclusion, duplicate detection).

FieldTypeRequiredDescription
metadata.flagstringYesNew status: "self_excluded", "duplicate", "blocked", "closed", or "active"
metadata.previous_flagstringNoPrevious status
metadata.reasonstringNoReason 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