Contents
What is this integration?
The iDEAL integration lets your customers pay online with iDEAL, the most widely used payment method in the Netherlands, where the customer pays directly from their bank. The charge is processed through Stripe.
It's ideal for clubs with Dutch clientele who prefer to pay by instant bank transfer rather than by card.
iDEAL is a Dutch payment system: the customer chooses their bank and authorizes the payment from their online banking. Stripe is the gateway that processes the operation; you need a Stripe account with iDEAL enabled. Operations are made in euros (EUR).
What problem does it solve?
It offers the payment method preferred by customers in the Netherlands.
Secure online payment: the payment is authorized at the customer's bank; the bank details don't pass through Golfmanager.
Automatic confirmation: when the payment completes, the sale is marked as paid.
Refunds from Golfmanager, without going into the Stripe dashboard.
Which systems does it connect, and which way does the data flow?
It connects Golfmanager's checkout (payment) with Stripe (which handles iDEAL), in real time:
The customer chooses iDEAL and authorizes the payment at their bank.
Stripe processes the payment and notifies Golfmanager of the result via an automatic notice (webhook): paid, failed or cancelled.
If the payment completes, the sale is marked as paid.
To refund, Golfmanager asks Stripe to refund the amount.
What information is exchanged?
Information | Direction | Purpose |
Amount and currency | Golfmanager → Stripe | Start the iDEAL payment |
Payment result (paid / failed / cancelled) | Stripe → Golfmanager | Confirm the payment and keep a record |
Refund request | Golfmanager → Stripe | Refund the customer |
🔒 Security: the payment is authorized at the customer's bank through Stripe. Golfmanager doesn't handle bank details; it only receives the result of the operation.
Prerequisites (before turning the integration on)
Have a Stripe account with the iDEAL payment method enabled.
Have the iDEAL (Stripe) module installed in your Golfmanager, along with the billing module.
The Stripe keys (public and secret), test and production.
Configure a webhook in Stripe so it notifies Golfmanager of the payment results (see configuration).
Billing management permissions to configure.
How to set it up (step by step)
Step 1 — Install the module
Install the iDEAL (Stripe) module. Afterwards the Ideal Stripe configuration and the Transactions appear.
Step 2 — Stripe keys and currency
Go to Settings > Ideal Stripe.
Enter the Currency (usually
EUR).Enter the test keys (public and secret) of your Stripe account.
Enter the production keys (public and secret) too.
Leave Production Mode off to start testing.
Save your changes. The secret keys are stored encrypted.
Step 3 — Configure the webhook in Stripe
In the Stripe dashboard, create a webhook pointing to your Golfmanager address ending in
/stripeIdeal/callback.json.Subscribe it to these events:
payment_intent.succeeded(payment completed),payment_intent.payment_failed(payment failed) andpayment_intent.canceled(payment cancelled).
⚠️ The webhook is essential: it's what lets Golfmanager know the payment has completed and mark the sale as paid. Without it, payments would remain unconfirmed.
Step 4 — Test and turn on production
With Production Mode off, make a test payment and check in Transactions that it shows as successful.
When everything works, go back to the configuration and turn on Production Mode. From that moment, payments are real.
Each configuration field explained
Below, each field in Settings > Ideal Stripe is explained: what it is, how it affects the system, how it behaves, and an example of use. The secret keys are stored encrypted.
Currency
Field name: Currency.
Description: the currency the payments are charged in.
System impact: it's sent to Stripe on each payment. iDEAL works in euros.
System behavior: the usual value is
EUR; with iDEAL another currency doesn't make sense.Example of use / what happens: you leave
EURand all charges are made in euros.
Production Mode
Field name: Production Mode. It's a toggle (on/off, off by default).
Description: it decides whether payments are real or test.
System impact: on, it uses the production keys and charges for real; off, it uses the test keys.
System behavior: depending on the mode, one set of keys or the other is used; the ones for the active mode must be filled in.
Example of use / what happens: you leave it off while testing and turn it on when you're going to charge for real.
Public Test Key
Field name: Public Test Key.
Description: the Stripe public key for the test environment.
System impact: it's the one the payment form uses in the customer's browser, in test.
System behavior: it's used when Production Mode is off.
Example of use / what happens: you copy it from the Stripe dashboard (test keys) and paste it here.
Private Test Key
Field name: Private Test Key.
Description: the Stripe secret key for the test environment.
System impact: it's the one Golfmanager uses to communicate with Stripe (create the payment, refunds) in test.
System behavior: it's never sent to the browser; it's stored encrypted.
Example of use / what happens: you copy it from the Stripe dashboard (test keys) and paste it here.
Public Production Key
Field name: Public Production Key.
Description: the Stripe public key for real charges.
System impact: it initializes the payment form when you operate in production.
System behavior: it's used when Production Mode is on.
Example of use / what happens: you copy it from the Stripe dashboard (live keys) and paste it here.
Production Secret Key
Field name: Production Secret Key.
Description: the Stripe secret key for real charges.
System impact: it's the one Golfmanager uses to communicate with Stripe in production (charges and refunds).
System behavior: it's never sent to the browser; it's stored encrypted.
Example of use / what happens: you copy it from the Stripe dashboard (live keys) and paste it here.
How it works day to day
The customer's online payment
The customer makes a booking or a purchase and goes to pay.
They select iDEAL as the payment method, enter their name and accept the terms.
They choose their bank and authorize the payment from their online banking.
On return, they see a screen saying "Validating your payment, please wait…" while Golfmanager receives the confirmation.
When it's confirmed, the sale is marked as paid and the customer sees "Confirmed payment".
Refunds
To refund an iDEAL payment, cancel the original payment from Golfmanager: the system asks Stripe for the refund and records it. In addition, if for some reason a sale can't be confirmed after a successful payment, Golfmanager makes the refund automatically so as not to leave a charge without a sale.
Checking the transactions
In Billing > Ideal Stripe transactions you'll see all the payments and refunds. Each record shows:
The customer and the amount.
The type (payment or refund) and the returned amount, if any.
Whether it was successful or failed and the error detail if there was one.
It's the first screen to check when a payment or a refund hasn't gone as expected. (It requires system administrator permissions.)
Limitations to keep in mind
iDEAL is from the Netherlands: it's intended for customers with an account at a Dutch bank and for payments in euros.
It's for the customer's online payments (bookings, vouchers and shop), not for the physical POS.
It requires a Stripe account with iDEAL enabled and the webhook configured.
The test and production keys are different: remember to turn on Production Mode to charge for real.
The payment may take a few moments to confirm: that's why the "Validating your payment…" screen appears. If the bank takes too long, the customer may see "Payment not confirmed" even though the payment eventually arrives; check it in Transactions.
If the customer abandons at the bank, the payment doesn't complete and the sale remains unpaid. They aren't charged anything.
It depends on Stripe and the customer's bank: if either is unavailable, the payment can't be completed at that time.
Frequently asked questions
What is iDEAL and why does it go through Stripe?
iDEAL is the most widely used payment method in the Netherlands: the customer pays from their online banking. Stripe is the gateway that processes the operation; that's why you need a Stripe account with iDEAL enabled.
Which currency does it charge in?
In euros (EUR). iDEAL works in euros; the currency is configured in Settings > Ideal Stripe.
Where do I get the Stripe keys?
From the Stripe dashboard. You have test keys and production (live) keys, each with its public key and its secret key. They're all filled in the configuration.
Why do I need to configure a webhook?
Because iDEAL confirms the payment asynchronously: the webhook is the notice Stripe sends Golfmanager when the payment completes, fails or is cancelled. Without a webhook, Golfmanager doesn't find out that the payment was made and the sale isn't marked as paid.
What address does the webhook point to and which events should it carry?
To your Golfmanager, ending in /stripeIdeal/callback.json, subscribed to payment_intent.succeeded, payment_intent.payment_failed and payment_intent.canceled.
The customer pays but the sale isn't marked as paid. What should I check?
It's almost always the webhook: that it isn't configured, that the address is wrong, or that it isn't subscribed to the events. Review it in the Stripe dashboard and check that it reaches /stripeIdeal/callback.json.
The customer doesn't see iDEAL at checkout. Why?
Because the module isn't configured or the active mode's keys are missing. Check the keys in Settings > Ideal Stripe (the test or production ones, depending on the mode).
The payment fails or is cancelled. What do I do?
Usually the customer didn't complete the authorization at their bank. They can retry the payment. Review the detail in Transactions; you'll see the error message (for example, "payment failed").
The customer sees "Payment not confirmed" but I think they did pay. What happened?
Sometimes the bank takes longer than the validation screen lasts and the customer sees "Payment not confirmed" even though the payment eventually arrives via the webhook. Check in Transactions whether the payment came in: if it's successful, the sale is paid.
What happens if the customer abandons at the bank?
The payment doesn't complete and the sale remains unpaid. They aren't charged anything. The customer can try again.
How do I make a refund?
Cancel the original payment from Golfmanager: the system asks Stripe for the refund and records it. The refund is always made against the original payment.
What is the "automatic refund"?
If a payment arrives correctly but, for some reason, the sale can't be confirmed, Golfmanager refunds the amount automatically to Stripe so as not to leave a charge without its sale. You'll see it reflected in Transactions.
I get "You must void the original payment" when trying to refund. What's going on?
A refund needs a reference payment. Make sure you refund against the original payment operation; you can't refund without it.
It charges for real in a test (or doesn't charge in real). What should I check?
Production Mode is set wrong, or you've mixed test and production keys. Adjust the mode and verify the keys match the active mode.
What can iDEAL payments be used for?
For whatever the customer pays online from the portal: bookings, vouchers and shop purchases (including balance top-ups).
Does it work for the front-desk physical POS?
No. This integration is for the customer's online payments, not for the POS card reader.
Can iDEAL be used for recurring fee charges?
iDEAL is a one-time payment: the customer authorizes a specific payment at their bank. It isn't intended as a means for automatic recurring direct debits.
Where do I see the status of a payment or a refund?
In Billing > Ideal Stripe transactions: there you'll find the customer, the amount, whether it was successful or failed, the type and the error detail if there was one.
Are the keys secure?
Yes. The secret keys (test and production) are stored encrypted, and the payment is authorized at the customer's bank without passing through Golfmanager. Even so, don't share the keys.
What permissions do I need to configure the integration?
Billing management permissions for the configuration, and system administrator permissions to view the transactions.
What should I do before charging for real?
Configure and test the webhook, make a test payment in test mode validating it in Transactions, and only then turn on Production Mode with the live keys.
Recommended best practices
Configure and test the webhook before operating for real: it's what confirms the payments.
Test first in test mode and move to production when everything works.
Keep the production keys safe and don't share them; the secret keys are stored encrypted.
Set the currency to EUR, which is iDEAL's.
On a failed or "not confirmed" payment, check Transactions first: the detail usually clarifies what happened.
