Plaid API の使い方 (2026年 開発者ガイド)

Ashley Innocent

Ashley Innocent

23 4月 2026

Plaid API の使い方 (2026年 開発者ガイド)

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

Fintechアプリがゼロから開発されることは、今やほとんどありません。ユーザーが当社のアプリに当座預金口座をリンクする際、Plaidがその間に介在し、銀行のログイン情報をバックエンドで使用できるクリーンなJSONに変換する可能性が高いです。Plaid APIは、Venmo、Robinhood、Chimeを含む何千ものアプリで、口座連携、残高確認、取引履歴、本人確認を可能にしています。

このガイドでは、開発者の視点からPlaid APIを詳しく説明します。具体的には、APIキーの取得方法、Linkトークンフローの全体的な仕組み、知っておくべきプロダクト、そして本番環境で問題が発生した場合の一般的なエラーの意味について解説します。Apidogを使って各ステップをテストする方法も紹介するため、リクエストペイロードについて推測する必要がなくなります。信頼できる最新情報が必要な場合は、読み進めながらPlaid公式ドキュメントを別のタブで開いておくと良いでしょう。

オープンバンキングは競争の激しい分野であり、Plaidはその選択肢の一つに過ぎません。ベンダーを比較検討中であれば、最適なオープンバンキングAPIに関する当社の概要が役立つでしょう。この記事では、Plaidを選び、すぐに導入する準備ができていると仮定します。

ボタン

要約

Plaidとは?

Plaidは、米国を拠点とするフィンテックインフラ企業で、アプリとユーザーの銀行の間に位置します。ユーザーが銀行の認証情報をPlaid Linkに入力すると、Plaidは銀行に接続し(利用可能な場合は公式のオープンバンキングAPIを介して、利用できない場合はリバースエンジニアリングされた銀行のウェブサイトを介して)、要求されたデータを取得し、正規化して、どの銀行から来たかにかかわらず一貫したJSONレスポンスを返します。

ユーザーの銀行認証情報を見ることも保存することもありません。Plaidがその接続(これを「アイテム」と呼びます)を保持し、そのアイテムを照会する許可を表すaccess_tokenをあなたに付与します。1つのアイテムは1つの金融機関での1組の認証情報に相当し、複数の口座(当座預金、普通預金、クレジットカード)を含むことができます。

Plaidは、個人の当座預金口座と普通預金口座、クレジットカード、ローン、投資口座、給与データに対応しています。それ自体でお金を移動させることはありません。ACH送金の場合、通常はPlaid Authと別の支払い処理業者を組み合わせて使用します。最適なACH決済APIに関する当社の記事では、この組み合わせがどのように機能するかを説明しています。

認証とセットアップ

ステップ1:Plaid開発者アカウントの作成

plaid.comでサインアップし、メールアドレスを確認します。Plaidダッシュボードにアクセスすると、すでに3つの環境がプロビジョニングされています。

ステップ2:キーの取得

ダッシュボードから、**チーム設定 > キー**に移動します。次の2つの値が必要です。

これらを環境変数に保存してください。Gitには絶対にコミットしないでください。

ステップ3:SDKのインストール

公式のNode.js SDKはgithub.com/plaid/plaid-nodeにあります。

npm install plaid

ステップ4:クライアントの初期化

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);

環境を移行する際は、PlaidEnvironments.sandbox.developmentまたは.productionに置き換えてください。

コアエンドポイント

Linkトークンのフロー

すべてのPlaid統合は、同じ4段階のプロセスに従います。ステップ1と3はサーバー側で行い、ステップ2はユーザーのブラウザまたはモバイルアプリでPlaid Linkが処理します。

ステップ1: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;

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"
  }'

ステップ2:クライアント側でPlaid Linkを開く

link_tokenをフロントエンドに送信し、Plaid Link SDKに渡します。ユーザーが銀行を選択してログインすると、Plaidはpublic_tokenをあなたのonSuccessコールバックに返します。

ステップ3:public_tokenの交換

const exchange = await client.itemPublicTokenExchange({
  public_token: publicToken,
});

const accessToken = exchange.data.access_token;
const itemId = exchange.data.item_id;

accessTokenをユーザーに関連付けてサーバー側に保存します。このトークンは有効期限が長く、今後のすべての呼び出しで使用します。

ステップ4:プロダクトエンドポイントの呼び出し

const accounts = await client.accountsGet({ access_token: accessToken });
const balance = await client.accountsBalanceGet({ access_token: accessToken });

知っておくべきプロダクトエンドポイント

ApidogでPlaid APIをテストする

Plaidのエンドツーエンドテストは、Linkステップがブラウザで行われるため、やや扱いにくいです。しかし、有効なペイロードでサーバーサイドのエンドポイントを確実にヒットさせ、エラーがどのように発生するかを確認し、動作するリクエストをチームメイトと共有するための信頼性の高い方法は依然として必要です。Apidogは、ほとんどのツールよりもこれをうまく処理します。

PlaidのOpenAPI仕様をApidogにインポートすると、型、例のボディ、正しい認証ヘッダーがあらかじめ設定されたすべてのエンドポイントが手に入ります。サンドボックス環境変数セット(client_idsecretaccess_token)を作成し、ワンクリックで本番環境に切り替えることができます。チェーンドリクエストを使用すると、linkTokenCreatesandboxPublicTokenCreateitemPublicTokenExchangeaccountsGetを単一のフローで実行できるため、ブラウザなしで完全なハンドシェイクを検証できます。

Apidogのモックサーバーは、バックエンド統合が完了する前にフロントエンドチームが/accounts/getのレスポンスを必要とする場合に役立ちます。別のツールから移行する場合、2026年のPostmanなしのAPIテストに関する当社のガイドで、移行について詳しく説明しています。Apidogをダウンロードし、Plaidの仕様にポイントして開始してください。

一般的なエラーとレート制限

Plaidのエラーは、error_typeerror_code、人間が読めるerror_messageを返します。本番環境では、次の4つのエラーを処理してください。

ウェブフック

link_tokenを作成する際にwebhook URLを渡すと、Plaidはそこに更新をPOSTします。無視できない3つのウェブフックは、SYNC_UPDATES_AVAILABLE(新しい取引)、ITEM: LOGIN_REQUIRED(再認証が必要)、ITEM: ERROR(永続的な失敗)です。各ウェブフックに対してアクションを実行する前に、JWT署名を検証してください。

レート制限

Plaidは、アイテムごと、エンドポイントごとにレート制限を適用します。例えば、/accounts/balance/getは、本番環境ではアイテムあたり毎分約5回に制限されています。集計されたクライアントレベルの制限も、負荷の高いエンドポイントに適用されます。実用的なルールとして、ウェブフックをポーリングし、残高を数分間キャッシュし、ユーザー向けのリクエストパスからPlaidを呼び出さないようにしてください。

Plaidの料金

Plaidは、本番環境で階層型従量課金制を採用しています。大まかな内訳は以下の通りです。

Plaidは一定の量を超えるとカスタム料金を交渉するため、公開されている料金表はあくまで出発点です。Plaidの製品ページで現在の料金を確認してください。

よくある質問

access_tokenはどのくらい有効ですか?ユーザーがアクセスを取り消すか、銀行がセッションを無効にするまで、無期限です。暗号化して保存し、あなたの側で期限切れにしないでください。

Plaidを本人確認のみに使用できますか?Plaid Identityを使用できますが、主なニーズがKYCである場合は、専用の本人確認製品の方が適しているかもしれません。Stripe Identity APIの利用方法に関するガイドで、トレードオフについて説明しています。

Plaidは米国以外の国に対応していますか?はい。Plaidは米国、カナダ、英国、およびEUのほとんどの国に対応しています。国ごとのサポートは製品によって異なります。/link/token/create呼び出しの国コードパラメータを確認してください。

ユーザーが銀行のパスワードを変更した場合どうなりますか?アイテムはITEM_LOGIN_REQUIRED状態になり、ウェブフックが送信されます。Plaid Linkを更新モードでトリガーすると、ユーザーはaccess_tokenを失うことなく再認証できます。

実際のブラウザなしでLinkフローをテストできますか?はい。/sandbox/public_token/createエンドポイントはLinkを完全にスキップし、交換可能なpublic_tokenを返します。自動統合テストに使用してください。

ローカル開発でPlaidをどのように処理しますか?.envファイルにサンドボックスsecretを保持し、開発環境をPlaidEnvironments.sandboxに接続します。トンネリング(ngrok、Cloudflare Tunnel)を使用して、ウェブフックをローカルで受信します。

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる