mahocommerce / module-mollie
Mollie payment gateway integration for Maho
Package info
github.com/MahoCommerce/module-mollie
Type:maho-module
pkg:composer/mahocommerce/module-mollie
Requires
- php: >=8.3
- mollie/mollie-api-php: ^3
This package is auto-updated.
Last update: 2026-06-02 08:55:38 UTC
README
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.