Monero (XMR) is the coin privacy-minded customers ask for. VPN resellers, hosting companies, software sellers and privacy tool makers hear the request most, but any store with a technical audience may get it. Accepting it works a little differently from Bitcoin or USDT, because on Monero the details that other coins make public are hidden. This guide explains what changes, how to set it up with Payfim, and what to think through first. For the setup reference (address format, defaults and settings) see the Monero coin page.
Why is Monero different from Bitcoin for merchants?
On Bitcoin, anyone can paste your address into an explorer and see every payment it received. That is convenient for payment software and bad for privacy. Monero turns this around. According to the Monero project, every transaction is private by default, using ring signatures to obscure the sender, RingCT to hide the amount and stealth addresses to hide the receiver. There is no transparent mode to fall into by accident.
For a merchant, the consequence is simple: your checkout cannot confirm payments just by looking at a public address. It needs a key that lets it recognize payments meant for you.
What is a Monero view key, and is it safe to share with software?
Every Monero wallet has two private keys. The spend key moves funds; it must never leave your wallet. The view key lets its holder see incoming transactions to your address, and nothing more. It cannot move funds.
That split is what makes self-hosted Monero checkout possible. Payfim uses the view key (or a view-only wallet built from it) to detect payments, and never asks for, stores or needs your spend key or seed. A compromised web server could reveal which payments you received, which is a privacy loss, but it could not take your XMR.
Which Payfim mode should you use: wallet RPC or explorer?
| Wallet RPC (recommended) | Explorer + view key (easiest) | |
|---|---|---|
| What you run | A view-only wallet with monero-wallet-rpc, on your own server or VPS | Nothing extra; Payfim queries a Monero block explorer |
| How invoices are told apart | A fresh subaddress for every invoice | A unique amount per invoice on your main address |
| Who sees your incoming payments | Only you | You and the operator of the explorer you choose |
| Top-up payments | Several transfers to the same subaddress add up | One transfer per invoice |
| Works on shared hosting alone | Only if the RPC runs elsewhere | Yes |
Wallet RPC mode suits merchants who take Monero seriously. You run a view-only wallet with the RPC interface, protected by a username and password, and point Payfim at its URL. Each invoice gets its own subaddress, so payments are matched without odd amounts and customers can even pay in two parts. Nothing about your incoming payments leaves your infrastructure.
Explorer mode suits merchants testing demand or running on shared hosting only. You paste your main address and private view key, and Payfim asks a Monero explorer which recent outputs belong to you. The trade-off is that your view key is sent to that explorer, so its operator could see your incoming payments. Pick an explorer you trust, or run your own. Explorer mode scans only the most recent blocks and the mempool on each check, so the one-minute cron job is essential; without it, payments can be missed.
How do you run monero-wallet-rpc safely for a store?
If you choose wallet RPC mode, the RPC endpoint becomes part of your payment infrastructure, so treat it that way:
- Use a view-only wallet. Create it from your primary address and private view key. Even if the RPC is exposed by mistake, it cannot spend.
- Require a login and TLS. Set an RPC username and password, and put the endpoint behind HTTPS so the gateway's requests are encrypted.
- Restrict who can connect. Allow connections only from your gateway server's IP address with a firewall rule.
- Keep it synced and monitored. A wallet that falls behind the chain will report payments late. Check it after server restarts, and use the gateway's Test button to confirm it responds.
Payfim labels each subaddress it creates with the invoice number (for example payfim-1042), so when you open the wallet later you can see at a glance which incoming payment belonged to which invoice. That makes reconciliation easier than matching amounts by hand.
How do you set up Monero in Payfim?
- Create or open a Monero wallet you control. Your primary address starts with
4. - In the gateway, open Wallets & coins, paste the address next to Monero and choose the verification method.
- For wallet RPC mode, enter the RPC URL (for example
https://your-node:18083/json_rpc), user and password. For explorer mode, enter your private view key and the explorer URL. - Keep the default of two confirmations or adjust it, enable the coin and click Test.
- Make a small real payment from another wallet and confirm the order is marked paid.
The full gateway walkthrough is in installing the Payfim Gateway and adding your wallets.
What should you consider before accepting Monero?
Converting or spending XMR
Some large exchanges have stopped supporting Monero; Binance, for example, announced its delisting in February 2024. Before you switch Monero on, decide how you will use what you receive: pay suppliers who accept it, hold it, or convert through a service available in your country. If conversion is hard where you are, cap Monero at a share of sales you are comfortable holding.
Compliance and record-keeping
Privacy for customers does not remove your own obligations. Keep the invoice records Payfim stores (order, fiat amount, XMR amount, rate and transaction ID) exactly as you would for any other coin. Some jurisdictions treat privacy coins with extra caution, and rules differ widely, so ask a qualified adviser what applies to your business before you launch.
Price volatility
Monero is not a stablecoin. The rate is locked for 30 minutes by default while the customer pays, but after that the value of what you hold moves with the market. Offering a stablecoin alongside XMR lets customers who do not need privacy pick a steadier option.
How do customers pay with Monero?
From the customer's side, it looks like any other Payfim checkout: pick Monero, scan the QR code or copy the address and amount, and send from their wallet. In wallet RPC mode they see a fresh subaddress that nobody else has been given; in explorer mode they see your main address with an exact amount. The page shows when the payment has been detected, and the order updates once it has the confirmations you set. Customers should always send the exact amount shown, and in explorer mode especially, because the amount is how their payment is recognized.
What if a customer says they paid but the invoice has not updated?
Because you cannot look up a Monero payment on a public explorer the way you would for Bitcoin, check from your side. Ask the customer for the transaction ID, then open the invoice in the gateway and click Check blockchain now. In wallet RPC mode, also confirm that your view-only wallet is fully synced. In explorer mode, remember that only recent blocks are scanned: if the cron job was stopped for a while, a payment can fall outside that window. In that case, confirm the incoming transfer in your own wallet and use Mark as paid manually with the transaction ID, then fix the cron job so it does not happen again.
Is Monero right for your store?
Monero makes the most sense when your customers value privacy as part of what they are buying. For a VPN, a privacy-focused host or a security tool, offering it signals that you understand your audience. For a general retail store, it is usually a later addition after the basics (Bitcoin, USDT on TRON and Litecoin) are working. Our guide to choosing which coins to accept helps you decide, and crypto payments for hosting companies covers an industry where Monero requests are common.
Sources
Third-party facts were checked on the date shown above. Prices and features of other services change - always confirm on their official pages.

