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.

No code required. If you can drag and drop, you can automate Monero payments. Our webhooks turn XMR into just another trigger in your workflow.

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

  1. Log in to Make.com and create a new Scenario
  2. Click the + button and search for "Webhooks"
  3. Select "Custom webhook" as your trigger
  4. Click "Add" to create a new webhook
  5. Give it a name like "Rebel Pay Payments"
  6. Make.com will generate a URL like:
    https://hook.make.com/abc123xyz...
  7. Copy this URL

Step 2: Register the Webhook in Rebel Pay

  1. Go to your Rebel Pay Settings → Webhooks
  2. Paste the Make.com URL into the webhook URL field
  3. Select the events you want:
    • charge.confirmed — payment received and verified
    • charge.expired — charge timed out
    • charge.underpaid — partial payment received
  4. Save the webhook — note the secret key (for signature verification later)

Step 3: Test the Connection

  1. Back in Make.com, click "Redetermine data structure" on the webhook module
  2. Create a test charge in Rebel Pay (from the Charges page or via API)
  3. Make.com should receive the charge.created event and map the fields automatically

Step 4: Build Your Automation

Now connect additional modules to the webhook trigger. Examples:

Example: Payment → Email Notification
  1. Trigger: Webhooks → Custom webhook (Rebel Pay)
  2. Filter: Only continue if event = charge.confirmed
  3. Action: Email → Send an email
    • To: your email
    • Subject: "Payment received: {{data.amount}} {{data.currency}}"
    • Body: "Charge {{data.id}} confirmed. TX: {{data.tx_hash}}"
Example: Payment → Google Sheets Logging
  1. Trigger: Rebel Pay webhook
  2. Filter: event = charge.confirmed
  3. 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}}
Example: Payment → Discord Notification
  1. Trigger: Rebel Pay webhook
  2. Filter: event = charge.confirmed
  3. 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

  1. Open your n8n instance and create a new Workflow
  2. Add a Webhook node (trigger)
  3. Set HTTP Method to POST
  4. Set Path to something memorable, e.g. /rebelpay
  5. Set Response Mode to "Immediately" (so we get a fast 200 response)
  6. Click "Listen for Test Event" to activate
  7. 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

  1. Go to Settings → Webhooks
  2. Add your n8n webhook URL (use the production URL, not the test one)
  3. Select events: charge.confirmed, charge.expired
  4. 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

Example: Payment → Activate Customer Account
  1. Webhook → receives charge.confirmed
  2. Code → verify signature
  3. Switch → route by event type
  4. 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 }}"
    }
Example: Payment → Telegram Alert
  1. Webhook → receives charge.confirmed
  2. Code → verify signature
  3. 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 }}
Example: Expiry → Retry Notification
  1. Webhook → receives charge.expired
  2. Code → verify signature
  3. HTTP Request → call your app to mark the order as expired
  4. 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.

1. Telegram Sales Alert

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.

2. Customer Email Receipt

Automatically email a branded payment receipt to customers when their charge is confirmed. Requires the buyer's email in metadata.buyer_fields.email.

⬇ Download email-receipt.json

Setup: Add SMTP credentials in n8n (your mail server or a service like SendGrid). The workflow skips sending if no email is present.

3. Google Sheets Order Log

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.

4. Daily Sales Summary Email

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.

5. Instant Order Fulfillment

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.

Webhook URL: After importing, each webhook-triggered workflow gets a unique URL from your n8n instance (e.g. 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_paymenttrue if 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