Error codes
Every refusal of the tracking API, what it means and what to do.
Conversions
| Code | What to do |
|---|---|
invalid_hit |
Send the hit exactly as the cookie or the server-side hit gave it, for this workspace. |
hit_expired |
The hit is older than the attribution window; nothing to fix for this sale. |
unknown_conversion_type |
Use the code of a conversion type in Offers › Conversion types. |
conversion_type_not_on_offer |
Add that conversion type as a goal on the offer. |
amount_required |
Send amount.value: the offer pays a percent. |
currency_not_supported |
That currency has no exchange rate; send the amount in the workspace currency. |
recurrence_limit |
The hit already brought as many conversions of this type as the goal allows. |
partner_not_found |
The hit's partner was deleted. |
unknown_coupon |
The coupon code is unknown or inactive. |
network_not_linked |
Pick a landing page for the network's sales in Partners › Networks. |
network_closed |
The network was closed; its sales are not recorded. |
Every refused conversion shows in Conversions › Failed with what was sent.
Server-side hits
| Code | Meaning |
|---|---|
missing_params |
link, ip or userAgent is missing. |
invalid_ip_address |
ip is not an IP address. |
Keys and limits
- 401: no API key, or a wrong one.
- 403: the key's IP allow-list does not include your server.
- 422: a field is missing or wrong; the answer names it.
- 429: too many calls at once; wait a moment and try again (or use
Prefer: respond-async).
Did this answer your question?
Checked against the app on October 18, 2026