Binance Pay for Odoo
Accept Binance Pay payments from Odoo website checkout with direct merchant credentials, signed payment notifications, configurable fiat quotes, and refund support.
Built for Direct Merchant Payments
Hosted Checkout
Odoo creates a Binance Pay Create Order V3 request and redirects the customer to the Binance-hosted checkout page to complete the payment.
Verified Payment Status
Incoming Binance notifications are verified with Binance public certificates before Odoo changes the payment transaction state.
Direct and Channel Partner Accounts
Configure a merchant API Key and API Secret. Channel Partners can also provide the Binance sub-merchant ID required to place an order on behalf of that sub-merchant.
Refunds from Odoo
Refund requests are sent from the Odoo payment transaction and their result is tracked with Binance order and refund notifications.
Merchant Onboarding Before Configuration
Direct Merchant
- Create a Corporate Merchant account and complete entity verification.
- Provide the Binance ID and Merchant ID for Binance review, then complete the agreement.
- Generate an API Key and API Secret in the Binance Merchant Platform.
Channel Partner
- Apply as a Channel Partner and complete the additional compliance requirements.
- Onboard each merchant and obtain its Binance-issued sub-merchant ID.
- Use the Channel Partner API Key and API Secret with that sub-merchant ID in Odoo.
This module creates WEB checkout orders. It requires an API Key and API Secret; a Binance Mini Program App ID is not used.
Crypto Settlement and Fiat Quotes
The provider supports USDT and USDC settlement currencies. Fiat orders use Binance's
fiatAmount and fiatCurrency fields: Binance converts the fiat quote
into the merchant's available USDT or USDC order currency.
Merchant-Controlled Fiat Selection
Each provider selects only the fiat quote currencies approved for that merchant. VND and USD are selected by default; other Binance-published fiat currencies remain opt-in.
Safe Currency Handling
Odoo rejects an unselected fiat currency before calling Binance. Payment notifications are checked against the expected amount and currency before a transaction is completed.
Configuration
- Install the module and open the Binance Pay payment provider.
- Enter the merchant API Key and API Secret.
- Set a Channel Partner Sub-Merchant ID only when Binance issued the API credentials to a Channel Partner.
- Select the fiat quote currencies approved for the merchant account.
- Register the public Odoo webhook URL in the Binance merchant dashboard.
- Enable or test the provider after the credentials and webhook are configured.
Payment Flow
1. Create
Odoo sends the order, product details, reference, selected currency, and return URLs to Binance Pay.
2. Pay
The customer completes payment in Binance Pay using the payment currency available to them.
3. Confirm
Binance sends a signed notification and Odoo updates the transaction only after validation.
Payment Management in Odoo
Verified Payment Transaction
After Binance sends a signed payment notification, Odoo records the payment on the transaction with its Binance provider reference and paid status.
Refund from the Transaction
Start a full or partial Binance Pay refund from the original Odoo payment transaction. Odoo sends the request to Binance and tracks the resulting refund status.
Usage Guide
Please visit the Documentation tab next to this tab for detailed usage instructions
Requirements and Support
Requirements
- An active Binance Pay merchant or Channel Partner account.
- A public HTTPS Odoo URL for the payment webhook.
- Merchant API credentials stored only in the payment provider configuration.
- Odoo currencies and journals configured for the currencies offered to customers.
Production API
The module calls Binance's production API. Use Binance trial merchant credentials only under Binance's current trial-account limits because trial payments can involve real cryptocurrency.
Support: duongodooapps@gmail.com
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 819 |
| Technical Name |
d_payment_binance_pay |
| License | OPL-1 |
| Website | https://duong-odoo-apps.odoo.com |
Binance Pay for Odoo
d_payment_binance_pay adds Binance Pay as an Odoo payment provider for website and payment transactions. It creates Binance Pay Create Order V3 orders, redirects customers to the Binance-hosted checkout page, verifies signed webhooks, queries payment status after returns, and sends refunds from Odoo.
The module supports direct Binance Pay merchant credentials and Binance Channel Partner credentials with an optional sub-merchant ID.
Features
- Binance Pay Create Order V3 checkout.
- Direct merchant API Key and API Secret configuration.
- Optional Channel Partner sub-merchant orders.
- RSA-verified payment and refund notifications.
- Full and partial refunds from Odoo payment transactions.
- USDT and USDC crypto orders.
- Merchant-controlled fiat quote currencies, with VND and USD selected by default.
- Invoice-line goods details and Binance-compatible transaction references.
Prerequisites
Before enabling the provider, prepare the following:
- A Binance Pay merchant account, or a Channel Partner account and the relevant sub-merchant ID.
- An API Key and API Secret issued for the Binance Pay merchant API.
- A public HTTPS URL for the Odoo instance so Binance can reach the webhook.
- Odoo currencies and journals for the currencies offered to customers.
The module calls Binance's production API endpoint. Binance may offer trial merchant accounts, but trial payments are subject to Binance's current production limits and can involve real cryptocurrency. Confirm the current terms in the Binance merchant portal before testing.
Merchant Onboarding
Complete Binance onboarding before configuring Odoo. Binance's onboarding flow is:
- Choose the correct corporate account type: Corporate Merchant for a business accepting its own payments, or Channel Partner for a business placing orders for other merchants.
- Complete entity verification and provide the requested company, ownership, and compliance documents.
- Share the Binance ID and Merchant ID with Binance for internal review, then complete the required agreement.
- In Binance Merchant Platform, go to Developers > API > API Keys, create an API key, choose the appropriate access, optionally restrict trusted IP addresses, and save the API Key and API Secret immediately. Binance masks the secret after it is displayed.
For a Channel Partner, onboard each sub-merchant in Binance and obtain the sub-merchant ID issued by Binance. Use the Channel Partner API credentials and the relevant sub-merchant ID in Odoo for every order placed on that merchant's behalf. A Channel Partner placing an order for its own business also needs a distinct sub-merchant ID.
This module creates WEB checkout orders. It requires the Binance API Key and API Secret. Do not create or enter a Mini Program App ID: Binance documents appId as required only for MINI_PROGRAM orders.
Provider Configuration
Install d_payment_binance_pay.
Open Accounting > Configuration > Payment Providers and select Binance Pay.
Enter the API Key and API Secret from the merchant account.
For Channel Partner credentials, enter the issued Channel Partner Sub-Merchant ID. Leave it empty when the credentials belong directly to the merchant.
Select the approved values in Binance Pay Fiat Quote Currencies.
Register this public callback URL in the Binance merchant dashboard:
https://<your-odoo-domain>/payment/binance_pay/webhook .. image:: doc_binance_webhook.png :alt: Binance Pay Webhook
Set the provider to Test or Enabled after Binance accepts the credentials and webhook.
Fiat Quotes and Settlement
The Odoo currencies UST and USC are sent to Binance as USDT and USDC. They are the crypto order currencies supported by this module.
For a selected fiat currency such as VND, USD, or GBP, Odoo sends fiatAmount and fiatCurrency. Binance converts that quote into the merchant's available USDT or USDC order currency. A fiat quote is therefore not fiat settlement.
Only select currencies Binance has approved for the merchant. The provider rejects a Binance-published fiat currency that is not selected in its configuration before making an API request.
Website Checkout Flow
- A customer selects Binance Pay at Odoo checkout.
- Odoo creates a Binance order with a Binance-compatible transaction reference and relevant invoice-line goods details.
- The customer is redirected to Binance-hosted checkout and pays with Binance Pay.
- Binance calls the Odoo webhook. Odoo verifies the RSA signature before processing the event.
- Odoo validates the received amount and currency when they are supplied, then marks the transaction done, pending, canceled, or failed.
The return URL is not treated as proof of payment. Odoo queries Binance for the authoritative order status after a normal return.
Payment Transaction Confirmation
After Binance sends a signed payment notification, Odoo records the payment on the transaction with the Binance provider reference and a paid status. Capture the transaction after a confirmed test payment, with customer information and any payable QR code redacted.
Refunds
Open the original completed payment transaction and use the standard Odoo refund action. The module creates an Odoo refund transaction, sends Binance the original prepayId and refund request ID, and tracks the result through the refund response and notification.
Troubleshooting
- Missing credentials: enter both the API Key and API Secret before enabling the provider.
- Sub-merchant error: use a numeric sub-merchant ID only for Channel Partner credentials.
- Unsupported fiat currency: select the currency on the provider and configure the matching Odoo currency before attempting payment.
- Webhook not updating payments: confirm that the exact public HTTPS webhook URL is reachable and that the Binance certificate/signature headers are preserved by any proxy.
- Checkout failure: inspect the Odoo error message and Binance merchant configuration; the module includes the Binance API error detail when it is available.
Security Notes
Keep merchant API credentials restricted to authorized Odoo administrators. Do not expose them in screenshots, logs, or customer-facing pages. Webhook signature verification must remain enabled; the webhook is the authoritative payment confirmation path.
Official Binance References
- Official Merchant Onboarding Guide (PDF)
- Merchant onboarding: https://merchant.binance.com/en/onboarding
- Merchant application guidelines: https://merchant.binance.com/en/application-guidelines-merchant
- Channel Partner application guidelines: https://merchant.binance.com/en/application-guidelines-channel-partner
- Merchant portal: https://merchant.binance.com/en
- Create Order V3: https://developers.binance.com/en/docs/products/binance-pay-merchant/api-order-create-v3
- Refund Order: https://developers.binance.com/en/docs/products/binance-pay-merchant/api-order-refund
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module