mahocommerce/module-mollie

Mollie payment gateway integration for Maho

Maintainers

Package info

github.com/MahoCommerce/module-mollie

Type:maho-module

pkg:composer/mahocommerce/module-mollie

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 2

v0.8.0 2026-05-20 15:37 UTC

This package is auto-updated.

Last update: 2026-06-01 08:04:56 UTC


README

Maho Commerce License PHP PHPStan Level

Mollie payment gateway integration for Maho Commerce.

Accept payments through Mollie, one of Europe's leading payment service providers — offering 40+ payment methods across the Payments API and the Orders API (for Klarna and other Buy Now Pay Later methods).

Status: Beta — redirect flow + Mollie Components verified against the Mollie sandbox. Core payment flow (create → redirect → webhook → return → cron) is implemented against the Mollie Payments API, plus online refunds and admin-configurable order statuses. 28 method blocks are configurable in admin and all of them work end-to-end via redirect (the generic Mollie selector plus the per-method blocks listed below). For credit cards there's an opt-in PCI-SAQ-A flow via Mollie Components: the card-number / expiry / CVC / cardholder fields render inline in your checkout (cross-origin iframes hosted by Mollie), the customer stays on your site through to the success page, and the redirect-to-Mollie fallback still triggers if Components isn't configured or JS fails. Apple Pay's express-checkout button (cart/PDP) is not yet implemented, though Apple Pay via redirect works. Translations ship for Dutch, German, French, Italian, and Spanish.

Known gap: the webhook re-fetches the payment from Mollie's API for verification, but there is no DB-level lock around the capture path; concurrent webhook redeliveries could race.

Requirements

  • PHP >= 8.3
  • Maho Commerce
  • A Mollie merchant account

Installation

composer require mahocommerce/module-mollie

Clear the cache after installation:

./maho cache:flush

Configuration

Navigate to System > Configuration > Payment Methods in the Maho admin panel.

General Settings (Mollie - General Settings)

Setting Description Default
Test Mode Use the Mollie test API key to process mock payments Yes
Live API Key Your Mollie live API key (starts with live_)
Test API Key Your Mollie test API key (starts with test_)
Test API Key (button) One-click check that the configured key can reach the Mollie API
Debug Logging When enabled, writes verbose reconcile/refund events to var/log/mollie.log No

Find your API keys in the Mollie dashboard under Developers.

Method-specific groups

Each of the 28 bundled methods has its own admin group with the usual active / title / country / sort-order controls plus per-method pending / processing order statuses.

Roadmap

API layer

  • Payments API integration (create, webhook, return, cron reconciliation, refunds)
  • Orders API integration (Klarna line items, in3, Billie, Alma, Riverty, Voucher categorisation)
  • Apple Pay express checkout (domain association + JS button)

Payment methods

Working end-to-end via redirect (Mollie hosts the actual UI):

  • Generic Mollie gateway (Mollie's full method picker)
  • iDEAL
  • Bancontact
  • Credit card (redirect by default; PCI-SAQ-A inline checkout via Mollie Components — toggle "Use Mollie Components" + Profile ID in the admin section)
  • PayPal
  • Apple Pay (redirect only — express button on cart/PDP not yet)
  • Bank Transfer
  • SEPA Direct Debit
  • Gift Card
  • Google Pay
  • Trustly
  • TWINT (Switzerland)
  • BLIK (Poland)
  • Przelewy24 (Poland)
  • EPS (Austria)
  • Belfius (Belgium)
  • Bizum (Spain)
  • MyBank (Italy / Spain)
  • Satispay (Italy)
  • BANCOMAT Pay (Italy)
  • Multibanco (Portugal)
  • MB WAY (Portugal)
  • Payconiq (Belgium / NL / Lux)
  • MobilePay (Denmark / Finland)
  • Swish (Sweden)
  • Vipps (Norway)
  • Pay by Bank (UK)
  • paysafecard

Not bundled at all (Mollie supports them; this module has no method block, model, or config):

  • Klarna Pay Later / Pay Now / Slice It — need the Orders API to send orderLines
  • iDEAL in3 — needs Orders API
  • Riverty — needs Orders API
  • KBC / CBC (Belgium) — needs issuer selection
  • Voucher (meal-voucher schemes — Edenred, Sodexo, etc.) — needs per-product category mapping
  • Alma, Billie — BNPL, need the Orders API
  • POS (point-of-sale) — needs terminal picker
  • SOFORT Banking (deprecated by Mollie — listed for completeness)

Features

  • Online refunds from admin via Mollie API (full + partial)
  • Webhook-driven payment status reconciliation (all mollie_* method codes, not just the generic gateway)
  • Cron-based safety net for missed webhooks (5-minute interval, 24-hour lookback)
  • Admin-configurable pending / processing order statuses, per payment method
  • External-refund and chargeback reconciliation (creditmemo from Mollie dashboard refunds; chargeback order comments only)
  • Multi-store API key scoping
  • Admin "Test API Key" button (one-click connectivity check)
  • Debug logging toggle (gates info-level entries in var/log/mollie.log)
  • Translations for Dutch, German, French, Italian, and Spanish
  • DB-level idempotency lock on the capture path (today only an in-memory hasInvoices() check)
  • Multi-currency support (code paths present but not verified end-to-end)
  • Second-chance payment email
  • Vault / stored cards
  • Mollie Components (hosted card fields) — opt-in per store via admin
  • Payment-link generation from admin
  • Shipment push to Mollie (Orders API)

Acknowledgements

Architecture and feature set informed by the official mollie/magento2 module by Magmodules (OSL-3.0). This module is an independent Maho implementation; no code is copied, but the integration shape and feature surface follow the upstream as a reference.

License

This module is licensed under the Open Software License v3.0.

Links