KheloVip — How to call the postback API

Send POST (or GET) with click_id and your API key. We forward the conversion to the tracker.

⚠️ First: capture the click_id

When a user lands from the ad, the URL includes a click id (query param such as click_id / subid). Example:

https://your-site.com/?click_id=abc123xyz

You must read and store it (cookie or database) as soon as the user arrives — registration or deposit may happen later when the param is gone from the URL. On conversion, send the stored value to the API below.

  1. User lands from ad → read click_id from the URL.
  2. Save it (cookie / DB) for that user/session.
  3. On register or deposit → POST the saved click_id here with the correct API key.

Endpoint & API key

The endpoint URL and API key for registration and deposit will be provided separately. Do not hard-code placeholders — replace them with the values we send you.

1. Registration (lead)

POST Endpoint URL — will be provided later

API key

Will be provided later

Send as header X-Api-Key (preferred), or as body/query field api_key. Bearer token also works.

Body fields

FieldRequiredTypeDescription
click_idRequiredstringClick id from the ad landing URL.

Example

fetch("YOUR_REGISTRATION_ENDPOINT", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-Api-Key": "YOUR_REGISTRATION_API_KEY"
  },
  body: JSON.stringify({
    click_id: "abc123xyz"
  })
});
curl -X POST "YOUR_REGISTRATION_ENDPOINT" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: YOUR_REGISTRATION_API_KEY" \
  -d '{"click_id":"abc123xyz"}'

2. Deposit (sale)

POST Endpoint URL — will be provided later

API key

Will be provided later

Registration and deposit use different keys. Wrong or missing key returns 401 UNAUTHORIZED.

Body fields

FieldRequiredTypeDescription
click_idRequiredstringSame click id stored at landing.

Example

fetch("YOUR_DEPOSIT_ENDPOINT", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-Api-Key": "YOUR_DEPOSIT_API_KEY"
  },
  body: JSON.stringify({
    click_id: "abc123xyz"
  })
});
curl -X POST "YOUR_DEPOSIT_ENDPOINT" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: YOUR_DEPOSIT_API_KEY" \
  -d '{"click_id":"abc123xyz"}'

Responses

HTTPcodeMeaning
200OKPostback sent successfully.
200ALREADY_SENTSame click_id already reported for this event (safe to ignore).
400CLICK_ID_REQUIREDMissing click_id.
401UNAUTHORIZEDInvalid or missing API key.
502PROVIDER_ERRORUpstream tracker failed — retry later.

Success example

{
  "success": true,
  "code": "OK",
  "message": "Registration postback sent",
  "request_id": "…",
  "click_id": "abc123xyz"
}