Webhooks
WakaPay can POST events to your HTTPS endpoint when crypto checkout payments are created, paid, or expired. Configure webhook URLs per organisation in the dashboard.Headers
Events:
payment.created | payment.paid | payment.expired
Verify the signature
- Read the raw HTTP body bytes (do not re-serialize JSON)
- Concatenate
X-Wakapay-Timestamp+"."+ raw body - HMAC-SHA256 with your organisation webhook secret
- Compare digests in constant time
- Reject if the timestamp is outside a ~5 minute window
Payload shape
Body is always{ "event": "...", "data": { ... } }. Use data.email (and other fields in data) to reconcile against your own users.