Plugin Directory

Multibanco, MB WAY, Credit card, Payshop and Cofidis Pay (IfthenPay) for WooCommerce

Multibanco, MB WAY, Credit card, Payshop and Cofidis Pay (IfthenPay) for WooCommerce


“Pagamento de Serviços” (payment of services) on Multibanco (Portuguese ATM network), or homebanking services, is the most popular way to pay for services and (online) purchases in Portugal. Portuguese consumers trust the “Multibanco” system more than any other.
This plugin will allow you to generate a payment Reference the customer can then use to pay for his WooCommerce order, through an ATM or homebanking service.

The MB WAY (using the customer mobile phone number), Credit or debit card, CTT Payshop and Cofidis Pay payment methods are also available, for any customer with a Portuguese bank account.

This is the official IfthenPay plugin, and a contract with this company is required. Technical support is provided by PT Woo Plugins (by Webdados) on the WordPress.org support forums.

Fully compatible with the new High-Performance Order Storage and WooCommerce Checkout Blocks.


  • Generates a Multibanco Reference for simple payment on the Portuguese ATM network or homebanking service;
  • Allows the customer to pay using MB WAY using his mobile phone;
  • Allows the customer to pay using his Credit or debit card;
  • Generates a Payshop Reference for simple payment on the Payshop agents network, CTT stores or post offices available all over Portugal;
  • Allows the customer to pay in up to 12 interest-free installments via Cofidis Pay;
  • Multibanco references with expiration date if the “MB Key” configuration method is used;
  • Automatically changes the order status to “Processing” (or “Completed” if the order only contains virtual downloadable products) and notifies both the customer and the store owner, if the automatic “Callback” upon payment is activated;
  • Automatic “Callback” can be activated upon request to IfthenPay, via the plugin settings screen for each payment method;
  • Refunds for MB WAY and Credit or debit card – read this;
  • Shop owner can set minimum and maximum order totals for each payment gateway to be available;
  • Ability to reduce stock when the order is created or paid;
  • Allows searching orders (in the admin area) by Multibanco or Payshop reference;
  • High-Performance Order Storage compatible;
  • Block-Based Checkout compatible;
  • WPML compatible (for multilingual shops);
  • Polylang tested;
  • WooCommerce Subscriptions integration (only Multibanco);
  • WooCommerce Deposits by webtomizer integration (except Cofidis Pay);
  • Integration for 3rd party SMS notification plugins (only Multibanco and Payshop):

PRO add-on

Get the PRO add-on and unlock extra features:

  • Recover unpaid MB WAY orders by converting them to Multibanco and notify the customer via email;
  • Automatic cancellation of orders when Multibanco, Payshop or MB WAY references expire;
  • Countdown timer on the “thank you” page for MB WAY payments;
  • Trigger Multibanco and MB WAY payments when creating orders via the REST API;
  • Store and show IfthenPay fee on each order;
  • Codifis payment information banner, with the price to pay month, on the product page (simple product for now);
  • Set a payment entity for Multibanco, MB WAY, Credit card, Payshop and Cofidis Pay at the product category level, so that you can receive payment in different accounts based on the order products (replaces previously available specific extension);
    • Simplified marketplace;
    • Lock the cart so you can only have products from a single account in the same order;
  • Remove payment instructions from specific emails, for example “order completed”, to avoid customer confusion when they are no longer necessary;
  • Autofill the VAT number on the Cofidis Pay gateway from several VAT number plugins (more can be addded on request);
  • Change the default timeout for calls to IfthenPay webservices if your website is experiencing communication difficulties;
  • Hide notices of new available payment methods;
  • Hide notices of pending callback activation requests;
  • Hide sidebar in payment method settings screen;
  • More features coming soon;
  • By purchasing the PRO add-on you get:
    • Technical support (conditions apply);
    • All the features described above;
    • Contribution to the continued development of the solution;
    • Automatic updates;
    • Good karma;

Attention: The PRO add-on is a product of PT Woo Plugins / Webdados, and IfthenPay has no responsibility for it.

Other (premium) plugins

Already know our other WooCommerce (premium) plugins?


  • Make sure you already have a contract with IfthenPay
  • Use the included automatic install feature on your WordPress admin panel and search for “IfthenPay”.
  • Multibanco: Go to WooCommerce > Settings > Checkout > Pagamento de Serviços no Multibanco and fill in the data provided by IfthenPay (Entity and Subentity or MB Key) in order to use this payment method.
  • MB WAY: Go to WooCommerce > Settings > Checkout > Pagamento MB WAY no telemóvel and fill in the data provided by IfthenPay (MB WAY Key) in order to use this payment method.
  • Credit or debit card: Go to WooCommerce > Settings > Checkout > Credit or debit card and fill in the data provided by IfthenPay (Credit card Key) in order to use this payment method.
  • Payshop: Go to WooCommerce > Settings > Checkout > Pagamento na rede de agentes Payshop and fill in the data provided by IfthenPay (Payshop Key) in order to use this payment method.
  • Cofidis Pay: Go to WooCommerce > Settings > Checkout > Cofidis Pay and fill in the data provided by IfthenPay (Cofidis Pay Key) in order to use this payment method.
  • Make sure you ask IfthenPay to activate the “Callback” on their side with the URL and Anti-phishing key provided in the settings screen. There is a feature in each payment method screen that allows you to make this request via a webservice, except on Credit card where this is not needed.
  • Start receiving payments 🙂


Can I start receiving payments right away? Show me the money!

Nop! You have to sign a contract with IfthenPay in order to activate this service. Go to https://ifthenpay.com for more information.

I’m a individual and not a registered business. Can I use this plugin?

No. IfthenPay only provides this service to registered businesses and equivalent (like tax registered freelancers, for example). You should contact them if you need additional details on this matter.

The generated Multibanco reference does not contain the order number. How do I know which order was paid?

IfthenPay will send you an email each time a reference is paid, but the reference does not contain the order number. By design, our plugin does not include the order number in the reference due to the way WooCommerce/WordPress set orders/posts IDs.
Anyway, you do not need the order number in the reference, because our plugin uses a callback mechanism. IfthenPay automatically notifies WooCommerce when a specific Multibanco reference is used for payment. The order is linked to the reference in the database and, also automatically, will be set as paid.
If you still need to know to which order a reference is linked to, use the search box in the WooCommerce Orders administration screen.

Can I test the callback call to simulate a payment and foresee what happens when a real payment is made by a customer?

Yes, you can. Edit your wp-config.php file and set WP_DEBUG to true. Then, place a test order in the frontend using Multibanco, MB WAY or PayShop. Go to the order edit screen and click the “Simulate callback payment” button.

How to issue an MB WAY or Credit or debit card refund within WooCommerce?

Just like in any other WooCommerce payment gateway that supports refunds.
Check out the instructions carefully here (Automatic refunds, step 4) and here (WooCommerce specific instructions).

Can I use this plugin / IfthenPay service on more than one website?

Yes, but not with the same Multibanco entity and subentity, MB WAY, Credit card or Payshop Keys. Ask IfthenPay for different credentials for each website you need the service to be available. There is no extra costs involved, and you can even route payments to distinct bank accounts.

Can I change the payment instructions look and feel in the “Thank you” page and/or the new order email, as well as the SMS message format?

Yes you can! But you should know your way around WordPress filters. There are filters to do this and you can find examples within hooks-examples.php.

Can I change the payment gateway icon in the checkout page?

There are also filters for this. See hooks-examples.php.

I want to charge an additional fee for Multibanco, MB WAY, Credit card or Payshop payments. How should I do it?

You shouldn’t! To our knowledge, it’s illegal under Portuguese law and a European directive to charge an extra fee based on the payment method chosen by the customer.
If you don’t care about legislation, plugins are available that allow you to set extra fees per payment method. Please, don’t ask us for support on this.

How much time does the customer have to pay with MB WAY?

The MB WAY payment requests expire after 5 minutes.

Why doesn’t the customer receive an email when paying with MB WAY?

The MB WAY payment needs to be approved immediately after checking out, just like when using a credit card or PayPal.
WooCommerce only sends payment instruction emails for payment methods that require later, and not immediate payment, like Multibanco, Payshop and bank transfer for example.

[WPML] My website is multilingual. Will I be able to use this plugin?

Yes. This plugin is officially WPML compatible. You will need the WPML and WPML String Translation Plugins (alongside WooCommerce Multilingual, which is mandatory for any WooCommerce + WPML install).

[WPML] How can I translate the payment method title and description the customer sees in the checkout page to secondary languages?

Go to WPML > String Translation > Search and translate all the string in the woocommerce and multibanco_ifthen_for_woocommerce domains containing ifthen_for_woocommerce in their name.

[SMS] How to include the Multibanco and/or Payshop payment instructions in the SMS sent by “WooCommerce – APG SMS Notifications”?

Go to WooCommerce > SMS Notifications and add the %multibanco_ifthen% and/or %payshop_ifthen% variables to “Order on-hold custom message”.

[SMS] How to include the Multibanco and/or Payshop payment instructions in the SMS sent by “Twilio SMS Notifications”?

Go to WooCommerce > Settings > SMS and add the %multibanco_ifthen% and/or %payshop_ifthen% variables to “Customer Notifications“ > “On Hold SMS Message”.

[SMS] How to include the Multibanco and/or Payshop payment instructions in the SMS sent by “YITH WooCommerce SMS Notification”?

Go to YITH Plugins > SMS Notifications > SMS Settings and add the {multibanco_ifthen} and/or {payshop_ifthen} variables to “On hold”.

[Advanced] Can I use a specific Multibanco Entity/Subentity or Key, MB WAY, Credit card or Payshop Key based on order details?

Yes, you should use the multibanco_ifthen_base_ent_subent or multibanco_ifthen_base_mbkey, multibanco_ifthen_base_mbwaykey, multibanco_ifthen_base_creditcardkey or multibanco_ifthen_base_payshopkey filters. See hooks-examples.php.

[Advanced] The order is set “On Hold” for Multibanco and Payshop, can I make it “Pending” by default?

I don’t know why on earth you would want to do this, but… yes, you can. Just return false to the multibanco_ifthen_set_on_hold and/or payshop_ifthen_set_on_hold filter.
Be advised that no “new order” email, with payment instructions, will be sent to the customer unless you use some plugin or custom code to force it.

[Advanced] I’ve set up WooCommerce to cancel unpaid orders after x minutes, why are my Multibanco and/or Payshop orders not being canceled?

WooCommerce only automatically cancels “Pending” orders, not “On Hold”, because these orders are set to be paid by offline methods (like Multibanco or Payshop), and payment can occur at any time, even after the order is canceled. Still, if you want to take that risk, just return true to the multibanco_ifthen_cancel_unpaid_orders and/or payshop_ifthen_cancel_unpaid_orders filter.
You can also restore that order’s product stock by returning true to the multibanco_ifthen_cancel_unpaid_orders_restore_stock and/or payshop_ifthen_cancel_unpaid_orders_restore_stock filter, although the WooCommerce team doesn’t recommend it.
Be advised the Multibanco or Payshop reference will still be active and can be paid later on.

[Advanced] Can I prevent the plugin from adding the payment instructions and/or the payment received message to emails?

You can use the multibanco_ifthen_email_instructions_pending_send and/or mbway_ifthen_email_instructions_pending_send filter: return false and the payment instructions won’t be included in the “new order” email – we do not recommend you to do it, though.
You can use the multibanco_ifthen_email_instructions_payment_received_send and/or mbway_ifthen_email_instructions_payment_received_send filter: return false and the payment received message won’t be included in the “Processing” or “Completed” email.

IfthenPay says my callback URL is returning a 404 error. Should I sit in a corner and cry or is there a solution?

Don’t cry! There’s a solution!
You probably have weird permalink settings (or permalinks not set at all) in your WordPress installation.
Tell them to change the callback URL from https://yourwebsite/wc-api/WC_Multibanco_IfThen_Webdados/?chave=[CHAVE_ANTI_PHISHING]&entidade=[ENTIDADE]&referencia=[REFERENCIA]&valor=[VALOR] to https://yourwebsite/?wc-api=WC_Multibanco_IfThen_Webdados&chave=[CHAVE_ANTI_PHISHING]&entidade=[ENTIDADE]&referencia=[REFERENCIA]&valor=[VALOR].

Is this plugin compliant with the European Union General Data Protection Regulation (GDPR)?

This plugin does not collect or send to Webdados (the plugin author) or IfthenPay (the payment processor) any private data of the website where it’s installed, it’s customers or the orders themselves.
In the MB WAY module, the mobile phone number is collected to request the payment authorization and it can be legitimately processed based on article 6 (1) (b) of the GDPR.
IfthenPay’s privacy policy can be found at https://ifthenpay.com/termosCondicoes

Is this plugin compatible with the new WooCommerce High-Performance Order Storage?


Is this plugin compatible with the new WooCommerce block-based Cart and Checkout?


I need technical support. Who should I contact, IfthenPay or Webdados?

Although this is the official IfthenPay WooCommerce plugin, development and support is provided by Webdados.
For free/standard support you should use the support forums here at WordPress.org
For premium, urgent and experimental integrations support or custom developments you should contact Webdados. Charges will apply.

Any support related to failed payments or credit card authorizations should be directed to IfthenPay.

Where do I report security vulnerabilities found in this plugin?

You can report any security bugs found in the source code of this plugin through the Patchstack Vulnerability Disclosure Program. The Patchstack team will assist you with verification, CVE assignment and take care of notifying the developers of this plugin.

Can I contribute with a translation?

Sure. Go to GlotPress and help us out.


April 25, 2024 1 reply
Excelente trabalho, mas não sejam gananciosos e liberem mais funções grátis.
December 13, 2023 1 reply
Funciona sem grandes complicações que é aquilo que se pede num plugin destes. Obrigado.
September 16, 2023 1 reply
Marco not only solved my issue but was fast and precise in his reply. Thank you so much for your help and kindness!
January 31, 2022 1 reply
Really appreciate Webdados and the plugins they have made. Their technical support is also spot on, really like it! Thanks Webdados!! #Happy Customer
February 16, 2021 1 reply
A usar e recomendar a clientes há cerca de dois anos! Nunca tive problemas. Funciona tudo de forma espetacular, com os callbacks e as encomendas a serem marcadas como pagas automaticamente. Já tenho vários clientes que fizeram contrato na ifthenpay para usar nas lojas online, graças e este plugin.
Read all 21 reviews

Contributors & Developers

“Multibanco, MB WAY, Credit card, Payshop and Cofidis Pay (IfthenPay) for WooCommerce” is open source software. The following people have contributed to this plugin.


“Multibanco, MB WAY, Credit card, Payshop and Cofidis Pay (IfthenPay) for WooCommerce” has been translated into 2 locales. Thank you to the translators for their contributions.

Translate “Multibanco, MB WAY, Credit card, Payshop and Cofidis Pay (IfthenPay) for WooCommerce” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


9.4.3 – 2024-07-16

  • [TWEAK] Implement hook on the MB WAY settings screen needed by the PRO add-on 4.0
  • [DEV] Tested with WordPress 6.6-RC4-58723 and WooCommerce 9.1.2

9.4.2 – 2024-06-27

  • [TWEAK] Add the order as second argument for the creditcard_ifthen_cancel_order_on_back filter

9.4.1 – 2024-06-26

  • [TWEAK] The order is now not canceled when hitting “Back” on the credit card gateway, and the user is redirected to the checkout. The old behavior can be activated by returning true to creditcard_ifthen_cancel_order_on_back.
  • [TWEAK] Change Cofidis Pay “payment received” text to better explain the payment was pre-approved and that the shop owner still needs to submit documentation to Cofidis before processing the order.
  • [DEV] Tested with WordPress 6.6-RC1-58573 and WooCommerce 9.1.0-beta.1

9.4.0 – 2024-06-05

  • [FIX] Error notice on the block-based checkout when returning from the Cofidis Pay gateway without success
  • [TWEAK] Remove .pot file from the repository
  • [TWEAK] Include source files for payment gateway blocks
  • [DEV] Tested with WordPress 6.6-beta1 and WooCommerce 9.0.0-rc.1

9.3.0 – 2024-05-22

  • [NEW] ifthen_allow_settings_woocommerce_not_euro filter to allow setting up the payment gateways even if the shop currency is not set to Euro – For multi-currency shops
  • [FIX] Deprecation notices “Creation of dynamic property” on PHP 8.2 and above
  • [FIX] Cofidis Pay return without Success attribute on the callback URL
  • [TWEAK] Refactor the way the payment gateways are loaded so that plugins that call new \WC_Payment_Gateways(); will get our payment methods
  • [TWEAK] Cofidis Pay icon in SVG format
  • [DEV] Tested with WordPress 6.6-alpha-58182 and WooCommerce 8.9.1

9.2.4 – 2024-04-09

9.2.3 – 2024-04-08

  • [NEW] PRO add-on 3.5: Codifis payment information banner, with the price to pay month, on the product page (simple product for now)
  • [DEV] Tested with WordPress 6.6-alpha-57928 and WooCommerce 8.8.0-rc.1

9.2.2 – 2024-03-26

  • [FIX] Deprecation notices “Creation of dynamic property” on PHP 8.2 and above
  • [FIX] Typo
  • [DEV] Tested with WordPress 6.5-RC3-57875 and WooCommerce 8.7.0

9.2.0 – 2024-03-18

  • [FIX] Avoid loading payment gateways more than once
  • [FIX] Typo on the Cofidis Pay settings
  • [DEV] Set WC_IFTHENPAY_WEBDADOS_PLUGIN_FILE for usage on the Pro Add-on
  • [DEV] Set Requires Plugins tag to woocommerce
  • [DEV] Tested with WordPress 6.5-RC2-57846 and WooCommerce 8.7.0-rc.1

9.1.2 – 2024-03-03

  • [DEV] Store Mutibanco Key used to generate reference
  • [DEV] Return Multibanco Key and requestId on the get_multibanco_order_details() method
  • [NEW] PRO add-on 3.3: Get IfthenPay fee on order screen if Backoffice Key is set and fee not yet set from the callback

9.1.1 – 2024-03-03

  • [DEV] Allow filtering backoffice key

9.1.0 – 2024-03-02

  • [NEW] PRO add-on 3.2: Store and show IfthenPay fees on order (Multibanco, MB WAY and Payshop)
  • [DEV] Allow filtering callback URLs
  • [DEV] New order_has_ifthenpay_method method
  • [DEV] Tested with WordPress 6.5-beta3-57747 and WooCommerce 8.7.0-beta.2

9.0.1 – 2024-02-17

  • [FIX] Deprecated notices for wc_get_log_file_path for WooCommerce 8.6 and above
  • [FIX] Fatal error when installing the plugin in HPOS mode
  • [DEV] Tested with WordPress 6.5-alpha-57571 and WooCommerce 8.6

9.0.0 – 2024-01-17

  • New payment method: Cofidis Pay – Pay in up to 12 interest-free installments
  • Better quality payment method banners on emails
  • Apply additional WordPress Coding Standards
  • Requires WordPress 5.6 and WooCommerce 6.0
  • Tested with WordPress 6.5-alpha-57258 and WooCommerce 8.5

8.9.3 – 2023-12-12

  • You can safely update to this version if you’re running WooCommerce 5.0 or newer but we’ll very drop support for WooCommerce previous to 6.0 on the next update
  • Declare WooCommerce block-based Cart and Checkout compatibility
  • Fix jQuery deprecation warning on the Multibanco settings screen

8.9.2 – 2023-12-07

  • PRO add-on 2.0: Trigger Multibanco and MB WAY payments when creating orders via the REST API

8.9.1 – 2023-12-07

  • Fix Credit Card Callback testing when WP_DEBUG = true
  • Better debug on the new wc_get_orders wrapper
  • Apply additional WordPress Coding Standards
  • Tested with WordPress 6.5-alpha-57159 and WooCommerce 8.4.0-rc.1

8.9.0 – 2023-12-05

  • wc_get_orders wrapper to remove Polylang language filters when seraching for orders, for example on callback calls, and apply meta conversions for HPOS in the wrapper instead of all over the place
  • Better explanation of value limits on each gateway
  • Fix credit card API refund URL from HTTP to HTTPS
  • Start applying WordPress Coding Standards
  • Tested with WordPress 6.5-alpha-57150 and WooCommerce 8.4.0-beta.1

8.8.0 – 2023-11-15

  • PRO add-on 1.6: Countdown timer on the thank you page for MB WAY payments
  • Tested with WordPress 6.5-alpha-57110, WooCommerce 8.3.0-rc.2 and WooCommerce Blocks 11.5.4

8.7.0 – 2023-10-30

  • Remove beta status from the HPOS and Blocks Checkout compatibility
  • Tested with WordPress 6.5-alpha-57027, WooCommerce 8.2.1 and WooCommerce Blocks 11.4.1

8.6.0 – 2023-08-31

  • Pass $_GET to the *_ifthen_callback_payment_complete hooks
  • Update hooks-examples.php with an example on how to use the payment complete hook with the new parameter
  • Tested with WordPress 6.4-beta2-56771 and WooCommerce 8.2.0-rc.2

8.5.0 – 2023-08-31

  • Fix a PHP notice
  • Rearrange premium plugins information on the settings screen
  • Tested with WordPress 6.4-alpha-56479 and WooCommerce 8.1.0-beta.1

8.4.0 – 2023-08-04

  • Better compatibility with newer versions of WooCommerce Deposits by webtomizer (Thanks Instituto Macrobiótico de Portugal)
  • Throw Exception instead of adding notice when finalizing the order, to be compatible with both traditional and blocks checkout
  • Tested with WordPress 6.3-RC3-56344 and WooCommerce 8.0.0-rc.1

8.3.0 – 2023-07-08

  • Fix a small bug when showing the order value on our metabox on the order edit screen on multicurrency websites
  • Tested with WordPress 6.3-beta3-56143 and WooCommerce 7.9.0-rc.2

8.2.0 – 2023-04-28

  • Fix a bug when changing email language if WPML is active
  • Add security bugs report information to the readme file
  • Tested with WordPress 6.3-alpha-55693 and WooCommerce 7.7.0-beta.2

8.1.0 – 2023-04-04

  • PRO add-on 1.3: Recover unpaid MB WAY orders by converting them to Multibanco and notify the customer via email
  • Fix a bug where old installs would incorrectly show the “MB Key or Entity and subentity” setting on the backoffice
  • Remove debug string from MB WAY settings
  • Add FAQ about why the MB WAY payment instructions are not send by email
  • Tested with PHP 8.1.9, WordPress 6.3-alpha-55618 and WooCommerce 7.6.0-beta.2

8.0.2 – 2023-04-01

  • Fix a PHP notice
  • Tested with WordPress 6.3-alpha-55615 and WooCommerce 7.6.0-beta.2

8.0.1 – 2023-02-28

  • New actions before process_payment functions
  • Tested with WordPress 6.2-beta3-55428 and WooCommerce 7.5.0-beta.2

8.0.0 – 2023-02-03

  • You can safely update to this version if you’re running WooCommerce 5.0 or newer
  • Support for the new WooCommerce block based checkout (in beta) for all payment methods;
  • Tested with WordPress 6.2-alpha-55198, WooCommerce 7.4.0-beta.2 and WooCommerce Blocks 9.5.0

7.1.1 – 2022-12-18

  • Set debug to true by default on new installs
  • Fix the callback instructions when using the new MB Key instead of Entity / Subentity
  • Fix version number on 7.1.0
  • Tested with WordPress 6.2-alpha-54951 and WooCommerce 7.2.0

7.0.0 – 2022-12-05

  • Direct and automatic MB WAY and Credit or debit card refunds via the order admin screen
  • High-Performance Order Storage compatible (in beta and only on WooCommerce 7.1 and above)
  • Fix a bug on emails when the shop language is not the same as the user managing the orders
  • Fix jQuery deprecations
  • Requires WooCommerce 5.0
  • Tested with WordPress 6.2-alpha-54888 and WooCommerce 7.2.0-beta.1

6.5.2 – 2022-11-29

  • You can safely update to this version if you’re running WooCommerce 4.3 or newer but we’ll very soon drop support for WooCommerce previous to 5.0
  • Fix trailing comma that was causing a fatal error on PHP below 7.3

6.5.1 – 2022-11-11

  • Requires WooCommerce 4.3
  • Removed MB WAY support for WooCommerce Subscriptions because the customer only have 5 minutes to pay for a renewal he might not be expecting
  • Fix id stored in Payshop references when order number is being used instead of order id
  • Fix a bug on the MB WAY callback introduced in 6.5.0
  • Code cleanup
  • Declare WooCommerce High-Performance Order Storage incompatibility (for now)
  • Tested with WordPress 6.2-alpha-54799 and WooCommerce 7.1.0

6.5.0 – 2022-11-11

  • Do not use this version

6.4.1 – 2022-11-03

  • Fix bug on MB WAY callback when comparing the incoming reference with the order id and/or number which would cause the order not to be identified
  • Debug tweaks – Stop sending “payment received” emails and only send warning or error emails
  • Tested with WordPress 6.1 and WooCommerce 7.1.0-rc.1

6.4.0 – 2022-10-25

  • PRO add-on 1.1: allow sending order number (for sequential order number plugins) instead of order id to the IfthenPay webservices and backoffice
  • Tested with WordPress 6.1-RC2-54684 and WooCommerce 7.1.0-beta.1

6.3.0 – 2022-10-19

  • New PRO add-on
  • Code refactoring when querying orders, cancel expiring orders
  • Suggest MB Key instead of Entity / Subentity
  • Replace “home banking” with “homebanking”
  • Tested with WordPress 6.1-beta3-54428 and WooCommerce 7.1.0-beta.1

6.2.0 – 2022-09-03

  • Fix – Payment instructions were not shown on subscription parent and renewal orders
  • Tested with WordPress 6.1-alpha-54043 and WooCommerce 6.9.0-beta.2

6.1.1 – 2022-08-01

  • Restore – The option to reduce stock when the order is created is available again

6.1.0 – 2022-07-28

  • Dev – Removed support for WooCommerce below 4.0 (launched in March 2020)
  • Dev – Removed support for WordPress below 5.0 (launched in December 2018)
  • Dev – Removed support for PHP below 7.0 (launched in December 2015)
  • Remove – The option to reduce stock when the order is created is no longer available as it worked only for WooCommerce below 3.4.0
  • Fix – Set order as paid when order total is 0 and bypass any payments
  • Fix – [https://wordpress.org/support/topic/exemplo-para-filtro-multibanco_ifthen_webservice_expire_days/](The multibanco_ifthen_webservice_expire_days filter was not working)
  • Requires WordPress 5.0, WooCommerce 4.0 and PHP 7.0

6.0.3 – 2022-06-30

  • Fix – Multibanco would not be available on checkout when the new “MB Key” configuration method is active in some scenarios
  • Fix – Check if the checkout block is installed on the page instead of only checking if we are on the checkout page

6.0.2 – 2022-06-27

  • Remove “WC-” from the order ID sent to the new Multibanco “MB Key” API, to be more coherent to what we do in MB WAY

6.0.1 – 2022-06-24

  • Fix a bug on the callback activation request with the new “MB Key” configuration method (do not request for callback activation on 6.0.0, intall 6.0.1 and then do it)
  • Fix a PHP warning
  • Under the hood: Change the way the plugin version is called

6.0.0 – 2022-06-24

  • New configuration method with an “MB Key” instead of an Entity and Subentity, which uses an API and allows for reference expiration (you should ask IfthenPay for configuration details for this method)
  • New filters for the new configuration method: multibanco_ifthen_base_mbkey, multibanco_ifthen_webservice_timeout, multibanco_ifthen_webservice_desc and multibanco_ifthen_webservice_expire_days
  • Tested with WordPress 6.1-alpha-53556 and WooCommerce 6.7.0-beta.1

5.2.0 – 2022-05-31

  • New brand: PT Woo Plugins 🥳
  • See you in WordCamp Europe 2022, in Porto?
  • Tested with WordPress 6.1-alpha-53451 and WooCommerce 6.6.0-rc.1

5.1.4 – 2022-05-04

  • May the 4th be with you
  • Small change on the checkout MB WAY field label
  • Tested with WordPress 6.0-beta2-53236 and WooCommerce 6.5.0-rc.1

5.1.3 – 2022-01-05

  • New option to set Payshop reference validity to 15 days
  • Small bug fixes on checking the payment methods key length
  • Tested with WordPress 5.9-RC1-52446 and WooCommerce 6.1.0-rc.2
  • Happy New Year!

5.1.2 – 2021-08-11

  • It’s now possible to remove the new methods notifications by returning true to the multibanco_ifthen_hide_newmethod_notifications filter
  • Tested with 5.9-alpha-51588 and WooCommerce 5.6.0-rc.1

5.1.1 – 2021-06-16

  • Fix a bug on the credit card gateway where some payments were not recognised
  • Small tweaks and debug
  • Tested with WordPress 5.8-beta2-51167 and WooCommerce 5.4.1

5.1.0 – 2021-05-27

  • Several code tweaks, input sanitization and extra checks
  • Tested with WordPress 5.8-alpha-51034, WooCommerce 5.4.0-rc.1 and WooCommerce Blocks 5.2.0

5.0.1 – 2021-04-03

  • New multibanco_ifthen_send_email_instructions, mbway_ifthen_send_email_instructions, creditcard_ifthen_send_email_instructions and payshop_ifthen_send_email_instructions filters to allow removing the payment gateway instructions from emails
  • Fix Credit card settings fields not hiding when the key is not set
  • WooCommerce Blocks (4.7.0 and above) improvements: respect the Multibanco “Only for Portuguese customers” setting and fix icon size
  • Small copy adjustments
  • Tested with WordPress 5.8-alpha-50650, WooCommerce 5.2.0-rc.1 and WooCommerce Blocks 4.7.0

5.0.0 – 2021-03-16

  • New payment method available: “Credit or debit card” (WooCommerce >= 4.0) – You need to sign an amendment to the contract
  • Requires WordPress 4.6 and WooCommerce 3.0 or above
  • For WooCommerce 2.6 support you need to use version 4.4.9
  • Plugin name changed
  • New and faster MB WAY endpoint
  • Force “New order” email to the store owner upon Payshop payment
  • Remove non-small icons
  • Renamed our order metabox to “IfthenPay” for simplicity
  • Simplification of the way we check if WooCommerce is active
  • Do not change the Multibanco reference when paying again from the customer area in “Incremental references with expiration date” mode and the reference is not expired yet
  • New filters to allow repositioning of the payment instructions on emails: multibanco_ifthen_email_hook, multibanco_ifthen_email_hook_priority, mbway_ifthen_email_hook, mbway_ifthen_email_hook_priority, creditcard_ifthen_email_hook, creditcard_ifthen_email_hook_priority, payshop_ifthen_email_hook and payshop_ifthen_email_hook_priority
  • New mbway_ifthen_pay_another_method_button_text to be able to change the “choose another method button text” on MB WAY
  • Bugfix: check for the “Completed” status on mbway.js, in addition to “Processing”
  • Bugfix: PHP notice on Multibanco “Incremental references with expiration date” mode
  • Bugfix: When paying again from the customer area, the old reference was being sent on the email in Multibanco “Incremental references with expiration date” mode
  • Bugfix: When paying again from the customer area, no email was sent if the customer changes from Multibanco to Multibanco in “Incremental references with expiration date” mode and the reference is already expired
  • Full readme.txt and hooks-examples.php revision
  • Several small improvements
  • Tested with WordPress 5.8-alpha-50535 and WooCommerce 5.1.0

4.4.9 – 2021-02-19

  • You can safely update this plugin if you’re running WooCommece 2.6.0 or newer but we’ll drop support for WooCommerce previous to 3.0 IN THE NEXT RELEASE
  • Last release before 5.0 (good news are on its way)
  • Fix force “New order” email to the store owner upon Multibanco payment on WooCommerce 5.0 and above
  • Tested with WordPress 5.7-beta2-50285 and WooCommerce 5.1.0-beta.1

4.4.8 – 2020-12-22

  • Fix minimum and maximum values for all gateways
  • Fix PHP notice
  • Tested with WordPress 5.7-alpha-49862 and WooCommerce 4.9.0-beta.1

4.4.7 – 2020-12-10

  • You can safely update this plugin if you’re running WooCommece 2.6.0 or newer but we’ll drop support for WooCommerce previous to 3.0 IN THE NEXT RELEASE
  • Requires WordPress 4.4 or above
  • Small readme.txt fix
  • Tested with WordPress 5.7-alpha-49782 and WooCommerce 4.8

4.4.6 – 2020-11-04

  • Bugfix setting the Multibanco order cancelation when using references with expiration (Thanks @josefreitas2)
  • Lay ground for a (yet to be confirmed) MB WAY refund functionality – Callback processing
  • Tested with WordPress 5.6-beta1-49314 and WooCommerce 4.7.0-rc.1

4.4.5 – 2020-08-11

  • Bugfix when sending order emails after a Payshop order is paid for
  • Tested with WordPress 5.5-RC3-48781, WooCommerce 4.4.0-rc.1 and WooCommerce Blocks 3.1.0

4.4.4 – 2020-08-05

  • New WooCommerce Blocks checkout only if the feature plugin is installed and activated
  • Bugfix on the Payshop callback activation request
  • Fix a PHP notice
  • Tested with WordPress 5.5-RC1-48708, WooCommerce 4.4.0-rc.1 and WooCommerce Blocks 3.1.0

4.4.3 – 2020-07-23

  • Revert showing the Multibanco “payment received” message on order completed emails (introduced on 4.4.0)
  • Only show WooCommerce Subscriptions options if the plugin is active
  • Only enable Multibanco support for the WooCommerce Blocks checkout if WooCommerce Blocks version is 3.0.0. or above and the support is enabled via the payment method options


  • Bugfix when WooCommerce Blocks 3.0.0 or above is active
  • Try to fix a fatal error when themes override the WooCommerce email templates with old (pre WooCommerce 2.6.0) versions
  • Tested with WordPress 5.5-beta3-48556, WooCommerce 4.3.1 and WooCommerce Blocks 3.0.0


  • Bugfix checking if order is paid when the “WooCommerce Order Status Manager” (by SkyVerge) plugin is active


  • New ifthen_unpaid_statuses filter to allow developers to set additional valid “unpaid” statuses for Multibanco, MB WAY and Payshop orders, besides the default ones (“on-hold”, “pending” and “partially-paid”). The statuses are used for callback validation, SMS message template, show order as unpaid on the backoffice, show “Pay” button on My Account orders list, issue new references if order value changes on the backoffice, reduce order stock rules, thank you page and email payment instructions.
  • Enforce requirement of WooCommerce 2.6.0 or above and bumped the WC requires at least tag accordingly
  • Enforce requirement of WordPress 4.4 or above and bumped the Requires at least tag accordingly
  • New filter ifthen_debug_log_extra that will allow developers to further debug the Multibanco reference generation (for now)
  • Try to fix a (very odd) behavior where the customer is redirected to the “pay order” page when completing checkout, which will generate a duplicate Multibanco payment reference (as expected).
  • New filters to hide the “Pay” button on “My Account” (which we do not recommend): multibanco_ifthen_hide_my_account_pay_button, mbway_ifthen_hide_my_account_pay_button, payshop_ifthen_hide_my_account_pay_button
  • (VERY) Experimental Multibanco support for the new [https://woocommerce.wordpress.com/category/blocks/](WooCommerce Blocks) [https://woocommerce.wordpress.com/2020/05/27/available-for-testing-a-block-based-woocommerce-cart-and-checkout/](checkout experience)
  • Tested with WordPress 5.5-beta2-48501 and WooCommerce 4.3.0


  • New instant callback activation method via webservice instead of email
  • When checking if the customer is from Portugal (to show/hide the payment methods) we now also check the shipping country
  • Only apply our WooCommerce 4.2.0 fix if version is equal or above 4.2.0 and below 4.3.0 (a WooCommerce fix is scheduled to be released on that version)
  • More prominent admin notice regarding old WordPress, WooCommerce or PHP versions in use
  • Remove old Spanish translation from the plugin folder, now that we have a proper one on WordPress.org thanks to https://profiles.wordpress.org/fernandot
  • Tested with WordPress 5.5-alpha-48241 and WooCommerce 4.3.0-rc.2


  • Show paid date and time on the order admin metabox
  • Better handling when the customer decides to change payment method in “My Account”
  • Only apply our WooCommerce 4.2.0 fix if “Prices entered with tax” is set to “Yes”
  • Code refactoring to prepare the next phase of supporting only WooCommerce 3.0 and above


  • Temporarily, while this WooCommerce bug is not solved, the value will not be matched when checking the callback and no new Multibanco or Payshop reference will be issued if the order changes value
  • Clarification on the settings page that the same set of entities or keys should never be used in more than one platform
  • Links to the Payshop agents and CTT stores search on the Payshop method extra instructions default message
  • Fix MB WAY phone number field hidden on some themes
  • Fix MB WAY and Payshop key fields appearance on the payment method settings
  • Show the Pay button on My Account for Multibanco and Payshop “On hold” orders
  • Better information when MB WAY order is already paid for
  • Better debug when requesting the MB WAY payment to the IfthenPay webservice
  • readme.txt tweaks
  • Tested with WordPress 5.5-alpha-47923 and WooCommerce 4.2.0


  • Bugfix issuing new Multibanco or Payshop payment details when the order value is changed on wp-admin on WooCommerce 4.0 and above
  • Extensions and other premium plugins list on the payment gateways settings page
  • Tested with WordPress 5.5-alpha-47547 and WooCommerce 4.0.1


  • Experimental: Automatically cancel unpaid orders after the Multibanco reference expires, if the “Incremental references with expiration date” mode is active
  • Bugfix when hiding Multibanco settings fields, if the “Incremental references with expiration date” mode is active
  • New hourly cron event for general plugin use
  • Tested with WooCommerce 4.0.0-rc.1
  • Requires WooCommerce 2.6.0 or above
  • For WooCommerce 2.5.0 support you need to use version 4.1.3


  • Fix bug on the subscription order edit screen


  • Requires WordPress 4.1 or above
  • Requires WooCommerce 2.5.0 or above
  • Requires PHP 5.6 or above
  • For WordPress 4.0, WooCommerce 2.4.0 and PHP 5.5 support you need to use version

  • Remove other plugins publicity from the settings page

  • Admin notice regarding old WordPress, WooCommerce or PHP versions in use (if you like to live in danger, you may disable it by returning false to the ifthen_show_old_techonology_notice filter)
  • Better readme.txt information regarding updates
  • Fix version number


  • This is the first release aimed at bringing the plugin, and it’s users, to recent technology (many more will follow)
  • Requires WordPress 4.0 or above
  • Requires WooCommerce 2.4 or above
  • Requires PHP 5.5 or above
  • For WordPress 3.8 and WooCommerce 2.2 support you need to use version 4.0.8
  • Use SVG icons and banners (except on emails where we still use PNG because SVG is not fully supported)
  • Deprecate big icons on the checkout
  • Tested with WordPress 5.3.3-alpha-46995 and WooCommerce 3.9.0-rc.2


  • Fix WooCommerce Subscriptions experimental integration
  • Tested with WooCommerce 3.8.1


  • Fix Payshop small icon size
  • Small fix on MB WAY WooCommerce Subscriptions support
  • Tested with WordPress 5.3.1-alpha-46771


  • Tested with WordPress 5.2.5-alpha and WooCommerce 3.8.0


  • Fix fatal error on WooCommerce below 3.4.0 when MB WAY or Payshop were not initialized yet


  • Fix bug when setting the Multibanco SMS instructions
  • Improve WooCommerce Deposits by webtomizer compatibility


  • Deactivate the payment methods if the required settings are not filled in
  • Fix bug when showing the MB WAY expiration date on the order admin page
  • Fix bug on the Payshop intructions on the thank you page when the reference has no expiration date
  • Correctly disable payment gateways if value is not on the allowed interval when payment inside the My account page
  • readme.txt adjustments


  • Fix version number


  • Fix small icons by default
  • Move mbway.js to the new assets folder and fix scripts version number
  • Fix small bug on Payshop that allowed the anti-phishing key to be changed via the settings page after it was set
  • Better MB WAY payment request debug


  • Payshop support (WooCommerce >= 3.0)
  • Plugin name change
  • Enforce payment gateways minimum and maximum default values
  • Change dumb quotes to smart quotes
  • Add payment gateway logo to settings page and order metabox
  • Admin CSS and JS as external assets instead of inline
  • Check for order currency instead of global WooCommerce currency when the order already exists
  • Several minor bugfixes and minimal code refactoring


  • Bugfix when creating a new reference if the order value changes while editing it on wp-admin
  • Tested with WordPress 5.2.3-alpha-45666 and WooCommerce 3.7.0-rc.1

  • Bugfix on the WooCommerce Subscriptions integration (Thanks @vascothemudo)
  • Tested with WooCommerce 3.6.2


  • Add the partially-paid status to Multibanco valid pending payment status when checking the callback
  • New multibanco_ifthen_valid_callback_pending_status and mbway_ifthen_valid_callback_pending_status filters when checking for pending payment orders on Multibanco and MB WAY callbacks (WooCommerce >= 3.0)
  • Tested with WordPress 5.1.1 and WooCommerce 3.6.0-rc.1

  • 30 seconds timeout instead of 10 seconds when calling IfthenPay’s MB WAY webservice, because SIBS is having performance problems which results in IfthenPay being unable to reply to our request on time

  • Check for WooCommerce below 2.2 (apparently it’s still around) and stop the plugin initialization if found


  • 10 seconds timeout instead of 5 seconds when calling IfthenPay’s MB WAY webservice
  • New mbway_ifthen_webservice_timeout filter
  • Callback verification fallback in the case the webservice times out but the MB WAY payment request is sent and paid anyway
  • Small copy fixes


  • Fix callback activation request broken by WooCommerce 3.5.5
  • Better feedback if the callback activation email cannot be sent
  • readme.txt improvements

  • Changing Payment Methods support for WooCommerce Subscriptions (Thanks @ptravassos)


  • Support for Multibanco references with expiration date (needs activation by IfthenPay)
  • Payment instructions tables code refactoring
  • Expiration date/time on the payment instructions tables (when applicable)
  • Better workflow when requesting a new MB WAY payment, namely the possibility to change the phone number
  • Minor bugfix on the MB WAY payment instructions
  • Filterable interval on mbway.js


  • Allow the customer to change payment method from the “Thank you” and “View order” (My account) page for orders with MB WAY as the payment method
  • Allow shop owner to request MB WAY payment again after 6 minutes of the original request (instead of the previous 15 minutes)
  • Change the payment instructions table on the “View order” (My account) page after the MB WAY payment request is expired and the order is still not paid (also a new mbway_ifthen_thankyou_instructions_table_html_expired filter)
  • Small debug tweaks on mbway.js
  • Minor tweaks on the plugin and readme.txt copy
  • Tested with WordPress 5.1 and WooCommerce 3.5.5


  • New option (activated by default) to force the resending of the “New Order” email (not the British Synthpop band), when the Multibanco payment is done via callback (this was happening erroneously before we fixed the stock management issue on 3.4.2, but we understand this is usefull for the Multibanco payment method)


  • Fix stock management when it’s set to decrease on order
  • New (experimental) feature: Request MB WAY payment again, on the order edit screen, available 15 minutes after the original request


  • Small tweak on mbway.js
  • Small tweak on the MB WAY payment instructions
  • Dropped support for WooCommerce prior to 2.2 / Bumped WC requires at least tag
  • Tested with WooCommerce 3.5.2 / Bumped WC tested up to tag
  • Tested with WordPress 5.0 / Bumped Tested up to tag


  • WooCommerce Deposits by webtomizer (experimental) integration on WooCommerce >= 3.0 (sponsored by mojobrands.net)
  • Bugfix: MB WAY details not showing up on wp-admin
  • Bugfix: Reduce stock correctly according to settings since WooCommerce changed it’s behavior in 3.4.0


  • Improved the multibanco_ifthen_thankyou_instructions_table_html, multibanco_ifthen_set_on_hold, multibanco_ifthen_email_instructions_pending_send, multibanco_ifthen_email_instructions_table_html, multibanco_ifthen_sms_instructions, multibanco_ifthen_email_instructions_payment_received_send, multibanco_ifthen_email_instructions_payment_received, mbway_ifthen_thankyou_instructions_table_html, mbway_ifthen_enable_check_order_status_thankyou, mbway_ifthen_email_instructions_pending_send, mbway_ifthen_email_instructions_table_html, mbway_ifthen_email_instructions_payment_received_send, mbway_ifthen_email_instructions_payment_received, multibanco_ifthen_cancel_unpaid_orders_restore_stock and mbway_ifthen_cancel_unpaid_orders_restore_stock filters by passing the order id to them
  • Renamed filters_examples.php to hooks-examples.php and improved it with examples for all the plugin hooks


  • New actions for developers: multibanco_ifthen_created_reference, mbway_ifthen_created_reference, multibanco_ifthen_unpaid_order_cancelled, mbway_ifthen_unpaid_order_cancelled, multibanco_ifthen_callback_payment_complete, multibanco_ifthen_callback_payment_failed, mbway_ifthen_callback_payment_complete and mbway_ifthen_callback_payment_failed
  • Tested with WordPress * / Bumped Tested up to tag
  • Downgraded the Requires at least tag to reflect the fact the plugin is still compatible with WooCommerce 2.0 and above
  • Tested with WooCommerce 3.5.1 / Bumped WC tested up to tag
  • Added WC requires at least tag on the plugin main file

  • Fix when getting Order WPML language on WooCommerce below 3.0
  • Tested with WooCommerce 3.5 / Bumped WC tested up to tag

  • Fixed a small bug where the Multibanco payment details would be regenerated if, for some exotic reason, an order value was changed on wp-admin for already paid orders


  • New multibanco_ifthen_multibanco_settings_fields and multibanco_ifthen_mbway_settings_fields filters to allow 3rd party plugins to add fields to the Multibanco and MB WAY settings screen
  • index.php file because “best practices”
  • Small coding standards fixes


  • New behavior for special entities that don’t allow repeated payments in a specific time frame (only for WooCommerce 3.0 and above)
  • New multibanco_ifthen_base_mbwaykey filter to be able to change the base MB WAY Key used to generate the payment details, based on the order, which may be useful for marketplaces
  • Bumped WC tested up to tag


  • Fix on the Twilio SMS integration (Thanks iOutlet)

  • SVN mess-up fix


  • GDPR chit-chat on the FAQ
  • We no longer store the mobile phone number used for MB WAY


  • Complete grammar and spelling review
  • MB WAY description limited to 70 characters (Site name #order_id)
  • Bumped WC tested up to tag


  • Fixed a fatal error bug if the order is not found when the MB WAY callback is invoked by IfthenPay
  • Better feedback to the customer, informing that there are only 5 minutes to complete the payment – because it seems SIBS has changed the timeout and told no one about it ¯_(ツ)_/¯


  • Better WooCommerce detection
  • Always round MB WAY values to two decimals
  • Clean problematic characters from the MB WAY payment description
  • Small fixes
  • Bumped WC tested up to tag


  • Debug when contacting the IfthenPay webservice to create the MB WAY payment request (shame on us…)
  • Better feedback to the customer, informing that there are only 15 minutes to complete the payment
  • Bumped WC tested up to tag