Postback parameters
Complete reference for incoming-postback parameters — aliases, validation, response codes, and deduplication.
Reference for incoming postback parameters (tracker → darkcore). For practical setup, see stream postbacks and the Keitaro integration.
Receiver URL
https://edge.darkcorepwa.com/pIt is shared by all workspaces. GET and POST are accepted with query parameters, form-urlencoded, or JSON bodies. If a value is present in both the query and the POST body, the query value wins. The legacy /postback path alias works identically.
Parameters
For each parameter, the first non-empty alias from the list is accepted.
| Parameter | Aliases | Required | Description |
|---|---|---|---|
click_id | clickid, cid, subid, sub_id | yes | darkcore click identifier received by the tracker through {click_id} |
status | goal, event | yes | Conversion status (registration, deposit, custom) |
payout | sum, amount, revenue | no | Payout amount; always USD |
transaction_id | txid, tx_id, transactionid, conversion_id, conv_id | no | Identifier used for deduplication |
Validation rules
- A value longer than 512 characters is ignored (treated as absent).
payoutmust be a number in the0…1,000,000range; otherwise it becomes0.- There is no currency field: all
payoutis counted in US dollars.
Status mapping
status matches a workspace conversion type by its key or alias. Base mappings, when a custom registry is not set:
| Incoming status | Type |
|---|---|
reg, registration, lead | registration |
dep, deposit, ftd, first_deposit, sale | deposit |
Any other non-empty unmatched status results in 400 invalid_status. To accept custom statuses, add them as aliases in Settings → Conversions.
Response codes
| Situation | Response |
|---|---|
| Success | 200 ok |
Duplicate (same transaction_id, or click_id + status without a tx_id) | 200 ok |
Missing / too-long click_id | 200 ok (to avoid exposing internal state) |
Unknown non-empty status | 400 invalid_status |
| Request rate limit exceeded | 429 |
| Infrastructure error | 500 — the tracker must retry |
The tracker should retry on 500. 200 and 400 are final and should not be retried.
Deduplication
- With
transaction_id: unique by that ID; every conversion, including a repeat deposit for the same click, is recorded separately. - Without
transaction_id: unique by theclick_id + statuspair.
Therefore, always pass a unique transaction_id for repeating events (redeposits and rebills).
Automatic registration completion
If deposit arrives without an earlier registration, darkcore automatically synthesizes a registration event so the funnel, pixels, and push remain consistent.