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

# Formato de respuestas y errores

> Estructura de las respuestas (data / meta / error) y los códigos HTTP que devuelve la API.

## Formato de respuestas

**Éxito** — siempre bajo `data`; las listas paginadas añaden `meta`.

```json Éxito theme={null}
{
  "data": { ... } | [ ... ],
  "meta": { "page": 1, "limit": 20, "total": 143 }
}
```

**Error** — siempre bajo `error` con un `code` estable para programar contra él.

```json Error theme={null}
{
  "error": {
    "code": "WHATSAPP_WINDOW_CLOSED",
    "message": "No hay mensaje entrante en las últimas 24 h; usa una plantilla."
  }
}
```

## Errores

| HTTP  | Cuándo                                                                                           |
| ----- | ------------------------------------------------------------------------------------------------ |
| `400` | Cuerpo inválido (validación de campos)                                                           |
| `401` | Falta la API key o es inválida / revocada / expirada                                             |
| `402` | El canal de WhatsApp tiene un problema de facturación en Meta                                    |
| `403` | La key no tiene el scope requerido, o el plan no incluye la función                              |
| `404` | El recurso no existe *en tu organización* (también si existe en otra: nunca se revela)           |
| `422` | Petición válida pero no ejecutable (ventana de 24 h cerrada, parámetros de plantilla faltantes…) |
| `429` | Rate limit                                                                                       |
| `502` | Error devuelto por WhatsApp/Meta al enviar                                                       |

La lista completa de `code` está en el [anexo de códigos de error](/desarrolladores/codigos-de-error).
