Help Center / Dashboard & Reports / Sending results to your own systems (webhooks & postbacks)

Sending results to your own systems (webhooks & postbacks)

Have TrafficDefenseIQ call your backend or your tracker when an upload finishes scoring.

Under Settings → Integrations you can add destinations that TrafficDefenseIQ calls automatically the moment an upload finishes scoring. Anyone on your account can manage them. There are two kinds.

Webhooks

A webhook sends one JSON summary per upload to a URL you provide: the upload's ID and filename, its row count, the low/medium/high counts, and a link to the results. Each request is signed — verify it by computing an HMAC-SHA256 of "<timestamp>.<body>" with your signing secret and comparing it to the X-TDIQ-Signature header. The secret is shown once when you create the webhook, so copy it then.

Postbacks

A postback calls a URL once per lead — the way trackers like Everflow, CAKE, and HasOffers expect. You write the URL as a template using macros, for example https://track.example.com/postback?tid={transaction_id}&risk={risk_level}&score={score}. Available macros: transaction_id, lead_id, upload_id, risk_level, score, flagged, email, phone, ip, payout, affiliate_id, affiliate_name, offer_id, offer_name, and converted_at. You don't have to send every lead: add conditions to a postback and only leads that pass all of them are sent. You can filter on fraud score (for example, 80 or higher), risk level, whether a phone, email, IP, or transaction ID is present, payout, a specific affiliate or offer, and whether a particular detection rule flagged the lead. Use Edit on a destination to change its conditions later.

To identify a conversion, map your file's transaction or click ID column when you upload (we auto-detect common names like transaction_id, click_id, and tid). Leads with no transaction ID are still sent, with that value left empty.

Testing, retries, and activity

  • Send test fires one sample call so you can confirm your endpoint works before real uploads depend on it.
  • Calls are sent within moments of an upload finishing. A call counts as delivered when your server answers with a 2xx status; redirects aren't followed.
  • A failed call is retried automatically — after 1 minute, then 5 minutes, 30 minutes, and 2 hours — up to 5 attempts. Open a destination's Activity to see every call and its result, and use Retry now or Resend to send one again immediately.
  • Pause a destination to stop sending without deleting it.
For security, destinations must use public https URLs — addresses on private or internal networks are rejected.

Didn't answer it? Contact us.