This module integrates EasyPay as a payment provider in Odoo, allowing customers to pay via credit card and other payment methods using EasyPay's secure payment gateway.
EasyPay is a Portuguese payment service provider that supports multiple payment methods including credit cards, Multibanco, MB WAY, SEPA Direct Debit, and more.
Verified as supported:
- Credit/Debit Card payments,
- Multibanco (MB) reference payments,
- MB WAY.
Not yet implemented or verified:
- SEPA Direct Debit,
- Pay by Link,
- Multibanco reference on invoices.
Learn more about EasyPay at
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Adds EasyPay as a payment provider in Odoo, letting customers pay by credit card, Multibanco reference, MB WAY and other methods. It also lets you manage EasyPay credentials, sync payment methods and configure webhooks from the provider form.
This module adds EasyPay as a new payment provider option in Odoo's payment settings. Once enabled, customers can pay online using credit/debit card, Multibanco (a Portuguese reference payment), MB WAY and other methods supported by EasyPay.
On the payment provider configuration screen you get EasyPay-specific fields: Account ID, API Key, a computed Webhook Base URL, a 'Hide Customer Details Form' toggle, Multibanco expiration days and the Multibanco product type. Three buttons are available: Test Connection, Sync Payment Methods and Configure Webhooks. Sync Payment Methods fetches the methods enabled on your EasyPay account and activates only those in Odoo. Configure Webhooks registers the callback URLs with EasyPay.
During checkout, a dedicated EasyPay page hosts the payment form. For Multibanco, a separate page shows the entity, formatted reference, amount and expiration date. Payment transactions store EasyPay-specific details such as the EasyPay transaction ID, checkout ID, payment method, capture status and Multibanco entity/reference/expiration.
The module supports tokenization (saving a payment method for later), partial refunds, manual capture and void. Webhooks from EasyPay update the payment status automatically, and the module polls EasyPay when a webhook is delayed. Only EUR currency is supported.
Depends on
Models and fields (3)
- payment.provider · extends an existing modelcode, easypay_api_key (API Key), easypay_account_id (Account ID), easypay_mb_product (MB Product Type), easypay_hide_details (Hide Customer Details Form), easypay_webhook_base_url (Webhook Base URL), easypay_mb_expiration_days (MB Expiration Days)
- payment.transaction · extends an existing modeleasypay_mb_entity (MB Entity), easypay_checkout_id (EasyPay Checkout ID), easypay_mb_reference (MB Reference), easypay_mb_expiration (MB Expiration), easypay_capture_status (EasyPay Capture Status), easypay_payment_method (EasyPay Payment Method), easypay_transaction_id (EasyPay Transaction ID), easypay_payment_details (EasyPay Payment Details)
- easypay.payment.method · new modelcode (Method Code), name (Method Name)
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 18.0
Confirmed on 2026-11-03 in branch 18.0 of OCA/l10n-portugal.
terminal Installation and usage
OCA documentation · Odoo 18.0Configuration
Source · Odoo 18.0Currency requirement: EasyPay only supports EUR. The provider is pre-configured to appear only for EUR transactions and will be hidden automatically when the customer's currency is different.
- Create an EasyPay Account
- Test environment: Sign up at
- Production: Sign up at and complete merchant verification
Once logged in, note your Account ID and API Key (both UUID format) from the EasyPay dashboard.
- Configure the Provider in Odoo
- Go to Accounting → Configuration → Payment Providers (or Website → Configuration → Payment Providers)
- Search for EasyPay and open the provider form
- Fill in:
- Account ID — from your EasyPay dashboard
- API Key — from your EasyPay dashboard (admin-only field)
- Payment Methods — select the methods to offer (Credit/Debit Card, Multibanco, MB WAY, etc.)
- Allow Saving Payment Methods — when enabled, logged-in customers can tick "Save my payment details" at checkout to tokenize their card or SEPA Direct Debit mandate for future charges (e.g. subscriptions). Enabled by default.
- Set the provider State:
- Test Mode → uses
https://api.test.easypay.ptand enables thetestingflag in the SDK automatically - Enabled → uses
https://api.prod.easypay.pt(production) - Click Save
- Register Webhooks
EasyPay sends payment status updates to three separate Odoo endpoints. The simplest way to register them is to use the built-in button:
- On the EasyPay provider form, click Configure Webhooks
- Odoo will call
PATCH /2.0/configon the EasyPay API and register: https://yourdomain.com/payment/easypay/webhook/generichttps://yourdomain.com/payment/easypay/webhook/authorisationhttps://yourdomain.com/payment/easypay/webhook/transaction
If you need to register webhooks manually in the EasyPay dashboard, use the three URLs above. All three must be registered for all payment methods to work correctly (Multibanco confirmation, for example, arrives via the transaction webhook).
Note: Webhooks must be reachable from the internet. If running locally, use a tunnel such as localtunnel (https://theboroer.github.io/localtunnel-www/) or ngrok and update the Odoo base URL accordingly before clicking Configure Webhooks.
- Test the Connection
Click Test Connection on the provider form to verify that your credentials are correct and the EasyPay API is reachable.
- Go Live
- Replace test credentials with production values
- Change provider State to Enabled
- Click Configure Webhooks again to register production webhook URLs
- Test with a small real payment before going fully live
- Set the provider to Published so customers can see it
Usage
Source · Odoo 18.0Once configured, customers can use EasyPay to make payments:
- During checkout, select EasyPay as the payment method
- Click Pay Now
- A secure inline payment form loads. The customer selects a payment method and completes the payment without leaving the site.
Payment method behaviour
- Credit/Debit Card: Payment is captured immediately. Order is confirmed as soon as the card is charged.
- MB WAY: The customer enters their mobile number. A push notification is sent to their phone for confirmation. The order is placed in Pending state until the user confirms (or rejects) on the MB WAY app.
- Multibanco: An ATM reference (Entity + Reference + Amount) is displayed. The customer pays at any ATM or via online banking. The order remains Pending until the payment is confirmed, which may take minutes to days. The customer should not close the confirmation page before noting down the reference.
- SEPA Direct Debit: The customer enters their IBAN and accepts a SEPA mandate authorizing EasyPay to debit their account. The order remains Pending until the bank settles the debit (typically 2–5 business days). When used with tokenization, the mandate is saved and subsequent charges are pulled automatically.
- Virtual IBAN: A dedicated IBAN is displayed. The customer transfers the exact amount via online banking. The order remains Pending until the transfer is received and matched by EasyPay.
- Save payment details (tokenization): Logged-in customers can tick Save my payment details at checkout. The payment method is saved as a token for future charges (e.g. subscriptions). This works with cards and SEPA Direct Debit.
Refunds
Refunds can be initiated from the Odoo backend on any confirmed transaction:
- Open the payment transaction and click Refund
- A refund request is sent to EasyPay and a child refund transaction is created in Pending state
- Once EasyPay processes the refund, a webhook updates the refund transaction to Done (or Error if it failed)
Partial refunds are supported — enter the amount to refund when prompted.
Test card details (test environment only)
See the EasyPay Payment Methods guide for full test credentials for all payment methods.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.