Fintech-Apps beginnen heutzutage selten noch bei null. Wenn ein Nutzer ein Girokonto mit Ihrer App verknüpft, ist die Wahrscheinlichkeit groß, dass Plaid dazwischen sitzt und Bankanmeldungen in sauberes JSON übersetzt, das Ihr Backend verwenden kann. Die Plaid API ermöglicht Kontoverknüpfungen, Kontostandsprüfungen, Transaktionshistorien und Identitätsprüfungen für Tausende von Apps, darunter Venmo, Robinhood und Chime.
Dieser Leitfaden führt Sie aus Entwicklerperspektive durch die Plaid API: wie man Schlüssel erhält, wie der Link-Token-Flow End-to-End funktioniert, welche Produkte Sie kennen sollten und was die häufigsten Fehler bedeuten, wenn in der Produktion etwas schiefgeht. Sie erfahren auch, wie Sie jeden Schritt mit Apidog testen können, damit Sie nicht mehr Request-Payloads erraten müssen. Wenn Sie die unverfälschte Wahrheit wollen, halten Sie die offizielle Plaid-Dokumentation während des Lesens in einem zweiten Tab offen.
Open Banking ist ein überfüllter Bereich, und Plaid ist eine von mehreren Optionen. Wenn Sie noch Anbieter vergleichen, ist unsere Übersicht über die besten Open Banking APIs ein nützlicher Begleiter. Für diesen Beitrag gehen wir davon aus, dass Sie sich für Plaid entschieden haben und bereit sind, es einzusetzen.
TL;DR
- Plaid ist ein Finanzdaten-Aggregator, der Ihre App mit über 12.000 Banken in den USA, Kanada und Europa verbindet.
- Sie erhalten drei Umgebungen direkt nach der Installation: Sandbox (kostenlos, gefälschte Daten), Development (100 kostenlose Live-Items) und Production (Zahlung pro Aufruf).
- Der Verknüpfungs-Flow ist ein vierstufiger Handshake:
link_tokenserverseitig erstellen, Plaid Link clientseitig öffnen,public_tokengegenaccess_tokenaustauschen, dann Produkt-Endpoints aufrufen. - Die Kernprodukte sind Auth, Balance, Transactions, Identity, Investments, Liabilities und Income. Sie aktivieren diese pro Item.
- Die häufigsten Produktionsfehler sind
ITEM_LOGIN_REQUIREDundINVALID_CREDENTIALS. Webhooks informieren Sie, wenn ein Item Aufmerksamkeit benötigt. - Ratenbegrenzungen gelten pro Item und pro Client. Stapeln Sie Ihre Lesevorgänge und hören Sie auf Webhooks, anstatt abzufragen (Polling).
Was ist Plaid?
Plaid ist ein in den USA ansässiges Fintech-Infrastrukturunternehmen, das zwischen Ihrer App und der Bank eines Benutzers sitzt. Wenn ein Benutzer seine Bankdaten in Plaid Link eingibt, verbindet sich Plaid mit der Bank (über offizielle Open-Banking-APIs, wo verfügbar, oder reverse-engineerte Bank-Websites, wo nicht), ruft die angeforderten Daten ab, normalisiert sie und liefert Ihnen eine konsistente JSON-Antwort, unabhängig davon, von welcher Bank sie stammt.
Sie sehen oder speichern niemals die Bankdaten des Benutzers. Plaid hält die Verbindung, die es als Item bezeichnet, und gibt Ihnen ein access_token, das die Berechtigung darstellt, dieses Item abzufragen. Ein Item entspricht einem Satz von Anmeldeinformationen bei einem Finanzinstitut und kann mehrere Konten (Girokonto, Sparkonto, Kreditkarte) umfassen.
Plaid deckt Giro- und Sparkonten von Verbrauchern, Kreditkarten, Kredite, Anlagekonten und Gehaltsdaten ab. Es bewegt selbst kein Geld; für ACH-Überweisungen kombinieren Sie Plaid Auth typischerweise mit einem separaten Zahlungsabwickler. Unser Artikel über die besten ACH-Zahlungs-APIs erklärt, wie diese Kombination typischerweise aussieht.
Authentifizierung und Einrichtung
Schritt 1: Ein Plaid-Entwicklerkonto erstellen
Melden Sie sich unter plaid.com an und verifizieren Sie Ihre E-Mail-Adresse. Sie gelangen ins Plaid Dashboard, wo bereits drei Umgebungen bereitgestellt sind:
- Sandbox: gefälschte Institute, gefälschte Benutzer, keine Kosten. Verwenden Sie
user_good/pass_goodzur Anmeldung. - Development: echte Bankverbindungen, auf 100 Live-Items begrenzt, kostenlos.
- Production: echte Verbindungen, unbegrenzt, nutzungsbasierte Abrechnung.
Schritt 2: Ihre Schlüssel abrufen
Gehen Sie im Dashboard zu Team Settings > Keys. Sie benötigen zwei Werte:
client_id: identisch in allen Umgebungensecret: unterschiedlich pro Umgebung (Sandbox, Development, Production)
Speichern Sie diese in Umgebungsvariablen. Committen Sie sie niemals in Git.
Schritt 3: Das SDK installieren
Das offizielle Node.js SDK finden Sie unter github.com/plaid/plaid-node.
npm install plaid
Schritt 4: Den Client initialisieren
import { Configuration, PlaidApi, PlaidEnvironments } from 'plaid';
const config = new Configuration({
basePath: PlaidEnvironments.sandbox,
baseOptions: {
headers: {
'PLAID-CLIENT-ID': process.env.PLAID_CLIENT_ID,
'PLAID-SECRET': process.env.PLAID_SECRET,
},
},
});
const client = new PlaidApi(config);
Ersetzen Sie PlaidEnvironments.sandbox durch .development oder .production, wenn Sie Ihre Umgebung hochstufen.
Kern-Endpoints
Der Link-Token-Flow
Jede Plaid-Integration folgt demselben vierstufigen Ablauf. Sie führen die Schritte 1 und 3 serverseitig aus; Plaid Link übernimmt Schritt 2 im Browser oder in der mobilen App des Benutzers.
Schritt 1: Erstellen eines link_token
const response = await client.linkTokenCreate({
user: { client_user_id: 'user_123' },
client_name: 'Your App',
products: ['auth', 'transactions'],
country_codes: ['US'],
language: 'en',
});
const linkToken = response.data.link_token;
Die cURL-Version:
curl -X POST https://sandbox.plaid.com/link/token/create \
-H 'Content-Type: application/json' \
-d '{
"client_id": "YOUR_CLIENT_ID",
"secret": "YOUR_SANDBOX_SECRET",
"user": { "client_user_id": "user_123" },
"client_name": "Your App",
"products": ["auth", "transactions"],
"country_codes": ["US"],
"language": "en"
}'
Schritt 2: Plaid Link im Client öffnen
Senden Sie den link_token an Ihr Frontend und übergeben Sie ihn an das Plaid Link SDK. Der Benutzer wählt seine Bank aus, meldet sich an, und Plaid gibt einen public_token an Ihren onSuccess-Callback zurück.
Schritt 3: Den public_token austauschen
const exchange = await client.itemPublicTokenExchange({
public_token: publicToken,
});
const accessToken = exchange.data.access_token;
const itemId = exchange.data.item_id;
Speichern Sie den accessToken serverseitig, an Ihren Benutzer gebunden. Dieser Token ist langlebig und wird für jeden zukünftigen Aufruf verwendet.
Schritt 4: Produkt-Endpoints aufrufen
const accounts = await client.accountsGet({ access_token: accessToken });
const balance = await client.accountsBalanceGet({ access_token: accessToken });
Produkt-Endpoints, die Sie kennen sollten
- Auth gibt Konto- und Bankleitzahlen für ACH zurück (
/auth/get). - Balance gibt Echtzeit-Kontostände zurück, unter Umgehung des Caches (
/accounts/balance/get). - Transactions gibt bereinigte Transaktionsdaten von bis zu 24 Monaten zurück (
/transactions/sync). - Identity gibt den Namen des Kontoinhabers, E-Mail, Telefon und Adresse zurück (
/identity/get). Wenn Ihr Anwendungsfall rein KYC ist, vergleichen Sie ihn mit spezialisierten Anbietern in unserer Übersicht der besten KYC-APIs. - Investments gibt Bestände und Anlagetransaktionen zurück (
/investments/holdings/get). - Liabilities gibt Details zu Studienkrediten, Kreditkarten und Hypotheken zurück (
/liabilities/get). - Income gibt Gehaltsdaten über Plaid Income zurück (
/credit/payroll_income/get).
Testen der Plaid API mit Apidog
Das End-to-End-Testen von Plaid ist umständlich, da der Link-Schritt in einem Browser stattfindet. Sie benötigen dennoch eine zuverlässige Methode, um die serverseitigen Endpoints mit gültigen Payloads zu erreichen, zu sehen, wie Fehler auftreten, und funktionierende Anfragen mit Teamkollegen zu teilen. Apidog erledigt dies besser als die meisten Tools.
Importieren Sie Plaids OpenAPI-Spezifikation in Apidog und Sie erhalten jeden Endpoint vorkonfiguriert mit Typen, Beispiel-Bodies und den richtigen Auth-Headern. Sie können ein Sandbox-Umgebungsvariablen-Set (client_id, secret, access_token) erstellen und mit einem Klick zur Produktion wechseln. Verkettete Anfragen ermöglichen es Ihnen, linkTokenCreate → sandboxPublicTokenCreate → itemPublicTokenExchange → accountsGet in einem einzigen Flow auszuführen, sodass Sie den vollständigen Handshake ohne Browser überprüfen können.
Apidogs Mock-Server ist nützlich, wenn Ihr Frontend-Team /accounts/get-Antworten benötigt, bevor Ihre Backend-Integration abgeschlossen ist. Wenn Sie von einem anderen Tool wechseln, deckt unser Leitfaden zum API-Testen ohne Postman im Jahr 2026 die Migration detailliert ab. Laden Sie Apidog herunter und verknüpfen Sie es mit Plaids Spezifikation, um loszulegen.
Häufige Fehler und Ratenbegrenzungen
Plaid-Fehler werden mit einem error_type, error_code und einer menschenlesbaren error_message zurückgegeben. Behandeln Sie diese vier in der Produktion:
INVALID_CREDENTIALS: Der Benutzer hat das falsche Passwort bei der Bank eingegeben. Fordern Sie ihn auf, es erneut über den Link-Update-Modus zu versuchen.ITEM_LOGIN_REQUIRED: Die Bank hat die Sitzung ungültig gemacht (Passwortänderung, MFA-Rotation). Lösen Sie den Link im Update-Modus aus, um sich erneut zu authentifizieren. Sie erfahren davon über einen Webhook, nicht über einen fehlgeschlagenen Aufruf.RATE_LIMIT_EXCEEDED: Sie haben ein Limit pro Item oder pro Endpoint überschritten. Fahren Sie zurück und versuchen Sie es dann mit Jitter erneut.PRODUCT_NOT_READY: Transaktionsdaten werden noch abgerufen. Wiederholen Sie den Vorgang, nachdem derINITIAL_UPDATE-Webhook ausgelöst wurde.
Webhooks
Übergeben Sie eine webhook-URL, wenn Sie den link_token erstellen, und Plaid wird Updates per POST an diese senden. Die drei, die Sie nicht ignorieren können, sind SYNC_UPDATES_AVAILABLE (neue Transaktionen), ITEM: LOGIN_REQUIRED (erneute Authentifizierung erforderlich) und ITEM: ERROR (permanenter Fehler). Überprüfen Sie die JWT-Signatur jedes Webhooks, bevor Sie darauf reagieren.
Ratenbegrenzungen
Plaid erzwingt Ratenbegrenzungen pro Item und pro Endpoint. Zum Beispiel ist /accounts/balance/get in der Produktion auf etwa 5 Aufrufe pro Minute pro Item begrenzt. Aggregierte clientseitige Limits gelten auch für stark genutzte Endpoints. Die praktische Regel: Fragen Sie Webhooks ab, cachen Sie Kontostände für ein paar Minuten und rufen Sie Plaid niemals über einen benutzerseitigen Anfragepfad auf.
Plaid Preise
Plaid verwendet in der Produktion eine gestaffelte Preisgestaltung pro API-Aufruf. Die ungefähre Größenordnung:
- Sandbox: kostenlos, unbegrenzt.
- Development: kostenlos bis zu 100 Items.
- Production:
- Auth: ungefähr $1.50 pro verknüpftem Konto, einmalig.
- Balance: Preis pro Aufruf.
- Transactions: monatliche Gebühr pro Item (ungefähr $0.30).
- Identity: Preis pro Aufruf.
- Investments / Liabilities / Income: separate Gebühren pro Item.
Plaid verhandelt individuelle Preise ab bestimmten Volumina, daher ist die öffentliche Preisliste ein Ausgangspunkt. Überprüfen Sie die Plaid-Produktseite für die aktuellen Zahlen.
FAQ
Wie lange ist ein access_token gültig?Unbefristet, bis der Benutzer den Zugriff widerruft oder die Bank die Sitzung ungültig macht. Speichern Sie ihn verschlüsselt und lassen Sie ihn auf Ihrer Seite nicht ablaufen.
Kann ich Plaid allein für die Identitätsprüfung verwenden?Sie können Plaid Identity verwenden, aber wenn Ihr Hauptbedarf KYC ist, sind Sie möglicherweise mit einem speziellen Verifizierungsprodukt besser bedient. Wir behandeln die Kompromisse in unserem Leitfaden zur Verwendung der Stripe Identity API.
Unterstützt Plaid Länder außerhalb der USA?Ja. Plaid deckt die USA, Kanada, Großbritannien und die meisten EU-Länder ab. Die Länderunterstützung variiert je nach Produkt; überprüfen Sie den Parameter für Ländercodes im /link/token/create-Aufruf.
Was passiert, wenn ein Benutzer sein Bankpasswort ändert?Das Item wechselt in den Zustand ITEM_LOGIN_REQUIRED und Sie erhalten einen Webhook. Lösen Sie Plaid Link im Update-Modus aus und der Benutzer authentifiziert sich erneut, ohne seinen access_token zu verlieren.
Kann ich den Link-Flow ohne echten Browser testen?Ja. Der /sandbox/public_token/create-Endpoint überspringt Link vollständig und gibt einen public_token zurück, den Sie austauschen können. Verwenden Sie ihn für automatisierte Integrationstests.
Wie gehe ich mit Plaid in der lokalen Entwicklung um?Halten Sie ein Sandbox-secret in Ihrer .env-Datei und verbinden Sie Ihre Entwicklungsumgebung mit PlaidEnvironments.sandbox. Verwenden Sie Tunneling (ngrok, Cloudflare Tunnel), um Webhooks lokal zu empfangen.
