Skip to main content
Polling tells you when you ask. Webhooks tell you when it happens. Register a URL once and ScripX POSTs you every milestone: match, settlement, payout.

Register

The response returns your signing_secret (whsec_…) exactly once. Store it like a password; every later view of the webhook is masked. Subscribe to one event or * for all. The current event catalog is in the Webhook events annexure and is also returned live by GET /v1/webhooks.

Every delivery is signed

Each POST carries: Verify before you trust:
Sign-check the raw body bytes, before any JSON parsing or re-serialisation. A pretty-printer changes the bytes and the signature stops matching.

Retries and dead-letters

  • Transient failures (network, 5xx, 429) retry with backoff up to the attempt cap.
  • Permanent failures (any other 4xx) skip retries and dead-letter immediately.
  • Exhausted retries dead-letter too.
Nothing is lost: list dead-letters with GET /v1/webhooks/failures and push them again with POST /v1/webhooks/replay. Deliveries can arrive more than once; dedupe on X-ScripX-Delivery.

Receiver rules of thumb

  1. Return 2xx fast; do the work async. Slow receivers look like failures and get retried.
  2. Verify the signature, then dedupe on the delivery id.
  3. Treat the event as a hint and re-read the resource for authoritative state.