Errores y Soporte
La API de Platica utiliza códigos de estado HTTP estándar para indicar el éxito o fracaso de las solicitudes. Esta sección describe los formatos de error, códigos comunes y cómo obtener ayuda.
Formato de Errores
Todas las respuestas de error siguen un formato JSON consistente:
{
"code": 404,
"error": "Not Found - El recurso no existe",
"details": "Agent not found"
} | Campo | Tipo | Descripción |
|---|---|---|
code | number | Código de estado HTTP |
error | string | Mensaje descriptivo del error |
details | string | object | array | Contexto adicional. En errores de validación contiene los campos rechazados |
Códigos de Error Comunes
| Código | Estado | Descripción |
|---|---|---|
400 | Bad Request | La petición tiene errores de validación o formato incorrecto |
401 | Unauthorized | API key inválida, expirada o no proporcionada |
402 | Payment Required | El workspace alcanzó su límite de créditos |
403 | Forbidden | No tienes permisos para acceder a este recurso |
404 | Not Found | El recurso solicitado no existe |
409 | Conflict | El recurso cambió o está ocupado; por ejemplo, una conversación procesando otro turno |
410 | Gone | El recurso ya no está disponible |
422 | Unprocessable Entity | La petición es válida pero no se pudo procesar |
429 | Too Many Requests | Has excedido el límite de peticiones |
500 | Internal Server Error | Error interno del servidor |
502 | Bad Gateway | Un servicio interno o proveedor no pudo completar la solicitud |
503 | Service Unavailable | Servicio temporalmente no disponible |
504 | Gateway Timeout | Un servicio interno no terminó antes del tiempo límite |
400 - Bad Request:
{
"code": 400,
"error": "Bad Request - Validation error",
"details": "El campo 'name' es requerido"
} 401 - Unauthorized:
{
"code": 401,
"error": "Unauthorized - Invalid API key",
"details": "La API key proporcionada no es válida"
} 403 - Forbidden:
{
"code": 403,
"error": "Forbidden - Access denied",
"details": "No tienes permisos para acceder a este workspace"
} 404 - Not Found:
{
"code": 404,
"error": "Not Found - Resource not found",
"details": "Agent not found"
} 429 - Too Many Requests:
{
"code": 429,
"error": "Too Many Requests - Rate limit exceeded",
"details": "Has excedido el límite de 30 peticiones por segundo"
} Errores de validación
Cuando varios campos fallan, details es un arreglo. Cada elemento identifica la ruta y la regla
incumplida:
{
"code": 400,
"error": "Bad Request - The request has validation errors",
"details": [
{
"path": ["attachments"],
"message": "Array must contain at most 10 element(s)"
}
]
} En POST /v1/chat, delay y scheduleAt son mutuamente exclusivos. Si envías ambos, la API
responde 400 y señala los campos en details.
Corrige todos los elementos de details antes de repetir la solicitud.
Rate Limiting
La API tiene límites de peticiones para garantizar un servicio estable para todos los usuarios.
| Límite | Valor |
|---|---|
| Peticiones por segundo | 30 por API key |
Si necesitas límites más altos para tu integración, contacta al equipo en integraciones@platica.mx para evaluar tu caso.
Headers de Rate Limiting
Las respuestas incluyen headers que te ayudan a monitorear tu uso:
| Header | Descripción |
|---|---|
X-RateLimit-Limit | Número máximo de peticiones permitidas |
X-RateLimit-Remaining | Peticiones restantes en la ventana actual |
X-RateLimit-Reset | Timestamp cuando se reinicia el límite |
Cuando recibes un error 429, espera el tiempo indicado en X-RateLimit-Reset antes de reintentar. Implementar backoff exponencial es una buena práctica.
Mejores Prácticas
Para manejar errores de forma efectiva:
- Siempre verifica el código de estado antes de procesar la respuesta
- Implementa reintentos con backoff exponencial para errores
502,503y504 - No reintentes errores
4xxsin corregir la solicitud - Monitorea los headers de rate limiting para evitar exceder límites
- Registra los errores con el campo
detailspara debugging
Antes de reintentar un 502 o 504 de un endpoint síncrono, consulta el recurso: la operación puede
haber terminado aunque la conexión HTTP haya fallado. Un 409 por conversación ocupada sí puede
reintentarse con backoff.
Soporte Técnico
Si necesitas ayuda con la integración o tienes preguntas:
| Canal | Contacto |
|---|---|
| Integraciones y API | integraciones@platica.mx |
| Soporte General | soporte@platica.mx |
Para una resolución más rápida, incluye en tu solicitud: el endpoint utilizado, el cuerpo de la petición, la respuesta recibida y tu API key (solo los últimos 4 caracteres por seguridad).