Skip to main content
Tender follows follows the conventional HTTP status codes. Code in the range of 2xx indicate success, while codes in the range of 4xx indicates that the request failed as a result of the something provided in the request data. And codes in the range 5xx are unexpected server errors.

Error envelope

On error, responses are wrapped in the same envelope shape as successful responses:
{
  "status": "error",
  "message": "human readable description",
  "data": null
}
Some endpoints may include additional fields in data with more context about the failure.

HTTP status codes

CodeNameDescription
200OKRequest succeeded.
201CreatedRequest succeeded and a new resource was created.
202AcceptedRequest accepted for processing (e.g. webhook fetch / logs).
400Bad RequestThe request is malformed or missing required parameters.
401UnauthorizedAuthentication failed – missing, invalid, or expired credentials / signature.
403ForbiddenAuthenticated, but not allowed to access this resource.
404Not FoundResource does not exist or is not visible to this merchant.
409ConflictConflicting request (for example, duplicate action on the same resource).
422Unprocessable EntityPayload validation error – fields are present but invalid.
429Too Many RequestsRate limit exceeded; back off and retry later.
5xxServer ErrorUnexpected error while processing the request – retry with backoff if appropriate.

Working with validation errors

When you receive a 400 or 422 response, check:
  • The request body matches the documented schema (field names and types).
  • Path parameters (for example, :id, :currency, :coin) are present and valid.
  • Authentication headers from the Authentication section are correctly set.
Fix the offending fields and retry the request. If errors persist with a seemingly correct payload, capture the full response body and contact support.*** End Patch