# Zapini API — Webhooks

**Versión:** 1.2.0
**Base URL:** `https://zapini.app/api/v1`

---

## Autenticación

Todos los endpoints requieren un Bearer Token:

```
Authorization: Bearer {your_token}
Accept: application/json
Content-Type: application/json
```

Genera tokens de API en el panel admin en **API Docs → Gestionar Tokens**.

---

## Webhooks

Configura webhooks para recibir eventos en tiempo real de tus instancias de WhatsApp.

### Eventos Disponibles

| Evento | Descripción |
|--------|-------------|
| message.received | Nuevo mensaje recibido |
| message.sent | Mensaje enviado |
| message.delivered | Mensaje entregado |
| message.read | Mensaje leído |
| message.failed | Error al enviar |
| instance.connected | Instancia conectada |
| instance.disconnected | Instancia desconectada |
| instance.qr_ready | Código QR disponible |

### Formato del Payload

```json
{
  "event": "message.received",
  "timestamp": "2025-01-15T10:30:00Z",
  "data": {
    "message": {
      "unique_id": "...",
      "direction": "incoming",
      "sender_number": "15551234567",
      "message_body": "Hello!"
    },
    "instance": {
      "uuid": "...",
      "phone_number": "15559876543"
    }
  }
}
```

### URLs de Webhook

Configura las siguientes URLs de webhook en la configuración de tu instancia:

| Webhook | Patrón de URL |
|---------|---------------|
| Mensajes entrantes | `/webhooks/instance/{uuid}/incoming` |
| Mensajes salientes | `/webhooks/instance/{uuid}/outgoing` |
| Estado de mensajes | `/webhooks/instance/{uuid}/message-status` |
| Estado de conexión | `/webhooks/instance/{uuid}/status` |
| Código QR | `/webhooks/instance/{uuid}/qr` |
| Reacciones | `/webhooks/instance/{uuid}/reaction` |
| Mensajes eliminados | `/webhooks/instance/{uuid}/message-deleted` |
| Actualizaciones de contactos | `/webhooks/instance/{uuid}/contact-update` |

---

## Soporte

- **Email:** support@zapini.app
- **Documentación:** https://zapini.app/docs

---

*Generado por Zapini — https://zapini.app*
