Webhooks
React to donations, registrations, and more in real time.
Webhooks deliver events to a URL you control. Use them to sync donations to QuickBooks, post to Slack on new registrations, or trigger any custom workflow.
Configuring an endpoint
- Open Settings → Webhooks → New endpoint.
- Paste your URL (must be HTTPS).
- Pick the events you want to subscribe to.
- Save and copy the signing secret.
Verifying signatures
Every payload is signed with HMAC-SHA256. Verify the signature with the secret to confirm authenticity:
import crypto from "node:crypto";
const expected = crypto
.createHmac("sha256", secret)
.update(rawBody)
.digest("hex");
if (expected !== req.headers["x-masjiddesk-signature"]) {
return new Response("invalid", { status: 400 });
}Retries
Non-2xx responses are retried with exponential backoff for up to 24 hours. After that, the event is marked failed and visible in the dashboard for manual replay.