Aplicativos fintech raramente começam do zero hoje em dia. Quando um usuário conecta uma conta corrente ao seu aplicativo, é provável que o Plaid esteja no meio, traduzindo logins bancários em JSON limpo que seu backend pode usar. A API do Plaid impulsiona a vinculação de contas, verificações de saldo, histórico de transações e verificação de identidade para milhares de aplicativos, incluindo Venmo, Robinhood e Chime.
Este guia o conduzirá pela API do Plaid sob a perspectiva de um desenvolvedor: como obter chaves, como o fluxo do token Link funciona de ponta a ponta, quais produtos você deve conhecer e o que os erros comuns significam quando as coisas falham em produção. Você também verá como testar cada etapa com o Apidog para que pare de adivinhar os payloads das requisições. Se você deseja a fonte original da verdade, mantenha a documentação oficial do Plaid aberta em uma segunda aba enquanto lê.
O open banking é um espaço concorrido, e o Plaid é uma opção entre várias. Se você ainda está comparando fornecedores, nossa análise das melhores APIs de open banking é um guia útil. Para este post, suponha que você escolheu o Plaid e está pronto para lançar.
TL;DR
- Plaid é um agregador de dados financeiros que conecta seu aplicativo a mais de 12.000 bancos nos EUA, Canadá e Europa.
- Você obtém três ambientes prontos para uso: sandbox (gratuito, dados falsos), desenvolvimento (100 Itens ativos gratuitos) e produção (pagamento por chamada).
- O fluxo de vinculação é um processo de quatro etapas: crie o
link_tokenno lado do servidor, abra o Plaid Link no lado do cliente, troque opublic_tokenpeloaccess_tokene, em seguida, chame os endpoints do produto. - Os produtos principais são Auth, Balance, Transactions, Identity, Investments, Liabilities e Income. Você os ativa por Item.
- Os erros de produção mais comuns são
ITEM_LOGIN_REQUIREDeINVALID_CREDENTIALS. Webhooks informam quando um Item precisa de atenção. - Os limites de taxa são por Item e por cliente. Agrupe suas leituras e ouça os webhooks em vez de fazer polling.
O que é Plaid?
Plaid é uma empresa de infraestrutura fintech baseada nos EUA que atua entre seu aplicativo e o banco de um usuário. Quando um usuário digita suas credenciais bancárias no Plaid Link, o Plaid se conecta ao banco (através de APIs oficiais de open banking onde disponíveis, ou sites bancários com engenharia reversa onde não disponíveis), puxa os dados solicitados, os normaliza e entrega a você uma resposta JSON consistente, independentemente do banco de onde veio.
Você nunca vê ou armazena as credenciais bancárias do usuário. O Plaid mantém a conexão, que ele chama de Item, e lhe fornece um access_token que representa a permissão para consultar aquele Item. Um Item equivale a um conjunto de credenciais em uma instituição financeira, e pode incluir várias contas (corrente, poupança, cartão de crédito).
Plaid abrange contas correntes e poupança de consumidores, cartões de crédito, empréstimos, contas de investimento e dados de folha de pagamento. Ele não movimenta dinheiro por conta própria; para transferências ACH, você geralmente combina o Plaid Auth com um processador de pagamentos separado. Nosso artigo sobre as melhores APIs de pagamentos ACH explica como essa combinação geralmente funciona.
Autenticação e configuração
Passo 1: Crie uma conta de desenvolvedor Plaid
Cadastre-se em plaid.com e verifique seu e-mail. Você chegará ao Painel do Plaid com três ambientes já provisionados:
- Sandbox: instituições falsas, usuários falsos, sem custo. Use
user_good/pass_goodpara fazer login. - Development: conexões bancárias reais, limitado a 100 Itens ativos, gratuito.
- Production: conexões reais, ilimitado, cobrança por uso.
Passo 2: Obtenha suas chaves
No Painel, vá para Team Settings > Keys. Você precisará de dois valores:
client_id: o mesmo em todos os ambientessecret: diferente por ambiente (sandbox, desenvolvimento, produção)
Armazene-os em variáveis de ambiente. Nunca os adicione ao git.
Passo 3: Instale o SDK
O SDK oficial do Node.js está em github.com/plaid/plaid-node.
npm install plaid
Passo 4: Inicialize o cliente
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);
Troque PlaidEnvironments.sandbox por .development ou .production quando avançar.
Endpoints principais
O fluxo do token Link
Toda integração Plaid segue a mesma sequência de quatro etapas. Você realiza os passos 1 e 3 no lado do servidor; o Plaid Link lida com o passo 2 no navegador ou aplicativo móvel do usuário.
Passo 1: Crie um link_token
const response = await client.linkTokenCreate({
user: { client_user_id: 'user_123' },
client_name: 'Seu Aplicativo',
products: ['auth', 'transactions'],
country_codes: ['US'],
language: 'en',
});
const linkToken = response.data.link_token;
A versão 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": "Seu Aplicativo",
"products": ["auth", "transactions"],
"country_codes": ["US"],
"language": "en"
}'
Passo 2: Abra o Plaid Link no cliente
Envie o link_token para o seu frontend e passe-o para o SDK do Plaid Link. O usuário seleciona seu banco, faz login, e o Plaid retorna um public_token para o seu callback onSuccess.
Passo 3: Troque o public_token
const exchange = await client.itemPublicTokenExchange({
public_token: publicToken,
});
const accessToken = exchange.data.access_token;
const itemId = exchange.data.item_id;
Armazene o accessToken no lado do servidor, vinculado ao seu usuário. Este token tem longa duração e é o que você usará para todas as chamadas futuras.
Passo 4: Chame os endpoints do produto
const accounts = await client.accountsGet({ access_token: accessToken });
const balance = await client.accountsBalanceGet({ access_token: accessToken });
Endpoints de produto que você deve conhecer
- Auth retorna números de conta e de roteamento para ACH (
/auth/get). - Balance retorna saldos em tempo real, ignorando o cache (
/accounts/balance/get). - Transactions retorna até 24 meses de dados de transações limpos (
/transactions/sync). - Identity retorna nome do titular da conta, e-mail, telefone, endereço (
/identity/get). Se seu caso de uso for puramente KYC, compare-o com provedores dedicados em nosso resumo das melhores APIs KYC. - Investments retorna participações e transações de investimento (
/investments/holdings/get). - Liabilities retorna detalhes de empréstimos estudantis, cartões de crédito e hipotecas (
/liabilities/get). - Income retorna dados de folha de pagamento através do Plaid Income (
/credit/payroll_income/get).
Testando a API do Plaid com Apidog
Testar o Plaid de ponta a ponta é complicado porque a etapa do Link acontece em um navegador. Você ainda precisa de uma maneira confiável de atingir os endpoints do lado do servidor com payloads válidos, ver como os erros surgem e compartilhar requisições funcionando com colegas de equipe. O Apidog lida com isso melhor do que a maioria das ferramentas.
Importe a especificação OpenAPI do Plaid para o Apidog e você terá todos os endpoints pré-configurados com tipos, exemplos de corpos e os cabeçalhos de autenticação corretos. Você pode criar um conjunto de variáveis de ambiente de sandbox (client_id, secret, access_token) e mudar para produção com um clique. Requisições encadeadas permitem que você execute linkTokenCreate → sandboxPublicTokenCreate → itemPublicTokenExchange → accountsGet em um único fluxo, para que você possa verificar o handshake completo sem um navegador.
O servidor mock do Apidog é útil quando sua equipe de frontend precisa de respostas de /accounts/get antes que sua integração de backend esteja pronta. Se você está migrando de outra ferramenta, nosso guia sobre testes de API sem Postman em 2026 cobre a migração em detalhes. Baixe o Apidog e aponte-o para a especificação do Plaid para começar.
Erros comuns e limites de taxa
Os erros do Plaid retornam com um error_type, error_code e uma error_message legível. Lide com estes quatro em produção:
INVALID_CREDENTIALS: o usuário digitou a senha errada no banco. Solicite que ele tente novamente através do modo de atualização do Link.ITEM_LOGIN_REQUIRED: o banco invalidou a sessão (mudança de senha, rotação de MFA). Acione o Link no modo de atualização para reautenticar. Você saberá disso através de um webhook, e não por uma chamada falha.RATE_LIMIT_EXCEEDED: você atingiu um limite por Item ou por endpoint. Espere um pouco e tente novamente com jitter.PRODUCT_NOT_READY: os dados de Transações ainda estão sendo puxados. Tente novamente após o disparo do webhookINITIAL_UPDATE.
Webhooks
Passe uma URL de webhook ao criar o link_token e o Plaid fará POST de atualizações para ela. Os três que você não pode ignorar são SYNC_UPDATES_AVAILABLE (novas transações), ITEM: LOGIN_REQUIRED (reautenticação necessária) e ITEM: ERROR (falha permanente). Verifique a assinatura JWT em cada webhook antes de agir sobre ele.
Limites de taxa
O Plaid impõe limites de taxa por Item e por endpoint. Por exemplo, /accounts/balance/get é limitado a cerca de 5 chamadas por minuto por Item em produção. Limites agregados de nível de cliente também se aplicam em endpoints pesados. A regra prática: faça polling de webhooks, armazene saldos em cache por alguns minutos e nunca acesse o Plaid a partir de um caminho de requisição voltado para o usuário.
Preços do Plaid
O Plaid usa preços por chamada de API em níveis em produção. A estimativa:
- Sandbox: gratuito, ilimitado.
- Development: gratuito para até 100 Itens.
- Production:
- Auth: aproximadamente US$ 1,50 por conta vinculada, uma única vez.
- Balance: preço por chamada.
- Transactions: taxa mensal por Item (cerca de US$ 0,30).
- Identity: por chamada.
- Investments / Liabilities / Income: taxas separadas por Item.
O Plaid negocia preços personalizados acima de certos volumes, então a tabela de preços pública é um ponto de partida. Verifique a página de produtos do Plaid para os números atuais.
FAQ
- Por quanto tempo dura um
access_token?
Indefinidamente, até que o usuário revogue o acesso ou o banco invalide a sessão. Armazene-o criptografado e não o expire do seu lado. - Posso usar o Plaid apenas para verificação de identidade?
Você pode usar o Plaid Identity, mas se sua necessidade principal for KYC, você pode ser melhor atendido por um produto de verificação dedicado. Abordamos as compensações em nosso guia sobre como usar a API Stripe Identity. - O Plaid suporta países fora dos EUA?
Sim. O Plaid abrange EUA, Canadá, Reino Unido e a maior parte da UE. O suporte por país varia por produto; verifique o parâmetro de códigos de país na chamada/link/token/create. - O que acontece se um usuário mudar a senha do banco?
O Item entra no estadoITEM_LOGIN_REQUIREDe você recebe um webhook. Acione o Plaid Link no modo de atualização e o usuário se reautentica sem perder seuaccess_token. - Posso testar o fluxo do Link sem um navegador real?
Sim. O endpoint/sandbox/public_token/createpula totalmente o Link e retorna umpublic_tokenque você pode trocar. Use-o para testes de integração automatizados. - Como lidar com o Plaid no desenvolvimento local?
Mantenha umsecretde sandbox em seu arquivo.enve conecte seu ambiente de desenvolvimento aPlaidEnvironments.sandbox. Use tunelamento (ngrok, Cloudflare Tunnel) para receber webhooks localmente.
