Webhooks overview
Receive signed, retried server-to-server events from Drazill instead of polling.
Webhooks push events to your backend the moment they happen — an order fills, a market resolves, a wallet balance changes — so you don’t have to poll for state that only Drazill knows.
Webhooks are a notification channel. They never gate money movement or trading; a delivery failure never affects your balance, orders, or positions. Treat every event as a signal to re-read authoritative state over REST.
Manage endpoints
Register an endpoint and the events you want in the
developer dashboard, or over the API with a key that has
the webhooks:write scope (reads need webhooks:read). Replace $KEY with your key.
URL requirements. In production your URL must be https://. Hosts that resolve to
private, loopback, link-local, or cloud-metadata addresses are rejected at registration
and re-checked at delivery time (DNS-rebinding defense), and redirects are not followed.
The request Drazill sends
Each delivery is a POST with a compact, sorted-key JSON body (the signed bytes) and these
headers:
Every delivery also carries Content-Type: application/json and
User-Agent: Drazill-Webhooks/1.0.
The JSON body is the event envelope:
data carries only the fields declared by that event’s schema — payloads are validated
against their schema and re-serialized before signing, so no internal or personal field can
ever leak, and money is always a decimal string (never a float).

