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

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

ミニ銀行ACADEMY SYSTEM LEARNING
教材メニュー
学習進捗0 / 134
あと134項目

法人の支払依頼・承認・記帳を理解する

銀行v4の機能です。DB・API・画面を実装し隔離環境で検証しています。v4のVercel配置は未確認です。実在人物や実資金は使いません。

口座の所有者と操作する人

預金の所有者は法人です。個人は自分のIDでログインし、所属に応じて操作します。閲覧者は残高・明細、担当者は支払申請と実行、承認者は他者の支払の承認、法人管理者は所属・設定を管理します。銀行の審査担当者は別の役割です。

支払依頼→承認→出納実行→記帳→証跡確認

v3の直接振込に対し、v4は確認コードの入力後に承認待ちとなります。この時点で残高は動きません。別の承認者が口座番号・名義・金額・摘要・手数料を確認し、担当者が承認内容で実行します。画面の学習用OTPは、独立した第二要素認証でも業務承認でもありません。

画面→APIの認証・入力検証→DBの現行所属確認→法人・口座のロック→残高・状態・限度額の確認→複式仕訳→取引と監査、の順です。資金移動と成功記録を同時に確定し、失敗時は部分的な記帳を残しません。

承認内容と二重振込

出金口座・振込先・金額・手数料・摘要・申請者はDBで変更不可です。変更する場合は取消して新規申請します。成功済みの再実行は同じ取引を返し、否認・取消済みは実行できません。担当者や承認者の所属変更は既存の承認を失効させ、権限を再付与しても古い承認は復活しません。

法人全体の限度額

日本時間の日付で、全口座・全担当者の成功額を合算します。口座や担当者を分けても日次上限を回避できません。学習用の最大値は1件50万円、日次100万円、手数料0円。未実行・失敗・取消は枠を消費せず、逆仕訳でも使用済み枠を戻しません。残高・凍結・限度額は実行時にも再確認します。

設定にも二者確認

所属の追加・変更・再有効化と限度額変更は、法人管理者の申請を別の法人管理者が確認します。提案者と確認者は変更対象本人を兼ねられません。途中で権限や設定が変われば提案は失効します。所属の無効化は即時に効き、元申請者にも失効後の例外アクセスはありません。

新規登録は申請者だけで、管理者権限を自動付与しません。法人管理者0名の復旧、または1名から第2管理者を準備する初期追加に限り、異なる銀行管理者2名が確認します。2名以上なら法人内の通常経路を使います。この経路に承認者付与・上限変更・送金は含めません。

v4のデモ

  1. 法人利用で架空法人を登録・審査申請します。
  2. 銀行担当者の法人審査で承認し、銀行管理者2名で初期法人管理者を1名ずつ、合計2名準備します。
  3. 法人管理者が口座を開設。所属変更の申請・確認で担当者・承認者・閲覧者を登録し、銀行の既存入金操作で架空資金を記帳します。
  4. 担当者が10万円を申請しコードを入力。承認待ちでは残高が減らないことを確認します。
  5. 別の承認者が内容を承認し、担当者が実行。取引・仕訳IDと監査を確認します。
  6. 自己承認・未承認実行・取消後実行・失効後操作の拒否を確認します。

v5:指定日支払

担当者は申請時に日本時間の当日から90日先までの指定日を選べます。土日祝も扱う学習用の暦日で、実銀行の営業日ではありません。指定日は承認画面にも表示され、変更は取消と新規申請が必要です。

指定日になっても自動送金はせず、元の担当者が実行します。指定日前は旧API経由でも拒否します。残高は予約・拘束しないため、実行時に残高・凍結・権限・日次上限を再確認します。遅れて実行しても実際の実行日で記帳し、指定日へ遡及しません。

実装:supabase/migrations/20260914124821_corporate_value_date_product.sql、DB検証:scripts/banking/corporate.test.mjs。

日次運用・調査・移行

日次運用・調査は、DBが管理する一つの論理営業日を OPEN → EOD_RUNNING → EOD_REVIEW → CLOSED → BOD_RUNNING → 翌日のOPENへ進めます。EOD開始と同時に新しい金融更新をDB境界で止めますが、既存取引の本人向け結果照会は止めません。満期処理と照合が成功し、差異がない根拠を、EOD開始者とは別の銀行管理者が確認して初めて締められます。

日次処理は自動起動せず、失敗時も自動再送・別backendへの切替・逆仕訳をしません。記録済みの成功対象は再実行せず、失敗対象だけを管理者が明示的に再試行できます。失敗したEODを中止する場合も別担当者が行い、同じ営業日をOPENへ戻して原因を修正します。UTCのイベント時刻、日本時間の日次上限、法人の指定日、定期預金満期、論理営業日は混同しません。

v3の成功済み仕訳・取引・残高と既存管理者を維持し、未完了要求は監査付きで失効します。既存の銀行・法人権限重複は移行完了を拒否し、自動剥奪しません。全migration成功前に公開してはいけません。

実装と検証の根拠

  • src/app/api/v1/corporate/route.ts:認証・入力・エラー境界
  • supabase/migrations/20260914122440_corporate_approval_controls.sql:内容固定・承認・実行
  • supabase/migrations/20260914122607_corporate_settings_dual_control.sql:設定二者確認・権限revision
  • supabase/migrations/20260914123047_corporate_revocation_and_upgrade_guards.sql:失効後閲覧拒否・移行検査
  • scripts/banking/corporate.test.mjs:DB正常・異常・並行テスト
  • docs/delivery/evidence/v4:環境別証拠

教材(現在133教材)のURL・学習進捗・Learning Loop保存形式は、法人機能の追加で変更していません。実銀行接続・実本人確認・法令適合認証は対象外です。