Skip to main content
Zerocash uses standard HTTP status codes. For client errors (4xx) and server errors (5xx), the response body carries a specific errorCode and a descriptive message.
Example error response
Branch your error handling on errorCode, not on message. Messages are written for humans and may be reworded; codes are stable.
These are errors with the request. A request that succeeds can still produce a transaction that later fails — those reasons are on the transaction error codes page.

Common errors

Returned by multiple endpoints.
A 409 DUPLICATE_EXTERNAL_REFERENCE is a safety feature, not a bug. It means the transaction already exists — look it up with Get Transaction using that reference rather than retrying with a new one, or you risk paying twice.

Payout errors

Collection errors

Handling errors well

Retry the first group with exponential backoff. The second group will fail identically no matter how many times you send them — fix the request or your account configuration instead.
When you do retry, reuse the original externalReference. That is what makes the retry safe: if the first attempt actually landed, you get a 409 instead of a second transaction.
Most 403 and 422 errors are avoidable. Check supported countries & limits, fetch operator and bank codes from the reference endpoints, and resolve accounts with Account Resolver first.
Before assuming an integration bug, check Currency Uptime — a corridor may simply be degraded.