Payment Provider: BTCPay Server
by BTCPay Server team and contributors https://github.com/btcpayserver/odoo
Odoo
Availability |
Odoo Online
Odoo.sh
On Premise
|
Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
Lines of code | 474 |
Technical Name |
payment_btcpayserver |
License | GPL-3 |
Website | https://github.com/btcpayserver/odoo |
Versions | 16.0 17.0 18.0 |
Availability |
Odoo Online
Odoo.sh
On Premise
|
Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
Lines of code | 474 |
Technical Name |
payment_btcpayserver |
License | GPL-3 |
Website | https://github.com/btcpayserver/odoo |
Versions | 16.0 17.0 18.0 |
BTCPay Server Gateway
This module allows you to accept Bitcoin / Lightning Network (and other cryptocurrency) payments in your Odoo e-commerce store.

BTCPay Server for Odoo is a revolutionary, self-hosted, open-source payment gateway to accept Bitcoin payments. Our seamless integration with Odoo allows you to connect your self-hosted BTCPay Server and start accepting Bitcoin payments in just a few simple steps.
Features
- Zero fees: Enjoy a payment gateway with no fees. Yes, really!
- Fully automated system: BTCPay takes care of payments, invoice management and refunds automatically.
- Display Bitcoin QR code at checkout: Enhance customer experience with an easy and secure payment option.
- No middlemen or KYC:
- Direct, P2P payments (going directly to your wallet)
- Say goodbye to intermediaries and tedious paperwork
- Transaction information is only shared between you and your customer
- Self-hosted infrastructure: Maintain full control over your payment gateway.
- Direct wallet payments: Be your own bank with a self-custodial service.
- Lightning Network integrated out of the box â instant, fast and low cost payments and payouts
- Reporting and accounting â CSV exports
- Advanced invoice management and refunding integrated in the WooCommerce UI
- Real-time exchange price tracking for correct payment amounts
- Versatile plugin system:
- Extend functionality according to your needs
- Accept payments in altcoins through various plugins
- Elegant checkout design: Compatible with all Bitcoin wallets and enhanced with your storeâs logo and branding for a unique UX.
- Point-of-sale integration â Accept payments in your physical shops
- Multilingual ready: Serve a global audience right out of the box.
- Top-notch privacy and security: Protect your and your customersâ data.
- Community-driven support: Get responsive assistance from our dedicated community (Mattermost or Telegram).
Requirements
- Odoo 17 running
- eCommerce module enabled
- You have a BTCPay Server version 1.10.0 or later, either self-hosted or hosted by a third-party
- You've a registered account on the instance
- You've a BTCPay store on the instance
- You've a wallet connected to your store
Install the module
- Clone our [repository](https://github.com/btcpayserver/odoo) or download the .zip from the [releases page](https://github.com/btcpayserver/odoo/releases)
- Make sure you are on branch `17.0` or downloaded a release tagged with version v17.x
- Place the `payment_btcpayserver` directory in your Odoo addons directory
- Install dependencies by running `pip install -r requirements.txt` (from inside the `payment_btcpayserver` directory)
- Restart Odoo
- Go to Apps -> Update Apps List
- Remove the "Apps" filter and search for "btcpay"
- Click **Activate** button
Configure BTCPay as payment provider
- Go to Website -> Configuration -> Payment Providers
- Search for BTCPay and click on button Activate
In the BTCPay settings form, tab "Credentials":
- Set field "State" to enabled
- Set field "BTCPay Server URL" as test or live URL including https://. Example URL: https://testnet.demo.btcpayserver.org
- Get a pairing code from your BTCPay Server store: Settings -> Access Tokens
- Click on "Create Token" button
- Label: enter e.g. "My odoo store"
- Public Key: leave empty
- Click on "Request Pairing" button, on next page click "Approve" button
- At the top copy the code next to "Server initiated pairing code", e.g. "hg7z8wN"
- Back in Odoo, paste the code into "Pairing Code" field
- Hit Tab key on your keyboard (or click on another field) and the pairing process will start automatically
- When the pairing is successful the "Token" and "Private Key" field will be filled automatically
- Field Facade, keep default 'merchant'.
On the tab "Configuration":
- Make sure field "Payment Journal" is set to "Bank", otherwise you can click the dropdown and click on the suggestion "Bank"
- Now you can save the settings
Check the payment method is enabled:
- Go to Website -> Configuration -> Payment Methods
- Make sure "Pay with Bitcoin / Lightning Network" is active
Congrats, all done. Do some testing to be sure all works.

How it looks like?

-
In payment webpage where payment methods appear, you will find new payment method called BTCPay.
If you click on it you will be redirect to the server that you indicate in location field.
Transaction BTCPay Details
-
In transaction object, you will find more technical information about this method of payment:
- Transaction Id: cryptocurrency transaction hash for the executed payout.
- Invoice Id: the id of the invoice for which you want to fetch an event token
- Transaction Status: That indicates state of transaction

Please log in to comment on this module