Mollie

Mollie is connected through Milo Payments and provides access to 20+ payment methods popular in Europe, including iDEAL, Bancontact, credit cards, SOFORT, SEPA Direct Debit, and more. It is the right choice when most of your customers are in the Netherlands, Belgium, Germany, or elsewhere in the EU where local methods outperform cards.

Key facts

  • Gateway ID: milo_mollie.
  • Method title at checkout: Mollie.
  • Uses Mollie Connect (OAuth) for the connection and Mollie’s hosted payment page for the actual payment, which handles SCA compliance automatically.
  • Recurring renewals use Mollie’s customer + mandate model: the first payment creates a mandate, and renewals charge the saved mandate without customer intervention.
  • A 1% application fee is added on top of Mollie’s standard processing fees on live transactions.

Connecting Mollie

  1. Go to Milo Subscriptions → Payments.
  2. Click the Mollie card, then click Connect with Mollie in the header.
  3. You are redirected to Mollie Connect to authorize the connection.
  4. After authorizing, you are redirected back to your site. The card updates to CONNECTED.

The connection stores:

  • An OAuth access token for API calls.
  • The Mollie profile ID (the merchant profile payments are attributed to).
  • The timestamp of the connection.

Gateway detail page

Once connected, the Mollie detail page shows two sections:

Connection

  • Account: your Mollie organization / profile.
  • Mode: Test or Live.

Settings

  • Enable at checkout: show Mollie at checkout.
  • Test / Sandbox mode: use Mollie’s test environment for all payments.

A Disconnect button lives in the page header. Disconnecting revokes the OAuth connection and clears stored credentials.

Checkout experience

Because Mollie supports many different payment methods (iDEAL, Bancontact, SOFORT, credit cards, SEPA, and more), the checkout flow is handled on Mollie’s side:

  1. The customer selects Mollie at checkout in WooCommerce.
  2. On submit, Milo Payments creates a Mollie payment and redirects the customer to Mollie’s hosted page.
  3. The customer picks a payment method and completes it on Mollie’s side.
  4. Mollie redirects the customer back to the WooCommerce order received page.

Because the method selection happens on Mollie’s side, no inline card fields render on your WooCommerce checkout (has_fields = false).

Return-path status check

Webhooks from Mollie are used to confirm payment status in production. On local or staging environments where webhooks cannot reach the site, Milo Payments also checks the payment status when the customer returns from the hosted page:

  • Looks up the stored _milo_mollie_payment_id.
  • Calls GET https://api.mollie.com/v2/payments/{id} (with ?testmode=true in test mode).
  • If the status is paid, marks the order complete and stores the returned mandateId as _milo_mollie_mandate_id.

This covers situations where the webhook round-trip is delayed or unavailable.

Supported features

The Mollie gateway declares support for:

  • Products
  • Refunds
  • Tokenization (via Mollie customer + mandate)
  • Subscriptions: cancellation, suspension, reactivation, amount changes, date changes, and payment method change (by both admin and customer) when Milo Subscriptions is active.

How renewals work

On the first subscription purchase, Milo Payments:

  1. Looks up or creates a Mollie customer and stores the customer ID:
  • _milo_mollie_customer_id_{profile_id} on the WordPress user (scoped by merchant).
  • _milo_mollie_customer_id on the subscription.
  1. Creates the first Mollie payment linked to that customer. Mollie automatically creates a mandate when payment is confirmed.
  2. Stores the Mollie payment ID on the order as _milo_mollie_payment_id, and the mandate ID as _milo_mollie_mandate_id once the payment is complete.

On each renewal:

  1. Milo Payments looks up the customer ID on the subscription.
  2. It creates a new payment referencing that customer. Mollie selects a valid mandate automatically.
  3. On success, the renewal order is marked Completed and the Mollie payment ID is stored on the renewal order.
  4. If no customer ID or no valid mandate is present, the renewal fails and the customer is asked to add a new payment method.

Test mode

Toggle Test / Sandbox mode on to route through Mollie’s test environment. You will need a Mollie test API connection, accessible from your Mollie dashboard. While in test mode, Mollie returns fake payment results and no real money moves.

Typical test flow:

  1. Enable test mode.
  2. Complete a purchase using any listed test method (iDEAL “Paid” returns a successful payment, “Failed” returns a failure, and so on).
  3. Force a renewal from the subscription detail page to confirm the mandate-based charge works end to end.
  4. Turn off test mode before going live.

Application fee

On live transactions, Milo Payments adds a 1% application fee collected by the connect server proxy. This appears on Mollie transactions alongside Mollie’s own processing fees. No fee applies in test mode.

Disconnecting

From Milo Subscriptions → Payments → Mollie, click Disconnect in the header. After confirming, Milo Payments:

  • Revokes the OAuth connection with Mollie.
  • Clears the stored credentials from wp_options.
  • Leaves subscriptions in place, but their mandates can no longer be charged because the access token is gone. Renewals will fail until the customer adds a new payment method or you reconnect the same Mollie account.

Troubleshooting

Payment stays Pending after return

If your test or staging environment cannot receive webhooks, the order relies on the return-path status check. Visit the order received page (the URL the customer lands on after Mollie) so the check runs. In production, make sure webhook URLs are reachable from Mollie.

iDEAL or another specific method is missing

Method availability depends on your Mollie account and the currency of the payment. Enable the method in your Mollie dashboard under your profile’s activated methods. If it is enabled in Mollie and still missing, check that the order currency is one Mollie supports for that method (iDEAL requires EUR).

Renewals fail with a mandate error

A mandate becomes invalid when the customer revokes it from their bank, or when the backing card or bank account is closed. Milo Subscriptions will run renewal retries and email the customer to update their payment method. A new successful payment creates a new mandate automatically.

Wrong profile receives payments

The profile ID stored during connection is used for every payment. If you want to switch profiles, disconnect and reconnect, selecting the correct profile during the Mollie Connect flow.

Duplicate Mollie gateway at checkout

If you have another Mollie plugin active (for example, Mollie’s own WooCommerce extension), you will see two Mollie methods at checkout. Milo Payments shows an admin notice when it detects a conflict. Deactivate one of the two.

Next steps

  • Payments overview: compare Mollie with Stripe, PayPal, and Square.
  • Stripe: card-focused processor with strong global coverage.
  • PayPal: add PayPal, Venmo, and Pay Later.
  • Square: card payments tied to Square’s POS.

Did this page miss something?

Tell us and we rewrite it, usually the same day.

Send a note