Resolve API β
入力された銀行名・支店名から、公式の金融機関コード・支店コード候補を返し、その候補を自動確定してよいかを decision で返します。
Resolve API β とは
Resolve API β は、銀行名・支店名を検索するだけのAPIではありません。
入力された銀行名・支店名から候補を推定し、その候補を自動確定してよいかを
decision として返す入力判断APIです。
表記ゆれ、略称、読み、部分入力を許容しつつ、誤登録・誤振込につながり得る入力は、候補が存在していても
needs_review または ambiguous として返します。
利用側では、必ず decision を主契約として扱ってください。
reason_codes は説明・UI表示・ログ分析・監査補助のための情報であり、
自動確定可否の判断は decision を基準にしてください。
Search API との違い
Search API は、金融機関コード・支店コードを使った情報の取得や、条件に一致する銀行・支店の検索に使います。 Resolve API β は、ユーザー入力から候補を推定し、自動確定可否まで判断したい場合に使います。
| やりたいこと | 使うAPI | 代表例 |
|---|---|---|
| 銀行コード・支店コードから情報を取得する | Search API | GET /v3/banks/0001/branches/001 |
| 銀行名・支店名の一覧検索をする | Search API / freeword | 検索ボックス、候補一覧、マスタ参照 |
| ユーザー入力から最有力候補を推定し、自動確定可否も判断する | Resolve API β | 入力補助、口座登録、名寄せ、確認業務削減 |
実装フロー
- ユーザー入力を受け取る
銀行名と支店名をbank_name/branch_nameに指定します。 - 利用文脈を指定する
通常用途はdefault、振込・支払用途はpayment、初回登録はonboarding、名寄せはmatchingを指定します。 - Resolve APIを呼び出す
POST /resolve/v1/bank-branchを呼び出します。 - decisionを確認する
auto_confirmは最有力候補を採用、needs_review/ambiguousは候補確認または再入力に進めます。 - 必要に応じてcandidatesを提示する
候補が複数ある場合は、ユーザーまたはオペレーターに選択させます。
エンドポイント
POST https://apis.bankcode-jp.com/resolve/v1/bank-branch
| 項目 | 内容 |
|---|---|
| Method | POST |
| Content-Type | application/json |
| 認証 | apikey query parameter または x-api-key header |
型定義・required・enum・schema確認やコード生成にはOpenAPIを参照してください。contextやプラン別レスポンスの実装上の扱いは本ページを正本とします。
OpenAPIで確認するリクエスト
| フィールド | 必須 | 説明 |
|---|---|---|
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_codes | Proプラン向けの詳細理由コード。Free / Standard では返却されません。 |
reason_details | Proプラン向けの理由コード説明。理由がない場合、Proでは空配列になります。 |
reason_summary_ja | Proプラン向けの代表理由の日本語要約。理由がある場合のみ返却されます。 |
debug | Proプランで x-debug-resolve: true を指定した場合のみ返却されます。 |
プラン別レスポンス
Resolve API β は、利用プランにより候補件数と詳細説明項目の返却範囲が異なります。APIの判定ロジックは共通ですが、Free / Standard ではレスポンスを簡潔にし、Proでは確認理由やデバッグ情報を含められます。
| 項目 | Free | Standard | Pro |
|---|---|---|---|
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_review や ambiguous になった理由を利用側で説明・記録するためのPro向け項目です。Free / Standard では項目自体が返却されません。
debug は調査・検証用です。通常のアプリケーション実装では decision, best_match, candidates を使って処理してください。
decisionの扱い
| decision | 意味 | 推奨扱い |
|---|---|---|
auto_confirm | APIが自動確定可能と判断した状態 | 最有力候補を自動確定候補として扱えます。ただし業務上の重要度に応じて確認フローを設けてください。 |
needs_review | 候補はあるが確認が必要な状態 | 候補一覧をユーザーまたはオペレーターに提示し、確認・選択させてください。 |
ambiguous | 候補なし、または安全に判断できない状態 | 自動確定せず、再入力、候補選択、人手確認へ回してください。 |
needs_review はエラーではありません
needs_review はAPIの失敗ではありません。
候補は提示できるものの、誤確定を避けるために利用側で確認すべき状態です。
例えば、略称が複数候補に該当する場合、支店名が省略されている場合、上位候補と次点候補の差が小さい場合、
payment 用途で正式名称として十分でない場合などに返ります。
利用側では、候補一覧の表示、ユーザーへの再確認、オペレーター確認などに回してください。
needs_review を自動確定扱いにしないでください。
候補が見つからない場合
候補が見つからない場合、decision は ambiguous になります。
この場合、best_match と gap は返却されず、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_codes と reason_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の文言が調整される可能性があります。 decisionとreason_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"
}