Mollie payment forms & donations

Description

You don’t need complex plugins or integrations to start accepting payments with iDEAL (and other payment methods) in WordPress! Get (test) payments running on your site within 15 minutes!

Use Paytium to create a simple payment form for a product or service. Accept donations or create a small webshop. Paytium supports one-time payments and subscriptions/recurring payments.

Accept popular payment methods

Besides iDEAL you can also accept payments with credit cards, PayPal Bancontact/Mister Cash, SOFORT, Bitcoin, Belfius and other payment methods! View a full list at Mollie.

After completing a short and guided setup, you can start adding payment forms with iDEAL (and other payment methods) to your posts or pages. Shortcodes can be inserted with a few clicks directly from the iDEAL button in the WordPress editor.

Paytium forms can be added in the Classic editor as shown in the below video, and as a block in the new Block editor. In the block editor, add the new “Paytium Code” block by typing /Paytium.

Flexible: get creative with iDEAL payments

There is no limit to the amount of Mollie iDEAL forms you can create in your posts and pages. You can use different amount types.

  • static, users just click the “Pay € 20” button
  • dynamic, users select an amount in a dropdown
  • custom, users enter an amount in a text field

Pro versions: when you need to grow

When your payment form really starts to bring in some money, and you need to grow, or want to automate things, consider the Pro versions!

Examples of what you can do

  • Collect donations for charity, allow people to enter their own amounts
  • Add a link to your site on your invoices and ask customers to pay online
  • Sell simple products, with registration of customer address details
  • Accept online payments for services such as a workshop or coaching sessions
  • And more!

Custom fields: collect all the information you need

Need more information from your customers, or want to ship something? Add your own fields and view the collected information in the WordPress admin. You can create an email field, text fields, radio buttons and more! Read more in the manual.

Yes, this is the Gravity Forms & iDEAL alternative you have been waiting for!

Automatically process recurring payments

Paytium also supports recurring payments, even for iDEAL payments. Setup a simple subscription, ask customers to pay once to confirm, and see how the next payments come into your bank account automatically.

Yes, recurring payments also work with iDEAL payments! When iDEAL is used for the first payment, the next (automatic) payments are processed with SEPA direct debit (automatische incasso). Read more in the recurring payments for WordPress manual.

What’s the big deal about iDEAL?

Paytium supports almost all Mollie payment methods, including iDEAL but excluding Klarna. But iDEAL is a little special to Paytium, because it’s Dutch (and so is Paytium’s developer).

The payment method iDEAL is a Dutch payment method supported by almost all Dutch banks. It allow’s Dutch consumers to pay easily via the online banking app or the banks website. iDEAL is the most popular payment method in the Netherlands, and 60% of Dutch consumers prefer iDEAL over other payment methods like PayPal. iDEAL is a semi-automated direct online transfer from the consumers bank account to your Mollie account/bank account.

Even though iDEAL is the most popular payment method in the Netherlands, other payment methods like PayPal are becoming more popular. My advice is to always accept at least iDEAL as payment method in your payment forms, but also enable all other payment methods that are available via Mollie. Consumers like to make payments in their favourite payment method, so it’s best to just allow them to make the payments in anyway they like.

A nice thing to know about iDEAL, is that iDEAL payments can not be refunded by consumers. This is off course possible with PayPal or credit card payments. Some businesses see this a big benefit for iDEAL, but consumers off course see this as a limitation. But with good communication between you and your consumers/customers, this shouldn’t be a problem for iDEAL payments. You, as a Mollie user, can refund iDEAL payments via the Mollie dashboard. It’s just that consumers can’t initiate the refund.

Why payments via Mollie?

Why does Paytium only support Mollie as payment service provider?

  • Mollie is the cheapest iDEAL payment provider with 29 cents per iDEAL transaction
  • Besides iDEAL, Mollie also supports many other payment methods, and you just need one Mollie account
  • Your money can be automatically wired to your bank account daily, and for free
  • No hidden, setup or monthly costs, only pay for actual transactions
  • Fully certified by “De Nederlandsche Bank” (DNB), just like the big banks
  • Mollie is the very best in payments, based on my experience with iDEAL since 2008
  • Super fast and friendly helpdesk (via email and telephone)

Read more about Mollie

Built by iDEAL expert

This plugin is created by payments expert and Dutch developer David de Boer. He spoke about “iDEAL in WordPress” and “Trends In Online Payments” during WordCamp Netherlands 2015 and 2016 and WordPress Meetup Nijmegen.

Advice, support or feedback

You can always ask David anything about online payments and iDEAL. Just email david@paytium.nl.

More information

Screenshots

  • Easy to get started with accepting payments - The built-in wizard helps you to quickly connect your WordPress website to your new or existing Mollie.com account. You can be accepting real payments within one business day (often faster)! The entire process is explained in detail in the wizard itself.
  • Add payment buttons to posts or pages - Click on the iDEAL icon in the WordPress editor to quickly add shortcodes in your posts or pages. These shortcodes will be converted to payment buttons and your visitors can use iDEAL or other payment methods to pay for your products or services.
  • Payment buttons are flexible - Set a static amount to be paid, ask for donations (custom amounts!) or allow visitors to select an amount for a specific product/service via a dropdown.
  • Collect customer details - Need more information, or want to ship something to your visitors? Add your own custom fields and new fields will be added to the payment button!
  • Payments processed via Mollie.com - After clicking "Pay" visitors will immediately be redirected to secure payment provider Mollie, which will process the payments and wire the funds to your own bank account. Mollie is certified by the Dutch national bank 'De Nederlandsche Bank (DNB)'.
  • Review all payments and their status - Check the status of all payments directly in the WordPress admin. Use the built-in "Order Status" to keep track of your own processing directly in WordPress.

Installation

Plugin installation

The easiest way to install Paytium is to login to WordPress and go to Plugins > New Plugin. Search for “Paytium” and open the detail view. Click “Install now”.

For a manual installation download the plugin from the WordPress repository, and after unzipping it, upload the folder “paytium” to the “wp-content/plugins” directory of your WordPress site.

Read more about the various options in the manual.

Setup your Mollie account

You can create a new Mollie account or connect an existing account via the Setup Wizard (“Installatie hulp” in Dutch) in Paytium itself under Paytium > Setup Wizard. The Setup Wizard helps you configure your Mollie account, so you can start accepting payments as soon as possible.

Mollie is a Dutch payment service provider (PSP) which will process your payments and wire your payments to your bank account daily. They are certified by the Dutch national bank (DNB) and are checked just as strict as normal Dutch banks.

Add payment forms with shortcodes

After having set up your Mollie account, you can navigate to Posts or Pages in WordPress and open an existing or new page/post. In the page/post edit view you will now see an iDEAL icon in the WordPress editor. Use that iDEAL icon to add default Paytium shortcodes. Feel free to edit texts or amounts. These shortcodes will be transformed to actual iDEAL payment forms and buttons on your site.

Read more about the various options in the manual.

FAQ

Where can I find the documentation?

Paytium is a relatively simple plugin but… we have documentation anyway! To learn more please read the manual. If you still have questions, feel free to email david@paytium.nl.

Can I get advice about iDEAL and this plugin?

Yes, it would be my pleasure to advice you on the best way to implement iDEAL payments, email david@paytium.nl.

Can I accept recurring payments?

Yes, you can! Learn more about recurring payments in the recurring payments for WordPress manual!

Can I use my own (custom) form fields?

You can create your own payment forms by using custom fields in Paytium. Read more in the custom fields manual.

Does Paytium work on local WordPress installations?

No, you it does not. Payments can not be processed when originating from a desktop or localhost WP installation. I advice installing and using Paytium on live sites only, maybe in a sub directory, for example yourdomain.nl/test.

Do I need a chamber of commerce (KVK) number?

Yes, according to law you really need to be a company, and have a “Kamer van Koophandel” number to accept iDEAL payments.

What if the Setup Wizard doesn’t work?

Go directly to Mollie (create an account if you haven’t already), login to your acocunt and copy the profile keys to Paytium > Settings.

Can I redirect users to another page after the payment?

Yes, you can with the commercial version Paytium Plus or code it yourself. View code examples in our manual.

Can I just change the text after payment (without redirect)?

Yes, you can! You can use the free plugin Say What, or consider using the commercial version Paytium Plus. For Say What, when installed go to Extra > Text changes. Make a new text change with these details. Replace “Replacement string” with your text.

Reviews

Goede en snelle service

Ik had de plug-in geïnstalleerd maar het invoerveld voor bedrag bleek voor mobiel te lang en niet aanpasbaar. Ik stuurde een mail en kreeg binnen enkele minuten antwoord met een update van de plugin en instructie voor installatie. Na opvolgen instructie werk het ook netjes voor mobiel.

Super service!

Een geweldige plugin met fantastische klantondersteuning! De handleiding is zeer helder en alomvattend. Ik heb weinig kennis van programmeren/websites bouwen maar heb het grotendeels zelf voor elkaar gekregen. Voor de wat meer 'technische' aspecten ben ik enorm gesteund door David, waar het mij niet lukte heeft hij mij in jip en janneke taal uitgelegd wat ik moest doen en hoe ik dat moest doen. Deze plugin is een echte aanrader!!

Blij mee!

Eindelijk een plugin gevonden waarmee ik eenvoudig en snel betalingen kan ontvangen via Mollie, zonder een complete webwinkel te installeren. Bedankt David!

User details

Can i store user details in wp admin like user name, email etc which they fill in the form before paying

Nice plugin for simple payment options

When you do want to sell a few items or to make donations possible and you don't need a full webshop, this is the plugin you need. It could do with a few extra options, so it's not perfect (yet), but it's free and it's fairly easy to use and it works like a charm.
Read all 25 reviews

Contributors & Developers

“Mollie payment forms & donations” is open source software. The following people have contributed to this plugin.

Contributors

“Mollie payment forms & donations” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Mollie payment forms & donations” into your language.

Interested in development?

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

Changelog

2.1.5 – January 20th, 2019

  • Add ‘Paytium Code’ block for WordPress 5.x Block Editor (includes ideal.svg)
  • Setup Wizard: Remove ‘I have a Mollie account’ form, add a short manual

2.1.4 – November 1st, 2018

  • New: Add support for EPS, GiroPay
  • New: Rename MisterCash to Bancontact
  • New: In Payments search include meta data so it’s more powerful

  • Fix: Setup Wizard: better explain what people can do when the wizard fails

  • Fix: Add separate items table for payments admin view
  • Fix: Don’t try to create a subscription if one is already active
  • Fix: Language string updates
  • Fix: Update API endpoint to https://api.mollie.com (advice by Mollie)
  • Fix: Update minimum amount to 99 cent, so 1 euro is accepted
  • Fix: Required checkbox shows error in other forms

2.1.3 – May 24th, 2018

  • Fix: Show Paytium iDEAL icon in WP editor with inline CSS (reverted), causes display issues with Media Manager, Updraft Plus etc, replaced with javascript

2.1.2 – May 24th, 2018

  • New: Add new shortcode [paytium_button /] with support for custom css classes, style definitions

  • Fix: Default amounts in open fields (donations) weren’t registered correctly, causing "Invalid amount" error

  • Fix: Remove unused $default and $required for checkbox and terms fields
  • Fix: Remove hard-coded required for name, first name and last name fields
  • Fix: Show Paytium iDEAL icon in WP editor in Pro versions too (move CSS inline, thank you HTML5!)
  • Fix: Only show toolbar and ‘Pro versions’ link to users with capability ‘manage_options’

2.1.1 – May 8th, 2018

  • FIX:
    • PHP 7.x fatal error "Cannot use "self" when no class scope is active"

2.1.0 – May 7th, 2018

  • NEW:

  • FIX:

    • Subscriptions: multiple improvements to processing of subscriptions, making sure new subscriptions can’t be created by accident
    • Fix Paytium > Payments view on small screen size
    • Remove pt_is_localhost() check before shortcode generation because in some server configurations, the IP is actually set to 127.0.0.1 even when the server is production
    • Fixed issue where with open fields (user entered custom amount) the amount wasn’t stored correctly before payment
    • Add a call to catch $_POST[‘pt-amount’] for processing payment functions for backwards compatibility of custom integrations
    • Fix bug where field type checkbox only saves one option
    • Make sure required checkboxes only get one "This field is required" error
    • Add explicit explanation that voting on Paytium features subscribes user to newsletter
    • Don’t create a Mollie customer when a form doesn’t include a payment (Paytium No Payment)
    • The register_activation_hook was implemented incorrectly and didn’t run, causing admin notices to not display
    • Improve ‘Items Table’ layout in payment edit, invoices, emails
    • Improve styling of dropdowns in forms to look the same as text input
    • Label of fields with type firstname was not stored (by typo in ddata)
    • Checkboxes: remove default checkbox for amounts, make sure terms option is also stored, only sum up amounts for amount checkboxes, not eg. terms
    • Fix harmless warning in developer console for missing Parsley map file
    • Add explanation to prefilled fields (name, firstname, lastname, email) for administrators
    • Email field: fix validation when field not required and empty

2.0.6 – January 14th, 2018

  • FIX:
    • Made sure payment status is translated on return page
    • Paytium Links: amounts with comma’s as separator not processed correctly
    • If a form contains multiple required email fields with no input on submit, the "This value is required" message was shown multiple times under the first field
    • Fixed issue where with open fields (user entered custom amount) the amount wasn’t stored correctly before payment
    • Remove check for amount format in open amount fields (user entered amount) as it’s also done in form processing javascript and causes issues in some browsers (regex pattern)
    • Updated examples in TinyMCE button to match new format, see https://www.paytium.nl/handleiding/flexibele-bedragen/

2.0.5 – December 7th, 2017

  • NOTES:

    • Paytium can now count multiple amounts (bedragen optellen) in one form! Hooray! But this does mean that if you have an incorrect form, the total might be too high. I have a noticed a small group of users have this incorrect setup. Please check your forms after the update, and make sure your total amount is correct.
  • NEW:

    • Add new amount shortcodes so you can include multiple items (products/services/amounts) per form
    • Add support for setting a tax percentage per item tag
    • Add support for summing up (optellen) multiple items
    • Add Payments link to WordPress sidebar
  • FIX:

    • Make sure extra fields of type textarea are not included in Mollie metadata (otherwise might hit Mollie metadata limit and show an error)
    • Terms & Conditions checkbox: fix bug, link to T&C (with 404 error) shown even when not set
    • Setup Wizard: individual website profiles can now be seen and selected (for users that already have active profiles)
    • Setup Wizard: fix "Check again" button
    • Fix bug when using first name and last name field and recurring payments (Mollie Customer not created)
    • Update minimum capability for Payments overview to edit_posts so Editors can view them
    • Saving selected labels in dropdowns & radio buttons
    • Make sure CSS/icon for Paytium icon in editor is also shown in site
  • UX:

    • Subscriptions: show Mollie Customer ID in Subscriptions metabox
    • Subscriptions: improvement to only create a subscription if first payment is not expired, cancelled or failed
    • Subscriptions: fix "Cancel subscription" button and show more useful information to users (after Mollie changed their API, causing an error when button was used)
    • Subscriptions: improve Mollie Subscriptions implementation by saving and showing more useful information to users
    • Payments overview: improve style of status labels in Payments overview
    • Update Parsley.js to 2.7.2 (fixes conflicts with plugins, at least Caldera Forms)
  • DEV:

    • Webhook: use GET/POST instead of REQUEST and sanitize input
    • Remove unused libraries: pikaday, WPUpdatePhp, moment.js
    • Subscriptions: only save subscription post meta fields if payment is actually a subscription
    • Moved MailChimp API libraries to pro versions so basic version is lighter
    • Updated Mollie API PHP client to 1.9.1

1.5.0 – May 27th, 2017

  • NEW:

    • Links: pre-fill information into a form from a URL, see manual.
    • No Payment: create normal forms that don’t need a payment, see manual.
    • Automatically prefill a users name (full, first, last) if logged in
  • FIX:

    • Make sure text after clicking Buy Now-button -Even wachten a.u.b- is translatable
    • Improve styling/css of user-entered-amount (open field for amount)
    • Improved translations and fixed typo’s
    • Fix bug where newly created profile key was not stored in Setup Wizard
  • UX:

    • Don’t show a notice for Setup Wizard if Paytium is already set to accept Live payments
    • Don’t show Setup Wizard in menu if site is set to Live payments
    • Add admin notice explaining that using the Setup Wizard is not required if site has already received live payments
    • During Setup Wizard only set site to Live payments if website profile is verified, not just on check
  • DEV:

    • Split payment, webhook & redirect functions into 3 separate files

1.4.1 – March 18th, 2017

  • NEW: Added (3) better messages after payment per status (paid, open and other statuses)
  • NEW: Add new hooks after webhook processing of subscription first and renewal payments, paytium_webhook_subscription_renewal_payment and paytium_webhook_subscription_first_payment
  • FIX: Re-add support for sending custom field info to Mollie, but cap at 20 fields because of Mollie metadata size limit
  • FIX: Updated always_enqueue check to paytium_always_enqueue, caused scripts to not always load when Paytium shortcode was not found in the content

1.4.0 – February 21st, 2017

  • Bug fixes:
    • Add a custom start date for subscriptions, so they start the interval period after the first payment (no more double payments)
    • Make sure payment status shown after payment (in the Thank you message) is pretty and translated (to Dutch for example), not an untranslated (English) database value
    • Add a colon ‘:’ to the label of paytium_dropdown and paytium_radio automatically, just like the other fields in the payment form
    • Payment and order status labels in Paytium > Payments did not have different colours previously
    • On some sites payment status was not updated because the home_url() didn’t include a trailing slash by default, changed webhook URL to always have a trailing slash
    • Also recognize amounts in [paytium_dropdown /] & [paytium_radio /] if there is no description in the options, just an amount
    • Added wp_unslash to remove slashes before description and name are sent to Mollie
    • The error "Invalid Customer ID" will no longer be shown when a webmaster moves from test to live payments and does a test with a known email address
  • Subscriptions, improved and extended the implementation of recurring payments:
    • Added Subscription details in Paytium > Payment > Edit Payment, only shown when payment is a subscription
    • Added button to cancel subscriptions from Paytium > Payments > Edit Payment
    • Added an icon to Paytium > Payments, with different colours, indicates if a payment is for a subscription and what the status is
      • Orange icon: subscription pending, not created yet
      • Green icon: subscription created
      • Red icon: creating subscription failed
      • Blue icon: renewal payment for existing subscription
    • Storing more subscription related information to the database, like subscription_payment_status and subscription_error
    • Register a webhook URL for subscriptions at Mollie, so renewal payments for subscriptions will also be sent to the website/Paytium
    • Only try to create a subscription if payment status is paid and there is a valid mandate, and save subscription status to database
  • Improvements:
    • Remove limitations in amount of custom fields that can be added and stop sending custom field data to Mollie in metadata (limit was 1024KB)
    • Added a hook (paytium_after_pt_payment_update_webhook) after Mollie calls the webhook, so you can do some addition processing after a payment
    • Added a hook (paytium_after_full_payment_saved) directly after Paytium saves the full payment, for developers PP features
    • Added a hook (paytium_update_payment_status_from_admin) so stuff can be done when status is updated from WordPress admin (like sending emails)
    • Added space between euro currency symbol and amount, as is the norm in the Dutch language
    • Added label option for paytium_total tag, example: label="Totaal"
    • Added filter pt_after_email_field which allows support for newsletter shortcodes (MailChimp, MailPoet) in the future
    • Added optional processing for newsletter shortcodes (for PP)
    • Added a message to Paytium > Payments > Edit Payment when payment is created in test mode: ‘This payment was created in test mode!’
    • Save label and selected option for custom amounts with [paytium_dropdown /] & [paytium_radio /] to database
    • Stop storing pt_cf_radio and pt_cf_dropdown to database, better way to handle them implemented in public.js
    • Removed .mo and .pot files so translations are automatically handled by wordpress.org
    • Removed lot’s of redundant code and reformatted other code to WordPress standards
    • Output Mollie ‘white screen of death’ errors to the user, don’t just log them to the debug.log
    • Allow users to configure what the first option in an amount dropdown [paytium_dropdown /] should be
    • Updated payment statuses in Paytium to actual ones that Mollie might use/send to the website
    • Always create a new Mollie customer for every payment, most secure solution for the fact that Paytium has no ‘customer management’
    • Make pt_set_paytium_key smarter, so it uses correct key for existing payments

1.3.1 – October 25th, 2016

  • Error shown when customer_id was not set in certain cases
  • Improved PHP 5.3 compatibility by switching back to old-style array syntax
  • Solved a fatal error on PHP versions below PHP5.5, where empty() doesn’t support more than $variables
  • Removed check for multiple [paytium_subscription /] tags in one form, incorrectly checks entire content, not just form
  • Improved CSS for "User Entered Amounts" so currency and field fit on one line in most themes (.pt-form-group .pt-uea-container input[type="text"])

1.3.0 – October 16th, 2016

  • NEW: Added support for subscriptions/recurring payments with [paytium_subscription /] shortcode
  • FIX: Added default css for .pt-checkout-form button
  • FIX: Fixed issue that made all fields required, even if set to required=false

1.2.0 – October 7th, 2016

  • Updated the CSS for fields of the payment form so it automatically works better with more themes
  • Updated Mollie API to version 1.6.6/1.7.0 with support for new APIs, Customers and Subscriptions support coming soon
  • Added newsletter opt-in notice
  • De-minify admin.css and remove admin.scss, as I don’t use sass for this plugin
  • Added Extensions page so users can show interest in new features
  • Other minor UI improvements and fixes

1.1.0 – September 13th, 2016

  • NEW: Added custom fields, current types: text field, text area, email field, radio buttons, checkbox, dropdown, terms & conditions checkbox
  • NEW: Added a hook (paytium_after_pt_show_payment_details) after payment, so you can hook into the messages after payment and for example redirect to another page
  • NEW: Added Dutch language file for form validation, for example "Dit veld is verplicht" instead of "This field is required."
  • NEW: Added new option: button_label="KOPUH!" for custom button text in your forms
  • Optimized the code that processed customer_details="true" to use new custom fields process, keeping it backwards compatible
  • Form and field CSS improvements (field margins etc)
  • Fixed typo in URL to Mollie.com
  • In CSS removed pt-radio-group margin, caused issues in some themes

1.0.4 – April 15th, 2016

  • Added check for no or low amounts, shows a better error when people don’t enter an amount or a too low amount
  • Cleaned up processing javascript
  • Setup wizard > Create profile, make warning more prominent with pt-alert-danger
  • Bug fix for "Notice: undefined variable html"
  • Removed transaction_id column in Payments overview, not useful for the average user

1.0.3 – March 24th, 2016

  • Changed to profile-verified for consistency with other API methods
  • Change client to wordpress (lowercase) for API communication
  • Show Mollie transaction ID in Payment overview and edit view
  • Add Paytium payment ID to Mollie description
  • Update Next step button in Setup wizard > Create profile to go to Payment test instead of Create product step
  • Bug fix: incorrect API key used to check status of payments, so status was not updated in WP
  • Correct continue button in Setup Wizard > Activate account to link to First product tab

1.0.2 – March 15th, 2016

  • Fixed issue in Setup Wizard with javscript typo (at least in Firefox and Safari)

1.0.1 – March 8th, 2016

  • Turn test mode off in communication to Mollie API
  • Added Dutch (nl-NL) language file
  • Small changes and typos

1.0.0 – March 8th, 2016

  • Hooray, first public version!