Centsless returns standard HTTP status codes on every response. When a request fails, the response body is a JSON object with two fields: error, a machine-readable code you can match against in your integration, and message, a human-readable description suitable for logging.
Error response structure
Every error response follows this schema:
HTTP status codes
Common error codes
UNAUTHORIZED — 401
Returned when the x-api-key header is absent or the key has been revoked.
FORBIDDEN — 403
Returned when your key is valid but is not scoped for the endpoint you called. For example, a merchant key calling an admin-only endpoint.
VALIDATION_ERROR — 400
Returned when a required field is missing from the request body or a field value falls outside the allowed enum.
NOT_FOUND — 404
Returned when you reference a transaction ID or other resource that does not exist.
The compliance_status field in transaction responses (PASS, WARN, or FAIL) signals jurisdiction compliance issues. These are separate from HTTP errors — a transaction can return 200 OK with a compliance_status of WARN or FAIL. Check this field in every transaction response alongside the HTTP status.