B BankcodeJP API Reference
Bank Branch Selector Widget

銀行・支店選択フォームを組み込むWidget

Bank Branch Selector Widget は、振込先口座登録フォームや返金先口座登録フォームに、銀行・支店選択UIを組み込むためのWeb Componentです。銀行コード、銀行名、支店コード、支店名を hidden input と event で取得できます。API Key をブラウザに埋め込まず、Public Key と短期 access token で利用します。

Quick Start イベント仕様 エラー表示 リリースノート

概要

銀行・支店選択ウィジェットは、銀行名・支店名の検索と選択UIを提供するWeb Componentです。

UIはShadow DOM内に描画されます。name-prefixを指定した場合は、フォーム送信用のhidden inputをcustom elementのLight DOM直下に生成します。

フォーム送信、確認画面、最終確定ボタン、入力値の保存処理は、呼び出し元サイト側で実装します。

  • 銀行・支店選択UIを自前実装せずに組み込める
  • API Keyをブラウザに埋め込まない
  • Public ClientのPublic Keyを利用する
  • 選択結果はhidden inputまたはイベントで取得できる
  • inline表示とdialog表示に対応する

Search API / Resolve API β との違い

種類用途向いているケース
Search APIREST APIとして銀行・支店情報を取得する銀行・支店検索UIを自前で実装する場合
銀行・支店選択ウィジェットWeb Componentとして銀行・支店選択UIを組み込むフォームに銀行・支店選択UIをそのまま追加したい場合
Resolve API β自由入力された銀行名・支店名から候補推定と自動確定可否を返すCSV/OCR取込、自由入力、名寄せ、振込・支払処理で誤確定リスクを抑えたい場合
銀行・支店選択ウィジェットはSearch APIとは独立して利用プランを有効化できるサービスであり、Search APIの契約を前提としません。

配信URL

scriptタグでウィジェット本体を読み込みます。

<script src="https://js.bankcode-jp.com/widgets/bank-branch-selector/v1/bank-branch-selector.js"></script>
  • v1 はメジャーバージョン固定のURLです。
  • 互換性を重視する場合は、固定バージョンURLの利用も検討できます。

現在公開中のバージョン

バージョン 配信URL 用途 リリースノート
v1 https://js.bankcode-jp.com/widgets/bank-branch-selector/v1/bank-branch-selector.js v1系の後方互換最新版。通常はこちらを利用します。 2026-06-13
v1.0.0 https://js.bankcode-jp.com/widgets/bank-branch-selector/v1.0.0/bank-branch-selector.js 1.0.0固定版。特定バージョンに固定したい場合に利用します。 2026-06-13

通常は v1 のメジャー alias を利用してください。 v1.0.0 のような固定バージョンURLは、特定バージョンに固定したい場合に利用します。

現在、v1v1.0.0 と同一内容です。

Quick Start

public-keyには、ダッシュボードで作成したPublic ClientのPublic Keyを指定します。API Keyはブラウザに埋め込まないでください。

<script src="https://js.bankcode-jp.com/widgets/bank-branch-selector/v1/bank-branch-selector.js"></script>

<bankcodejp-bank-branch-selector
  public-key="YOUR_PUBLIC_KEY"
  name-prefix="bank_account"
  display-mode="dialog"
  search-mode-switch="fallback">
</bankcodejp-bank-branch-selector>

<script>
  document
    .querySelector("bankcodejp-bank-branch-selector")
    .addEventListener("bcjp:select", (event) => {
      console.log(event.detail);
    });
</script>
  • public-keyにはPublic ClientのPublic Keyを指定します。
  • API Keyをブラウザに埋め込まないでください。
  • name-prefixを指定するとhidden inputが生成されます。
  • 推奨設定では、フォーム上には選択ボタンと選択結果だけを表示し、検索UIはダイアログ内に表示します。
  • 銀行名・銀行コードでの検索を主導線にし、頭文字検索は補助導線として利用できます。

表示方式

inline

display-mode未指定時の初期表示です。フォーム内に銀行・支店選択UIをそのまま表示します。

<bankcodejp-bank-branch-selector
  public-key="YOUR_PUBLIC_KEY"
  name-prefix="bank_account">
</bankcodejp-bank-branch-selector>

dialog

display-mode="dialog" を指定すると、選択UIをdialogで表示できます。長いフォームやスマートフォン画面でフォームの高さを抑えたい場合に向いています。

<bankcodejp-bank-branch-selector
  public-key="YOUR_PUBLIC_KEY"
  name-prefix="bank_account"
  display-mode="dialog"
  search-mode-switch="fallback">
</bankcodejp-bank-branch-selector>

manual trigger

trigger-mode="manual" を指定すると、ウィジェット側の自動triggerを使わず、任意のボタンからopen()でdialogを開けます。

<button type="button" id="open-bank-selector">
  金融機関・支店を選択
</button>

<bankcodejp-bank-branch-selector
  id="bank-selector"
  public-key="YOUR_PUBLIC_KEY"
  name-prefix="bank_account"
  display-mode="dialog"
  trigger-mode="manual">
</bankcodejp-bank-branch-selector>

<script>
  const selector = document.getElementById("bank-selector");

  document.getElementById("open-bank-selector").addEventListener("click", () => {
    selector.open();
  });
</script>

検索UIの表示方式

search-mode-switch で、検索方式切替UIの見せ方を変更できます。

説明
tabs「入力して探す」「頭文字から探す」の2ボタンを表示します。既存互換のデフォルトです。
fallback入力検索を主導線にし、「見つからない場合は 頭文字から探す」を補助導線として表示します。フォーム組み込みではこの設定を推奨します。
hidden検索モード切替UIを表示しません。default-search-mode で指定されたモードだけを表示します。
<bankcodejp-bank-branch-selector
  public-key="YOUR_PUBLIC_KEY"
  name-prefix="bank_account"
  display-mode="dialog"
  search-mode-switch="fallback">
</bankcodejp-bank-branch-selector>

属性一覧

属性必須初期値説明
public-keyYesなしPublic ClientのPublic Key
name-prefixNoなしhidden input の name prefix
display-modeNoinlineinline または dialog
search-mode-switchNotabs検索モード切替UI。tabs / fallback / hidden
default-search-modeNotext初期表示の検索モード。text または browse
placeholder-bankNo銀行名または銀行コードで検索銀行検索inputのplaceholder
placeholder-branchNo支店名または支店コードで検索支店検索inputのplaceholder
trigger-modeNoautodialog mode のtrigger表示方式。auto または manual
trigger-labelNo金融機関・支店を選択未選択時のtriggerボタン文言
dialog-titleNo金融機関・支店を選択dialogタイトル
dialog-descriptionNo金融機関と支店を選択してくださいdialog補助説明
close-on-selectNotrue支店選択後にdialogを閉じるか
allowed-business-type-codesNoなし許可する金融機関種別コード。カンマ区切り
api-base-urlNohttps://apis.bankcode-jp.comAPI base URL
data-api-base-urlNo/public/v1/bank-branch-selectorWidget data API base path
session-endpointNo/public/v1/sessionssession 発行 endpoint
disabledNoなしWidgetを無効化

allowed-business-type-codes には、5桁の金融機関種別コードをカンマ区切りで指定します。

Methods

メソッド説明
open()dialogを開く
close()dialogを閉じる
reset()選択状態とhidden inputを初期化
getValue()選択済みの銀行・支店を返す。未選択時はnull
const selector = document.querySelector("bankcodejp-bank-branch-selector");

selector.open();
selector.close();
selector.reset();

const value = selector.getValue();

getValue() は銀行・支店が選択済みの場合に選択内容を返します。未選択の場合は null を返します。

フォーム送信値

name-prefixを指定すると、フォーム送信用のhidden inputをcustom elementのLight DOM直下に生成します。

<bankcodejp-bank-branch-selector
  public-key="YOUR_PUBLIC_KEY"
  name-prefix="bank_account">
</bankcodejp-bank-branch-selector>

生成例です。

<input type="hidden" name="bank_account[bank_code]" value="0001">
<input type="hidden" name="bank_account[bank_name]" value="みずほ銀行">
<input type="hidden" name="bank_account[branch_code]" value="001">
<input type="hidden" name="bank_account[branch_name]" value="本店">
  • hidden inputはShadow DOM内ではなく、custom elementのLight DOM直下に生成されます。
  • 未選択時は空文字です。
  • 銀行選択時は bank_code / bank_name を更新し、branch_code / branch_name を空に戻します。
  • 支店選択完了時に4項目すべてを更新します。

Events

すべてのイベントは bubbles: true / composed: true でdispatchされます。外部出力は snake_case です。

event説明
bcjp:bank-select金融機関が選択されたとき
bcjp:select支店まで選択されたとき
bcjp:error認証・API取得・解析エラー発生時
bcjp:opendialog が開いたとき
bcjp:closedialog が閉じたとき

bcjp:bank-select

銀行選択時に発火します。

{
  "bank_code": "0001",
  "bank_name": "みずほ銀行",
  "bank_hiragana": "みずほぎんこう"
}

bcjp:select

支店まで選択されたときに発火します。

{
  "bank_code": "0001",
  "bank_name": "みずほ銀行",
  "bank_hiragana": "みずほぎんこう",
  "branch_code": "001",
  "branch_name": "本店",
  "branch_hiragana": "ほんてん"
}

bcjp:open / bcjp:close

dialogが開いたとき、閉じたときに発火します。

bcjp:error

エラー発生時に発火します。

{
  "code": "rate_limited",
  "message": "銀行・支店候補を取得できませんでした。しばらくしてから再度お試しください。",
  "status": 429
}

HTTPレスポンス由来のエラーでは detail.status にHTTP status codeが含まれます。ローカル設定エラーなどHTTPレスポンス由来でない場合は、status が含まれない場合があります。

const selector = document.querySelector("bankcodejp-bank-branch-selector");

selector.addEventListener("bcjp:select", (event) => {
  console.log(event.detail.bank_code);
  console.log(event.detail.branch_code);
});

selector.addEventListener("bcjp:error", (event) => {
  console.warn(event.detail.code, event.detail.status);
});

エラー表示と bcjp:error

銀行・支店選択ウィジェットでは、フォーム利用者向けには分かりやすいメッセージを表示し、導入先サイト向けには bcjp:error イベントで詳細を通知します。

code画面表示主な意味
missing_public_key設定エラー: public-key が指定されていません。public-key属性未指定
session_failed現在この入力補助機能を利用できません。サイト管理者へお問い合わせください。session発行失敗
invalid_public_key現在この入力補助機能を利用できません。サイト管理者へお問い合わせください。Public Keyが無効
client_disabled現在この入力補助機能を利用できません。サイト管理者へお問い合わせください。Public Clientが無効
origin_not_allowed現在この入力補助機能を利用できません。サイト管理者へお問い合わせください。Originが許可されていない
feature_not_allowed現在この入力補助機能を利用できません。サイト管理者へお問い合わせください。Widget機能が許可されていない
rate_limited銀行・支店候補を取得できませんでした。しばらくしてから再度お試しください。利用上限またはレート制限超過
api_failedデータ取得に失敗しました。時間をおいて再度お試しください。API呼び出し失敗
parse_failedデータ取得に失敗しました。時間をおいて再度お試しください。APIレスポンス解析失敗

エンドユーザー向け画面表示では、Public Client、Origin、HTTP 429などの技術用語を直接表示しません。導入先サイト側では bcjp:errordetail.code / detail.status を使ってログ記録や独自表示を行えます。

認証

Bank Branch Selector Widget は、API Key ではなく Public Client の Public Key を使います。

Public Key は、ダッシュボードの Public Client 画面から作成・取得できます。取得した Public Key を public-key 属性に設定すると、Widget が短期 access token の取得と銀行・支店候補の取得を自動で行います。

<bankcodejp-bank-branch-selector
  public-key="YOUR_PUBLIC_KEY"
  name-prefix="bank_account"
  display-mode="dialog"
  search-mode-switch="fallback">
</bankcodejp-bank-branch-selector>
API Key はサーバーサイド連携用の秘密情報です。ブラウザには API Key を埋め込まないでください。

内部的な動作

Widget は内部的に短期 access token を取得し、Widget 用の public route から銀行・支店候補を取得します。通常の導入では、これらのrouteを直接呼び出す必要はありません。

POST /public/v1/sessions
GET /public/v1/bank-branch-selector/banks
GET /public/v1/bank-branch-selector/banks/{bankCode}/branches
GET /public/v1/bank-branch-selector/freeword/banks
GET /public/v1/bank-branch-selector/freeword/banks/{bankCode}/branches
これらの public route は Widget 用です。通常のサーバーサイド連携では Search API を利用してください。

利用上限

銀行・支店選択ウィジェットは、Search APIとは独立して利用プランを有効化できるサービスです。

利用プランごとにリクエスト上限・レート制限があります。利用上限やレート制限を超えた場合、銀行・支店候補の取得が一時的にできなくなる場合があります。

その場合、画面上は候補取得に失敗した旨のメッセージを表示し、bcjp:errorcode: "rate_limited" を通知します。HTTPレスポンス由来であれば detail.status429 が含まれます。

よくある実装パターン

  • 通常フォームにinlineで埋め込む
  • 長いフォームやスマホ向けフォームではdialog modeを使う
  • 自前ボタンで開きたい場合は trigger-mode="manual"open() を使う
  • フォーム送信時は hidden input を利用する
  • SPA / React / Vue / Angular では DOM element を取得して addEventListener でイベント購読する
  • エラー監視や独自表示は bcjp:error を購読して実装する