Fintech Software Development: Next.js + Stripe + Plaid (Auditor-Ready)
Je fintech-app gaat live. Drie weken later stuurt een decimaalafrondings-error $47.832 naar het verkeerde grootboek — en je klant krijgt een regelgevingsbericht met een straf van zes cijfers eraan vastgehecht. We hebben drie jaar lang financiële producten op Next.js gebouwd waar elke Stripe Connect webhook, elke Plaid token refresh en elk KYC-besluitpad wordt uitgevoerd met de aanname dat auditors de logs zullen lezen. Niet demo-repo's. Niet proof-of-concepts. Productieplatformen waar nalevingsgaten carrières kosten en bugs zich vertalen in echte financiële schade. Dit is wat we hebben geleerd bij het bouwen van systemen die met andermans geld omgaan — en wat brak toen we fintech behandelden als een typische SaaS-build.
Financiaalsoftware bouwen is iets anders dan het bouwen van een SaaS-dashboard of een e-commerce-winkel. De inzetten zijn hoger, de regelgeving is echt, en het integratieoppervlak is enorm. Als je fintech-softwareontwikkelingsdiensten evalueert of overweegt zelf een financieel product te bouwen, dit is wat ik had willen horen voordat ik de eerste coderegel schreef.
Inhoudsopgave
- Waarom Next.js voor Fintech
- Bankintegraties die echt werken
- Stripe Connect in productie
- Plaid-integratiediepe duik
- KYC en onboarding flows
- Compliancearchitectuur
- Beveiligingspatronen die je niet kunt overslaan
- Echte kostenbreakdown
- De juiste ontwikkelingspartner kiezen
- Veelgestelde vragen

Waarom Next.js voor Fintech
Laat me eerst de voor de hand liggende vraag beantwoorden: waarom zou je een financieel product op Next.js bouwen in plaats van een meer "traditioneel" backend-framework?
Het korte antwoord is dat Next.js niet langer slechts een frontend-framework is. Met Server Actions, API-routes, middleware en de App Router is het een full-stack platform dat toevallig een ongeloflijk frontend-verhaal heeft. En in fintech is het frontend-verhaal belangrijker dan de meeste engineers beseffen.
Server-Side Rendering en PCI-compliance
Als je gevoelige financiële gegevens verwerkt, wil je dat zo weinig mogelijk ervan de browser bereikt. Server-componenten van Next.js laten je accountsaldi, transactiegeschiedenis en portefeuillestukken op de server renderen. De browser krijgt HTML. Geen raw API-reacties met rekeningnummers die in het netwerkpaneel voor iedereen opgesteld staan.
Dit is niet alleen goede praktijk — het is een compliancevereiste onder PCI DSS 4.0 (die in maart 2025 verplicht werd). Je moet de cardholder data environment minimaliseren, en server-side rendering is een van de schoonste manieren om dit te doen.
Middleware voor auth en rate limiting
Next.js middleware wordt aan de edge uitgevoerd voordat je pagina zelfs begint met renderen. We gebruiken het voor:
- Sessievalidatie voor elk verzoek
- IP-gebaseerde rate limiting voor loginpogingen
- Geografische restricties (sommige financiële producten kunnen alleen in specifieke staten of landen werken)
- Verificatie van handtekeningen voor webhook-eindpunten
// middleware.ts
import { NextRequest, NextResponse } from 'next/server';
import { verifySession } from '@/lib/auth';
import { checkGeoRestriction } from '@/lib/compliance';
export async function middleware(req: NextRequest) {
const geo = req.geo;
// Block restricted jurisdictions before anything loads
if (req.nextUrl.pathname.startsWith('/dashboard')) {
const restriction = checkGeoRestriction(geo?.country);
if (restriction.blocked) {
return NextResponse.redirect(new URL('/restricted', req.url));
}
}
// Validate session for protected routes
const session = await verifySession(req);
if (!session && req.nextUrl.pathname.startsWith('/dashboard')) {
return NextResponse.redirect(new URL('/login', req.url));
}
return NextResponse.next();
}
Prestatie is belangrijk voor financiële UI's
Mensen worden nerveus als hun bankingapp traag is. Een laadtijd van 3 seconden op een transactiepagina doet gebruikers denken dat er iets mis is. Ingebouwde optimalisaties van Next.js — codesplitsing, afbeeldingsoptimalisatie, prefetching — geven je sub-secondaire paginaladingen zonder heroïsche inspanning. We halen consistent Lighthouse-scores boven 95 op financiële dashboards gebouwd met Next.js, die je kunt zien in ons Next.js-ontwikkelingwerk.
Bankintegraties die echt werken
Hier is de realiteit van fintech-integraties in 2026: er zijn ongeveer een dozijn services die je moet samenstellen, en geen van hen werkt helemaal zoals hun docs suggereren bij de eerste poging.
| Integratie | Doel | Zandbaak kwaliteit | Productieproblemen |
|---|---|---|---|
| Stripe Connect | Betalingsverwerking, uitkeringen | Uitstekend | Onboarding edge cases, KYB-vertragingen |
| Plaid | Bankrekening koppelen | Goed | Institutie-specifieke fouten, OAuth-omleidingen |
| Persona / Alloy | KYC/Identiteitsverificatie | Goed | Documentverificatie valse positieven |
| Unit / Treasury Prime | Banking-as-a-Service | Matig | Ledger-afstemmingscomplexiteit |
| Sardine / Chainalysis | Fraudedetectie | Beperkt | Afstemming vals positief tarief |
| Dwolla | ACH-overdrachten | Goed | Retourverwerking, volgende dag vs dezelfde dag |
| Moov | Geldbeweging | Goed | Relatief nieuw, minder edge case-documentatie |
Het patroon dat het beste werkt: kies één primaire betalingsrail (meestal Stripe), één service voor bankkoppeling (meestal Plaid), één identiteitsprovider (Persona of Alloy), en bouw je compliancelaag daarbovenop.
Stripe Connect in productie
Stripe Connect is waarschijnlijk de meest voorkomende integratie die we voor fintech-klanten bouwen, en het is ook degene waar de kloof tussen de demo en de realiteit het breedst is.
Platformtypen en wanneer elk te gebruiken
Stripe Connect heeft drie integratiepatronen, en het verkeerde kiezen kost je maanden:
- Standard: Gebruikers maken hun eigen Stripe-account. Minste werk, minste controle. Prima voor marktplaatsen waar je de betalingservaring niet hoeft te bezitten.
- Express: Stripe host de onboarding. Goed middenweg. Je handelt nog steeds de betalingsstroom af maar Stripe handelt KYB af.
- Custom: Je bent eigenaar van alles. De onboarding UI, het dashboard, de uitkeringlogica. Dit is wat de meeste echte fintech-producten nodig hebben, en het is aanzienlijk meer werk.
We hebben alle drie gebouwd. Custom Connect-accounts zijn ongeveer 3-4x de ontwikkelingsinspanning van Express, maar als je een financieel product bouwt (geen zoetkost-marktplaats), zul je waarschijnlijk Custom nodig hebben.
De onboarding-val
// Creating a Custom connected account
const account = await stripe.accounts.create({
type: 'custom',
country: 'US',
capabilities: {
card_payments: { requested: true },
transfers: { requested: true },
},
business_type: 'individual',
tos_acceptance: {
date: Math.floor(Date.now() / 1000),
ip: request.headers.get('x-forwarded-for') || '',
},
});
Dat ziet er eenvoudig uit. Maar hier is wat de docs niet genoeg benadrukken: Stripe zal in de loop der tijd aanvullende informatie aanvragen van je verbonden accounts. Een account die volledig geverifieerd was in januari krijgt in maart mogelijk een requirements.currently_due-update met een nieuw document. Je moet een persistent onboardingsysteem bouwen dat gebruikers opnieuw kan betrekken, niet alleen een eenmalige flow.
We hanteren dit met een webhook-gestuurde state machine:
// Webhook handler for account updates
case 'account.updated': {
const account = event.data.object as Stripe.Account;
const { currently_due, eventually_due, past_due } = account.requirements ?? {};
if (past_due && past_due.length > 0) {
// Urgent: account may be disabled
await notifyUser(account.id, 'urgent_requirements', past_due);
await updateAccountStatus(account.id, 'restricted');
} else if (currently_due && currently_due.length > 0) {
await notifyUser(account.id, 'action_needed', currently_due);
await updateAccountStatus(account.id, 'pending');
}
break;
}
Echte prijsimpact
Stripe Connect-prijzen in 2026: 2,9% + $0,30 per kaartbetaling (standaard), met een aanvullend platformtarief dat je instelt. Voor ACH is het 0,8% met een maximum van $5. Maar de verborgen kosten zijn chargebacks — $15 per geschil. Als je een uitlenings- of investeringsplatform bouwt, budget voor chargeback-verwerkingsinfrastructuur. We hebben platforms gezien waarbij chargeback-verwerking alleen al voor 20% van de post-launchingspanning verantwoordelijk was.

Plaid-integratiediepe duik
Plaid is hoe je verbinding maakt met bankrekeningen van gebruikers. Het wordt gebruikt door de meeste fintech-apps die je hebt gehoord, en de integratie is zowel eenvoudiger als complexer dan je zou verwachten.
De Link Flow
Plaid Link is een drop-in component die de bankselectie, creditinvoer en MFA verwerkt. In een Next.js-app ziet het er zo uit:
// Server action to create link token
'use server'
export async function createLinkToken(userId: string) {
const response = await plaidClient.linkTokenCreate({
user: { client_user_id: userId },
client_name: 'Your App Name',
products: ['auth', 'transactions'],
country_codes: ['US'],
language: 'en',
});
return response.data.link_token;
}
// Client component
'use client'
import { usePlaidLink } from 'react-plaid-link';
export function BankConnect({ linkToken }: { linkToken: string }) {
const { open, ready } = usePlaidLink({
token: linkToken,
onSuccess: async (publicToken, metadata) => {
// Exchange for access token on the server
await exchangeToken(publicToken, metadata.institution?.institution_id);
},
});
return (
<button onClick={() => open()} disabled={!ready}>
Connect Bank Account
</button>
);
}
Wat brak in productie
De gelukkige weg werkt geweldig. Hier is wat niet:
OAuth-instellingen: Chase, Capital One en anderen gebruiken OAuth-omleidingen. Je Plaid Link-flow verlaat je app en keert terug. Je moet de omleidings-URI verwerken, staat handhaven en omgaan met gebruikers die de browser mid-flow sluiten.
Item-verslechtering: Bankverbindingen breken. Instellingen veranderen hun API's, gebruikers veranderen hun wachtwoorden, MFA-tokens verlopen. Plaid stuurt je
ITEM_LOGIN_REQUIREDfouten, en je hebt een heraansluitingsflow nodig die je gebruikers niet in paniek brengt.Transactiesync vs pull: In 2026 zou je het
transactions/synceindpunt van Plaid moeten gebruiken in plaats vantransactions/get. Het is op cursorbasis en verwerkt updates en verwijderingen. Maar dat betekent dat je cursors per item moet opslaan en de paginering correct moet afhandelen.Prijzen: Plaid berekent per verbonden account per maand. Vanaf 2026 verwacht je $1,50-$3,00/verbinding/maand op schaal, hoewel ze onderhandelen op basis van volume. Dit loopt snel op als je gebruikers hebt die meerdere rekeningen verbinden.
KYC en onboarding flows
KYC (Know Your Customer) is waar de meeste fintech-projecten de complexiteit met een orde van omvang onderschatten.
Het compliancespectrum
Niet elk financieel product heeft hetzelfde niveau van KYC nodig:
| Producttype | KYC-niveau | Typische vereisten | Verificatietijd |
|---|---|---|---|
| Budgetteringsapp (alleen-lezen) | Minimaal | E-mail, naam | Direct |
| P2P-betalingen | Standaard | SSN, geboortedatum, adres, ID-controle | 1-5 minuten |
| Lenen / Krediet | Verbeterd | Alles hierboven + inkomstenverificatie, kredietonderzoek | 1-24 uur |
| Investering / Effecten | Volledig | Alles hierboven + geschiktheidsvragenlijst, accreditatie | 1-48 uur |
| Geldoverboeking | Volledig + lopend | Alles + lopende monitoring, SAR-indiening | Lopend |
De Flow in Next.js bouwen
We bouwen KYC meestal als een multi-stap formulier met validatie aan de serverzijde bij elke stap. De belangrijkste architectuurbeslissing: sla gevoelige identiteitsdocumenten nooit zelf op in je database als je dit kunt vermijden. Stuur ze rechtstreeks naar je identiteitsverifcatieprovider.
// app/onboarding/identity/actions.ts
'use server'
import { personaClient } from '@/lib/persona';
export async function createInquiry(userId: string) {
const inquiry = await personaClient.createInquiry({
templateId: process.env.PERSONA_TEMPLATE_ID!,
referenceId: userId,
fields: {
// Pre-fill what you already have
nameFirst: user.firstName,
nameLast: user.lastName,
},
});
return { inquiryId: inquiry.id, sessionToken: inquiry.sessionToken };
}
Persona (onze voorkeursprovider voor KYC voor de meeste projecten) berekent ongeveer $2-5 per verificatie in 2026. Alloy is een ander solide alternatief, vooral als je meer complexe decisioning-regels nodig hebt. Beide integreren goed met de headless-architectuur die we bij Social Animal bouwen — zie onze headless CMS-ontwikkelingscapaciteiten voor context over hoe we deze backends structureren.
De State Machine Approach
Elke gebruiker in je systeem moet een onboardingstaat hebben, en overgangen tussen staten moeten expliciet en controlabel zijn:
CREATED → EMAIL_VERIFIED → IDENTITY_SUBMITTED → IDENTITY_VERIFIED → KYC_APPROVED → ACTIVE
→ IDENTITY_FAILED → MANUAL_REVIEW → (APPROVED | REJECTED)
Sla elke toestandsovergang op met een timestamp, de acteur die deze veroorzaakte (gebruiker, systeem, admin), en de reden. Je complianceteam zal je ervan langs geven tijdens audits. We gebruiken een eenvoudig state machine-patroon met een overgangtabel in Postgres — niets ingewikkelds, maar oneindig debugbaar.
Compliancearchitectuur
Compliance is geen feature die je op het einde aan het werk vast kunt zetten. Het is een architecturale concern die elke laag van je stack beïnvloedt.
Audit Logging
Elke financiële handeling moet een onveranderbare controlespoor hebben. We implementeren dit als een afzonderlijke append-only tabel (of een speciale service zoals AWS QLDB voor hogere zekerheid):
CREATE TABLE audit_log (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
timestamp TIMESTAMPTZ NOT NULL DEFAULT now(),
actor_id UUID NOT NULL,
actor_type VARCHAR(20) NOT NULL, -- 'user', 'system', 'admin'
action VARCHAR(100) NOT NULL,
resource_type VARCHAR(50) NOT NULL,
resource_id UUID NOT NULL,
metadata JSONB,
ip_address INET,
user_agent TEXT
);
-- No UPDATE or DELETE permissions on this table. Ever.
REVOKE UPDATE, DELETE ON audit_log FROM app_user;
Data Residency en versleuteling
Als je in de VS werkt, is SOC 2 Type II de basiscompliance-certificering die je enterprise-klanten zullen verlangen. Voor Europese markten voeg je GDPR-data residency vereisten toe. We implementeren financiële producten op Vercel voor de edge-laag aan de voorkant, maar houden alle gevoelige gegevensverwerking in specifieke AWS-regio's met versleutelde RDS-instanties en KMS-beheerde sleutels.
Versleuteling in rust is speltafel. Wat meer uitmaakt: veldniveauversleuteling voor PII (burgerservicenummers, bankrekeningnummers) met apart sleutelbeheer. Als je database wordt gecompromitteerd, krijgt de aanvaller versleutelde blobs, geen bruikbare gegevens.
Beveiligingspatronen die je niet kunt overslaan
CSRF en sessiebeheer
Next.js Server Actions hebben ingebouwde CSRF-bescherming, maar je moet verifiëren dat deze correct werkt. Voor sessiebeheer in fintech gebruiken we kortstondige JWT's (15 minuten) met token-rotatie vernieuwen. Elke refresh genereert een nieuw tokenpaar en maakt het oude ongeldig. Dit beperkt het schadebereik van een gestolen token.
Rate Limiting
Financiële eindpunten hebben agressieve rate limiting nodig:
- Login: 5 pogingen per 15 minuten per IP
- Overdracht initiatief: 10 per uur per gebruiker
- Accountcreatie: 3 per uur per IP
- API-eindpunten: 100 per minuut per gebruiker
We gebruiken Upstash Redis voor rate limiting aan de edge — het werkt prachtig met Next.js middleware op Vercel.
Webhook-beveiliging
Elke betalingsprovider stuurt webhooks. Elk van hen moet handtekening-verificatie nodig hebben. Dit is niet onderhandelbaar:
import Stripe from 'stripe';
export async function POST(req: Request) {
const body = await req.text();
const sig = req.headers.get('stripe-signature')!;
let event: Stripe.Event;
try {
event = stripe.webhooks.constructEvent(
body,
sig,
process.env.STRIPE_WEBHOOK_SECRET!
);
} catch (err) {
// Log this — it might be an attack attempt
console.error('Webhook signature verification failed:', err);
return new Response('Invalid signature', { status: 400 });
}
// Process the verified event
await processWebhookEvent(event);
return new Response('OK', { status: 200 });
}
Ik heb productie fintech-apps gezien die webhook-verificatie overslaan omdat "het in ontwikkeling werkt". Wees niet dat team.
Echte kostenbreakdown
Laten we over werkelijke getallen praten voor het bouwen van een fintech-product in 2026:
| Component | Maandelijkse kosten (1.000 gebruikers) | Maandelijkse kosten (50.000 gebruikers) |
|---|---|---|
| Vercel Pro (hosting) | $20-50 | $150-500 |
| Stripe Connect | Per-transactiekosten | Per-transactiekosten |
| Plaid | $1.500-3.000 | $50.000-150.000 |
| Persona KYC | $500-2.500 (eenmalig per gebruiker) | Volumekortingen beschikbaar |
| Database (PlanetScale/Supabase) | $29-59 | $299-599 |
| Monitoring (Datadog/Sentry) | $50-100 | $500-2.000 |
| AWS (ondersteunende diensten) | $100-300 | $1.000-5.000 |
| Totale infrastructuur | ~$2.200-6.000/ma | ~$52.000-158.000/ma |
Ontwikkelingskosten variëren enorm, maar hier is een realistisch bereik: een MVP fintech-product met Stripe Connect, Plaid, KYC en basiscompliance duurt 3-6 maanden met een team van 2-3 senior engineers. Tegen agentarief kijk je naar $150.000-400.000 voor de initiële build. Controleer onze prijspagina voor hoe we fintech-betrokkenheid structureren.
De voortdurende kosten die mensen overvallen zijn compliancebehoud. Regelgeving verandert, Stripe update hun API, Plaid deprecat eindpunten, en je KYC-provider past hun modellen aan. Budget 20-30% van de initiële bouwkost jaarlijks voor onderhoud en complianceupdates.
De juiste ontwikkelingspartner kiezen
Als je fintech-softwareontwikkelingsdiensten evalueert, is hier wat je moet zoeken voorbij de gebruikelijke portefeuillereview:
Vraag naar hun complianceervaringservaring: Hebben ze producten gebouwd die SOC 2-audits doorstonden? Begrijpen ze PCI DSS-scoping? Als ze hier niet concreet over kunnen spreken, ga weg.
Vraag naar hun incidentresponsproces: In fintech gaat het fout. Een betalingsprovider heeft een storing, een bankverbinding breekt, een gebruiker meldt ongeautoriseerde toegang. Hoe hanteren zij het?
Vraag naar hun testbenadering: Financiaalsoftware heeft integratietests tegen sandbox-omgevingen nodig, tests op basis van eigenschappen voor geldbewerkingen en chaosingenieurs voor derden fouten.
Vraag om referenties van gereglementeerde klanten: Iedereen kan een mooi dashboard bouwen. Niet iedereen kan een bouwen waarop een complianceambtenaar zich aftekenenen.
We hebben fintech-producten gebouwd voor klanten van vroegstadialegedragigen tot gevestigde financiële instellingen. Als je verkent hoe een fintech-build eruitziet met een team dat dit eerder heeft gedaan, neem contact met ons op.
Veelgestelde vragen
Wat maakt Next.js een goede keuze voor fintech-applicaties? Next.js biedt server-side rendering die gevoelige gegevensblootstelling in de browser minimaliseert, middleware voor beveiligingscontroles op edge-niveau, en Server Actions voor veilige formulierverwerking. De prestatiekarakteristieken zijn ook belangrijk — gebruikers vertrouwen snelle financiële interfaces meer dan langzame. De full-stack-aard betekent dat je API-routes, webhooks en rendering in één codebase kunt afhandelen, wat nalevingsscoping vereenvoudigt.
Hoe lang duurt het om een fintech MVP te bouwen? Een realistisch tijdschema voor een fintech MVP met betalingsverwerking (Stripe Connect), bankkoppeling (Plaid), identiteitsverificatie (KYC) en basiscompliance-functies is 3-6 maanden met 2-3 senior engineers. Eenvoudigere producten zoals budgetteringstools kunnen 2-3 maanden duren. Producten met uitlening, effecten of geldoverboeking kunnen 6-12 maanden duren vanwege extra regelgeving vereisten.
Welke compliancecertificeringen hebben fintech-producten nodig? Het hangt ervan af wat je product doet. De meeste B2B fintech-producten hebben minimaal SOC 2 Type II nodig. Als je rechtstreeks met kaartgegevens omgaat, is PCI DSS van toepassing. Leenproducten moeten voldoen aan staatsspecifieke leningregels en hebben mogelijk specifieke licenties nodig. Geldoverboeking vereist staatsgewijze MTL-licenties of partnership met een gelicentieerde entiteit. Raadpleeg altijd vroeg een fintech-advocaat in het proces.
Hoeveel kost Plaid voor een fintech-startup? Plaid's prijzen in 2026 zijn op gebruiksbasis, meestal $1,50-$3,00 per verbonden bankrekening per maand op startup-volumes. Ze bieden een gratis tier voor ontwikkeling en kleinschalig gebruik. Bij hogere volumes (50.000+ verbindingen) onderhandel je over aangepaste prijzen die de eenheidskosten aanzienlijk kunnen verlagen. De belangrijkste kostenfactor is hoeveel producten je per verbinding gebruikt — auth, transacties, identiteit en investeringen voegen elk iets toe aan de per-verbindingskost.
Wat is het verschil tussen Stripe Connect Standard, Express en Custom? Standaard accounts zijn volledig onafhankelijke Stripe-accounts — gebruikers beheren hun eigen dashboard en Stripe-relatie. Express-accounts gebruiken door Stripe gehoste onboarding maar geven je meer controle over de betalingsstroom. Custom-accounts geven je volledige controle over elk aspect inclusief onboarding UI, dashboard en uitkeringplanning. De meeste echte fintech-producten gebruiken Custom omdat ze de gebruikerservaring end-to-end willen bezitten, maar Express is een geldig keuze als je een marktplaats bouwt.
Hoe handel je PCI-compliance met Next.js? De sleutel is je PCI-scope minimaliseren. Gebruik Stripe Elements of Stripe.js om kaartgegevens aan de clientzijde te tokeniseren — de werkelijke kaartnummers bereiken je server nooit. Server-side rendering in Next.js helpt omdat gevoelige financiële gegevens op de server kunnen worden weergegeven zonder raw API-reacties aan de browser bloot te stellen. Voor de weinige eindpunten die gevoelige gegevens raken, isoleer ze in specifieke API-routes en pas aanvullende beveiligingscontroles toe.
Wat gebeurt er wanneer een Plaid-bankverbinding verbreekt? Plaid-verbindingen verslechteren in de loop der tijd — instellingen updaten hun systemen, gebruikers veranderen wachtwoorden, MFA-vereisten veranderen. Je ontvangt webhookberichten wanneer de status van een item verandert. Je applicatie heeft een heraansluitingsflow nodig die een nieuwe Plaid Link-sessie in updatemode creëert, zodat gebruikers opnieuw kunnen verifiëren zonder opnieuw te beginnen. Budget engineeringtijd hiervoor — het is niet optioneel, en slechte heraansluitingsflows veroorzaken aanzienlijke gebruikersverzwakking.
Moet ik een Banking-as-a-Service provider gebruiken of direct op Stripe en Plaid bouwen? Als je bankrekeningen moet aanbieden, kaarten moet uitgeven of middelen namens gebruikers moet houden, is een BaaS-provider zoals Unit, Treasury Prime of Column waarschijnlijk noodzakelijk — ze bieden de bankinglicentie en infrastructuur. Als je betalingen, uitleningen of financiële dataprodukten bouwt, bouwen direct op Stripe en Plaid geeft je meer flexibiliteit en lagere kosten. Veel producten gebruiken een combinatie: Stripe voor betalingen, Plaid voor gegevens, en een BaaS voor bankingfuncties.