How to accept Monero (XMR)
Monero connects to QryptoPay differently from the other networks, so we've put the whole path in one article: what has to be ready beforehand, how accepting XMR differs from the other currencies, how to connect the wallet and the node, and how to confirm that the money arrives.
What you need first
Accepting Monero is the last step, not the first: it's set up on top of a module that already works. By this point you should have:
- The QryptoPay module installed and a merchant created — see QryptoPay quick start.
- A payment page created and reachable on your domain — see Setting up the QryptoPay payment page.
- Your store integration configured and taken through a test payment — terminal tokens, payment links, and the webhook; see Store integration with QryptoPay.
- The Monero item added to your licence — see How to get a licence.
⚠️ Without the licence item, Monero won't appear in the currency list
You can still create the wallet and it will work, but the customer won't be offered Monero on the payment page. If XMR hasn't shown up in the merchant's currency list, start troubleshooting with the licence.
If any of the first three isn't done yet, go back to the matching article: without a payment page and a webhook, payments won't work in any currency, and Monero is no exception.
How accepting Monero differs from the other currencies
| Network | What you enter in the panel | Who can spend | Payouts and collection |
|---|---|---|---|
| Bitcoin, Litecoin | extended public key | only you, in your own app | not needed: the money is already yours |
| Ethereum, Tron | private key | the panel, at your payout threshold | yes |
| Monero | primary address and private view key | only you, in your own app | not needed: the money is already yours |
What the panel gets from you is not a key that can spend, but a key that can only watch: it sees incoming transfers, counts them into a balance, and settles invoices against them, but it can't move the money. Customer funds land on your wallet right away — there's nothing to collect from intermediate addresses.
That's why Monero has no payout wallet, no payout threshold, and no network fee reserve in the panel: the panel has nothing to spend.
Step 1. Connect the wallet
What to take from your wallet
Create a Monero wallet in any app you trust — the official Monero GUI Wallet, for instance, or the mobile Cake Wallet. The panel needs these values from it:
- the primary address — your wallet's public address, 95 characters, starting with
4; - the private view key — 64 hex characters.
In most apps the values sit next to each other in the wallet keys section: the address is on the main screen or the receive tab, and the view key is wherever the app shows your seed phrase.
⚠️ Don't mix the keys up
The panel needs the view key, not the private spend key and not the seed phrase. A view key lets you see incoming transfers and nothing else — handing it to the panel is safe. The spend key and the seed phrase give full access to the money; never share those.
What to fill in
Open QryptoPay → Overview → Latest wallets → Add wallet and fill in the fields:
- Name — any name you like, 2 to 64 characters;
- Blockchain — Monero;
- Primary address — your wallet's public address;
- Private view key — the key the panel will use to see incoming transfers;
- Notification email — the address for emails about the wallet's status.
There's nothing else to enter: no address format, no payout wallet, no start date. The panel works out for itself the point from which it starts watching the wallet.
ℹ️ An integrated address won't work
The panel only accepts the wallet's primary address. An integrated address (longer, at 106 characters) is rejected on save.
⚠️ Accounting starts when the wallet is connected
The wallet only sees payments received after it was connected. Anything that arrived on this wallet earlier will never show up in the panel: there's nothing to recalculate the history with in Monero. If you plan to accept payments on a wallet you've already used, the money on it stays yours — the panel simply won't show it.
Once saved, the panel starts issuing payment addresses from this wallet to your customers — nothing else to set up.
A server runs one Monero wallet
Monero is accepted on a single wallet — the panel issues customer addresses from it on its own, so a second one isn't needed. This applies to the whole server, not to an individual merchant: while an enabled Monero wallet exists on the server, you can't add another. Monero is greyed out in the creation dialog, and the toggle on a disabled wallet's card is locked; in both cases the panel explains why.
What this means in practice:
- To switch wallets, disable the current one first: turn off the toggle on its card, and creating a new one becomes available.
- A second merchant on the same server can't set up their own Monero wallet — Monero won't appear in their currency list. If several merchants need Monero with separate books, that takes a separate server.
Step 2. Pick a node
The panel gets network blocks through a Monero node. A public node is used by default — nothing to configure, and accepting payments works right after you add the wallet. That's a normal mode of operation rather than a stopgap: you can stay on a public node indefinitely.
If you run your own Monero node, connect it: QryptoPay → Settings → Nodes → the Monero row → Set up custom node. Your node's address goes into the Address field. The Username and Password fields are only needed if the node is locked down with monerod --rpc-login — usually the node sits on a closed network and these stay empty. You can go back to the public one from the same place, with Disconnect custom node — payments keep working throughout.
The same page shows, under each network, whether the panel is keeping up with it. If a warning appears for Monero, start by changing the node — and if the public one doesn't help either, see QryptoPay health monitoring.
Step 3. Verify with a test payment
The test terminal won't do here: it doesn't work with real networks and doesn't need wallets. This check runs on the production terminal and takes a real transfer — use the smallest amount you can.
- Generate a payment link from your store and open it.
- Pick Monero among the payment methods. If it isn't listed, check the licence item and that the wallet is enabled.
- Send the stated amount to the address on the payment page, from your own Monero app.
- Wait for confirmations: a payment is settled after 10 network confirmations, roughly 20 minutes. The counter is visible to the customer right on the payment page.
- Make sure your store received the webhook notification and the payment shows up on the merchant's Payments tab.
Money and notification both arrived — Monero payments are set up.
What the panel won't show for Monero
- The sender. The Monero network doesn't reveal which address the money came from — not to the panel, and not to a block explorer. So an incoming payment can only be tied to a customer through the data your store passed when the payment was created: for a payment that arrives without an invoice, the customer stays unknown.
- The Refresh balances button. Monero doesn't have one — there's nothing to recalculate, the panel reads the balance from the network anyway.
- A disabled wallet's balance. The card stays empty until you enable the wallet again; the money isn't going anywhere in the meantime.
- Wallet operations. Monero never appears in the operations log: there are no payouts, funds collections, or fee transfers here.
- Anything received before the wallet was connected — see the warning above.
What's next
- Manage wallets — balance, enabling, disabling, and deleting a wallet.
- How to add a wallet in QryptoPay — keys for the other networks.
- Currency fee settings in QryptoPay — the payment fee, Monero included.
- QryptoPay health monitoring — find out about an outage before your customers do.