paytrack docs
Errors and status codes
Understand paytrack HTTP status codes, standard error responses, and request IDs.
HTTP status codes
200 OKRequest succeeded.201 CreatedResource was successfully created.400 Bad RequestThe request is invalid or missing required fields.401 UnauthorizedMissing, invalid, expired, or revoked API key.403 ForbiddenAPI key is valid, but does not have permission or subscription access.404 Not FoundRequested resource does not exist.409 ConflictRequest conflicts with an existing resource.422 Validation ErrorRequest body is valid JSON but failed validation rules.429 Too Many RequestsRate limit exceeded.500 Internal Server ErrorUnexpected server error.Standard error format
error.code is one of: invalid_request, unauthorized, forbidden, not_found, conflict, validation_error, rate_limited, subscription_required, internal_error.
Example
{
"success": false,
"error": {
"code": "unauthorized",
"message": "The provided API key is invalid or has been revoked.",
"details": {}
},
"request_id": "req_xxx"
}Common examples
Example
{
"success": false,
"error": {
"code": "forbidden",
"message": "Missing required scope: payments:write.",
"details": {}
},
"request_id": "req_scope_123"
}A rate_limited response also carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset response headers — see Rate limits for their exact format.
Example
{
"success": false,
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded.",
"details": {}
},
"request_id": "req_rate_123"
}