Supported reward types
| Type | Description |
|---|---|
points | Loyalty or reward points |
credits | Account credits |
free_months | Free subscription months |
mon_discount | Fixed monetary discount |
discount_per | Percentage-based discount |
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:
changes.status | Meaning |
|---|---|
["pending", "approved"] | Commission was approved — deliver the reward and call mark_fulfilled |
["pending", "denied"] | Commission was denied — no reward should be issued |
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.| Query parameter | Description |
|---|---|
status | Filter by status: pending, approved, denied |
unit | Filter by reward type: points, credits, free_months, mon_discount, discount_per |
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.| Promoter reward | Referral reward | |
|---|---|---|
| Who receives it | The affiliate who drove the sale | The customer who was referred |
| Configured in | Campaign → Promoter rewards | Campaign → Referral rewards |
| Webhook events | Same (commission.*, payout.*) | Same |
| API endpoints | Same | Same |
Recommended integration pattern
Listen to commission.updated
When
changes.status is ["pending", "approved"], read the amount, unit, and promoter or referral ID from the payload.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 endpoint verifies the
X-Webhook-Signature header before processing. See Security.Your 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