Module 4 · 4.4
Payments: how they work and how to choose a provider
Module 4: VAT, shipping and payments · Reading time: 11 minutes
Learning objective: After this lesson you can explain how an online payment works in a WooCommerce shop and what the payment provider and the webhook do. You can also compare payment providers neutrally by asking each one the same questions.
Key concepts: payment provider (payment service provider), payment method, payment plugin (gateway), redirect or embedded form, webhook, order status, iDEAL | Wero, Bancontact, credit card and debit card, 3-D Secure, strong customer authentication, PayPal, buy now pay later, chargeback, payout, test mode, no surcharge for a means of payment
Who does what in a payment
WooCommerce doesn't process money itself. It creates an order and passes the payment to a payment provider. This is a company that receives payments via iDEAL, cards, PayPal and other payment methods and then pays the money out to you. The link between WooCommerce and the provider is a payment plugin (also called a gateway). This is how a payment works at Theehuis Example:
- The customer clicks the order button. WooCommerce creates an order with the status Pending payment.
- The payment plugin asks the provider to create a payment for that amount.
- The customer pays in one of two ways. Either they are redirected to a payment page of the provider (or their banking app opens), or they enter their details in an embedded form from the provider on your checkout page.
- The provider reports the result to your shop with a webhook: a message from the provider's server to a fixed address in your shop. Only then does the plugin set the order to Processing (paid, still to be shipped) or Failed.
- The customer returns to the thank-you page. A few days later the provider pays the money into your account, usually minus its fees.
Step 4 is the most important part of this process. If the webhook doesn't reach your shop, your shop doesn't know the customer has paid, even though the money is with the provider. Common causes are a security plugin or firewall blocking the request, a staging site behind a password, a cache holding on to the response, or a shop in maintenance mode. Sending the customer back to the thank-you page isn't enough: a customer who closes their browser after paying never comes back.
Redirect or embedded
There are two ways to let the customer pay:
- Redirect: the customer goes to a payment page of the provider or to their banking app, and then comes back. Your shop never sees any payment details.
- Embedded form: the fields for, say, a card number are on your checkout page, but inside an iframe or a field the provider controls. The details go straight to the provider.
Either way, card details never end up in your own database, and that's how it should be. Embedded feels smoother, but then the provider's scripts run on your checkout page and you are responsible for everything else that happens on that page. Lesson 6.3 covers what this means for the PCI rules for card payments.
Payment methods in the Netherlands, Belgium and Germany
| Method | What it is | Where it's widely used | |
|---|---|---|---|
| **iDEAL \ | Wero** | Paying from your own banking app | Netherlands |
| Bancontact | Payment card and app from Belgian banks | Belgium | |
| Credit card and debit card (Visa, Mastercard) | Card payment, with 3-D Secure | Everywhere | |
| PayPal | Paying with a PayPal account | Everywhere | |
| Buy now pay later | A third party pays you and the customer pays that third party later | Varies | |
| Bank transfer | The customer makes the transfer themselves; built into WooCommerce | Everywhere, but slow |
iDEAL is becoming Wero. Since early 2026, payment screens show the combined logo iDEAL | Wero. According to iDEAL, transactions will then move step by step to the European Wero platform, subject to approval by De Nederlandsche Bank, until Wero is the only name. There are no fixed dates for those later steps. For you as a shop owner, this means: follow the updates from your payment provider. Your provider handles the technical side and will tell you if you need to change anything, such as a logo or a plugin update.
3-D Secure is the extra check for card payments, where the customer confirms the payment in their banking app. It is part of the European requirement for strong customer authentication: confirming a payment with two out of three things (something you know, have or are). Your provider handles this. You'll notice it as slightly less fraud, and now and then a customer who drops out because their banking app doesn't respond.
No surcharge for a means of payment
Can you charge € 1 extra for a PayPal payment? Under the EU rule (Article 19 of Directive 2011/83/EU), you may not charge a consumer more than it costs you to use a means of payment. For many common methods, such as card payments within the EU, a surcharge isn't allowed at all. The safest approach: no surcharges, and include the costs in your prices. Which means of payment you accept is also part of the information the customer gets at the start of the ordering process (lesson 5.1).
Comparing payment providers
WooCommerce has plugins from Mollie, PayPal (WooCommerce PayPal Payments), Stripe (WooCommerce Stripe Payment Gateway) and WooPayments (from WooCommerce itself), among others. Many banks and other providers have one too. This course doesn't recommend a provider or give prices: rates and terms change, and what's best depends on your customers. Ask every provider the same questions:
- Which methods? Do you need iDEAL | Wero for the Netherlands, Bancontact for Belgium, and cards and PayPal for everyone else?
- Redirect or embedded? And what does that mean for your checkout page?
- Payout: how fast, and to which account?
- Refunds: can you issue refunds from within WooCommerce (lesson 6.5), and what does that cost?
- Chargebacks: with a card payment, a customer can ask their bank to reverse the payment. How does the provider deal with this, and what do you need to provide?
- Data and privacy: which customer data does the provider receive, where is it stored, and what does the provider say about processing (for your privacy statement, lesson 5.5)?
- The plugin: when was it last updated, which WordPress version has it been tested up to, and how quickly does support respond (WordPress course, lesson 5.3)? Does it work with the checkout blocks (lesson 2.2)?
- Test mode: is there a test environment with test payments (lesson 4.5)?
Buy now pay later deserves extra attention. The provider assesses the customer and pays you, but sets its own conditions for your shop and your returns process. Read those conditions before you switch it on.
In practice: what it looks like in WooCommerce
- Install the plugin of the provider you've chosen from wordpress.org (Plugins > Add New Plugin).
- WooCommerce > Settings > Payments: enable the methods you want to offer, in the order that suits your customers (iDEAL | Wero at the top for Dutch customers).
- Connect your provider account with the API keys or the "connect" button. Start in test mode.
- Check with the provider that your shop's webhook address can be reached. After a test payment, check the plugin's log to see whether the webhook arrived.
Summary
- WooCommerce creates the order; the payment provider receives the money and reports the result with a webhook.
- Without a working webhook, a paid order stays on "Pending payment".
- Card details always go straight to the provider, via a redirect or an embedded field.
- iDEAL | Wero: follow your provider for the move to Wero; Bancontact for Belgium; cards with 3-D Secure.
- No surcharge for a means of payment above your own costs; compare providers by asking each one the same questions.
Quiz
Exercise
Exercise D4.4: Compare payment providers. Look at at least three providers, for example Mollie, PayPal, Stripe, WooPayments or your bank's payment service.
Checklist:
- [ ] looked at at least three providers;
- [ ] answered the same eight questions from this lesson for each provider;
- [ ] checked the plugin on wordpress.org (last updated, tested up to, support);
- [ ] found the test mode.
Questions (in a table per provider):
- Which methods does the provider offer (iDEAL | Wero, Bancontact, cards, buy now pay later)?
- Redirect or embedded form?
- How fast are payouts?
- How do refunds and chargebacks work?
- Which customer data does the provider receive, and where can you find the information about processing?
- Which provider do you choose, and why?
After "done" you'll see a sample answer: all questions answered for each provider, a choice that suits your customers (iDEAL | Wero for the Netherlands, Bancontact for Belgium), and redirect or embedded as a deliberate choice. Don't include prices in your answer; they change.
Exercise D4.4: Compare payment providers
You do this exercise yourself; no one checks it. Tick off what you've done and mark the exercise as done.
All questions answered for each provider (without copying prices into the course); a choice that suits your customers (for example iDEAL | Wero for the Netherlands, Bancontact for Belgium); redirect or embedded chosen deliberately (lesson 6.3).
Your ticks and notes only stay in this browser; we don't send them anywhere. If you're signed in, we only save in My courses that you've done the exercise.
Further reading
- iDEAL moving step by step to Wero from 2026 (ideal.nl, Dutch): https://ideal.nl/ideal-vanaf-2026-stapsgewijs-over-naar-wero
- Mollie Payments for WooCommerce (wordpress.org): https://wordpress.org/plugins/mollie-payments-for-woocommerce/
- WooCommerce PayPal Payments (wordpress.org): https://wordpress.org/plugins/woocommerce-paypal-payments/
- WooCommerce Stripe Payment Gateway (wordpress.org): https://wordpress.org/plugins/woocommerce-gateway-stripe/
- WooPayments (wordpress.org): https://wordpress.org/plugins/woocommerce-payments/
- Free WordPress course 5.3: Choosing and assessing plugins
