Mollie is a European payment processor supported by Fundations Pro. It provides iDEAL, Bancontact, credit card, and a range of other payment methods popular in the Netherlands, Belgium, Germany, and other European markets.
> Requires: Fundations Pro

Why use Mollie
Mollie is well-suited to Dutch and Belgian fundraisers. iDEAL is the most-used online payment method in the Netherlands, and Bancontact is the equivalent in Belgium. Mollie supports both, along with credit card, SEPA, and several other European methods, under a single API key.
What it does
When a donor submits the donation form with a Mollie payment method selected:
- Fundations calls the Mollie Payments API to create a payment and receives a checkout URL.
- The donor is redirected to Mollie’s hosted payment page.
- On return to your site, Fundations fetches the current payment status from Mollie. If still pending, it waits for the webhook.
- Mollie sends a webhook notification to
POST /wp-json/get-fund/v1/mollie-webhookwhen the payment status changes. - On a
paidstatus, the donation is marked as paid, stats are updated, and a confirmation email is sent. cancelled,expired, andfailedstatuses update the donation accordingly.
The payment methods shown to donors on the donation form come from the Mollie API and are cached for 24 hours. If you add or remove a payment method in your Mollie dashboard, clear the get_fund_mollie_methods transient to force a refresh.
Currency
Mollie uses the currency set in Fundations settings (get_fund_wizard_currency). This defaults to EUR. All donations are submitted to Mollie in this currency. Set it to match your Mollie account’s settlement currency before going live.
How to set it up
- Create a Mollie account at mollie.com and complete business verification.
- In the Mollie dashboard, go to Developers, then API Keys.
- Copy your Live API Key (starts with
live_) and your Test API Key (starts withtest_). - In WordPress, go to Fundations, then Settings, then the Mollie tab.
- Paste both keys into the corresponding fields.
- Set the mode to Test while verifying, then switch to Live when ready.
- Save the settings.
- The webhook URL is registered automatically. No manual configuration in Mollie is required for webhooks; Mollie reads the webhook URL from each payment request.

Settings reference
| Setting | Description |
|---|---|
| Test mode | When enabled, uses the test API key and Mollie test environment |
| Test API Key | Starts with test_ |
| Live API Key | Starts with live_ |
The currency used for all Mollie payments is controlled by the global Fundations currency setting, not a Mollie-specific setting.
Capabilities and limitations
Mollie supports iDEAL, Bancontact, credit card, and any other method active in your Mollie account. The donation form shows only the methods your account has enabled, since Mollie returns available methods based on your account configuration. Test mode covers full end-to-end testing without real money.
There are a few things Mollie does not support in this integration. Recurring donations exist in the codebase but are disabled (GET_FUND_RECURRING_ENABLED = false). Do not rely on them. Currency is global and set once in Fundations settings; it cannot be changed per donation. The 24-hour cache on payment methods can only be bypassed by manually clearing the transient.
Troubleshooting
Payment methods not appearing on the donation form
The list of available methods is cached as a transient for 24 hours. If you recently changed your Mollie account configuration, delete the get_fund_mollie_methods transient from the WordPress options table, or use WP-CLI: wp transient delete get_fund_mollie_methods.
Webhook not received
Verify that your site is reachable from the public internet and that nothing blocks POST requests to /wp-json/get-fund/v1/mollie-webhook. The correct URL uses a hyphen, not a slash: /mollie-webhook, not /mollie/webhook. Check Mollie’s dashboard under the payment details to see if webhook delivery was attempted.
Donation stays pending after donor returns
If the payment is still pending when the donor returns, Fundations fetches the current status directly from Mollie. If the fetch returns pending, the donation waits for the webhook. If no webhook arrives within Mollie’s retry window, the donation stays pending. Check that the webhook URL is publicly reachable.
Duplicate webhook requests
Fundations applies a 60-second lock per payment ID using a transient (mollie_webhook_lock_{id}). If Mollie retries within that window, the duplicate is ignored. This is expected behavior.
Wrong currency error from Mollie
Mollie rejects payments in currencies not enabled for your account. Check that the Fundations currency setting matches a currency your Mollie account accepts.
Developer reference
Hooks
| Hook | Type | When fired | Parameters |
|---|---|---|---|
get_fund_donation_paid | Action | After payment marked paid (webhook or return) | $donation_id (int) |
get_fund_donation_status_transition | Action | On paid, cancelled, or failed | $donation_id (int), $new_status (string), $old_status (string) |
get_fund_donation_completed | Action | After get_fund_donation_paid | $donation_id (int), $data (array) |
The $data array in get_fund_donation_completed contains: amount, action_id, donor_name, donor_email.
Filters
| Filter | Description | Since |
|---|---|---|
get_fund_mollie_payment_methods | Called by the FREE donation form renderer to get available methods. PRO returns the live list from Mollie API (or an empty array on error). | 1.0.0 |
get_fund_donation_redirect_url | Filters the return URL included in the Mollie payment request. Parameters: $return_url (string), $donation_id (int). | 1.1.0 |
REST endpoint
POST /wp-json/get-fund/v1/mollie-webhook
No authentication. Handles payment status updates from Mollie. A 60-second idempotency lock per payment ID prevents duplicate processing. Handled statuses: paid, canceled, expired, failed.
Relevant options
| Option key | Type | Notes |
|---|---|---|
get_fund_mollie_test_mode | bool | Defaults to true |
get_fund_mollie_test_api_key | string | |
get_fund_mollie_live_api_key | string | |
get_fund_wizard_currency | string | Used as Mollie payment currency; defaults to EUR |
get_fund_donation_thank_you_page | int | WP page ID used as the return URL base |
Payment methods cache
Available methods are stored in transient get_fund_mollie_methods with a 24-hour expiry. To clear it:
delete_transient( 'get_fund_mollie_methods' );
or via WP-CLI:
wp transient delete get_fund_mollie_methods