Stripe vs PayPal vs Klarna vs Square: Payment Gateway Comparison 2026
Ik heb elk van deze payment gateways in productie headless commerce stores geïntegreerd. Sommige waren een plezier. Anderen deden me op vrijdag om 2 uur 's nachts mijn carrièrekeuzes ter discussie stellen. Dit is geen oppervlakkige feature-vergelijking van marketingpagina's -- het is een diepe, voorziene analyse van Stripe, PayPal, Klarna, en Square voor 2026, specifiek vanuit het perspectief van headless commerce en Next.js development.
Als je een ecommerce storefront bouwt (of herbouwt) en je moet een payment processor kiezen, dit is het artikel dat ik drie jaar geleden had willen hebben.
Inhoudsopgave
- Waarom Payment Gateway Keuze Belangrijk is voor Headless Commerce
- Pricing en Transaction Fees Vergeleken
- Developer Experience en Integration Complexity
- Stripe Deep Dive
- PayPal Deep Dive
- Klarna Deep Dive
- Square Deep Dive
- Headless CMS en Next.js Integration Patterns
- Welke zou je eigenlijk moeten kiezen?
- FAQ

Waarom Payment Gateway Keuze Belangrijk is voor Headless Commerce
In een traditioneel monolithisch ecommerce platform zoals Shopify of WooCommerce is je payment gateway vaak ingebouwd. Je kiest er een uit een dropdown, plakt misschien een API key in, en je bent klaar. Headless commerce is anders.
Wanneer je je frontend van je backend ontkoppelt -- een Next.js storefront tegen een headless CMS en een aparte commerce API -- wordt de payment gateway een first-class architectural beslissing. Het beïnvloedt je:
- Checkout UX: Kun je een volledig aangepaste checkout bouwen, of stuur je gebruikers naar een hosted page?
- Server-side logica: Hoe werken webhooks? Hoe verwerk je betalingsbevestiging voordat fulfillment?
- PCI compliance burden: Tokeniseer je op de client, of bereiken kaartnummers je server?
- Subscription en recurring billing: Verwerkt de gateway dit native, of moet je een ander service erop vastplakken?
- Internationale expansie: Currency support, lokale betaalmethoden, regulatory compliance.
De verkeerde keuze hier kan je maanden rework kosten. Ik heb het zien gebeuren. Een klant koos Square omdat ze een fysieke retail aanwezigheid hadden, toen ontdekten ze dat Squares online API hun subscription model niet kon verwerken. We liepen uiteindelijk twee payment processors parallel. Wees niet dat team.
Pricing en Transaction Fees Vergeleken
Laten we beginnen met wat iedereen wil weten: wat kost elk ervan eigenlijk?
Deze nummers zijn actueel vanaf begin 2026. Alle vier providers hebben een geschiedenis van fee-aanpassingen, dus verifieer voordat je iets ondertekent.
| Feature | Stripe | PayPal | Klarna | Square |
|---|---|---|---|---|
| Standaard online transactie | 2.9% + $0.30 | 3.49% + $0.49 | Merchant betaalt 3.29% - 5.99% (varieert) | 2.9% + $0.30 |
| In-person transactie | 2.7% + $0.05 (Terminal) | N/A (Zettle gebruiken) | N/A | 2.6% + $0.10 |
| Internationale kaarten | +1.5% | +1.5% | Varieert per markt | +3.3% + $0.30 totaal |
| Currency conversion | 1% | 3-4% | Ingebouwd in merchant fees | 1% |
| Maandelijks tarief | $0 | $0 | $0 | $0 (Gratis plan) |
| Chargeback fee | $15 | $20 | Klarna absorbeert (BNPL model) | $0 |
| Payout snelheid | 2 dagen (Instant beschikbaar) | 1-3 dagen | Net 15-30 dagen | 1-2 dagen |
| Volume discounts | Ja (custom pricing 80K+/mo) | Ja (contact sales) | Onderhandelbaar | Ja (custom pricing) |
De Echte Kostenanalyse
Ruwe percentages vertellen niet het hele verhaal. Laat me afbreken wat $100.000/maand in transacties eigenlijk kost met elke provider (aangenomen alle binnenlands, online, standaardkaarten):
- Stripe: ~$3.200/maand ($2.900 percentage + ~$300 in per-transaction fees aangenomen $65 AOV)
- PayPal: ~$4.243/maand ($3.490 percentage + ~$753 in per-transaction fees op $65 AOV)
- Klarna: ~$3.290 - $5.990/maand (hangt sterk af van je onderhandelde tarief en productcategorie)
- Square: ~$3.200/maand (bijna identiek aan Stripe voor online)
PayPal is het duurst voor standaard online transacties met een significant verschil. Ze rechtvaardigen dit met kopervertrouwen en conversion lift, en eerlijk gezegd, voor bepaalde demografieën, die argument houdt water. Maar op $100K/maand betaal je ongeveer $1.000 meer dan Stripe. Dat is $12.000 per jaar.
Klarna's pricing is de wildste variabele. Hun BNPL (Buy Now, Pay Later) model betekent dat Klarna de merchant onmiddellijk betaalt en van de klant over tijd incasseert. De merchant fee is hoger om Klarna's kredietrisico te dekken. Voor fashion en lifestyle brands met hoge cart abandonment, kan de conversion uplift de fee meer dan compenseren. Voor B2B of low-margin producten? Waarschijnlijk niet.
Developer Experience en Integration Complexity
Dit is waar mijn meningen sterk worden. Ik heb honderden uren in deze API's en SDK's doorgebracht, en de verschillen zijn niet subtiel.
| Aspect | Stripe | PayPal | Klarna | Square |
|---|---|---|---|---|
| API design quality | ★★★★★ | ★★★☆☆ | ★★★★☆ | ★★★★☆ |
| Documentatie | ★★★★★ | ★★★☆☆ | ★★★☆☆ | ★★★★☆ |
| Next.js SDK/support | ★★★★★ | ★★★☆☆ | ★★★★☆ | ★★★☆☆ |
| Webhook reliability | ★★★★★ | ★★★☆☆ | ★★★★☆ | ★★★★☆ |
| Test/sandbox mode | ★★★★★ | ★★★★☆ | ★★★☆☆ | ★★★★☆ |
| Tijd tot eerste integratie | 2-4 uur | 4-8 uur | 6-12 uur | 3-6 uur |
| Custom checkout support | Vol | Beperkt (Advanced Checkout) | Gedeeltelijk (widget-based) | Vol (Web Payments SDK) |

Stripe Deep Dive
Waarom Developers Stripe Beminnen
Stripe's API is de goudstandaard. Klaar. Elk endpoint is consistent, elk error-bericht is nuttig, en de documentatie leest alsof het door iemand is geschreven die daadwerkelijk API's gebruikt. Het dashboard is schoon, de test mode is fantastisch, en Stripe CLI laat je webhooks naar je lokale dev-omgeving doorsturen.
Voor headless Next.js commerce is Stripe bijna oneerlijk goed. Hier is een typisch integratiepatroon:
// app/api/checkout/route.ts (Next.js App Router)
import Stripe from 'stripe';
import { NextResponse } from 'next/server';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);
export async function POST(request: Request) {
const { items, customerEmail } = await request.json();
const session = await stripe.checkout.sessions.create({
payment_method_types: ['card'],
line_items: items.map((item: any) => ({
price_data: {
currency: 'usd',
product_data: { name: item.name },
unit_amount: item.price,
},
quantity: item.quantity,
})),
mode: 'payment',
customer_email: customerEmail,
success_url: `${process.env.NEXT_PUBLIC_URL}/order/success?session_id={CHECKOUT_SESSION_ID}`,
cancel_url: `${process.env.NEXT_PUBLIC_URL}/cart`,
});
return NextResponse.json({ url: session.url });
}
Dat is een werkend checkout endpoint. Minder dan 30 regels. Voor een volledig ingebedde checkout (geen redirect) is Stripe Elements met hun React-componenten even eenvoudig.
Stripe's Zwakke Punten
Stripe's account holds en reserve policies kunnen brutal zijn voor nieuwe bedrijven. Ik heb klanten zien gelden vasthouden gedurende 2-4 weken met weinig uitleg van support. Hun fraud detection (Radar) is goed maar niet perfect -- je zult nog steeds extra checks willen toevoegen voor high-risk verticals.
Ook Stripe's pricing is niet onderhandelbaar tot je ongeveer $80K/maand verwerkt. Daaronder betaal je het standaardtarief ongeacht.
Stripe Connect en Marketplace Support
Als je een marketplace bouwt, is Stripe Connect jaren vooruit op alles anders op deze lijst. Split payments, managed accounts, 1099 generation -- het is allemaal daar. We hebben het op verschillende projecten gebruikt waar vendors hun eigen payment flows nodig hadden.
PayPal Deep Dive
Het Conversion Argument
PayPal's grootste troefkaart is niet zijn technologie -- het is zijn merk. Over 430 miljoen actieve accounts wereldwijd vanaf 2025. Voor bepaalde klantsegmenten (vooral oudere demografieën, internationale kopers, en mobiele shoppers), verhoogt het zien van die PayPal-knop de checkout-voltooiing echt. Studies tonen consistent een 28-44% lift in checkout-voltooiing wanneer PayPal als optie wordt aangeboden.
Dat is niet niks. Dat is echt geld.
Het Developer Experience Probleem
Maar oh, de developer experience. PayPal's API heeft lagen erfenis rommel die integratie pijnlijk maakt. Ze zijn al jaren bezig met migreren van hun v1 REST API naar v2, en documentatie verwijst nog steeds naar beide. De JavaScript SDK is verbeterd met hun nieuwere Advanced Checkout product, maar het bouwen van een volledig aangepaste checkout flow voelt nog steeds als worstelen met een systeem dat je echt wil dat je hun hosted buttons gebruikt.
// PayPal's server-side order creation
// Opmerking: vereist hun SDK en auth token management
import { PayPalHttpClient, SandboxEnvironment, OrdersCreateRequest } from '@paypal/checkout-server-sdk';
const environment = new SandboxEnvironment(
process.env.PAYPAL_CLIENT_ID!,
process.env.PAYPAL_SECRET!
);
const client = new PayPalHttpClient(environment);
export async function createOrder(cart: CartItem[]) {
const request = new OrdersCreateRequest();
request.prefer('return=representation');
request.requestBody({
intent: 'CAPTURE',
purchase_units: [{
amount: {
currency_code: 'USD',
value: calculateTotal(cart).toString(),
},
}],
});
const response = await client.execute(request);
return response.result;
}
Het werkt, maar het is meer boilerplate, meer auth management, en minder intuïtief dan Stripe's aanpak.
Mijn Eerlijke Take op PayPal
Bied PayPal als secondaire betaalmethode. Maak het niet je primaire gateway. Gebruik Stripe voor de backend-leidingen en plak een PayPal-knop in de checkout voor klanten die het liever hebben. Dit is wat de meeste stores die we bij Social Animal bouwen uiteindelijk doen, en het vangt het beste van beide werelden.
Klarna Deep Dive
BNPL als Growth Strategy
Klarna is niet echt een payment gateway in de traditionele zin. Het is een financieringsproduct dat toevallig betalingen verwerkt. Wanneer een klant Klarna kiest, splitsen ze hun aankoop in termijnen (meestal 4 renteloze betalingen), en betaalt Klarna je het volledige bedrag onmiddellijk.
Voor merchants die producten in het bereik van $50-$500 verkopen -- denk fashion, beauty, home goods -- kan Klarna meetbaar de gemiddelde orderwaarde verhogen. Klarna's eigen data beweert een 45% toename in AOV en 30% hogere conversiecijfers, hoewel onafhankelijke studies die nummers iets lager plaatsen.
Integratie voor Headless Commerce
Klarna's integratie is aanzienlijk verbeterd. Hun Klarna Payments API en Klarna Checkout API ondersteunen beide headless-architecturen, hoewel de implementatie meer widget-gebaseerd is dan API-first:
// Klarna session creation (server-side)
export async function createKlarnaSession(cart: CartItem[]) {
const response = await fetch('https://api.klarna.com/payments/v1/sessions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Basic ${Buffer.from(
`${process.env.KLARNA_USERNAME}:${process.env.KLARNA_PASSWORD}`
).toString('base64')}`,
},
body: JSON.stringify({
purchase_country: 'US',
purchase_currency: 'USD',
locale: 'en-US',
order_amount: calculateTotal(cart),
order_lines: cart.map(item => ({
name: item.name,
quantity: item.quantity,
unit_price: item.price,
total_amount: item.price * item.quantity,
})),
}),
});
return response.json(); // Geeft client_token terug voor frontend widget
}
De client token wordt doorgegeven aan Klarna's JavaScript widget, die de betaalmogelijkheden in je checkout rendert. Het is niet zo flexibel als Stripe Elements, maar het werkt.
Klarna's Nadelen
Payout timing is de grote. Net 15-30 dagen uitbetalingen vergeleken met 1-2 dagen van Stripe of Square kan ernstige cash flow-problemen veroorzaken, vooral voor kleinere merchants. De hogere merchant fees eten ook in marges. En Klarna's developer portal, hoewel verbeterd, heeft nog steeds gaten in documentatie voor edge cases.
Er is ook groeiende regelgevingscontrole van BNPL-providers wereldwijd. Het VK, de EU en Australië hebben allemaal nieuwe regelgeving voor BNPL-producten ingesteld of voorgesteld. Dit zal Klarna niet doden, maar het is het waard om te monitoren.
Square Deep Dive
De Omnichannel Play
Square's superpower is het verenigen van online en offline commerce. Als je klant fysieke retail-locaties naast hun headless ecommerce site heeft, maken Square's ecosysteem inventory sync, reporting, en betaling reconciliatie dramatisch eenvoudiger dan het samenstellen van aparte systemen.
Web Payments SDK
Square's Web Payments SDK is solide. Niet zo elegant als Stripe, maar goed gedocumenteerd en actief onderhouden:
// Square payment form initialization (client-side)
import { payments } from '@square/web-payments-sdk-types';
async function initSquarePayment() {
const payments = window.Square.payments(
process.env.NEXT_PUBLIC_SQUARE_APP_ID!,
process.env.NEXT_PUBLIC_SQUARE_LOCATION_ID!
);
const card = await payments.card();
await card.attach('#card-container');
// Op form submit
const result = await card.tokenize();
if (result.status === 'OK') {
// Stuur result.token naar je server
await processPayment(result.token);
}
}
Waar Square Tekortkort voor Headless
Square's API is gebouwd rond hun ecosysteem. Als je helemaal in Square zit voor POS, inventory, en online verkoop, is het geweldig. Als je een headless CMS zoals Sanity of Contentful gebruikt met een aparte commerce laag, kan Square's API beperkt voelen. Hun productcatalogus is diep gekoppeld aan Square's eigen data model, wat niet altijd netjes in headless commerce-architecturen past.
Internationale ondersteuning is ook zwakker dan Stripe of PayPal. Square werkt slechts in 8 landen vanaf 2026 (VS, Canada, VK, Australië, Japan, Frankrijk, Ierland, Spanje). Als je wereldwijd wilt verkopen, is dit een harde beperking.
Headless CMS en Next.js Integration Patterns
Hier is hoe we dit typisch in onze projecten aansluiten:
Pattern 1: Stripe + Headless CMS (Meest Voorkomend)
- Productgegevens bevinden zich in de headless CMS (Sanity, Contentful, enz.)
- Next.js haalt productgegevens op tijdens build-tijd of op verzoek
- Cart-status beheerd client-side (Zustand, Redux, of Context)
- Stripe Checkout Session gemaakt via Next.js API-route
- Webhooks (via
checkout.session.completed) triggeren order-creatie in de CMS of een apart orderbeheerssysteem
Dit is onze brood en boter. Het werkt, het schaalt, en Stripe behandelt PCI-compliance volledig aan hun kant.
Pattern 2: Multi-Gateway Checkout
Voor stores die maximale conversie willen, implementeren we Stripe als de primaire processor met PayPal en/of Klarna als secondaire opties. De checkout-pagina rendert alle opties, en de backend heeft aparte API routes voor elke gateway. Webhooks van elke provider voeden in dezelfde order-management flow.
Dit voegt complexiteit toe maar verbetert meetbaar de conversiecijfers, vooral voor internationaal verkeer.
Pattern 3: Square voor Omnichannel
Wanneer een klant fysieke winkels heeft en een unified systeem wil, bouwen we de headless frontend met Next.js maar gebruiken Square's API's voor de gehele commerce backend -- catalogus, inventory, payments, en fulfillment. Het is meer stellingnames dan Pattern 1, maar de operationele eenvoud voor de klant is significant.
Welke zou je eigenlijk moeten kiezen?
Hier is mijn eerlijke, niet-uitgestelde aanbeveling:
Voor de meeste headless commerce-projecten: Stripe. Het is niet eens dicht wanneer je API-kwaliteit, documentatie, Next.js-ondersteuning en ecosysteem factoriseert. Voeg PayPal als secondaire methode toe als je klantenbasis ouder of internationaal is.
Voor fashion/lifestyle brands gericht op jongere demografieën: Stripe + Klarna. De BNPL-optie beweegt echt de naald voor impulsaankopen in het bereik van $50-$300.
Voor omnichannel bedrijven met fysieke winkels: Square voor het unified platform, of Stripe voor online + Square voor POS als je het beste van beide wilt.
Voor marketplace-platforms: Stripe Connect. Niets anders komt dicht in buurt voor multi-party betalingsstromen.
Als je een headless commerce-build plant en wilt discussiëren welke payment-architectuur zin heeft voor je specifieke geval, neem contact op. We hebben dit genoeg keren gedaan om de valkuilen op te spotten voordat ze dure problemen worden.
FAQ
Welke payment gateway heeft de laagste fees voor online transacties in 2026?
Stripe en Square zijn gelijk op 2.9% + $0.30 voor standaard binnenlandse online transacties. PayPal is het duurst op 3.49% + $0.49. Als je echter meer dan $80K/maand verwerkt, bieden alle providers onderhandelde tarieven, en Stripe's custom pricing is doorgaans het meest competitief op schaal.
Kan ik Stripe gebruiken met Next.js App Router en Server Components?
Absoluut. Stripe's Node.js SDK werkt perfect in Next.js API routes en Server Actions. Voor de client-kant integreren @stripe/react-stripe-js en @stripe/stripe-js met React Server Components via een client component wrapper. Stripe heeft officiële Next.js-voorbeelden in hun documentatie die het App Router-patroon gebruiken.
Is Klarna het waard voor kleine ecommerce stores?
Het hangt af van je productcategorie en gemiddelde orderwaarde. Als je items in het bereik van $50-$500 in fashion, beauty, of home goods verkoopt, kan Klarna's conversion lift de hogere merchant fees (3.29% - 5.99%) rechtvaardigen. Voor lager-AOV-producten of B2B-verkoop werkt de wiskunde meestal niet uit. Houd ook rekening met Klarna's langere payout-tijdlijn -- net 15-30 dagen kan cash flow voor kleinere operaties belasten.
Hoe verwerk ik PCI-compliance met een headless commerce-installatie?
Alle vier providers bieden tokenisatie die ruwe kaartgegevens van je servers houdt. Met Stripe Elements, PayPal's hosted fields, Klarna's widget, of Square's Web Payments SDK worden kaartnummers in iframes vastgelegd die door de payment provider worden beheerd. Je server ziet nooit ruwe nummers. Dit houdt je op PCI SAQ-A niveau, wat de lichtste compliance burden is. Bouw nooit een aangepast kaart-invoerformulier -- het is de aansprakelijkheid niet waard.
Kan ik meerdere payment gateways op dezelfde headless store gebruiken?
Ja, en je zou het waarschijnlijk moeten doen. Het meest voorkomende patroon dat we implementeren is Stripe als de primaire processor met PayPal als secondaire optie. Elke gateway heeft zijn eigen API routes en webhook handlers, maar ze voeden in hetzelfde order-management-systeem. De extra development complexiteit is echt maar beheersbaar -- meestal 2-3 extra dagen werk voor een senior developer.
Werkt Square goed voor internationale ecommerce?
Eigenlijk niet. Square werkt slechts in 8 landen vanaf 2026, en cross-border transacties hebben hogere fees. Als internationale verkoop meer dan 10-15% van je inkomsten is, is Stripe het duidelijk betere keuze met ondersteuning voor 135+ valuta's en gelokaliseerde betaalmethoden. Square blinkt uit in binnenlandse omnichannel commerce maar valt achter voor globaal bereik.
Wat is de beste payment gateway voor subscription-based headless commerce?
Stripe Billing is de duidelijke winnaar hier. Het verwerkt subscription-creatie, proration, dunning (mislukte betalingsherpoging), facturering, en customer portal -- allemaal via API. PayPal heeft subscription-ondersteuning maar het is meer beperkt en de API is onhandiger. Square voegde onlangs subscription-facturering toe maar het wordt nog altijd volgroeid. Klarna ondersteunt native recurring payments niet.
Hoe lang duurt het om een payment gateway in een Next.js headless commerce site te integreren?
Voor een senior developer duurt een basis Stripe-integratie 2-4 uur. PayPal duurt doorgaans 4-8 uur vanwege zijn complexere SDK. Klarna loopt 6-12 uur omdat van de session-based widget flow en approval proces. Square lands op 3-6 uur. Deze schattingen gaan uit van een standaard checkout flow -- abonnementen, marketplace betalingen, of multi-currency setups voegen aanzienlijk meer tijd toe. Als je hulp nodig hebt met scoping, kan ons team bij Social Animal schattingen geven.