error code you can branch on. Many also carry a
message written for a person, which is the same wording the dashboard shows,
so you can display it as is.
Status codes
402: plan locked
When your tracked revenue goes past your plan’s allowance, dashboard and management access lock until you choose a plan that covers it. API calls that manage your program (writes, plus the commission quote and the move preview) then return:/v1/track still records sales and commissions still accrue. GET reads keep
working too. Choosing a plan that covers your usage restores access.
409: conflicts
A 409 means the request was understood but the record’s current state doesn’t allow it. Nothing changed. The common ones:
Refusals that come from the same rules as the dashboard carry
message (what
went wrong, in plain words) and often a hint (where to do it instead).
422: the affiliate can’t take it
Moving a referral or a sale to another affiliate returns422 affiliate_not_eligible when the new affiliate can’t take it: they’re
suspended, banned, archived or left the program, they’re a test affiliate and
the customer is live (or the other way round), or they’re the customer
themself.
Limits
When you hit one of these you get429 with error: "rate_limited". Wait and
try again.
The quote limits return a
message saying which limit you hit and when to try
again. In the dashboard, resending a failed webhook delivery is limited to once
every 10 minutes per delivery.
MCP connector tokens
A token minted for an AI assistant through the MCP server can read your program and change its configuration, but it can never move money or change who is owed it, even with thewrite scope. These calls refuse it with
403 insufficient_scope and need: "financial":
POST /v1/track/click,/lead,/saleand/refundPATCH /v1/commissions/{id}PATCH /v1/conversions/{id}POST /v1/referrals/move