Mollie as your processor or failover
Take payments with Mollie, alone or as the failover for Stripe. Connect an API key or an organization access token, assign it to your brands, run a test checkout, and set up reconciliation.
This guide connects a Mollie account to one of your legal entities, makes it take a brand's payments (or stand by as the failover for Stripe), and checks the whole path with a test checkout. Read Payment processors for how connections, webhooks and failover work.
1. Choose the credential
Mollie gives two kinds of credentials, and Ownrecord takes either:
| Credential | Looks like | Use it when |
|---|---|---|
| API key | test_… / live_… | You want to start quickly. It belongs to one website profile and one mode. |
| Organization access token + profile | access_… and pfl_… | You want reconciliation to read Mollie's balance (fees, payouts). |
An API key does everything checkout, renewals, refunds and chargebacks need. Mollie only lets access tokens read balances, so with an API key the connection test reports balances.read as missing and the daily reconciliation reads nothing from Mollie. You can start with an API key and rotate to a token later on the same connection.
To create a token, open the Mollie dashboard → Developers → Organization access tokens, and give it payments.read, payments.write, refunds.read, refunds.write, customers.read, customers.write, mandates.read, mandates.write, profiles.read and balances.read. The profile ID is on the website profile's page.
2. Connect it
Work in test mode first. In the console, open the legal entity, then Processor connections, and fill in Connect Mollie with the test API key (or the token and the profile ID). Connecting needs a sign-in within the last 15 minutes.
Ownrecord tests the credential with Mollie before it stores anything (encrypted; it's never shown again). There is nothing to set up in the Mollie dashboard: every payment Ownrecord creates carries this connection's webhook URL, protected by a secret token.
Over the API, with an organization or entity key of the mode (an organization key names the entity with Ownrecord-Entity):
curl https://ownrecord.io/api/v1/processor_connections \
-H "Authorization: Bearer $OWNRECORD_KEY" \
-H "Ownrecord-Entity: ent_…" \
-H "Idempotency-Key: $(uuidgen)" \
--json '{ "processor": "mollie", "apiKey": "test_…" }'
3. Assign it to your brands
Under Brand routing on the same page, choose for each brand:
- Primary: the connection that takes the brand's checkouts. Choose Mollie here to take all payments with it.
- Secondary (failover): on plans with the secondary processor feature, the connection that takes new checkouts while the primary is degraded. Choose Mollie here to keep Stripe as the primary and fail over to Mollie.
The page shows which connection is serving each brand now. Over the API: PATCH /api/v1/processor_routing/{brandId} with primary and secondary, and GET /api/v1/processor_routing to read it.
4. Run a test checkout
Create a checkout session for the brand in test mode (or use onboarding's Test checkout) and open it. After the details step and the terms, Continue to pay takes you to Mollie's test payment page: choose a method and the outcome (paid, failed, cancelled, expired). Mollie brings you back to the success page, which completes once Mollie's webhook has confirmed the payment. Then check:
- the invoice and the ledger posting of the sale;
- the connection's page (Processor connections → Mollie): the stored
payment.paidevent, processed; - a failed or cancelled payment: the success page says the payment didn't go through and offers the checkout again.
Mollie must be able to reach Ownrecord's webhook URL, so test against your Ownrecord deployment, not a local development server (or run the local server behind a public https address).
5. Go live
Connect the live API key (or the token, in live mode) the same way and assign it under Brand routing in live mode. The go-live checklist asks for a live connection that passes its test.
When Mollie has problems
If requests to Mollie fail several times in a row (it doesn't answer, or answers with server errors), Ownrecord marks the connection degraded and emails your owners and admins: brands that use it as primary send new checkouts to their secondary. Subscriptions keep charging Mollie mandates, since a saved method belongs to its processor. When Mollie works again, open the connection and choose Mark active.
What's different from Stripe
- Payment methods are chosen on Mollie's page, from those enabled on your Mollie profile. The card country can't change the tax before paying, so the sale is invoiced at the quote the customer paid.
- Subscriptions keep a mandate, not a card: iDEAL and Bancontact first payments leave a SEPA Direct Debit mandate, whose renewals take a few days to settle. Trials save a card with a 0.00 payment.
- Chargebacks are taken at once and have no evidence API: respond in the Mollie dashboard (the evidence pack PDF is still built). A reversed chargeback closes the dispute as won.