Alle artikelen

Stripe Connect of Mollie Connect? Platform payouts voor Nederlandse SaaS

Een eerlijke vergelijking tussen Stripe Connect en Mollie Connect voor het bouwen van een Nederlandse SaaS waar je klanten zelf betalingen ontvangen - fees, OAuth flow, iDEAL ondersteuning en wat je in productie merkt.

5 min leestijd
stripemolliesaaspayments

Voor Salonnare wilden onze klanten - beauty salons - direct betaald worden door hun eigen klanten. Geen geld dat eerst bij ons binnenkomt en dan doorgesluisd wordt; dat is in Europa een PSD2-licentie kwestie. We hadden dus een platform-payouts model nodig: de salon ontvangt rechtstreeks, wij houden een platform fee in.

Beide grote spelers - Stripe Connect en Mollie Connect - bieden dit. Ik heb ze allebei geïntegreerd, omdat onze gebruikers verschillende voorkeuren hebben. Dit is wat de keuze in praktijk bepaalt.

Het korte antwoord

  • Mollie Connect als je Nederlandse markt eerst doet en iDEAL je dominante betaalmethode is.
  • Stripe Connect als je internationaal groeit, kaartbetalingen je dominante methode zijn, of je platform fees op cents-niveau wilt fine-tunen.
  • Allebei integreren als je SaaS bent en je klanten de keuze wilt geven. Het is meer werk, maar verlaagt friction tijdens onboarding aanzienlijk.

Fee structuur in praktijk

Voor een doorsnee salon-transactie van €45:

ProviderMethodeFeePlatform aandeel
Stripe ConnectEuropese kaart1.4% + €0.25 = €0.88Vrij configureerbaar
Mollie ConnectiDEAL€0.29 vastVrij configureerbaar
Mollie ConnectEuropese kaart1.8% + €0.25 = €1.06Vrij configureerbaar

Voor iDEAL-zware verkeer (waar Nederlandse e-commerce gemiddeld op zit) is Mollie meetbaar goedkoper per transactie. Voor Europese kaarten is Stripe iets goedkoper. Maar de werkelijke winst zit niet in fees - die zit in welke methode je gebruikers daadwerkelijk gebruiken. Salonnare's beauty klanten betalen 70% via iDEAL, dus Mollie wint per definitie op kosten.

OAuth flow: Stripe is gepolijster

Beide platforms gebruiken OAuth voor de Connect onboarding. Je klant klikt een knop, wordt naar de provider gestuurd, doorloopt KYC en komt geauthorized terug.

Stripe Connect: Express accounts geven je klant een gehost dashboard zonder dat je het zelf moet bouwen. Onboarding link is één API call (accountLinks.create), en Stripe handelt de hele KYC af inclusief documentupload en bank account verificatie. Voor mij betekent dit: ik bouw één button en Stripe doet de rest. Account status haal ik op via accounts.retrieve(accountId).

Mollie Connect: OAuth flow met client_id, client_secret, redirect_uri. Je klant authoriseert, jij krijgt een access token en refresh token. Die refresh token moet je opslaan en periodiek (elke 60 minuten) gebruiken om je access token te verversen. Zelf bouwen, geen gehost dashboard, maar wél meer controle over de UX.

// Mollie Connect token refresh in worker
const response = await fetch('https://api.mollie.com/oauth2/tokens', {
  method: 'POST',
  body: new URLSearchParams({
    grant_type: 'refresh_token',
    refresh_token: tenant.mollie_refresh_token,
  }),
  headers: {
    Authorization: 'Basic ' + Buffer.from(`${CLIENT_ID}:${CLIENT_SECRET}`).toString('base64'),
  },
});

Vergeet die refresh logic niet te schedulen. Onze worker draait hem elke 30 minuten voor tenants waarvan de token binnen het uur verloopt.

Platform fee splitting

Hier is de implementatie kleine maar belangrijke verschillen.

Stripe: application_fee_amount op de PaymentIntent. Je geeft een bedrag in cents op, Stripe trekt het af van het transactie bedrag en stort het in jouw platform account. Schoon, voorspelbaar.

const intent = await stripe.paymentIntents.create({
  amount: 4500,
  currency: 'eur',
  application_fee_amount: 200, // €2.00 platform fee
}, {
  stripeAccount: tenant.stripe_connect_account_id,
});

Mollie: routing array op de Payment, met destination (klant account) en amount. Je definieert expliciet welke bedragen waarheen gaan. Iets meer code, maar je kunt complexere splits doen (bijvoorbeeld 3 partijen).

const payment = await mollie.payments.create({
  amount: { currency: 'EUR', value: '45.00' },
  routing: [{ amount: { currency: 'EUR', value: '43.00' }, destination: { type: 'organization', organizationId: tenant.mollie_org_id } }],
}, { testmode: false, profileId: tenant.mollie_profile_id });

SEPA Direct Debit

Voor terugkerende betalingen (abonnementen, lidmaatschappen) is SEPA DD in Nederland een must. Alleen kaarten geeft je een drop-off van 30%+ bij abo-onboarding.

  • Stripe: SEPA DD via payment_method: 'sepa_debit'. Mandate handling is ingebouwd, klant krijgt een email-bevestiging. Werkt prima.
  • Mollie: SEPA DD via method: 'directdebit'. Eerste transactie moet een first-payment zijn (gewone iDEAL of kaart) om het mandate vast te leggen, daarna kun je incasseren. Specifieke logica in code, maar werkt vlekkeloos.

Voor Salonnare's billing kant gebruiken we Stripe SEPA DD, omdat onze platform billing centraal staat en niet per tenant onboard hoeft te worden. Voor de tenant naar eindklant flow gebruiken we Mollie SEPA DD, omdat tenants vaker al een Mollie account hebben.

Webhooks: een kleine waarschuwing

Beide gebruiken webhook signing met een secret. Vergeet niet de raw body te capturen voordat je JSON parst - anders faalt de signature verificatie.

// In Express, voor webhook routes
app.use('/api/payments/webhook', express.raw({ type: 'application/json' }));

Eén keer per project ben ik hier in trapt en heb ik twee uur gedebugged. Gewoon vanaf het begin goed zetten.

Waarom we beide ondersteunen

Salonnare's klanten zijn zelfstandige ondernemers. Ongeveer 60% had al een Mollie account voor hun bestaande webshop, 25% had een Stripe account, 15% niets. Beide aanbieden betekent: tijdens onboarding klikken ze op de provider die ze al kennen, hun KYC is al gedaan, en ze zijn binnen tien minuten live. Dat is in onze pricing-tier model letterlijk geld waard.

De codebase verschilt tussen beide flows, maar veel is geabstraheerd: één payment_provider kolom op de tenant, één gedeeld interface voor createPaymentIntent en createCheckout. De verschillen zitten in de adapter laag.

Wat ik adviseer

  • Begin met Mollie als je 100% Nederlandse markt bent.
  • Begin met Stripe als je internationaal van start gaat of je product snel naar de UK/DE wil schalen.
  • Bouw beide pas in als je écht ziet dat klant-onboarding hapert door provider-keuze. Niet preventief - dat is over-engineering.
  • Test je webhook flow expliciet in productie binnen 24 uur na launch. Webhook bugs zie je niet in dev.

Beide zijn productie-waardige systemen. De keuze gaat niet over kwaliteit; hij gaat over welke provider je klanten al gebruiken. En in Nederland is dat nog steeds vaker Mollie dan Stripe.

Nick van Iersel

Auteur van deze site

Nick van Iersel

Full-stack Developer & IT Consultant

Nick is een Nederlandse full-stack developer en IT consultant uit Waalwijk met ruim zes jaar ervaring in productie-software. Hij richt zich op Next.js, TypeScript, React en Node.js voor websites, SaaS platformen en mobile apps, en werkt zowel op uurbasis als op projectbasis met vaste prijs.

Ready to make your idea a reality?

Let's build something amazing together