Integrations
Rebel Pay webhooks are standard HTTP POST requests with JSON payloads. This means they work natively with every major automation platform — no custom code, no plugins, no middleware.
Accept Monero and plug it into the same automation stack you use for everything else.
Supported Platforms
- Make.com (formerly Integromat) — visual automation with 1,500+ app connections
- n8n — self-hosted, open-source automation (privacy-friendly)
- Zapier — works via Webhooks by Zapier
- Pipedream — developer-focused, supports raw webhooks
- Any platform with webhook triggers — if it accepts HTTP POST, it works
Below are step-by-step guides for the two most popular options. The pattern is the same for any platform.
Make.com Setup
Make.com (formerly Integromat) lets you build visual automation "scenarios" that trigger when events happen. Here's how to connect Rebel Pay.
Step 1: Create a Webhook Trigger
- Log in to Make.com and create a new Scenario
- Click the + button and search for "Webhooks"
- Select "Custom webhook" as your trigger
- Click "Add" to create a new webhook
- Give it a name like "Rebel Pay Payments"
- Make.com will generate a URL like:
https://hook.make.com/abc123xyz... - Copy this URL
Step 2: Register the Webhook in Rebel Pay
- Go to your Rebel Pay Settings → Webhooks
- Paste the Make.com URL into the webhook URL field
- Select the events you want:
charge.confirmed— payment received and verifiedcharge.expired— charge timed outcharge.underpaid— partial payment received
- Save the webhook — note the secret key (for signature verification later)
Step 3: Test the Connection
- Back in Make.com, click "Redetermine data structure" on the webhook module
- Create a test charge in Rebel Pay (from the Charges page or via API)
- Make.com should receive the
charge.createdevent and map the fields automatically
Step 4: Build Your Automation
Now connect additional modules to the webhook trigger. Examples:
- Trigger: Webhooks → Custom webhook (Rebel Pay)
- Filter: Only continue if
event=charge.confirmed - Action: Email → Send an email
- To: your email
- Subject: "Payment received: {{data.amount}} {{data.currency}}"
- Body: "Charge {{data.id}} confirmed. TX: {{data.tx_hash}}"
- Trigger: Rebel Pay webhook
- Filter:
event=charge.confirmed - Action: Google Sheets → Add a row
- Column A: {{data.id}}
- Column B: {{data.amount}} {{data.currency}}
- Column C: {{data.amount_xmr}} XMR
- Column D: {{data.confirmed_at}}
- Column E: {{data.metadata.order_id}}
- Trigger: Rebel Pay webhook
- Filter:
event=charge.confirmed - Action: Discord → Send a message
- Channel: #payments
- Message: "💰 New payment: {{data.amount}} {{data.currency}} ({{data.amount_xmr}} XMR) — Order {{data.metadata.order_id}}"
Signature Verification in Make.com
To verify webhook authenticity, add a Tools → Set variable module before your actions:
Variable name: expected_signature
Value: {{sha256(body; "your_webhook_secret_here")}}
Then add a Filter between the webhook and your actions:
Condition: {{headers.x-rebelpay-signature}} equals {{expected_signature}}
n8n Setup
n8n is an open-source, self-hostable automation platform. Perfect for privacy-conscious merchants who want to keep their automations off third-party servers.
Step 1: Create a Webhook Node
- Open your n8n instance and create a new Workflow
- Add a Webhook node (trigger)
- Set HTTP Method to POST
- Set Path to something memorable, e.g.
/rebelpay - Set Response Mode to "Immediately" (so we get a fast 200 response)
- Click "Listen for Test Event" to activate
- Your webhook URL will be:
https://your-n8n.example.com/webhook/rebelpay
or for testing:
https://your-n8n.example.com/webhook-test/rebelpay
Step 2: Register in Rebel Pay
- Go to Settings → Webhooks
- Add your n8n webhook URL (use the production URL, not the test one)
- Select events:
charge.confirmed,charge.expired - Save and note the webhook secret
Step 3: Verify Webhook Signature
Add a Code node after the webhook trigger to verify the HMAC signature:
// n8n Code node — verify Rebel Pay webhook signature
const crypto = require('crypto');
const secret = 'your_webhook_secret_here';
const signature = $input.first().headers['x-rebelpay-signature'];
const body = JSON.stringify($input.first().json);
const expected = crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex');
if (signature !== expected) {
throw new Error('Invalid webhook signature');
}
// Pass through the verified data
return $input.all();
Step 4: Route by Event Type
Add a Switch node to handle different events:
Switch on: {{ $json.event }}
Routes:
"charge.confirmed" → [fulfillment actions]
"charge.expired" → [expiry handling]
"charge.underpaid" → [manual review]
Example Workflows
- Webhook → receives
charge.confirmed - Code → verify signature
- Switch → route by event type
- HTTP Request → POST to your app's API:
POST https://yourapp.com/api/activate { "user_id": "{{ $json.data.metadata.customer_id }}", "plan": "{{ $json.data.metadata.plan }}", "charge_id": "{{ $json.data.id }}" }
- Webhook → receives
charge.confirmed - Code → verify signature
- Telegram → Send message:
💰 Payment confirmed! Amount: {{ $json.data.amount }} {{ $json.data.currency }} XMR: {{ $json.data.amount_xmr }} Order: {{ $json.data.metadata.order_id }} TX: {{ $json.data.tx_hash }}
- Webhook → receives
charge.expired - Code → verify signature
- HTTP Request → call your app to mark the order as expired
- Email → send customer a "payment didn't complete" message with a new checkout link
Why n8n for Monero Merchants
n8n can be self-hosted on the same server as your application. Your payment data never touches a third-party cloud. This makes it the ideal automation platform for privacy-focused businesses:
- Self-hosted — your data stays on your infrastructure
- Open source — fully auditable
- Docker deployment — one command to run
- No account required — no email, no KYC, no tracking
- 200+ integrations — databases, APIs, messaging, CRMs
n8n Workflow Templates
Download ready-made n8n workflows and import them directly into your instance. Each template is a single JSON file — just go to Workflow → Import from File in n8n and you're live in under a minute.
Get a Telegram message every time a payment confirms. Great for real-time sales monitoring from your phone.
⬇ Download telegram-sales-alert.json
Setup: Create a Telegram bot via @BotFather, add the bot token as a Telegram credential in n8n, and set your chat ID in the "Send Telegram" node.
Automatically email a branded payment receipt to customers when their charge is confirmed. Requires the buyer's email in metadata.buyer_fields.email.
Setup: Add SMTP credentials in n8n (your mail server or a service like SendGrid). The workflow skips sending if no email is present.
Append every confirmed payment as a new row in a Google Sheet — date, charge ID, USD amount, XMR amount, description, and status.
⬇ Download google-sheets-order-log.json
Setup: Connect Google Sheets OAuth in n8n. Create a sheet with columns: Date, Charge ID, Amount USD, Amount XMR, Description, Status. Paste your spreadsheet ID into the node.
Runs at 6 PM daily — fetches all charges from the Rebel Pay API, filters to today's confirmed payments, and emails you a summary with total USD, total XMR, and order count.
⬇ Download daily-sales-summary.json
Setup: Add your Rebel Pay API key as an HTTP Header Auth credential. Set the recipient email in the "Send Summary Email" node. Add SMTP credentials.
Automatically deliver digital products on payment. Looks up the product in a Google Sheet by description, emails the buyer their download link or license key, and marks the row as delivered.
⬇ Download instant-order-fulfillment.json
Setup: Create a "Products" sheet with columns: Product Name, Download URL, License Key, Status, Delivered At, Charge ID. Connect Google Sheets OAuth and SMTP credentials in n8n. Ensure charges include metadata.buyer_fields.email and metadata.description.
https://your-n8n.example.com/webhook/rebelpay-confirmed).
Register this URL in your Rebel Pay
Settings → Webhooks
for the charge.confirmed event.
Webhook Payload Reference
Every webhook POST has the same structure, regardless of which platform receives it:
POST https://your-automation-url.com/webhook
Content-Type: application/json
X-REBELPAY-SIGNATURE: <hmac-sha256-hex>
{
"event": "charge.confirmed",
"data": {
"id": "ch_abc123def456",
"amount": 25.00,
"currency": "USD",
"amount_xmr": 0.071428571428,
"subaddress": "84Hv16y6x7BTie3ib...",
"status": "confirmed",
"tx_hash": "d2a4ab074842...",
"confirmations": 10,
"metadata": {
"order_id": "order_789",
"customer_id": "cust_123",
"plan": "premium"
},
"late_payment": false,
"created_at": "2026-02-15T10:00:00.000Z",
"confirmed_at": "2026-02-15T10:20:00.000Z"
},
"timestamp": "2026-02-15T10:20:00.000Z"
}
Available Events
| Event | When it fires | Typical action |
|---|---|---|
charge.created |
New charge created | Log, start timer |
charge.pending |
Payment detected in mempool | Show "processing" to customer |
charge.confirmed |
10 confirmations reached | Fulfill order, activate account |
charge.expired |
60 min timeout, no payment | Cancel order, notify customer |
charge.underpaid |
Payment less than required | Flag for manual review |
payout.sent |
Funds forwarded to merchant wallet | Update bookkeeping |
Key Fields for Automation
data.metadata— your custom JSON. Use this to tie payments to orders, users, plans, or anything else in your system.data.late_payment—trueif payment arrived after the charge expired. Handle gracefully (the customer paid, just slowly).data.tx_hash— Monero transaction hash. Use for on-chain verification or customer receipts.data.amount+data.currency— original fiat amount. Match against your order records.
More Ideas
Once your webhooks are flowing into an automation platform, the possibilities are wide open:
- CRM updates — add payment records to HubSpot, Salesforce, or Notion
- Inventory management — decrement stock when payment confirms
- Discord/Telegram roles — grant premium access on payment
- Accounting — auto-log to QuickBooks, Xero, or a spreadsheet
- Subscription management — activate/extend subscriptions on confirmed charges
- Refund workflow — trigger manual review for underpayments
- Analytics — pipe events to Mixpanel, PostHog, or your own dashboard
- Multi-step fulfillment — confirm → generate license key → email to customer → update CRM
Next Steps
- Webhooks — full event reference and signature verification code
- Custom Integration — build your own payment page
- API Reference — all endpoints