Advertiser postback reference
Every parameter our postback URL accepts, the statuses that approve, hold or reverse a conversion, duplicate handling, and every response we return.
GET or POST https://cashadmedia.com/postbackParameters can be sent in the query string, as form fields, or as a JSON body with Content-Type: application/json.
Parameters
| Parameter | Also accepted as | Required | Description |
|---|---|---|---|
token | secret, key | Yes | The token we issued. |
click_id | clickid, subid, sub_id, aff_sub, sub1 | Yes | The click ID we put in your tracking link. |
event | goal, event_name, goal_id | For multi-step offers | The step's event name. Without it, the offer's first step is used. |
txn_id | transaction_id, tid, conversion_id | No | Your ID for the conversion, up to 200 characters. Without it, the click and event identify the conversion. |
status | conversion_status | No | See below. Without it, the conversion is approved. |
Any other parameters you send are stored with the conversion, which helps when we look into a disputed one together.
Statuses
| You send | Effect |
|---|---|
nothing, approved, 1, or any other value | Approves the conversion. |
pending, hold, on_hold, 0 | Records it as pending. Not billed and not credited until you approve it with a later postback. |
reversed, reversal, reverse, chargeback, rejected, declined, fraud, cancelled, canceled, 2, -1 | Reverses a conversion you sent earlier. |
Status values are not case-sensitive.
Amounts
Payouts come from the offer we agreed, including any country prices, never from the postback. A payout or amount parameter is stored but not used for billing.
Duplicates and updates
A conversion is identified by txn_id if you send one, and also by the click and event: one click can convert each step once. A second postback for the same conversion updates it or is ignored:
| Current status | You send | Result |
|---|---|---|
| pending | approved | Approved. |
| pending or approved | reversed | Reversed. |
| approved | approved or pending | Ignored (duplicate). |
| reversed | anything | Ignored (rejected:already_reversed). |
Daily caps
If the offer has a daily cap, conversions over it are rejected (rejected:over_cap). The cap counts pending and approved conversions per UTC day. New clicks are turned away once it is reached, so this mostly affects users who clicked before the cap filled up.
Responses
The body is a short plain-text result. Retry only on 5xx or a network error; the other responses will not change if you send the same request again.
| HTTP | Body | Meaning |
|---|---|---|
| 200 | accepted | New conversion recorded. |
| 200 | approved | A pending conversion was approved. |
| 200 | reversed | A conversion was reversed. |
| 200 | duplicate | Already recorded with this status. Nothing changed. |
| 200 | rejected:nothing_to_reverse | A reversal for a conversion we never received. |
| 200 | rejected:over_cap | The offer's daily cap was already reached. |
| 200 | rejected:already_reversed | The conversion was already reversed. |
| 200 | rejected:already_rejected | The conversion was rejected after review. |
| 400 | rejected:missing_click_id | No click ID in the request. |
| 400 | rejected:unknown_event | event doesn't match any step of the offer. |
| 403 | rejected:bad_token | The token is missing or wrong. |
| 404 | invalid_click | We have no click with that ID. Usually a macro that wasn't filled in. |