API
Codigos de Error
Referencia de manejo de errores para la API de TBit
# Codigos de Error > Referencia de manejo de errores para la API de TBit - Página: https://tbit.app/es/docs/api/errors - URL base: `https://rest-api.tbit.app/v1` - Autenticación: encabezado `X-API-Key` con tu clave en cada solicitud (los ejemplos la leen de la variable de entorno `TBIT_API_KEY`) ¿Buscas por qué un mensaje de WhatsApp no se entregó? Revisa [Errores de entrega en WhatsApp](https://tbit.app/es/docs/errores-de-entrega-whatsapp). ## Formato de Respuesta de Error Todos los errores siguen una estructura JSON consistente: ```json { "error": { "code": "NOT_FOUND", "message": "Activity not found" } } ``` ## Codigos de Error | Estado | Código | Descripción | | --- | --- | --- | | `400` | `VALIDATION_ERROR` | Invalid request body or query parameters | | `401` | `UNAUTHORIZED` | Missing or invalid API key | | `404` | `NOT_FOUND` | Resource not found or does not belong to your agent | | `405` | `METHOD_NOT_ALLOWED` | HTTP method not supported for this endpoint | | `409` | `CONFLICT` | Resource already exists (e.g., contact with this channel) | | `422` | `SEND_FAILED` | Template send failed (e.g., no messaging window) | | `429` | `RATE_LIMITED` | Rate limit exceeded (100 requests/minute) | | `500` | `INTERNAL_ERROR` | Unexpected server error | ## Rate Limit Headers Every response includes rate limit information in headers: | Encabezado | Descripción | | --- | --- | | `X-RateLimit-Remaining` | Requests remaining in current window | | `X-RateLimit-Reset` | Timestamp (ms) when the window resets | ## Manejo de Errores Mejores practicas para manejar errores de API: - Siempre verifica el codigo de estado HTTP antes de analizar el cuerpo de respuesta - Implementa backoff exponencial para errores 429 (limite de tasa) - Registra codigos y mensajes de error para depuracion - No reintentes errores 400 o 401: corrige la solicitud primero¿Buscas por qué un mensaje de WhatsApp no se entregó? Revisa Errores de entrega en WhatsApp.
Todos los errores siguen una estructura JSON consistente:
{
"error": {
"code": "NOT_FOUND",
"message": "Activity not found"
}
}| Estado | Código | Descripción |
|---|---|---|
400 | VALIDATION_ERROR | Invalid request body or query parameters |
401 | UNAUTHORIZED | Missing or invalid API key |
404 | NOT_FOUND | Resource not found or does not belong to your agent |
405 | METHOD_NOT_ALLOWED | HTTP method not supported for this endpoint |
409 | CONFLICT | Resource already exists (e.g., contact with this channel) |
422 | SEND_FAILED | Template send failed (e.g., no messaging window) |
429 | RATE_LIMITED | Rate limit exceeded (100 requests/minute) |
500 | INTERNAL_ERROR | Unexpected server error |
Every response includes rate limit information in headers:
| Encabezado | Descripción |
|---|---|
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Timestamp (ms) when the window resets |
Mejores practicas para manejar errores de API:
- Siempre verifica el codigo de estado HTTP antes de analizar el cuerpo de respuesta
- Implementa backoff exponencial para errores 429 (limite de tasa)
- Registra codigos y mensajes de error para depuracion
- No reintentes errores 400 o 401: corrige la solicitud primero