Initial BizOne portal setup
This commit is contained in:
45
reference/05-webhook-spec.md
Normal file
45
reference/05-webhook-spec.md
Normal file
@ -0,0 +1,45 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user