All integrations

Payments Available

Mollie

Mollie is the first payment provider schakl. speaks. You connect your own account, open one path on your edge, and the rest happens on the invoice itself.

What you need

  • A Mollie account with the payment methods you want to offer switched on. Which ones those are stays a choice in the Mollie dashboard.
  • An API key from that dashboard, under Developers → API keys. A test key starts with test_, a live key with live_.
  • The Facturatie and Mollie modules switched on under Instellingen → Modules, and licence cover via Instellingen → Licentie: both are licensed modules. A fresh install gets a fourteen-day grace window first.
  • A host reachable from the internet. Mollie rejects localhost, so a local dev box cannot receive callbacks.
  • Admin rights to grant mollie.settings.manage and invoicing.payment.link.

How to connect it

  1. 1 Get your API key from the Mollie dashboard: DevelopersAPI keys. A test key starts test_ and a live key live_; they are fully isolated datasets.
  2. 2 Grant mollie.settings.manage in Instellingen → Rollen (Settings → Roles). Only admin holds it by default, and the client role never does.
  3. 3 Open Instellingen → Mollie (Settings → Mollie) and press Account toevoegen (Add account). Fill in a Naam (Name) you will recognise this account by and paste the API-sleutel (API key). On save the key is verified immediately.
  4. 4 Read the result. Modus (Mode) shows Live or Test, derived from the key's own prefix. Betaalmethoden (Payment methods) lists what Mollie reported back: if iDEAL is missing, it is switched off at Mollie and not here. A rejected key shows Probleem met de sleutel (Problem with the key) with Mollie's own words.
  5. 5 Copy the Meldingsadres (Notification address) and allow that path on your edge. If an access proxy sits in front (Cloudflare Zero Trust, for instance), add a bypass rule for that one path only. Otherwise payments are collected at Mollie and never booked here.
  6. 6 Rehearse with the test key: open an issued, open invoice, press Betaallink (Payment link) on the Online betalingen card, walk through the checkout and force a final status on Mollie's test screen.
  7. 7 Then move to the live key, or add it as a second account and set the test one to Niet in gebruik (Not in use). Note that replacing a key mints a new Meldingsadres, so update your edge rule.

The payment lands on the invoice by itself

Mollie posts one field on every status change: the id of the payment. That is a hint, never a fact. schakl. then fetches the payment itself with your credential, and only that answer decides status, amount, method and paid-at. Only 'paid' writes a payment line, and it is the same line a bookkeeper's manual entry would write, so the invoice status, the reminder cron and the accounting export all follow on their own.

  • Reserved (authorized) does not count as paid: money held is not money captured
  • The card on the invoice shows the state: awaiting payment, processing, paid, failed, expired
  • Mollie cannot re-trigger a webhook on request, which is why the Status ophalen button and the hourly reconcile exist

No card data, and no second place to pick methods

The payer is redirected to Mollie's hosted checkout and returns to their own invoice page in the client portal, whatever the outcome. Which methods appear there stays a setting in Mollie's dashboard; the screen here only reports what Mollie answered. schakl. deliberately does not pin a method, so Mollie's own picker stays intact and a failed attempt can be retried with something else.

Test and live side by side

A credential is a row here rather than a single setting, precisely so a test key and a live key can exist at once. A test payment runs the whole loop and then stops: nothing is booked and the card reads 'Testbetaling: niet geboekt op deze factuur' (test payment, not booked on this invoice). The mode is stored on the attempt, so rotating a key later can never make an old test payment real. And nothing ever picks a credential for you: with no active account the button refuses, with two it asks which, and only a live key outranks a test one.

Start on the test key

A green settings screen tells you your key is valid and nothing more: whether iDEAL is switched on, whether the notification address is reachable and whether the amount is right only shows up on a real payment. So walk the whole route once on the test key first: make a payment link on an open invoice, pay it, and watch the payment line appear on the invoice. Mollie supplies test cards and magic amounts that deliberately force a specific failure, so you also see what happens when it goes wrong. Two things to note: test mode supports euro only, and a test payment deliberately never settles anything on the invoice.

Permissions

Grant these to the role that manages this integration (Settings → Roles). Admin-only by default, and never to the client role.

  • mollie.settings.manage Add, verify, rotate and remove Mollie accounts, and read the settings screen. Admin only by default, never the client role.
  • invoicing.payment.link Start a payment from an invoice. Scoped: admin gets :any and the seeded client role gets :own, so a client can only pay their own invoice.
  • invoicing.payment.write Register a payment by hand. Admin only by default and deliberately not something a client holds; online is not in the closed set of manual payment methods.
  • settings.providers.read Optional. Without it the Leverancier (Supplier) picker is hidden rather than offered empty.

What it deliberately does not do

  • No refunds and no chargebacks: sending money back happens in Mollie's dashboard.
  • No mandates, recurring payments or Mollie-side subscriptions.
  • No Payment Links API and no Profiles API; you tell two keys apart by your own Naam and the observed method list.
  • No signed webhooks yet (X-Mollie-Signature): that needs a second credential from Mollie's dashboard and is its own piece of work.
  • Deleting an account changes nothing at Mollie, and the attempts it opened stay on their invoices.
  • No separate payments module and no list of payments detached from the invoice they settle.

Where to find it Instellingen → Mollie (Settings → Mollie), plus the Online betalingen (Online payments) card on an invoice.

Read the guide

More in this category

Other integrations