Supported reward types
These can be configured independently for promoters (what the affiliate earns) and referrals (what the referred customer receives) within a campaign.
The complete flow
Webhook events to listen to
Subscribe to the following event types when creating your webhook subscription in Settings → Integrations → Webhooks. See Event Types for the full list.commission.created
Fired when a new commission is tracked and enters pending status.
Use this to log or notify internally that a reward has been earned. Do not fulfill the reward at this stage — the commission has not been approved yet.
commission.updated
Fired when a commission is updated. Filter on changes.status in the payload to react to specific transitions:
This is your trigger to act. When
changes.status shows ["pending", "approved"], deliver the reward in your system and call the mark_fulfilled endpoint.
Example payloads
commission.created (non-monetary)
commission.created (non-monetary)
commission.updated (approved)
commission.updated (approved)
API endpoints
All requests require theAccount-ID header. You can find your Account ID in Settings → Integrations.
List commissions
Retrieve commissions filtered by status or unit type.Approve commissions
If auto-approve is not enabled on your campaign, commissions must be approved before a payout record is created.If more than 5 IDs are provided, the operation runs asynchronously and the response will have status
in_progress. Poll or listen to commission.updated events to track completion.Mark commissions as fulfilled
Call this after you have delivered the reward in your system. This moves the linked payout tocompleted and triggers the payout.updated webhook.
Mark commissions as unfulfilled
To reverse a fulfillment — for example if delivery failed on your end — move the payout back topending:
Rewards for promoters vs. referrals
Both promoter rewards and referral rewards can be non-monetary and follow the same webhook and API flow. Use the payload data to distinguish which party should receive the reward.Recommended integration pattern
1
Listen to commission.updated
When
changes.status is ["pending", "approved"], read the amount, unit, and promoter or referral ID from the payload.2
Deliver the reward in your system
Apply the points, credits, or discount in your platform.
3
Call mark_fulfilled
POST to
/commissions/mark_fulfilled with the commission ID to confirm delivery and close the loop in FirstPromoter.Setup checklist
Campaign has a non-monetary reward type configured (points, credits, free months, or discount)
Webhook subscription created for
commission.created and commission.updatedYour system calls
mark_fulfilled after successfully delivering the rewardAuto-approve is enabled on the campaign, or you have a flow to call the approve endpoint before fulfilling