request_id para soporte y un objeto error estructurado.
Campos del error
| Campo | Descripción |
|---|---|
type | Familia del error, por ejemplo authentication_error, authorization_error, invalid_request_error, business_error o rate_limit_error. |
code | Código estable para manejar el error programáticamente. |
message | Mensaje legible para logs, soporte o interfaces internas. |
retryable | Indica si tiene sentido reintentar la misma request sin cambiar el payload. |
details | Lista opcional de detalles por campo, header o regla de negocio. |
error.details puede incluir:
| Campo | Descripción |
|---|---|
field | Path lógico del campo o header relacionado. |
code | Código estable para ese detalle. |
message | Explicación legible del problema. |
Códigos comunes
| Código | Causa | Qué hacer |
|---|---|---|
AUTHENTICATION_REQUIRED | Falta la credencial bearer, es inválida o expiró. | Enviá Authorization: Bearer <api_key> o regenerá la credencial. |
FORBIDDEN | La credencial no tiene permisos para esa operación. | Revisá los scopes de la API key o del token delegado. |
INVALID_REQUEST | Parámetros, body o headers inválidos. | Corregí nombres, tipos y campos requeridos. |
NOT_FOUND | El recurso solicitado no existe o no pertenece a la organización autenticada. | Verificá el ID y la organización de la credencial. |
PRECONDITION_FAILED | La operación no puede ejecutarse por una regla de negocio. | Revisá details y corregí el estado o el payload. |
IDEMPOTENCY_CONFLICT | Se reutilizó una Idempotency-Key con otro payload. | Reintentá con la misma key solo si el payload es idéntico; si cambió, usá una key nueva. |
RATE_LIMITED | La organización superó la cuota. | Respetá el header Retry-After. |
Manejar errores en TypeScript
Cuándo reintentar
Reintentá la misma request cuando:- Recibís un error
5xx. - Recibís
RATE_LIMITEDy ya esperaste el tiempo indicado enRetry-After. - La conexión falló antes de recibir una respuesta.
Idempotency-Key. Para errores 4xx de validación o permisos, corregí el problema antes de volver a enviar.
