Accept Monero (XMR) payments in your Odoo 19 eCommerce shop via a self-hosted monero-wallet-rpc.
- Odoo 19.0
- Python 3.10+
moneroPython package (pip install monero)- A synced
monerodnode - A running
monero-wallet-rpcinstance (view-key wallet recommended)
- Copy the
monero-rpc-odoofolder into your Odoo addons directory. - Restart Odoo.
- Go to Apps → search for
monero_rpc_odoo→ Install.
Start monero-wallet-rpc with a view-only wallet:
monero-wallet-rpc \
--wallet-file /path/to/viewonly.wallet \
--rpc-bind-port 18082 \
--rpc-login user:password \
--disable-rpc-login # or keep login for securitySee the Monero Wallet RPC docs for full options.
- Go to Website → Configuration → Payment Providers.
- Find Monero and click Configure.
- Fill in:
- RPC Host — IP or hostname of your
monero-wallet-rpc(default:127.0.0.1) - RPC Port — port (default:
18082) - RPC User / Password — if authentication is enabled
- Security Level — number of confirmations required (0 = instant, 10 = high security)
- RPC Host — IP or hostname of your
- Set the provider to Enabled.
- Go to Accounting → Configuration → Currencies.
- Find XMR and set it to Active.
- The exchange rate is updated automatically every 15 minutes from CoinGecko.
- Customers browsing your eCommerce shop can select Monero at checkout.
- They are shown a unique subaddress and QR code with the exact XMR amount to send.
- The payment is detected automatically. The page redirects to the order confirmation once payment is received.
- Products can be priced in USD (or any currency) — the XMR amount is calculated at checkout using the live rate.
- Each order gets a unique, one-time subaddress — no address reuse.
- Use a view-only wallet on the server so the RPC cannot spend funds.
- Set a higher confirmation level for large orders.
The demo runs on a self-hosted Odoo 19 instance tunnelled through ngrok — providing a public HTTPS URL without a dedicated server or SSL certificate.
Demo store: https://griffinish-yuette-nonevadingly.ngrok-free.app
Browse products, go through checkout, and pay with stagenet XMR.
- Guest checkout enabled — no account required
- Privacy tip: Use any name and a dummy email — no personal details are required or verified
- Uses Monero Stagenet (sXMR) — NOT real XMR. Do not send real funds.
Get free stagenet XMR: https://cypherfaucet.com/xmr-stagenet
ngrok is the easiest way to get a public HTTPS URL for a local or server-hosted Odoo instance — useful for demos, testing webhooks, or sharing access without a domain.
1. Install ngrok
curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
| sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null
echo "deb https://ngrok-agent.s3.amazonaws.com buster main" \
| sudo tee /etc/apt/sources.list.d/ngrok.list
sudo apt update && sudo apt install ngrok2. Authenticate
ngrok config add-authtoken YOUR_TOKENGet your token at https://dashboard.ngrok.com
3. Start the tunnel
ngrok http 8069ngrok prints a public HTTPS URL (e.g. https://abc123.ngrok-free.app) that forwards to your Odoo instance.
4. Configure Odoo
Add to odoo.conf:
proxy_mode = TrueThen go to Settings → Technical → System Parameters and set web.base.url to your ngrok URL.
Report issues on GitHub Issues.
Maintainer: Monero Integrations


