B BankcodeJP API Reference
Auth / Rate Limit / Errors

認証・レート制限・エラー

APIキーの取得方法、リクエストへの設定方法、Rate Limiting、代表的なHTTPエラー形式をまとめます。

APIキーの取得

APIキーは BankcodeJP API のダッシュボードから取得できます。アカウント作成後、ダッシュボードにログインし、APIキーを確認してください。

ダッシュボードを開く

リクエストにAPIキーを設定する

APIキーは、クエリパラメータまたはHTTPヘッダーで指定できます。サーバーサイド実装では、ログやRefererへの露出を避けるため x-api-key ヘッダーでの指定を推奨します。

推奨: HTTPヘッダーで指定する

curl "https://apis.bankcode-jp.com/v3/banks"   -H "x-api-key: YOUR_API_KEY"

クエリパラメータで指定する

curl "https://apis.bankcode-jp.com/v3/banks?apikey=YOUR_API_KEY"

クエリパラメータ名は apikey または apiKey を利用できます。HTTPヘッダーでは x-api-key を利用してください。

Widget認証

Bank Branch Selector Widget は、API Key ではなく Public Client の Public Key を使います。Public Key を public-key 属性に設定すると、Widget が短期 access token の取得と銀行・支店候補の取得を自動で行います。

Public Key は、ダッシュボードの Public Client 画面から作成・取得できます。API Key はサーバーサイド連携用の秘密情報です。ブラウザには API Key を埋め込まないでください。

Widget の導入方法は Bank Branch Selector Widget の認証 を参照してください。

レート制限(Rate Limiting)

BankcodeJP API では、プランごとにリクエスト回数およびリクエストレートの制限があります。制限に到達した場合、APIは 429 Too Many Requests を返します。

Freeプランの例: リクエスト回数 350回/日、リクエストレート 1回/秒。最新の制限値は料金ページまたはダッシュボードで確認してください。

レート制限には、一定期間内の総リクエスト数に対する制限と、短時間に集中するリクエストに対する制限があります。連続リクエストを行う場合は、クライアント側でリトライ間隔を設けてください。

レスポンスヘッダー

レスポンスには、レート制限に関するヘッダーが含まれる場合があります。ヘッダー名や値は、対象APIやGateway設定により異なる場合があります。

RateLimit-Limit: 1
RateLimit-Remaining: 0
RateLimit-Reset: 1

X-RateLimit-Limit-Minute: ...
X-RateLimit-Remaining-Minute: ...

Remaining0 の場合、次のリセットまで追加リクエストが制限される可能性があります。

代表的なエラー

Status意味主な原因
400不正なリクエストURLエンコード漏れ、クエリ構文不正など。
401認証エラーAPIキー未指定または不正。
403権限なしプランまたはACLにより拒否。
404リソースなし存在しない金融機関コード、支店コード、パス。
422バリデーションエラーResolve APIなどで必須項目不足、enum不正など。
429レート制限超過日次上限または秒間レート制限の超過。
5xxサーバー側エラー一時的な障害または内部エラー。

エラーレスポンス形式

Search API と Resolve API では、エラー発生箇所によりレスポンス形式が異なる場合があります。クライアント実装では、HTTPステータスコードを主として扱い、レスポンス本文は補助情報として扱ってください。

Resolve API: 401 Unauthorized

{
  "message": "Unauthorized",
  "request_id": "39a4cc3e552b6422c3226f6ebb7f382b"
}

Resolve API: 422 Validation Error

{
  "detail": [
    { "type": "missing", "loc": ["body", "bank_name"], "msg": "Field required", "input": {} },
    { "type": "missing", "loc": ["body", "branch_name"], "msg": "Field required", "input": {} }
  ],
  "request_id": "0ec2d9e1fd04463890ee6a787ad56e99"
}

429 Too Many Requests

HTTP/2 429
content-type: application/json

{
  "message": "API rate limit exceeded"
}

429の本文はGateway設定により異なる場合があります。実装ではHTTPステータスコードとレート制限ヘッダーを優先してください。

稼働状況

最新の稼働状況は APIステータスページ を確認してください。