Zapier & Make Integration
XRPL Request webhooks fire when a payload is signed, rejected, or expires. You can point those webhooks directly at a Zapier Catch Hook or a Make (formerly Integromat) HTTP module to trigger any downstream automation — no custom server required.
Webhooks are available on the Pro plan. Deliveries are signed with HMAC-SHA256; Zapier and Make can verify the signature using their built-in digest/hash steps.
What you can automate
- Send a Slack/Discord message when a transaction is confirmed
- Add a row to Google Sheets when a user connects their wallet
- Create a CRM record on a signed payload
- Notify your team in email when a signing request expires
- Trigger a Shopify order fulfillment after payment confirmation
Zapier
Create a Zap with a Webhook trigger
- Create a new Zap
- Choose Webhooks by Zapier as the trigger
- Select Catch Hook
- Copy the webhook URL Zapier gives you (looks like
https://hooks.zapier.com/hooks/catch/...)
Register the URL in XRPL Request
curl -X POST https://xrplre.quest/api/v1/webhooks \
-H "Authorization: Bearer xrplr_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://hooks.zapier.com/hooks/catch/...",
"events": ["payload.signed"]
}'You can also register it from your project page in the dashboard.
Send a test payload
Create a payload, sign it in the browser, and Zapier will receive the delivery and show the data structure.
Map the fields
The webhook body contains:
{
"event": "payload.signed",
"payload": {
"uuid": "550e8400-...",
"type": "signAndSubmit",
"status": "signed",
"signerAddress": "rGWrZyax...",
"txHash": "A1B2C3...",
"txBlob": null,
"walletAdapter": "crossmark",
"createdAt": "2026-01-01T12:00:00.000Z",
"resolvedAt": "2026-01-01T12:01:23.000Z"
}
}Use payload.signerAddress, payload.txHash, payload.walletAdapter, etc. in subsequent Zap steps.
Add your action steps
Examples:
- Slack → send
"✅ Payment confirmed! Tx: {{payload.txHash}}" - Google Sheets → append row:
signerAddress | txHash | resolvedAt - Gmail → email a receipt to the buyer
Make (Integromat)
Create a new scenario
- Open Make and create a new scenario
- Add a Webhooks → Custom webhook module as the trigger
- Copy the webhook URL Make provides
Register the URL in XRPL Request
curl -X POST https://xrplre.quest/api/v1/webhooks \
-H "Authorization: Bearer xrplr_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://hook.make.com/...",
"events": ["payload.signed", "payload.rejected"]
}'Determine the data structure
Click Re-determine data structure in Make and sign a test payload. Make will infer the schema from the real delivery.
Add modules
Chain any Make module after the webhook trigger:
- Slack — post message
- Airtable — create record
- HTTP — call your own API to mark an order as paid
- Email (SMTP) — send confirmation
Filtering by event type
All three event types share the same payload shape. Filter in Zapier/Make using the event field:
event value | Meaning |
|---|---|
payload.signed | User signed (and optionally submitted) the transaction |
payload.rejected | User explicitly rejected the request |
payload.expired | Request timed out without action |
In Zapier, add a Filter step: continue only if event equals payload.signed.
In Make, add a Router with a filter condition on event.
Verifying signatures (optional but recommended)
Pro webhooks include an X-XRPL-Request-Signature: sha256=<hex> header. Both Zapier and Make can verify it:
// Zapier Code step (Node.js)
const crypto = require("crypto");
const secret = process.env.WEBHOOK_SECRET; // stored in Zapier Storage
const rawBody = inputData.rawBody;
const sig = inputData.signature.replace("sha256=", "");
const expected = crypto
.createHmac("sha256", secret)
.update(rawBody)
.digest("hex");
const valid = crypto.timingSafeEqual(
Buffer.from(sig, "hex"),
Buffer.from(expected, "hex")
);
output = [{ valid }];No-code alternative: email notifications
If you just want email alerts on sign events without Zapier or Make, XRPL Request already sends:
- Usage warnings at 80% of your monthly payload limit
- Webhook failure alerts after all retries are exhausted
Enable them by keeping a valid email on your account.