
- The Hotmart link carries the ClickFlare click ID out, in Hotmart’s tracking parameter
src(sales page) orsck(checkout). - The Hotmart webhook brings it back with every purchase event, inside a JSON body.
At a glance
To set up Hotmart with ClickFlare:- Set up your domain and custom conversions.
- Add Hotmart as Other affiliate network.
- Put the click ID in src.
- Build the relay.
- Create the Hotmart webhook.
How the data flows
src (or sck). The value comes back in the webhook as purchase.origin.src (or purchase.origin.sck), 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 Hotmart account with access to the Webhook tool. Hotmart’s developer docs describe the webhook payload for creators, co-creators and affiliates.
- 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, so changing it later means updating the relay too. See Tracking domains.Create the custom conversions
purchase, refund and chargeback. The relay sends these names in ct, and they must match exactly. See Custom conversions.Create the campaign
Add Hotmart as an affiliate network
Create the offer with the click ID in src

Build the relay
- Zapier: Webhooks by Zapier → Catch Hook.
- Make: Webhooks → Custom webhook.
- n8n: a Webhook node, method POST. Use the production URL.
Create the Hotmart webhook
- Paste the relay’s URL as the receiving address.
- Choose version 2.0.0. The field names in this guide come from that version.
- Select the products to track.
- Select the purchase events: at least
PURCHASE_APPROVED, plusPURCHASE_REFUNDEDandPURCHASE_CHARGEBACKif you track refunds. - Save, then send a test event to the relay.
Add a lander (optional)
Save the campaign and launch
Field mapping
Hotmart’s version 2.0.0 webhook sends the event name at the top level and the sale indata. The relay maps it like this:
data.commissions[].currency_valueis the commission currency (ISO code such asBRLorUSD). Match it to the affiliate network’s Payout currency in ClickFlare.data.purchase.price.valueis what the buyer paid, not what you earn. Use the commission for ROI.data.purchase.order_bump.is_order_bumptells you whether the sale was an order bump.
commissions list works natively in Make and n8n. In Zapier, a list arrives as line items. Add a Code by Zapier or Formatter by Zapier step that picks the commission for your source before the POST step.Events, refunds and repeat sales
Hotmart’s purchase webhook can sendPURCHASE_APPROVED, PURCHASE_COMPLETE, PURCHASE_CANCELED, PURCHASE_BILLET_PRINTED, PURCHASE_PROTEST, PURCHASE_REFUNDED, PURCHASE_CHARGEBACK, PURCHASE_EXPIRED and PURCHASE_DELAYED. A sensible start:
ct is its own column in ClickFlare, so you see sales, refunds and chargebacks side by side. A negative payout subtracts the refunded commission from revenue. Check Hotmart’s event descriptions before you map the other events. A boleto that is printed but never paid, for example, isn’t a sale.
Repeat sales on the same click. ClickFlare keeps one conversion per click ID and custom conversion. Without a transaction ID, a second purchase on the same click, such as a subscription renewal, replaces the first one. Send Hotmart’s transaction code in txid in the JSON body, as in Field mapping. A different txid makes each call its own conversion, and the same txid replaces the earlier one. If your relay uses the GET postback instead, put the code in the URL:
Security
Hotmart sends a unique account token, the hottok, in theX-HOTMART-HOTTOK header of every webhook and recommends checking it before you process the data. If your relay can read request headers, add a filter that stops the run when the header doesn’t match your hottok. This keeps anyone who finds your relay URL from posting fake sales.
Verify the setup
Click through the campaign
src= must be followed by a real click ID, not the text {cf_click_id}.Check the payload
data.purchase.origin.src holds the click ID and that the commission is where you mapped it.Check ClickFlare
purchase custom conversion with your commission. In Logs → Event Logs, you can see the conversion as ClickFlare received it.Troubleshooting
Sales show in Hotmart but not in ClickFlare
Sales show in Hotmart but not in ClickFlare
- The webhook doesn’t reach the relay. Check Hotmart’s event history for the configuration and the relay’s run history.
origin.srcis empty. The link has nosrc, the lander CTA goes straight to Hotmart, or you usedsckon the link and mappedsrc(or the other way round).- The relay posts the wrong value. Look at the relay’s last run.
cf_click_idmust be the click ID alone. - The
ctdoesn’t match.ctmust match a custom conversion name exactly, including case. - The relay posts to the wrong domain. Use your own tracking domain with
/cf/cv.
The payout is 0 or too high
The payout is 0 or too high
- 0: the relay didn’t find the commission. Check the path to
data.commissionsand thesourceyou filter on. - Too high: the relay sends
purchase.price.value(what the buyer paid) or the creator’s commission instead of yours. - Wrong currency: set Payout currency on the Hotmart affiliate network to the commission currency.
Renewals or second purchases replace the first sale
Renewals or second purchases replace the first sale
txid, so a second purchase on the same click replaces the first. Add txid to the body, set to data.purchase.transaction. See Events, refunds and repeat sales.ClickFlare receives the literal text cf_click_id
ClickFlare receives the literal text cf_click_id
src={cf_click_id}.FAQ
Does ClickFlare integrate with Hotmart?
Does ClickFlare integrate with Hotmart?
Why can't I paste the ClickFlare postback into Hotmart?
Why can't I paste the ClickFlare postback into Hotmart?
src or sck?
src or sck?
src for affiliate links and sales pages, sck for links that go straight to the checkout. Use one per offer and map the matching field in the relay.Do I need Zapier, Make or n8n?
Do I need Zapier, Make or n8n?
Can I send Hotmart sales on to my traffic source?
Can I send Hotmart sales on to my traffic source?
purchase custom conversion there if you don’t want refunds sent.