Errors
Match client logic on the stable error value. The human message may change.
{
"error": "validation_error",
"message": "One or more fields are invalid.",
"details": [
{ "field": "name", "issue": "required" }
]
}
Common codes
| HTTP | Error | Meaning |
|---|---|---|
| 400 | validation_error | JSON body or field constraints are invalid. |
| 400 | invalid_category | The category does not exist, is inactive, or belongs to another tenant. |
| 400 | invalid_brand | The brand does not exist, is inactive, or belongs to another tenant. |
| 401 | missing_authentication | No bearer token was provided. |
| 401 | invalid_token | The token is unknown or malformed. |
| 401 | revoked_token | The token has been revoked. |
| 404 | not_found | The resource does not exist for this tenant. |
| 409 | duplicate_reference | A product reference already exists for this tenant. |
| 409 | product_in_use | The product cannot be permanently deleted because business records reference it. |
| 429 | rate_limit_exceeded | The caller exceeded the request rate limit. |