Documentation Index
Fetch the complete documentation index at: https://docs.privataswap.com/llms.txt
Use this file to discover all available pages before exploring further.
Two channels
| Channel | URL configured in | Events |
|---|---|---|
| Order events | Dashboard → Webhooks → Order URL | order.* |
| Ops events | Dashboard → Webhooks → Ops URL | webhook_paused, api_key_locked, sla_breach_threshold, provider_outage_affecting_partner, etc. |
hooks.slack.com
and format the payload as a Slack block.
Signature
Every request carries:Secret rotation
Rotate from the dashboard. We dual-sign with old and new secret for 5 minutes to give your handler time to deploy the new value. After 5 min the old secret is rejected.Retry schedule
7 attempts over 24 h:1m, 5m, 15m, 1h, 4h, 12h, 24h. After 50 failures in 6 h
the webhook URL is auto-paused — you get a webhook_paused ops event, and the
order events queue up but are not dropped (they replay on resume).
Resume manually with:
URL requirements
- HTTPS required in production. HTTP allowed only when URL is
http://localhost:*with apk_test_key. - Public IP. We block private ranges, cloud metadata endpoints (
169.254.169.254,metadata.google.internal) and link-local addresses via SSRF guard at registration. - DNS rebinding protection: we resolve and pin the IP for 5 min on first delivery.
Event payload
Sandbox
Webhooks fire from sandbox orders too, but with"sandbox": true field at the
top level. Filter or accept based on your testing strategy. Sandbox webhook
signatures use a separate whsec_test_... secret.