学習・技術検証用デモ — 本システムは実際の銀行サービスではありません。

公開情報をもとに構築した教育目的のシステムです。実在する個人情報・口座情報・機密情報・認証情報等を入力しないでください。

ミニ銀行ACADEMY SYSTEM LEARNING
教材メニュー
学習進捗0 / 134
あと134項目
BEGINNER · 入門COURSE 09 · BANKING ENGINEERING

銀行エンジニアリング 24:融資の基本 — 申込・審査・決裁・実行は別の出来事

融資の申込は、お金を動かしません。人が審査し、別の人が決裁し、さらに実行して初めて貸付金と預金が同時に増えます。MiniBank v14の個人向け学習用融資で、その区切りを確かめます。

30 / 55
BANKING ENGINEERING · 銀行エンジニアリング

v8以降に実装した台帳・記帳エンジンなどを実際に動かし、正常時と異常時の両方から銀行システムの構造を学ぶ。

Prerequisite: BANKING SYSTEM

LEARNING GOALS

このページで学ぶこと

  • 申込・審査・決裁・実行を分ける理由
  • 提案した人が決裁できない仕組み
  • 実行の直前に確認すること

PLAIN LANGUAGE

まず、ここだけつかむ

1

融資の申込は、お金を動かしません。審査・決裁・実行は別の記録です。

2

提案した人は決裁できず、実行の直前に承認の有効性と担当者の権限を確かめ直します。

3

実行すると、貸付金(資産)と顧客預金(負債)が1つの仕訳で同時に増えます。

DIFFICULT PARTS, STEP BY STEP

難しいポイントを、順番にほどく

専門用語を覚えることより、「なぜ必要か」「このシステムのどこで使うか」を理解することが目標です。

01

Maker / Checker

やさしく言うと

提案する人と決裁する人を分ける仕組みです。

なぜ必要?

1人の誤りや不正で融資が実行されないようにするためです。

Minibankでは

lending.propose と lending.decide。同じ人は LN013。

02

承認の有効性

やさしく言うと

承認は期限と前提が変わると使えなくなることです。

なぜ必要?

承認後に状況が変わっても、古い承認で実行しないためです。

Minibankでは

14日の期限、revision、権限の再確認(LN012・LN014)。

03

申込と実行の分離

やさしく言うと

申込・承認では資金を動かさず、実行で初めて計上することです。

なぜ必要?

資金の確定を1か所にして、二重実行を防ぐためです。

Minibankでは

lending.disburse が貸付金と預金を同じ仕訳で計上。

Level 1 基礎:貸すと、銀行の資産と預金が同時に増える

顧客へお金を貸すと、銀行には「返してもらう権利」(貸付金という資産)が生まれ、同時に顧客の預金(銀行の負債)が同じ額だけ増えます。お金が金庫から出ていくのではなく、帳簿の両側が同時に増えます。

だから融資は、申込を受けた時点では何も起きません。実行したときに初めて貸付金と預金が計上されます。MiniBankでは、申込・審査・決裁・実行がそれぞれ別の記録になります。

  1. 01申込(SUBMITTED):お金は動かない
  2. 02審査の提案(UNDER_REVIEW):担当者が根拠を確認
  3. 03決裁(APPROVED):別の管理責任者が承認。まだお金は動かない
  4. 04実行(DISBURSED):貸付金と預金を同時に計上

Level 2 銀行業務:誰が何をできるか(職務の分離)

顧客に見えるのは状態だけです。審査の根拠や内部の判断理由は、顧客向けの画面にも API にも出ません。

役割できることできないこと
申込人(顧客)自分の申込・契約の参照、申込、取下げ、本人資金での返済他人の申込の参照、審査、実行
maker(審査の担当)審査を引き受け(claim)、根拠を確認して承認または否決を提案自分の提案の決裁、融資の実行
checker(管理責任者)別の人の提案を承認または否決、承認済みの融資を実行自分が提案した・担当した案件の決裁
管理責任者(分類)延滞の分類を提案。別の管理責任者が確認自分だけで分類を確定

Level 3 システム:MiniBankでの実装

  • lending.claim → lending.propose → lending.decide → lending.disburse の順に進む。各段階で、その時点で有効な権限をDBが確認する
  • 提案には revision が付く。決裁は「表示した revision」を指定し、その後に提案が変わっていれば LN014 で拒否される
  • 提案者・claim した人が決裁しようとすると LN013。権限(operator か admin_manager か)の検査とは別に、人の同一性もDBが見る
  • 承認の有効期限は承認日から14日(営業日)。期限切れ・無効化・決裁者や担当者の権限失効があれば、実行は LN012 で拒否される
  • 実行は貸付金(LOAN_RECEIVABLE、GL 1300)を借方、顧客預金を貸方に1つの仕訳で計上し、同時に契約と12回分の返済予定を作る
  • 同じ冪等キーの再送は元の結果、別の内容や別の担当者なら LN009、実行済みの申込への別キーの実行は LN019

異常時:承認したあとで担当者の権限がなくなった

段階内容
症状承認済みの融資を実行しようとすると LN012 で拒否される
原因決裁者または審査担当者の権限が、承認後に失効した(または承認が無効化された・期限が切れた)
確認仕訳は1行もない。申込は APPROVED のまま、契約はまだない
対応管理責任者が承認を無効にして申込を審査待ち(担当者なし)に戻し、有効な担当者で提案と決裁をやり直す(revision が進み、古い承認は使えない)。担当者が権限を失った審査中の案件も、同じ操作で戻せる

Level 4 アーキテクチャ:承認は許可であって、資金移動ではない

承認を「お金を動かした」と同じに扱うと、承認のあとに状況が変わったとき(口座の凍結、権限の失効、商品の見直し)に危険です。MiniBankは承認と実行を別の記録にし、実行の瞬間に条件を全部確かめ直します。貸付金と顧客預金は、Posting Engineの1つの仕訳として同時に計上されます。

どこを確認すればよいか

  • 顧客画面「ローン」:申込と状態(審査待ち → 承認済み → 融資実行済み)
  • 管理画面「融資・与信」:申込と審査、提案、決裁、実行
  • 運用センター:決裁待ち・実行待ちのキュー

CHECK YOUR UNDERSTANDING

3問で理解チェック

答えを頭の中で考えてから、各項目を開いて確認してください。

Q1融資を申し込むと口座残高は増えますか?
答え

増えません。実行されるまでお金は動きません。

Q2提案者が自分で決裁しようとするとどうなりますか?
答え

LN013 で拒否されます。権限があっても、人の同一性をDBが見ます。

Q3承認のあとで決裁者の権限が失効したら、実行できますか?
答え

できません。実行の直前に権限を確かめ直し、LN012 で拒否されます。

ここまで読めましたか?

完全に暗記する必要はありません。大切な考え方を説明できそうなら押してください。

SOURCE TRAIL

根拠と関連教材

CURRENT IMPLEMENTATIONは確認したrepository内の実装です。HISTORICAL IMPLEMENTATIONは導入・修正の履歴で、後続migrationによる再定義があり得ます。RELATED LESSONは教材への案内で、実装の一次Sourceではありません。ASSUMPTIONは仮定、UNKNOWNは未確認を表します。

確認基点: d02eae8914f39cbf06bfe422dc39c71886f82b3e / 2026-09-11。稼働環境への適用確認: UNKNOWN。パス実在の自動検査と、記述した技術的事実の確認は別です。

Implementation Status: IMPLEMENTED IN MINIBANK(この教材が扱うコードの範囲)

  • RELATED LESSON/docs/loans融資審査と債権管理の一般的な考え方
  • RELATED LESSON/docs/be-posting-engine仕訳を作る入口(v8)
  • CURRENT IMPLEMENTATIONsupabase/migrations/20260930100000_v14_lending.sqllending.claim / lending.propose / lending.decide / lending.invalidate審査の担当・提案・決裁・承認の無効化(提案者と決裁者は別の人)
  • CURRENT IMPLEMENTATIONsupabase/migrations/20260930100000_v14_lending.sqllending.disburse / lending.apply申込と融資の実行(貸付金と預金を1つの仕訳で計上)
  • CURRENT IMPLEMENTATIONscripts/banking/v14-lending.test.mjs審査・決裁・実行・利息・返済・延滞・分類・訂正・競合・権限のDBテスト