Aggregators
Brands & routing
When you integrate on behalf of several brands, each callback must reach the wallet of the brand that owns the player.
Routing fields
KOI returns these fields unchanged in every bet, win and rollback callback:
| Field | Set by | Use it for |
|---|---|---|
extra_data | You, in request-access | Brand reference and any routing context you need. |
user_id | You, in request-access | Player ID in the brand's system. |
currency | You, in request-access | Brand currency. |
aggregator | KOI | Your KOI account ID. Constant for your account. |
Example: put a brand key in extra_data.
{
"user_id": "acme:player-123",
"username": "Ana",
"game": "aviator-wars",
"currency": "BRL",
"extra_data": "{\"brand\":\"acme\",\"casino_session\":\"s-88a1\"}"
}extra_data is a string. Encode structured data as JSON and decode it in your callback handler.
Player IDs must be unique per account
KOI identifies a player by your account plus user_id. If two brands can have the same player ID, prefix it with the brand (acme:player-123). Otherwise their sessions, balances and free bets will be merged.
Brand-level accounts
When brands need separate access tokens, callback URLs or game lists, KOI can create one partner account per brand under your management. Each brand account then has its own credentials and its own aggregator value. Ask your account manager.
Reporting
Report per brand with the fields you set: group transactions by the brand in extra_data or by aggregator when you use brand-level accounts.