Skip to main content
Each event is sent as a POST request with a JSON body containing an event object and a data object. The event.type field tells you which event fired. See Payload Structure for the common wrapper format.

Lead events

These events fire when a referred lead’s lifecycle changes.
Fired each time a new lead signs up through a promoter’s referral link.Data fields:
FieldTypeDescription
idnumberID of the lead.
statusstringCurrent state (signup, active, cancelled).
emailstringEmail address of the lead.
uidstringExternal user ID you passed when tracking.
customer_sincestringTimestamp of first payment. null until conversion.
cancelled_atstringTimestamp of cancellation. null if not cancelled.
plan_namestringSubscription plan name, if provided.
suspicionstringFraud suspicion level (e.g., no_suspicion).
created_atstringTimestamp of when the lead was created.
split_promotion_idnumberSplit promotion ID, if applicable.
split_percentage_valuenumberSplit percentage, if applicable.
promoterobjectThe promoter who referred this lead. See Promoter object.
promotionobjectThe campaign promotion that generated this lead. See Promotion object.
Fired once when a lead makes their first payment and converts to an active customer.
This event fires only once per lead — on the first payment. After it fires, the lead’s status becomes active and customer_since is set.
Data fields: Same as lead_signup. At the time of this event, status will be active and customer_since will be set.
Fired when a referred lead becomes a paying customer for the first time.
This event is similar to lead_becomes_referral and fires once per lead on the first payment.
Data fields: Same as lead_signup. At the time of this event, status will be active and customer_since will be set.
Fired when a lead or customer cancels their subscription, either through your billing integration or via the API.Data fields: Same as lead_signup. At the time of this event, status will be cancelled and cancelled_at will be set.

Promoter events

These events fire when a promoter’s status in your program changes.
Fired each time a new promoter joins your affiliate program, whether through your signup page or via the API.Data fields:
FieldTypeDescription
promoterobjectThe newly signed-up promoter. See Promoter object. status is typically pending unless auto-approval is enabled.
promotionsarrayCampaign promotions the promoter was enrolled in at signup. See Promotion object.
Fired when a promoter is approved for a campaign — either manually by an admin or automatically if auto_approve_promoters is enabled.Data fields:
FieldTypeDescription
statestringAlways accepted at time of this event.
campaignobjectThe campaign the promoter was accepted into. See Campaign object.
promoterobjectThe accepted promoter. See Promoter object.
promotionobjectThe promotion created for the promoter in this campaign. See Promotion object.

Reward events

These events fire when rewards are created or need to be fulfilled.
Fired whenever a reward is generated for a promoter — for example when a referral converts or a milestone is reached.Data fields:
FieldTypeDescription
idnumberID of the reward record.
statusstringReward status (e.g., approved, pending).
amountnumberReward amount in the unit’s smallest denomination.
unitstringReward unit (cash, points, free_months, credits).
created_atstringTimestamp of when the reward was created.
event_idstringID of the sale or conversion event that triggered this reward.
conversion_amountnumberSale amount in cents that triggered the reward.
tier_levelnumberTier level (1 = direct referral, 2 = second tier, etc.).
split_typestringSplit type, if the commission was shared between promoters.
leadobjectThe lead whose conversion triggered this reward.
promoterobjectThe promoter who earned the reward. See Promoter object.
promotionobjectThe promotion linked to this reward. See Promotion object.
Fired right after a non-monetary reward (e.g., free months, credits) is attributed to a promoter. Use this event to trigger your own fulfilment logic.Your endpoint’s HTTP response code controls the fulfilment state in FirstPromoter:
ResponseOutcome
200Reward marked as fulfilled.
2xx (not 200)Reward stays pending.
Any other statusError — retried up to 7 times.
Data fields:
FieldTypeDescription
idnumberID of the reward record.
statusstringAlways pending at time of this event.
amountnumberQuantity to fulfil (e.g., number of free months).
unitstringReward unit (e.g., free_months, credits).
created_atstringTimestamp of when the reward was created.
has_issuesbooleanWhether previous fulfilment attempts encountered errors.
rewardobjectThe reward rule that generated this record.
promoterobjectThe promoter to fulfil the reward for. See Promoter object.
campaignobjectThe campaign this reward is associated with. See Campaign object.

Shared objects

These objects appear in multiple event payloads.

Promoter object

FieldTypeDescription
idnumberID of the promoter.
statusstringStatus (active, pending, blocked).
cust_idstringExternal customer ID.
emailstringEmail address.
created_atstringTimestamp of account creation.
temp_passwordstringAuto-generated temporary password from signup.
default_promotion_idnumberID of the promoter’s default promotion.
prefstringInternal preference token.
default_ref_idstringDefault referral ID used in links.
notestringAdmin note.
w8_form_urlstringURL of the W-8 tax form, if uploaded.
w9_form_urlstringURL of the W-9 tax form, if uploaded.
parent_promoter_idnumberParent promoter ID in a multi-tier setup.
earnings_balanceobjectTotal commissions earned, by unit (e.g., { "cash": 5000 }).
current_balanceobjectCurrent unpaid balance, by unit.
paid_balanceobjectTotal paid out balance, by unit.
auth_tokenstringToken for the promoter’s affiliate dashboard.
profileobjectProfile details — name, address, country, social accounts.
promotionsarrayAll campaign promotions this promoter is enrolled in.

Promotion object

FieldTypeDescription
idnumberID of the promotion.
statusstringStatus (offer_running, offer_inactive).
ref_idstringReferral ID used in links.
promo_codestringPromoter-facing promo code.
customer_promo_codestringCustomer-facing discount code.
promoter_idnumberID of the promoter.
campaign_idnumberID of the campaign.
referral_linkstringFull referral URL.
campaign_namestringName of the campaign.
visitors_countnumberTotal visitors tracked.
leads_countnumberTotal leads referred.
customers_countnumberTotal customers converted.
active_customers_countnumberCurrently active customers.
sales_countnumberTotal number of sales.
sales_totalnumberTotal sales value in cents.
refunds_countnumberTotal number of refunds.
refunds_totalnumberTotal refund value in cents (negative).
cancellations_countnumberTotal cancellations.
current_offerobjectActive discount offer for referrals.
current_referral_rewardobjectActive commission reward.
current_promotion_rewardobjectActive non-monetary or milestone reward.
current_target_rewardobjectActive target-based reward, if set.

Campaign object

FieldTypeDescription
idnumberID of the campaign.
namestringName of the campaign.
landing_urlstringLanding page URL.
descriptionstringCampaign description.
privatebooleanWhether the campaign is invite-only.
colorstringDisplay color (hex code).
default_webhook_urlstringDefault webhook URL configured on the campaign.
auto_approve_rewardsbooleanWhether rewards are automatically approved.
auto_approve_promotersbooleanWhether promoters are automatically approved.
offerobjectActive discount offer.
referral_rewardobjectActive commission reward.
promotion_rewardobjectActive non-monetary reward.
target_rewardobjectTarget-based reward, if set.