
- The referral link carries the ClickFlare click ID out, as a PartnerStack sub ID in
sid. - PartnerStack’s postback brings it back with each reward, inside a JSON body, in
customer.sub_ids.
At a glance
To set up PartnerStack with ClickFlare:- Set up your domain and custom conversions.
- Add PartnerStack as Other affiliate network.
- Add sid to your referral link.
- Build the relay.
- Register the postback in PartnerStack.
How the data flows
sid. The value comes back as the first entry of customer.sub_ids, and the relay sends it to ClickFlare as cf_click_id.What you’ll need
- A ClickFlare account with your own tracking domain. Shared domains get flagged. See Tracking domains.
- A PartnerStack partner account, approved for the program you want to promote.
- An account on a relay tool: Zapier, Make or n8n. A small script on your own server works too.
Setup
Set up your own tracking domain
trk.yourdomain.com. The relay posts conversions to this domain. See Tracking domains.Create the custom conversions
pending, approved and declined. The relay sends these names in ct, and they must match exactly. See Custom conversions and Reward statuses.Create the campaign
Add PartnerStack as an affiliate network
Get your referral link
Create the offer with the click ID in sid

sid1, sid2, sid3 and so on, for example ?sid1={cf_click_id}&sid2=facebook. Keep the click ID in the first one so the relay can find it.Build the relay
- Zapier: Webhooks by Zapier → Catch Hook.
- Make: Webhooks → Custom webhook.
- n8n: a Webhook node, method POST. Use the production URL.
Register the postback in PartnerStack
https://dash.partnerstack.com/settings/postbacks, or open your profile settings and then Postback. Create a new postback:{"event": "test", "data": {"message": "Test event sent!"}}. Add a filter in the relay that skips test events so they never reach ClickFlare.Add a lander (optional)
Save the campaign and launch
Field mapping
PartnerStack’s reward events look like this (from its postback docs):sub_ids[0] and divide by 100 in the mapping itself. In Zapier, add a Formatter by Zapier step for the division, or a Code by Zapier step for both.Reward statuses
Each reward carries areward_status: hold, pending, approved, declined or paid. PartnerStack sends reward.updated when it changes. Sending the status as ct gives you each stage as its own column in ClickFlare:
approved, so the same reward isn’t counted twice in revenue. Then send only that custom conversion on to your traffic source.
Several rewards from one customer. ClickFlare keeps one conversion per click ID and custom conversion. A program that pays per transaction can create several approved rewards for the same customer. Without a transaction ID each would replace the last, so send the reward key data.key as txid in the JSON body. A different txid makes each reward its own conversion. If your relay uses the GET postback instead, put it in the URL:
Other events
PartnerStack postbacks also cover action events (action.created, action.updated), customer events (customer.created, customer.updated, customer.deleted) and transaction events (transaction.created, transaction.updated). All of them carry customer.sub_ids. Two are useful:
customer.createdcan report a signup as its own custom conversion, for examplect=signupwith payout 0.transaction.createdcarries the customer’s payment inamount_usd(cents). That is revenue for the company, not your reward, so don’t use it as payout.
Verify the setup
Click through the campaign
grsm.io had sid= followed by a real click ID, not the text {cf_click_id}.Sign up as a test customer
Check the relay and ClickFlare
cf_click_id should be the click ID and payout should be in dollars. In ClickFlare, the conversion appears on the campaign under the custom conversion you sent, and in Logs → Event Logs.Troubleshooting
Rewards show in PartnerStack but not in ClickFlare
Rewards show in PartnerStack but not in ClickFlare
- The postback isn’t subscribed to reward events. Open it in PartnerStack’s postback settings and check Event Types.
sub_idsis empty. The link has nosid, the lander CTA goes straight to PartnerStack, or this company doesn’t support sub IDs.- The relay reads the wrong entry. If you use several sub IDs, check which position holds the click ID.
- The
ctdoesn’t match.ctmust match a custom conversion name exactly, including case.
The payout is 100 times too high
The payout is 100 times too high
data.amount as it is. PartnerStack uses cents: divide by 100.Only one reward per customer shows in ClickFlare
Only one reward per customer shows in ClickFlare
ct and no txid replace each other. Add txid to the body, set to data.key. See Reward statuses.Test events show up as conversions
Test events show up as conversions
event starts with reward..FAQ
Does ClickFlare integrate with PartnerStack?
Does ClickFlare integrate with PartnerStack?
Why do I need a relay?
Why do I need a relay?
amount and customer.sub_ids. ClickFlare’s JSON endpoint expects cf_click_id and payout. Something has to translate, and convert cents to dollars.Can I promote several PartnerStack programs?
Can I promote several PartnerStack programs?
sid={cf_click_id}. Send data.company.name in a param to split rewards by program.Where do I see sub IDs in PartnerStack?
Where do I see sub IDs in PartnerStack?