# Zapini API — Webhooks

**Version:** 1.2.0
**Base URL:** `https://zapini.app/api/v1`

---

## Authentication

All endpoints require a Bearer Token:

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

Generate API tokens in your admin panel under **API Docs → Manage Tokens**.

---

## Webhooks

Configure webhooks to receive real-time events from your WhatsApp instances.

### Available Events

| Event | Description |
|-------|-------------|
| message.received | New message received |
| message.sent | Message sent |
| message.delivered | Message delivered |
| message.read | Message read |
| message.failed | Send failed |
| instance.connected | Instance connected |
| instance.disconnected | Instance disconnected |
| instance.qr_ready | QR Code available |

### Payload Format

```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"
    }
  }
}
```

### Webhook URLs

Configure the following webhook URLs in your instance settings:

| Webhook | URL Pattern |
|---------|-------------|
| Incoming messages | `/webhooks/instance/{uuid}/incoming` |
| Outgoing messages | `/webhooks/instance/{uuid}/outgoing` |
| Message status | `/webhooks/instance/{uuid}/message-status` |
| Connection status | `/webhooks/instance/{uuid}/status` |
| QR Code | `/webhooks/instance/{uuid}/qr` |
| Reactions | `/webhooks/instance/{uuid}/reaction` |
| Deleted messages | `/webhooks/instance/{uuid}/message-deleted` |
| Contact updates | `/webhooks/instance/{uuid}/contact-update` |

---

## Support

- **Email:** support@zapini.app
- **Documentation:** https://zapini.app/docs

---

*Generated by Zapini — https://zapini.app*
