Skip to main content
Webhooks push notifications to your endpoint as events happen, so you do not have to poll for updates. Because charges and payouts settle asynchronously, webhooks are the primary way you learn that money actually moved.

Set up a webhook

1

Log in to your dashboard

2

Open Webhooks

Find the Webhooks section in the sidebar.
3

Add your URL

Register an HTTPS endpoint. Sandbox and production are configured separately.
4

Verify signatures

Before trusting any payload, check the signature. See Webhook secrets.
You can read back your currently configured webhook URLs for both environments through Get User.

Delivery behaviour

Keep your handler lightweight. Acknowledge with a 2xx immediately and offload database writes, notifications, and other slow work to a background job. Doing that work inline is the usual cause of the 15-second timeout — and a timeout means a retry, which means you may process the same event twice.

Writing a reliable handler

Validate the signature, enqueue the payload, return 200. Anything else belongs in a worker.
Retries mean the same event can arrive more than once, and events can arrive out of order. Key your processing on transactionId (or your externalReference) and ignore an event that would move a transaction backwards from a terminal state.
For anything irreversible, confirm against Get Transaction before releasing value.
A non-2xx tells Zerocash the delivery failed and triggers a retry. If you receive an event type you do not handle, acknowledge it anyway.

Inspecting and replaying deliveries

Simulate Webhook lets you exercise your handler against every event shape without running real transactions — useful for testing failure paths that are hard to trigger on demand.

Next

Webhook secrets

Verify that a request genuinely came from Zerocash.

Event types & structures

The base envelope, event names, and transaction types.