Affiliates Postbacks

Create HTTP postbacks for key events.

Postbacks

Postbacks allow affiliates to receive real-time notifications via HTTP GET requests when key events occur — such as a new player registration, a first-time deposit (FTD), or subsequent deposits. You can configure postback URLs for each event type, and the system will automatically call your URL with the relevant data as query string parameters.

 

Setting Up Postbacks

To configure postbacks for an affiliate:

  1. Navigate to the specific Affiliate's page in the dashboard
  2. Scroll to the Postbacks section
  3. Click the Add a Postback button
  4. Fill in the postback form:
    • Type — select the event type (Registration, FTD, or Deposit)
    • Method — HTTP method (GET)
    • URL — your postback endpoint URL with the desired system and dynamic variables
  5. Click Save to activate the postback
Note: Each affiliate can have up to 10 postbacks configured at a time. You can update or remove existing postbacks from the same section.
 

Postback Types

Type Trigger
Registration Fired when a new player registers through the affiliate's tracking link
FTD Fired when the referred player makes their first successful deposit
Deposit Fired on every subsequent deposit (2nd, 3rd, etc.) made by the referred player
 

System Variables

System variables are automatically populated by the platform. Use them in your postback URL by wrapping them in double curly braces: {{variable_name}}

Registration Variables

Variable Description
{{click_id}} Unique identifier for the click that led to the registration
{{link_id}} The tracking link identifier used by the player
{{profile_id}} The unique identifier of the newly registered player
{{aff_id}} The affiliate's unique identifier
{{country_code}} Two-letter country code of the player (e.g. US, GB, AU)
{{country}} Full country name of the player
{{postback_id}} Unique identifier for this postback call, useful for deduplication

FTD and Deposit Variables

FTD and Deposit postbacks support all the Registration variables above, plus the following:

Variable Description
{{amount}} The deposit amount
{{currency}} The currency of the deposit (e.g. USD, EUR, GBP)
{{payment_id}} Unique identifier for the payment transaction
{{postback_id}} Unique identifier for this postback call, useful for deduplication
Note: If a variable's value is not available at the time the postback is fired, it will be sent as an empty query string parameter. For example: ?currency=&amount=1
 

Dynamic Variables

In addition to system variables, you can pass your own custom dynamic variables through the postback system. This is useful for tracking campaigns, sub-affiliates, or any other custom data you need to associate with a conversion.

Level 1 — Variables Set in the Tracking Link

When creating a tracking link, you can include custom query string parameters in the Destination URL field. These values will be captured and made available as variables in your postback URL.

Example

Tracking link destination:

https://site.com/?campaignId=campaign1

Postback URL:

https://postback.com/?campaignId={{campaignId}}

Result: When the postback fires, {{campaignId}} will be replaced with campaign1.

https://postback.com/?campaignId=campaign1
 

Level 2 — Variables Passed at Click Time

You can also pass custom parameters dynamically when distributing your tracking link, without setting them in the link's destination. This gives you the flexibility to pass different values each time the link is shared.

Example

Tracking link destination:

https://site.com/

Distributed tracking link (shared with your audience):

https://tracking.link/abc123?campaignId=campaign2

Postback URL:

https://postback.com/?campaignId={{campaignId}}

Result: When the postback fires, {{campaignId}} will be replaced with campaign2.

https://postback.com/?campaignId=campaign2
Note: Level 1 (link-level) values take priority over Level 2 (click-time) values. If the same parameter is defined in both the tracking link destination and the click-time URL, the tracking link destination value will be used.
 

Full Example

Here is an example of a fully configured Registration postback URL using both system and dynamic variables:

https://your-server.com/postback?click_id={{click_id}}&player={{profile_id}}&aff={{aff_id}}&country={{country_code}}&campaign={{campaignId}}&postback_id={{postback_id}}

When a new player registers, the system will replace each variable and call your endpoint:

https://your-server.com/postback?click_id=abc-123&player=player_456&aff=aff_789&country=US&campaign=campaign1&postback_id=pb_001

Here is an example of a fully configured FTD postback URL:

https://your-server.com/postback?click_id={{click_id}}&player={{profile_id}}&aff={{aff_id}}&amount={{amount}}&currency={{currency}}&payment_id={{payment_id}}&postback_id={{postback_id}}
 

Retries and Deduplication

Retries

If your server does not return a successful HTTP response, the system will automatically retry the postback up to 3 times, a couple of seconds apart. After all retries are exhausted, the postback will not be attempted again for that event.

Deduplication

To prevent processing the same postback more than once on your end, the system provides two deduplication mechanisms:

Method Description
Postback-ID header Every postback request includes a Postback-ID HTTP header with a unique identifier. Your server can check this header to detect duplicate calls
{{postback_id}} variable You can add {{postback_id}} to your postback URL as a query string parameter for easier access to the unique identifier without parsing headers
{{payment_id}} variable For FTD and Deposit postbacks, you can add {{payment_id}} to your URL to deduplicate based on the unique payment transaction identifier
Important: We recommend implementing deduplication on your end using either the Postback-ID header or the {{postback_id}} / {{payment_id}} query string parameters, as retries may result in your endpoint receiving the same postback more than once.
 
Close Modal