Webhooks
Receive asynchronous events on your backend.
Configuration
| Account | Where to configure |
|---|---|
| Partner | Partner Hub / partner settings (webhook_url, webhook_secret) |
| Developer | /dev/settings dashboard or PUT /api/v1/dev/settings |
See Developers for developer webhooks.
Signature
Requests include:
X-Seed360-Signature: <hmac_hex>
X-Seed360-Event: message.status
Verify the signature using your webhook secret (HMAC-SHA256 over the raw body). Reject invalid signatures.
Event types
| Event | When |
|---|---|
message.status | Delivery state changed |
conversation.message | New message in a support conversation |
account.claimed | User completed claiming / linking |
template.status | Template approved / rejected |
Example payload
{
"event": "message.status",
"partner": "seed",
"message_ref": "52c22ee0…",
"state": "delivered",
"channel": "inapp",
"phone": "+228XXXXXXXX",
"at": "2026-07-21T07:10:00Z"
}
Test endpoint
POST /api/v1/webhooks/test - triggers an example callback to your configured URL when enabled.
Best practices
- Respond with
2xxpromptly and process asynchronously - Use idempotent handlers because events may be retried
- Use TLS only
- Log signature failures for security monitoring