Skip to main content
All error responses follow this shape:
{
  "success": false,
  "error": "human-readable message"
}
HTTP StatusMeaningCommon cause
400Bad requestMissing or invalid field in request body
401UnauthorizedMissing, expired, or malformed access token
403ForbiddenToken does not have permission for this action
404Not foundResource ID does not exist
409Conflicte.g. refund already issued for this intent
422Unprocessablee.g. no customer wallet on file to refund
500Platform errorTransient server fault — retry with exponential backoff
On 5xx errors: implement retry logic with exponential backoff and jitter. Do not retry 4xx errors without first fixing the request.