Les applications fintech partent rarement de zéro de nos jours. Lorsqu'un utilisateur lie un compte courant à votre application, il est fort probable que Plaid se trouve au milieu, traduisant les identifiants bancaires en un JSON propre que votre backend peut utiliser. L'API Plaid alimente la liaison de comptes, les vérifications de solde, l'historique des transactions et la vérification d'identité pour des milliers d'applications, notamment Venmo, Robinhood et Chime.
Ce guide vous accompagne à travers l'API Plaid du point de vue d'un développeur : comment obtenir les clés, comment fonctionne le flux de jetons Link de bout en bout, quels produits vous devriez connaître, et ce que signifient les erreurs courantes lorsque les choses ne fonctionnent pas en production. Vous verrez également comment tester chaque étape avec Apidog afin de ne plus deviner les charges utiles des requêtes. Si vous souhaitez la source de vérité brute, gardez la documentation officielle de Plaid ouverte dans un deuxième onglet pendant votre lecture.
Le secteur de l'open banking est très encombré, et Plaid est une option parmi plusieurs. Si vous comparez toujours les fournisseurs, notre aperçu des meilleures API d'open banking est un compagnon utile. Pour cet article, supposons que vous avez choisi Plaid et que vous êtes prêt à passer à l'action.
En bref
- Plaid est un agrégateur de données financières qui connecte votre application à plus de 12 000 banques aux États-Unis, au Canada et en Europe.
- Vous obtenez trois environnements prêts à l'emploi : sandbox (gratuit, données fictives), développement (100 Items actifs gratuits) et production (paiement par appel).
- Le flux de liaison est un échange en quatre étapes : créer un
link_tokencôté serveur, ouvrir Plaid Link côté client, échanger lepublic_tokencontre unaccess_token, puis appeler les points de terminaison des produits. - Les produits principaux sont Auth, Balance, Transactions, Identity, Investments, Liabilities et Income. Vous les activez par Item.
- Les erreurs de production les plus courantes sont
ITEM_LOGIN_REQUIREDetINVALID_CREDENTIALS. Les webhooks vous informent lorsqu'un Item nécessite une attention particulière. - Les limites de débit sont par Item et par client. Regroupez vos lectures et écoutez les webhooks au lieu d'interroger.
Qu'est-ce que Plaid ?
Plaid est une entreprise d'infrastructure fintech basée aux États-Unis qui se positionne entre votre application et la banque d'un utilisateur. Lorsqu'un utilisateur saisit ses identifiants bancaires dans Plaid Link, Plaid se connecte à la banque (via les API d'open banking officielles là où elles sont disponibles, ou des sites web bancaires rétro-ingénierés là où elles ne le sont pas), extrait les données demandées, les normalise et vous fournit une réponse JSON cohérente, quelle que soit la banque d'origine.
Vous ne voyez ni ne stockez jamais les identifiants bancaires de l'utilisateur. Plaid gère la connexion, qu'il appelle un Item, et vous donne un access_token qui représente l'autorisation d'interroger cet Item. Un Item équivaut à un ensemble d'identifiants auprès d'une institution financière, et peut inclure plusieurs comptes (courant, épargne, carte de crédit).
Plaid couvre les comptes courants et d'épargne des consommateurs, les cartes de crédit, les prêts, les comptes d'investissement et les données de paie. Il ne déplace pas l'argent par lui-même ; pour les virements ACH, vous associez généralement Plaid Auth à un processeur de paiement distinct. Notre article sur les meilleures API de paiement ACH explique à quoi ressemble généralement cet appariement.
Authentification et configuration
Étape 1 : Créer un compte développeur Plaid
Inscrivez-vous sur plaid.com et vérifiez votre email. Vous accédez au tableau de bord Plaid avec trois environnements déjà provisionnés :
- Sandbox : institutions fictives, utilisateurs fictifs, sans frais. Utilisez
user_good/pass_goodpour vous connecter. - Développement : connexions bancaires réelles, limitées à 100 Items actifs, gratuit.
- Production : connexions réelles, illimitées, facturation à l'usage.
Étape 2 : Récupérer vos clés
Depuis le tableau de bord, accédez à Paramètres d'équipe > Clés. Vous avez besoin de deux valeurs :
client_id: la même pour tous les environnementssecret: différent par environnement (sandbox, développement, production)
Stockez-les dans des variables d'environnement. Ne les committez jamais dans Git.
Étape 3 : Installer le SDK
Le SDK Node.js officiel se trouve sur github.com/plaid/plaid-node.
npm install plaid
Étape 4 : Initialiser le client
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);
Remplacez PlaidEnvironments.sandbox par .development ou .production lors de la promotion.
Points de terminaison principaux
Le flux de jetons Link
Chaque intégration Plaid suit la même danse en quatre étapes. Vous effectuez les étapes 1 et 3 côté serveur ; Plaid Link gère l'étape 2 dans le navigateur de l'utilisateur ou l'application mobile.
Étape 1 : Créer un 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;
La version curl :
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"
}'
Étape 2 : Ouvrir Plaid Link dans le client
Envoyez le link_token à votre frontend et passez-le au SDK Plaid Link. L'utilisateur choisit sa banque, se connecte, et Plaid renvoie un public_token à votre callback onSuccess.
Étape 3 : Échanger le public_token
const exchange = await client.itemPublicTokenExchange({
public_token: publicToken,
});
const accessToken = exchange.data.access_token;
const itemId = exchange.data.item_id;
Stockez accessToken côté serveur, lié à votre utilisateur. Ce jeton a une longue durée de vie et est ce que vous utilisez pour chaque appel futur.
Étape 4 : Appeler les points de terminaison des produits
const accounts = await client.accountsGet({ access_token: accessToken });
const balance = await client.accountsBalanceGet({ access_token: accessToken });
Points de terminaison des produits que vous devriez connaître
- Auth renvoie les numéros de compte et de routage pour l'ACH (
/auth/get). - Balance renvoie les soldes en temps réel, en contournant le cache (
/accounts/balance/get). - Transactions renvoie jusqu'à 24 mois de données de transaction nettoyées (
/transactions/sync). - Identity renvoie le nom du titulaire du compte, l'email, le téléphone, l'adresse (
/identity/get). Si votre cas d'utilisation est purement KYC, comparez-le avec les fournisseurs dédiés dans notre aperçu des meilleures API KYC. - Investments renvoie les avoirs et les transactions d'investissement (
/investments/holdings/get). - Liabilities renvoie les détails des prêts étudiants, des cartes de crédit et des hypothèques (
/liabilities/get). - Income renvoie les données de paie via Plaid Income (
/credit/payroll_income/get).
Tester l'API Plaid avec Apidog
Tester Plaid de bout en bout est délicat car l'étape Link se produit dans un navigateur. Vous avez toujours besoin d'un moyen fiable d'atteindre les points de terminaison côté serveur avec des charges utiles valides, de voir comment les erreurs apparaissent et de partager des requêtes fonctionnelles avec vos coéquipiers. Apidog gère cela mieux que la plupart des outils.
Importez la spécification OpenAPI de Plaid dans Apidog et vous obtiendrez chaque point de terminaison pré-configuré avec des types, des exemples de corps de requête et les bons en-têtes d'authentification. Vous pouvez créer un ensemble de variables d'environnement sandbox (client_id, secret, access_token) et basculer en production en un seul clic. Les requêtes chaînées vous permettent d'exécuter linkTokenCreate → sandboxPublicTokenCreate → itemPublicTokenExchange → accountsGet dans un seul flux, afin de vérifier l'intégralité de l'échange sans navigateur.
Le serveur de maquette d'Apidog est utile lorsque votre équipe frontend a besoin de réponses /accounts/get avant que votre intégration backend ne soit terminée. Si vous passez d'un autre outil, notre guide sur le test d'API sans Postman en 2026 couvre la migration en détail. Téléchargez Apidog et pointez-le vers la spécification de Plaid pour commencer.
Erreurs courantes et limites de débit
Les erreurs Plaid sont renvoyées avec un error_type, un error_code et un error_message lisible. Gérer ces quatre en production :
INVALID_CREDENTIALS: l'utilisateur a saisi un mot de passe incorrect à la banque. Demandez-lui de réessayer via le mode de mise à jour de Link.ITEM_LOGIN_REQUIRED: la banque a invalidé la session (changement de mot de passe, rotation MFA). Déclenchez Link en mode de mise à jour pour se réauthentifier. Vous en êtes informé via un webhook, pas un appel échoué.RATE_LIMIT_EXCEEDED: vous avez atteint une limite par Item ou par point de terminaison. Attendez, puis réessayez avec un délai aléatoire.PRODUCT_NOT_READY: les données de transaction sont toujours en cours de récupération. Réessayez après que le webhookINITIAL_UPDATEse déclenche.
Webhooks
Passez une URL de webhook lorsque vous créez le link_token et Plaid y POSTERA les mises à jour. Les trois que vous ne pouvez pas ignorer sont SYNC_UPDATES_AVAILABLE (nouvelles transactions), ITEM: LOGIN_REQUIRED (ré-authentification nécessaire) et ITEM: ERROR (échec permanent). Vérifiez la signature JWT sur chaque webhook avant d'agir.
Limites de débit
Plaid applique des limites de débit par Item et par point de terminaison. Par exemple, /accounts/balance/get est plafonné à environ 5 appels par minute par Item en production. Des limites agrégées au niveau du client s'appliquent également sur les points de terminaison lourds. La règle pratique : interrogez les webhooks, mettez en cache les soldes pendant quelques minutes et n'appelez jamais Plaid depuis un chemin de requête côté utilisateur.
Tarification Plaid
Plaid utilise une tarification par niveaux et par appel d'API en production. En gros :
- Sandbox : gratuit, illimité.
- Développement : gratuit jusqu'à 100 Items.
- Production :
- Auth : environ 1,50 $ par compte lié, une seule fois.
- Balance : tarification par appel.
- Transactions : frais mensuels par Item (environ 0,30 $).
- Identity : par appel.
- Investments / Liabilities / Income : frais distincts par Item.
Plaid négocie des tarifs personnalisés au-delà de certains volumes, donc la grille tarifaire publique est un point de départ. Vérifiez la page des produits Plaid pour les chiffres actuels.
FAQ
Combien de temps dure un access_token ? Indéfiniment, jusqu'à ce que l'utilisateur révoque l'accès ou que la banque invalide la session. Stockez-le crypté et ne le faites pas expirer de votre côté.
Puis-je utiliser Plaid uniquement pour la vérification d'identité ? Vous pouvez utiliser Plaid Identity, mais si votre besoin principal est le KYC, vous pourriez être mieux servi par un produit de vérification dédié. Nous couvrons les compromis dans notre guide sur comment utiliser l'API Stripe Identity.
Plaid prend-il en charge les pays en dehors des États-Unis ? Oui. Plaid couvre les États-Unis, le Canada, le Royaume-Uni et la majeure partie de l'UE. Le support par pays varie selon le produit ; vérifiez le paramètre des codes de pays dans l'appel /link/token/create.
Que se passe-t-il si un utilisateur change son mot de passe bancaire ? L'Item passe à l'état ITEM_LOGIN_REQUIRED et vous recevez un webhook. Déclenchez Plaid Link en mode de mise à jour et l'utilisateur se réauthentifie sans perdre son access_token.
Puis-je tester le flux Link sans navigateur réel ? Oui. Le point de terminaison /sandbox/public_token/create ignore entièrement Link et renvoie un public_token que vous pouvez échanger. Utilisez-le pour les tests d'intégration automatisés.
Comment gérer Plaid en développement local ? Gardez un secret sandbox dans votre fichier .env et connectez votre environnement de développement à PlaidEnvironments.sandbox. Utilisez le tunneling (ngrok, Cloudflare Tunnel) pour recevoir les webhooks localement.
