Repository
OCA/l10n-portugal · module folder · Try on Runboat
Module version
1.0.4
Category
Accounting/Payment Providers
Folder size
0.62 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/l10n-portugal
Last tracking update
2026-08-07 08:43:05
Authors
Odoo Community Association (OCA), Open Source Integrators
Maintainers
Odoo Community Association (OCA), Open Source Integrators
Committers
Daniel Reis, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
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 <https://www.easypay.pt/>

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
checkout_page EasyPay Checkout Page ir.ui.view qweb New
easypay_icon EasyPay ir.ui.view qweb New
mb_reference_page Multibanco Payment Reference ir.ui.view qweb New
payment_provider_form_easypay payment.provider.form.easypay payment.provider form Inherits payment.payment_provider_form
payment_transaction_form_easypay payment.transaction.form.easypay payment.transaction form Inherits payment.payment_transaction_form
HTTP endpoints (8)
Route(s)HandlerAuthTypeMethodsFlags
/payment/easypay/checkout/cancel EasyPayCheckoutCallbackController.easypay_checkout_cancel public http GET csrf off sudo
/payment/easypay/checkout/success EasyPayCheckoutCallbackController.easypay_checkout_success public http GET csrf off sudo
/payment/easypay/mb_reference/<int:tx_id> EasyPayCheckoutCallbackController.easypay_mb_reference public http GET csrf off sudo website
/payment/easypay/checkout EasyPayCheckoutPageController.checkout_page public http ALL csrf off sudo
/payment/easypay/create_checkout_session EasyPayCheckoutSessionController.create_checkout_session public json ALL sudo website
/payment/easypay/webhook/authorisation EasyPayWebhookController._authorisation_webhook public http POST csrf off
/payment/easypay/webhook/generic EasyPayWebhookController._generic_webhook public http POST csrf off
/payment/easypay/webhook/transaction EasyPayWebhookController.easypay_transaction_webhook public http POST csrf off sudo
Models touched (3)

New fields (2)
  • code Char
    help='Internal code used by EasyPay API' required=True string='Method Code'
  • name Char
    required=True string='Method Name' translate=True
Public methods (0)

No public methods.

New fields (7)
  • code Selection
    ondelete={'easypay': 'set default'} selection_add=[('easypay', 'EasyPay')]
  • easypay_account_id Char
    help='The Account ID provided by EasyPay' string='Account ID'
  • easypay_api_key Char
    groups='base.group_system' help='The API Key provided by EasyPay' string='API Key'
  • easypay_hide_details Boolean
    default=False help='When enabled, the EasyPay Checkout SDK hides the order details panel and shows a collapsible summary instead. ' string='Hide Customer Details Form'
  • easypay_mb_expiration_days Integer
    default=3 help='Number of days before a Multibanco reference expires.' string='MB Expiration Days'
  • easypay_mb_product Selection
    default='CHECKDIGIT' help='The SPG product allows initiating refunds, but might have additional fees. Please check with your Easypay account manager for details.' required=True selection=[('CHECKDIGIT', 'CHECKDIGIT'), ('SPG', 'SPG')] string='MB Product Type'
  • easypay_webhook_base_url Char
    compute='_compute_easypay_webhook_base_url' help='Base URL that will be used for webhook configuration in EasyPay' string='Webhook Base URL'
Public methods (3)
  • action_easypay_configure_webhooks(self)
  • action_easypay_sync_payment_methods(self)
    Fetch available payment methods from EasyPay and update the provider.
  • action_easypay_test_connection(self)
    Test connection to EasyPay API using ping endpoint.

New fields (8)
  • easypay_capture_status Char
    help='The capture status (paid, pending, authorised, etc.)' readonly=True string='EasyPay Capture Status'
  • easypay_checkout_id Char
    help='The checkout session ID returned by EasyPay' readonly=True string='EasyPay Checkout ID'
  • easypay_mb_entity Char
    help='Multibanco entity number for the payment reference' readonly=True string='MB Entity'
  • easypay_mb_expiration Char
    help='Expiration date/time for the Multibanco reference' readonly=True string='MB Expiration'
  • easypay_mb_reference Char
    help='Multibanco reference number for the payment' readonly=True string='MB Reference'
  • easypay_payment_details Json
    help='Full payment details from EasyPay webhook' readonly=True string='EasyPay Payment Details'
  • easypay_payment_method Char
    help='The payment method selected by customer (cc, mb, mbw, etc.)' readonly=True string='EasyPay Payment Method'
  • easypay_transaction_id Char
    help='The transaction ID returned by EasyPay' readonly=True string='EasyPay Transaction ID'
Public methods (0)

No public methods.