B BankcodeJP API Reference
Resolve API β

Resolve API β

入力された銀行名・支店名から、公式の金融機関コード・支店コード候補を返し、その候補を自動確定してよいかを decision で返します。

Resolve API β は、BankcodeJP API のベースプラン契約者向けにβ期間中0円で提供しています。Freeプランを含むベースプラン契約中のAPIキーで利用できます。正式提供時には、料金体系・利用制限・提供条件が変更される場合があります。

Resolve API β とは

Resolve API β は、銀行名・支店名を検索するだけのAPIではありません。 入力された銀行名・支店名から候補を推定し、その候補を自動確定してよいかを decision として返す入力判断APIです。

表記ゆれ、略称、読み、部分入力を許容しつつ、誤登録・誤振込につながり得る入力は、候補が存在していても needs_review または ambiguous として返します。

利用側では、必ず decision を主契約として扱ってください。 reason_codes は説明・UI表示・ログ分析・監査補助のための情報であり、 自動確定可否の判断は decision を基準にしてください。

Search API との違い

Search API は、金融機関コード・支店コードを使った情報の取得や、条件に一致する銀行・支店の検索に使います。 Resolve API β は、ユーザー入力から候補を推定し、自動確定可否まで判断したい場合に使います。

やりたいこと使うAPI代表例
銀行コード・支店コードから情報を取得するSearch APIGET /v3/banks/0001/branches/001
銀行名・支店名の一覧検索をするSearch API / freeword検索ボックス、候補一覧、マスタ参照
ユーザー入力から最有力候補を推定し、自動確定可否も判断するResolve API β入力補助、口座登録、名寄せ、確認業務削減

実装フロー

  1. ユーザー入力を受け取る
    銀行名と支店名を bank_name / branch_name に指定します。
  2. 利用文脈を指定する
    通常用途は default、振込・支払用途は payment、初回登録は onboarding、名寄せは matching を指定します。
  3. Resolve APIを呼び出す
    POST /resolve/v1/bank-branch を呼び出します。
  4. decisionを確認する
    auto_confirm は最有力候補を採用、needs_review / ambiguous は候補確認または再入力に進めます。
  5. 必要に応じてcandidatesを提示する
    候補が複数ある場合は、ユーザーまたはオペレーターに選択させます。

エンドポイント

POST https://apis.bankcode-jp.com/resolve/v1/bank-branch
項目内容
MethodPOST
Content-Typeapplication/json
認証apikey query parameter または x-api-key header

リクエスト

フィールド必須説明
bank_name必須入力された銀行名。正式名、略称、よみ、表記ゆれを許容します。例: みずほ, 三菱UFJ銀行
branch_name必須入力された支店名。正式名、略称、よみ、表記ゆれを許容します。例: 東京, 渋谷支店
context任意利用文脈。未指定時は default。指定可能値は default, payment, onboarding, matching
curl -sS -X POST \
  "https://apis.bankcode-jp.com/resolve/v1/bank-branch?apikey=YOUR_API_KEY" \
  -H "content-type: application/json" \
  --data '{
    "bank_name": "みずほ銀行",
    "branch_name": "東京営業部",
    "context": "default"
  }'

入力値の推奨

Resolve API β は略称・表記ゆれ・部分入力を許容しますが、 自動確定率を高めるには、できるだけ正式名称に近い銀行名・支店名を送信してください。

特に振込・支払用途では context: "payment" を指定し、 銀行信用金庫支店営業部 などの種別まで含めた入力を推奨します。

context の使い分け

context は、Resolve API β をどの業務シーンで利用するかを指定するパラメータです。 同じ bank_name / branch_name でも、利用用途によって 自動確定してよいかの判断基準が変わります。

未指定の場合は default として扱われます。 明確な用途がある場合は、利用シーンに合った context を指定してください。

主な用途 判定方針 利用例
default 一般的な入力補助 標準的な安全判定です。検索補助・入力補完・一般的な候補取得で利用します。 迷った場合は default を指定してください。 銀行名・支店名入力フォーム、管理画面での候補表示、一般的なコード補完
payment 振込・支払 最も厳格な判定です。誤振込・誤登録を避けるため、略称、省略、別名一致、補完に依存する候補は needs_review になりやすくなります。 振込・支払用途では payment の利用を推奨します。 振込先口座登録、支払先銀行情報の確認、請求・支払業務
onboarding 初回登録・申込フォーム 入力補助としての使いやすさを重視した判定です。 ユーザーが入力中の銀行名・支店名から候補を提示し、必要に応じて確認へ回す用途に向きます。 会員登録、加盟店登録、口座情報登録フォーム、ユーザー入力補助
matching 名寄せ・データ突合 取りこぼしを減らすことを重視した判定です。 既存データ同士の突合やCSV取込など、候補を広めに確認したい用途に向きます。 顧客データの銀行支店名寄せ、CSV取込、既存データのクレンジング

注意: context は候補の返却形式ではなく、自動確定可否の判定方針に影響します。 payment は特に安全側の判定となるため、略称や省略入力では needs_review になりやすくなります。

payment context の注意

payment は、振込・支払用途向けの最も厳格な文脈です。 誤確定による業務影響が大きい用途を想定しているため、他の context よりも auto_confirm の判定が慎重になります。

特に、銀行名・支店名が略称、省略、別名一致、接尾辞除去、補完に依存して候補化された場合は、 候補が存在していても needs_review になりやすくなります。

入力例 payment での扱い
三菱UFJ銀行 / 渋谷支店 正式名称に近い入力のため、条件を満たせば auto_confirm になり得ます。
UFJ / 渋谷 略称・省略を含むため、needs_review になり得ます。
千葉銀行 / 本店 汎用的な支店名を含むため、needs_review になり得ます。

レスポンス

主なレスポンス項目は以下です。型・required・schemaの機械可読仕様はOpenAPIを参照してください。

フィールド説明
decision解決結果の判定。auto_confirm / needs_review / ambiguous
best_match最有力候補。候補なしの場合は返りません。
gap最有力候補と次点候補のスコア差。候補が1件のみの場合は 999.0。候補なしの場合は返りません。
candidates候補配列。返却件数の上限はプランにより異なります。
reason_codesProプラン向けの詳細理由コード。Free / Standard では返却されません。
reason_detailsProプラン向けの理由コード説明。理由がない場合、Proでは空配列になります。
reason_summary_jaProプラン向けの代表理由の日本語要約。理由がある場合のみ返却されます。
debugProプランで x-debug-resolve: true を指定した場合のみ返却されます。

プラン別レスポンス

Resolve API β は、利用プランにより候補件数と詳細説明項目の返却範囲が異なります。APIの判定ロジックは共通ですが、Free / Standard ではレスポンスを簡潔にし、Proでは確認理由やデバッグ情報を含められます。

項目FreeStandardPro
candidates 最大件数最大1件最大3件最大10件
reason_codes返却なし返却なし返却あり。理由がない場合は []
reason_details返却なし返却なし返却あり。理由がない場合は []
reason_summary_ja返却なし返却なし理由がある場合のみ返却
debug返却なし返却なしx-debug-resolve: true 指定時のみ返却

candidates の件数は上限値です。該当候補が上限未満の場合は、実際に見つかった候補だけが返ります。

reason_codes / reason_details / reason_summary_ja は、needs_reviewambiguous になった理由を利用側で説明・記録するためのPro向け項目です。Free / Standard では項目自体が返却されません。

debug は調査・検証用です。通常のアプリケーション実装では decision, best_match, candidates を使って処理してください。

decisionの扱い

decision意味推奨扱い
auto_confirmAPIが自動確定可能と判断した状態最有力候補を自動確定候補として扱えます。ただし業務上の重要度に応じて確認フローを設けてください。
needs_review候補はあるが確認が必要な状態候補一覧をユーザーまたはオペレーターに提示し、確認・選択させてください。
ambiguous候補なし、または安全に判断できない状態自動確定せず、再入力、候補選択、人手確認へ回してください。

needs_review はエラーではありません

needs_review はAPIの失敗ではありません。 候補は提示できるものの、誤確定を避けるために利用側で確認すべき状態です。

例えば、略称が複数候補に該当する場合、支店名が省略されている場合、上位候補と次点候補の差が小さい場合、 payment 用途で正式名称として十分でない場合などに返ります。

利用側では、候補一覧の表示、ユーザーへの再確認、オペレーター確認などに回してください。 needs_review を自動確定扱いにしないでください。

候補が見つからない場合

候補が見つからない場合、decisionambiguous になります。 この場合、best_matchgap は返却されず、candidates は空配列になります。

利用側では、自動確定せず、入力修正、再入力、または人手確認へ回してください。

レスポンス例

auto_confirm(Free / Standard の例)

{
  "decision": "auto_confirm",
  "best_match": {
    "bank_code": "0001",
    "bank_name": "みずほ銀行",
    "branch_code": "001",
    "branch_name": "東京営業部"
  },
  "gap": 999.0,
  "candidates": [
    {
      "bank_code": "0001",
      "bank_name": "みずほ銀行",
      "branch_code": "001",
      "branch_name": "東京営業部"
    }
  ]
}

needs_review(Pro の例)

{
  "decision": "needs_review",
  "best_match": {
    "bank_code": "0001",
    "bank_name": "みずほ銀行",
    "branch_code": "001",
    "branch_name": "東京営業部"
  },
  "gap": 0.0,
  "candidates": [
    { "bank_code": "0001", "bank_name": "みずほ銀行", "branch_code": "001", "branch_name": "東京営業部" },
    { "bank_code": "0001", "bank_name": "みずほ銀行", "branch_code": "078", "branch_name": "東京法人営業部" }
  ],
  "reason_codes": ["gap_too_small", "below_auto_total"],
  "reason_details": [
    { "code": "gap_too_small", "message_ja": "上位候補と次点候補の差が小さく、誤確定リスクがあるため確認が必要です" }
  ],
  "reason_summary_ja": "上位候補と次点候補の差が小さく、誤確定リスクがあるため確認が必要です"
}

ambiguous(候補なしの例)

{
  "decision": "ambiguous",
  "candidates": []
}

reason_codes の概要

Proプランでは、needs_review になった理由を reason_codesreason_details で返します。 reason_codes は説明・UI表示・ログ分析・監査補助向けの情報です。

  • gap_too_small: 上位候補と次点候補の差が小さい
  • below_auto_total: 自動確定に必要な水準に達していない
  • generic_branch: 汎用的な支店名のため自動確定しない
  • bank_alias_ambiguous: 銀行名略称が複数金融機関に該当する可能性がある
  • branch_alias_ambiguous: 支店名略称が同一銀行内の複数支店に該当する可能性がある
  • payment_branch_trim: payment用途で支店名の接尾辞除去を含む

全コードは reason_codes 公式定義 を参照してください。

debug

debug は Pro プランで x-debug-resolve: true を指定した場合のみ返却されます。Free / Standard では同ヘッダーを指定しても返却されません。デバッグ情報には、正規化結果、候補スコア、データセットバージョンなどが含まれます。

curl -sS -X POST \
  "https://apis.bankcode-jp.com/resolve/v1/bank-branch?apikey=YOUR_API_KEY" \
  -H "content-type: application/json" \
  -H "x-debug-resolve: true" \
  --data '{
    "bank_name": "みずほ銀行",
    "branch_name": "東京営業部",
    "context": "default"
  }'

β期間中の注意事項

  • β期間中は仕様・レスポンス項目・reason_details の文言が調整される可能性があります。
  • decisionreason_codes の意味は後方互換を重視します。
  • needs_review / ambiguous を自動確定扱いにしないでください。
  • 振込・支払用途では context: "payment" の利用を推奨します。
  • APIキーを外部公開しないでください。
  • レスポンスJSONを共有する場合は、必要に応じて業務上の機微情報をマスクしてください。

結果に違和感がある場合

Resolve API β の結果に違和感がある場合は、以下の情報を添えてお問い合わせください。

  • リクエストJSON
  • レスポンスJSON
  • 期待していた結果
  • 実際の業務上の扱い
  • 用途: 入力補助 / 登録 / 名寄せ / 振込・支払 など
  • 発生日時
  • 利用しているアカウントのメールアドレスまたは契約名義

APIキーそのものは送らないでください。

エラー

401 Unauthorized

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

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