Files
BizOne-portal/reference/05-webhook-spec.md

46 lines
928 B
Markdown

# Webhook Specification
## Public Endpoints
- GET /webhooks/whatsapp
- POST /webhooks/whatsapp
- POST /webhooks/whatsapp/:provider
## Responsibilities
- Validate verification token or signature
- Store raw payload
- Detect duplicate event_id
- Enqueue processing job
- Return 200 quickly
## Internal Normalized Event Format
```json
{
"provider": "meta",
"event_type": "message.delivered",
"event_id": "evt_123",
"sender_phone": "628xxxx",
"recipient_phone": "628yyyy",
"external_message_id": "wamid.xxx",
"timestamp": "2026-05-08T06:00:00.000Z",
"payload": {}
}
```
## Internal Event Types
- message.inbound
- message.sent
- message.delivered
- message.read
- message.failed
- template.updated
- account.updated
## Processing Flow
1. Receive request
2. Verify authenticity
3. Save webhook_events record
4. Ignore duplicates
5. Push job to queue
6. Worker parses and updates data
7. Mark processed or failed