> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zynvo.uy/llms.txt
> Use this file to discover all available pages before exploring further.

# Códigos de Respuestas

> Formatos de respuesta, códigos HTTP y códigos de error del API

## Formato de Respuesta

Todas las respuestas del API están en formato JSON y siguen una estructura consistente:

### Respuestas Exitosas

```json theme={null}
{
  "data": { ... },
  "errors": [ ... ]
}
```

### Respuestas de Error

```json theme={null}
{
  "error": {
    "code": "ERROR_CODE",
    "message": "Descripción del error"
  }
}
```

## Códigos de Estado HTTP

El API utiliza códigos de estado HTTP estándar:

| Código | Descripción                                 |
| ------ | ------------------------------------------- |
| `200`  | Solicitud exitosa                           |
| `201`  | Recurso creado exitosamente                 |
| `400`  | Solicitud incorrecta (parámetros inválidos) |
| `401`  | No autenticado                              |
| `403`  | No autorizado                               |
| `404`  | Recurso no encontrado                       |
| `405`  | Método HTTP no permitido                    |
| `500`  | Error interno del servidor                  |

## Errores de Autenticación (401)

| Código                         | Descripción                                                                     |
| ------------------------------ | ------------------------------------------------------------------------------- |
| `MISSING_API_KEY`              | El header `X-API-Key` es requerido                                              |
| `INVALID_API_KEY`              | API Key inválido, inactivo o no coincide con el ambiente (sandbox/production)   |
| `API_KEY_ENVIRONMENT_MISMATCH` | El API Key no coincide con el ambiente solicitado en el header `X-Sandbox-Mode` |
| `UNAUTHORIZED`                 | El header `Authorization` es requerido o tiene formato inválido                 |
| `INVALID_TOKEN`                | Token JWT inválido o no contiene los claims requeridos                          |
| `TOKEN_EXPIRED`                | El token JWT ha expirado                                                        |

## Errores de Validación (400)

| Código                    | Descripción                                                                                 |
| ------------------------- | ------------------------------------------------------------------------------------------- |
| `INVALID_INPUT`           | Los datos proporcionados no cumplen con las reglas de validación. Ver mensaje para detalles |
| `MISSING_REQUIRED_FIELD`  | Falta un campo requerido. Ver mensaje para detalles                                         |
| `SANDBOX_NOT_SUPPORTED`   | Este endpoint no soporta modo sandbox                                                       |
| `RESOURCE_ALREADY_EXISTS` | El recurso que se intenta crear ya existe. Ver mensaje para detalles                        |

## Errores de Recursos (404, 405)

| Código               | Descripción                                         |
| -------------------- | --------------------------------------------------- |
| `ROUTE_NOT_FOUND`    | La ruta solicitada no existe                        |
| `METHOD_NOT_ALLOWED` | El método HTTP no está permitido para este endpoint |

## Errores del Servidor (500)

| Código                    | Descripción                             |
| ------------------------- | --------------------------------------- |
| `INTERNAL_ERROR`          | Error interno del servidor              |
| `AUTH_ERROR`              | Error en el proceso de autenticación    |
| `API_KEY_CREATION_FAILED` | Fallo al crear el API Key               |
| `ASSOCIATION_FAILED`      | Fallo al asociar API Key con Usage Plan |
| `CREATION_FAILED`         | Fallo al crear API Key                  |
