信用金庫の渉外担当が集金のときに手書きする受領証の控えを読み取り、顧客・金額・入金先の口座を入金のデータにそろえて、記載の欠けと金額の食い違いを拾う
信用金庫の渉外担当が集金先で手書きする受領証の控えを読み取り、顧客・金額・入金先の口座を入金のデータにそろえます。記載の欠け、連番の抜け、入金処理との金額の食い違いを、その日の締めの前に役席へ出します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Document AI
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 金融
- 対象部門
- 経理
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 渉外担当が集金先で受領証を書き、原本を顧客に渡して控えを持ち帰る
- 帰店後、渉外担当が現金と控えを後方事務に渡し、控えの合計と現金を合わせる
- 後方事務の担当が控えを1枚ずつ見ながら、入金処理を行う
- 処理の明細を出力し、控えと1件ずつ金額・口座・種類を見比べる
- 控えの記載の欠け(日付、顧客番号、担当印)を見て、渉外担当に聞く
- 冊子の交付簿を見て、連番が飛んでいないかを確かめる(月末にまとめて行う店舗が多い)
- 役席が点検の結果を確かめて印を押し、締めに進む
- 人渉外担当が帰店後、控えと書損の控えを後方事務に渡し、現金の合計を合わせる
- 人後方事務の担当が、控えを店舗の複合機でまとめてスキャンする
- 自動スキャンの保存をきっかけに Python のプログラムが動き、1枚ずつに分けて形式と解像度を確かめる
- 自動Google Document AI の Form Parser が、控えの欄のキーと値と、読み取りの信頼度を返す
- 自動Claude API が、受領日・連番・顧客番号・種類・入金先の口座番号・金額・訂正の有無を入金の行にそろえる
- 自動Python が、記載の欠け、連番の抜け、当日の入金処理の明細との食い違いを規則で拾う
- 自動食い違いと欠けのある控えだけを、写し付きの一覧にして後方事務の担当と役席に出す
- 人後方事務の担当が、一覧の控えを原本と見比べ、渉外担当に確かめる
- 人役席が一覧の確かめの結果を見て、締めに進むかを決める
- 人確かめても説明のつかない食い違いや連番の抜けは、金庫の規程に沿って報告する
各工程の詳しい説明を読む
- 渉外担当が集金先で受領証を書き、原本を顧客に渡して控えを持ち帰る
- 帰店後、渉外担当が現金と控えを後方事務に渡し、控えの合計と現金を合わせる
- 後方事務の担当が控えを1枚ずつ見ながら、入金処理を行う
- 処理の明細を出力し、控えと1件ずつ金額・口座・種類を見比べる
- 控えの記載の欠け(日付、顧客番号、担当印)を見て、渉外担当に聞く
- 冊子の交付簿を見て、連番が飛んでいないかを確かめる(月末にまとめて行う店舗が多い)
- 役席が点検の結果を確かめて印を押し、締めに進む
(a)帰店後の時間に点検が集中する。 渉外担当が戻るのは夕方です。1店舗で150枚前後の控えが、締めまでの1〜2時間に集まります。 現金を数え、入金処理をし、明細と見比べる作業が重なり、見比べが雑になるのはこの時間です。
(b)薄い数字で見間違える。 複写の控えは、筆圧の弱い渉外担当のものほど数字が薄くなります。「3」と「8」、「1」と「7」を見間違えたまま入金処理をすると、控えと明細の両方が同じ誤りを持つので、見比べても合ってしまいます。
(c)連番の抜けに気づくのが遅い。 連番の確かめを月末にまとめて行うと、抜けに気づくのは数週間後です。その番号の受領証を誰に渡したのか、渉外担当にも思い出せないことがあります。 書き損じた控えを捨ててしまっただけなのか、それ以外なのかを確かめる材料が残っていません。
(d)記載の欠けが渉外担当ごとに偏る。 顧客番号を書かない、種類の欄を空ける、担当印を押し忘れる、といった欠けは、特定の渉外担当に偏って続きます。 毎日の点検で指摘はしていても、件数としてまとまらないので、指導の材料になりません。
- 【人】 渉外担当が帰店後、控えと書損の控えを後方事務に渡し、現金の合計を合わせる
- 【人】 後方事務の担当が、控えを店舗の複合機でまとめてスキャンする
- 【自動】 スキャンの保存をきっかけに Python のプログラムが動き、1枚ずつに分けて形式と解像度を確かめる
- 【自動】 Google Document AI の Form Parser が、控えの欄のキーと値と、読み取りの信頼度を返す
- 【自動】 Claude API が、受領日・連番・顧客番号・種類・入金先の口座番号・金額・訂正の有無を入金の行にそろえる
- 【自動】 Python が、記載の欠け、連番の抜け、当日の入金処理の明細との食い違いを規則で拾う
- 【自動】 食い違いと欠けのある控えだけを、写し付きの一覧にして後方事務の担当と役席に出す
- 【人】 後方事務の担当が、一覧の控えを原本と見比べ、渉外担当に確かめる
- 【人】 役席が一覧の確かめの結果を見て、締めに進むかを決める
- 【人】 確かめても説明のつかない食い違いや連番の抜けは、金庫の規程に沿って報告する
8番目が、この設計の分かれ目です。 後方事務の担当が見るのは、食い違いと欠けのある控えだけです。合っている控えの見比べは、Python の規則に移します。 人の目は、合わない数件に集中させます。
入金処理は、これまでどおり人が営業店端末で行います。 この構成は入金処理の後に動き、処理の明細と控えを照らす側にだけ入ります。 読み取った金額で入金処理を行うことはしません。
02今回想定するシステム構成
受領証の控え(複写、連番付き)+ 書損の控え │ 帰店後に後方事務がまとめてスキャン ▼【トリガー】共有フォルダへの保存 Python ── 1枚ずつに分割、形式と解像度の確認 ▼ Google Document AI(Form Parser) │ 控えの欄のキーと値、信頼度を返す ▼ Claude API ── 受領日・連番・顧客番号・種類・口座番号・金額・訂正の有無を写す ▼ Python ── 記載の欠け/連番の抜け/入金処理の明細との突き合わせ ▼ 食い違い・欠けのある控えの一覧(写し付き) ▼ 【後方事務が原本で確かめ、渉外担当に聞く】 ▼ 【役席が確かめの結果を見て締めへ】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Google Document AI(Form Parser) | Azure AI Document Intelligence |
| 生成AI | Claude API(控えの欄を入金の行にそろえる) | OpenAI API、Gemini API |
| 連携 | Python(フォルダの監視、明細の読み込み、一覧の作成) | Google Apps Script |
| 差異計算 | Python(入金処理の明細との突き合わせと連番の確認) | Google Apps Script |
| 保管 | 金庫の営業店の共有フォルダ | 本部のファイルサーバー |
新しく足すのは、受領証の冊子の交付の記録をデータにすることと、入金処理の明細の書き出しの2つです。 冊子の交付簿は紙のことが多いので、どの渉外担当にどの番号からどの番号までの冊子を渡したかを、表に起こします。入金処理の明細は、営業店端末から当日の入金の明細を書き出せることを前提にし、書き出しの方法は金庫のシステムの機能を確かめて決めます。
土台は Document AI の Form Parser です。 公式のプロセッサ一覧では、OCRのテキストに加えてキーと値のペア、チェックボックス、表を抽出するとされ、言語の一覧で日本語(ja)は手書きに対応する言語として示されています。控えの「受領日」「顧客番号」「金額」はキーと値のペアとして、種類の欄の印刷された□はチェックボックスとして読めます。
Form Parser の注意書きのうち、この題材で効くのは空欄の扱いです。 公式のページでは、値が空のキーと値のペアは確実には読み取れないとされています。記載の欠けを拾うことが目的の1つなので、「空欄だった」と「読めなかった」を分ける材料を別に持ちます(第7章)。
処理する場所は、リージョンの一覧から選びます。 マルチリージョンの us と eu、シンガポール(asia-southeast1)などの単一リージョンがあり、日本のリージョンはありません。 控えには顧客名、口座番号、金額が書かれているので、金庫の外部委託やクラウド利用の決まりに照らして、国外で処理してよいかを導入前に決めます(第13章)。
03どうやって実装するのか
処理の起点を決める
共有フォルダにスキャンが保存されたことを起点にします。 渉外担当が帰店して現金の合計を合わせた後、後方事務の担当が控えをまとめて複合機の自動原稿送り装置に通します。入金処理を終えてからスキャンする順にし、照らす相手の明細がそろっている状態で動かします。
スキャンは渉外担当ごとに1ファイルにします。複合機の宛先を渉外担当ごとに登録しておけば、ファイル名に担当者コードと日付が入ります。書損の控えも同じファイルに入れます。 分けると、連番の抜けを確かめるときに書損の番号が見えません。
入金処理の明細は、同じ時刻までに決まったフォルダに置きます。Python のプログラムは、控えのファイルと明細のファイルが両方そろった担当者から順に処理します。片方しか無いあいだは待ちます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 控えのスキャン | PDF。渉外担当、日付 | 共有フォルダ |
| 読み取り結果 | 控えの欄のキーと値、チェックボックス、欄ごとの信頼度 | Google Document AI |
| 入金処理の明細 | 当日の入金の取引ごとの顧客番号、口座番号、種類、金額、処理した担当 | 営業店端末から書き出したファイル |
| 冊子の交付の記録 | 渉外担当ごとに渡した冊子の番号の範囲、交付日 | 交付簿を起こした表(新しく作る) |
| 集金予定表 | 渉外担当ごとのその日の訪問予定の顧客 | 集金予定表 |
質を決めるのは、冊子の交付の記録です。 これが無いと、連番の抜けは「その日に出てきた番号の中の飛び」しか見えません。冊子の最初と最後の番号が分かっていれば、前日までに出てきた番号と合わせて、まだ戻っていない番号を毎日数えられます。
集金予定表は、予定にあって控えが無い顧客を拾うために使います。 不在で集金できなかった顧客なのか、控えを出し忘れたのかを、渉外担当に確かめる材料になります。
データの取得方法を決める
読み取りは、Python から Form Parser のプロセッサを呼ぶだけです。オンラインの処理は1回の要求で最大15ページなので、1人分のスキャンを1枚ずつのページに分けてから送ります。 まとめて送る場合は、公式の上限が100ページのバッチ処理を使います。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 控えの欄 | 各ページの formFields(fieldName/fieldValue) | 受領日、連番、顧客番号、口座番号、金額 |
| 種類の印 | fieldValue の valueType(filled_checkbox/unfilled_checkbox) | 定期積金・普通預金・税公金などの別 |
| 全文 | 応答の text | 欄として取れなかった値を本文から拾う、「書損」の文字を見つける |
| 信頼度 | 各要素の layout の confidence | 薄い数字の見分け |
| 位置 | layout の boundingPoly | 確認の画面で、控えの写しの該当欄に枠を出す |
空欄の見分けは、キーと値のペアだけに頼りません。 「金額」という項目名があって値が取れないとき、全文の中で項目名の近くに数字が検出されているかを見ます。何も検出されていなければ空欄、検出されていて信頼度が低ければ読めない欄として扱います。
入金処理の明細は、書き出したファイルを Python で読むだけです。金額は数値に、顧客番号と口座番号は先頭のゼロを落とさないよう文字列のまま読み込みます。
AIへ渡す前に整形する
- 形式の確認 … 公式の対応形式は PDF、GIF、TIFF、JPEG、PNG、BMP、WebP などです。複合機の保存は PDF にします
- 解像度と色の確認 … 公式のページでは、スキャンは最低200dpiが望ましく、300dpi以上が一般に最もよいとされています。複写の薄い数字を残すため、300dpiのグレーかカラーで保存し、白黒2値にしません
- 1枚ずつに分ける … 1人分のスキャンをページごとに分け、ページの順を残します
- 控え以外の紙の確認 … 顧客から預かったメモや振込用紙が混ざることがあります。控えでないものは処理せずに担当へ戻します
- 書損の控えの確認 … 「書損」と書かれた控えは、金額の照合には使わず、連番の確認にだけ使います
- 重複の確認 … 同じ連番の控えが2枚あれば、両方を担当に回します
2番目が、この構成の精度をいちばん左右します。 複写の控えの薄い数字は、白黒2値にすると欠けます。欠けた「8」は「3」や「6」に見え、(b)の見間違いを機械が繰り返すことになります。
5番目で書損を金額の照合から外すのは、書損の控えにも金額が書かれているからです。 書き損じた金額を入金処理の明細と照らすと、合わない行として毎日並びます。
AIに処理させる
させるのは、控えの各欄を、決まった項目に書かれたとおりに写すことと、訂正の跡と書損の印を拾うことです。 金額の照合も、連番の確認も、Python が行います。
| させること | 中身 | 判断できないときの扱い |
|---|---|---|
| 項目の写し | 受領日、連番、顧客名、顧客番号、入金先の口座番号、金額 | 読めなければ unreadable、空欄なら blank |
| 種類の写し | 印の付いた種類(定期積金・普通預金・税公金・その他) | 印が2つ以上なら multiple |
| 訂正の跡 | 二重線や書き直しがある欄と、訂正印の有無 | 判断できなければ unclear |
| 書損の印 | 「書損」と書かれているか | 判断できなければ unclear |
| 担当印 | 渉外担当の印の欄に印影があるか | 空欄なら missing |
訂正の跡を拾わせるのは、訂正された金額がいちばん確かめが要る値だからです。 二重線で消された金額と書き直された金額の両方が読み取り結果に出ることがあり、どちらを金額として写すかを機械に決めさせると、誤りが見えなくなります。 両方を写させ、訂正印の有無とあわせて人に回します。
| させないこと | 理由 |
|---|---|
| 金額や口座番号の補正 | 薄い数字を「それらしい」値に直すと、見間違いを機械が固定する |
| 入金処理の明細との照合 | Python が顧客番号と金額で行う |
| 食い違いの理由の推測 | 書き間違い、打ち間違い、それ以外を区別できない |
| 訂正後の金額の選択 | 二重線の前後のどちらが正しいかは、人が原本で確かめる |
| 渉外担当の評価 | 欠けの件数は指導の材料で、人が扱う |
3行目がいちばん大事です。 金額の食い違いにAIが「転記の誤りと思われる」と書き添えると、確かめる人はその見立てに引きずられます。 集金の点検は、思い込みを持たずに原本と照らすための作業です。
指示内容を固定する
あなたは信用金庫の営業店で、渉外担当が持ち帰った受領証の控えの
読み取り結果を、決まった項目に写す立場です。OCRが返した結果だけを見て、
書かれていることを写してください。推測で埋めないでください。
【写す項目】
receipt_date(受領日)、serial_no(連番)、customer_name(顧客名)、
customer_no(顧客番号)、account_no(入金先の口座番号)、
amount_text(金額)、category(種類)、staff_seal(担当印)
【厳守事項】
- 数字は書かれたとおりの文字列で写してください。
桁を補う、薄い数字をそれらしい数字に直す、ということをしないでください。
- 金額の「¥」「,」「-」「円」は、書かれたとおりに含めて写してください。
- 欄が空欄なら status を blank、文字はあるが読めなければ unreadable に
してください。空欄と読めない欄を混ぜないでください。
- 二重線で消された値と書き直された値があるときは、両方を写し、
corrected を true にしてください。どちらが正しいかを決めないでください。
- 訂正印の有無を correction_seal に写してください。
- 「書損」と書かれていれば void を true にしてください。
- 種類の印が2つ以上あるときは category を multiple にしてください。
- 金額が正しいか、入金処理と合っているか、食い違いの理由を書かないでください。
- 受領証の控えでない書類と判断した場合は、document_type に種類を書いてください。
【読み取り結果】{ocr_result}
AIに入金処理の明細を渡していないことが、このプロンプトのいちばんの工夫です。 明細を見せると、薄い「8」を明細の「3」に合わせて写します。照らす相手を見せなければ、合わせることもできません。 照合は Python が、AIの写した値と明細を並べて行います。
「どちらが正しいかを決めない」を訂正の欄に書いているのも同じ理由です。 訂正の前後の値のうち、明細と合うほうを選べば、点検はいつも「合っていた」で終わります。
出力形式を固定する
次の形のJSONで受け取ります。 Claude API の構造化出力(output_config.format に JSON スキーマを渡す方式)を使い、形を固定します。
{
"document_type": "collection_receipt_copy",
"page_no": 0,
"void": false,
"fields": [
{
"item": "receipt_date | serial_no | customer_name | customer_no | account_no | amount_text | category | staff_seal",
"value": "",
"status": "read | blank | unreadable | missing",
"corrected": false,
"previous_value": "",
"correction_seal": "present | absent | unclear"
}
]
}
1つ目の理由は、項目ごとに status を持てることです。 記載の欠けは blank と missing、薄い数字は unreadable で、同じ空白に見える欄を2つに分けて扱えます。 blank は渉外担当への指摘、unreadable は原本の確かめです。
2つ目は、照合と連番の確認を Python の規則で持てることです。
| 条件 | 扱い |
|---|---|
| 控えの金額と、同じ顧客番号・口座番号の入金処理の金額が違う | amount_mismatch |
| 控えはあるが、入金処理の明細に該当が無い | not_posted |
| 入金処理の明細にあるが、控えが無い(窓口の入金を除く) | no_receipt |
| 交付した冊子の番号の範囲で、前日までにも当日にも出てこない番号がある | serial_gap |
必須の欄が blank、または担当印が missing | incomplete |
corrected が true で訂正印が absent | uncertified_correction |
該当欄が unreadable | check_original |
not_posted と serial_gap は、他の印より先に役席に出します。 どちらも、預かったお金の記録が入金処理につながっていないことを示します。理由の多くは処理の遅れや書損の持ち帰り忘れですが、それを確かめるのは人で、その日のうちに行います。
3つ目は、previous_value で訂正の前の値を残せることです。 訂正が多い渉外担当や、訂正印の無い訂正が続く担当は、件数として見えるようになります。 (d)の失敗はここで解消します。
公式のページでは、列挙の値の大文字・小文字までは保証されないとされているので、status などは Python で小文字にそろえてから使います。stop_reason が max_tokens のときは出力が途中で切れているので、一覧に載せずに呼び直します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共有フォルダ | Python で数分おきに確認 | 控えと明細のファイルがそろった担当から処理 |
| Google Document AI | API呼び出し | 控えの欄のキーと値、チェックボックス、信頼度 |
| Claude API | API呼び出し | 控えの欄を項目に写す |
| 入金処理の明細 | 書き出したファイルの読み込み | 顧客番号・口座番号・金額で照合 |
| 冊子の交付の記録 | 表の読み取り | 連番の範囲と、戻っていない番号の確認 |
| 点検の一覧 | 営業店の共有フォルダの表 | 印の付いた控えを写し付きで並べ、確かめの結果を記録する |
勘定系にも営業店端末にも書き込みません。 この構成は書き出された明細を読むだけで、入金処理の訂正は、これまでどおり後方事務が端末の手順で行います。 照合の結果から自動で訂正の取引を起こす経路は作りません。
点検の一覧は、役席の確かめの記録を兼ねます。 一覧の各行に、確かめた担当、渉外担当の説明、役席の確認の欄を持たせ、紙の点検簿に押していた印を、この一覧の記録に置き換えるかどうかは金庫の事務の規程で決めます。
人が確認する
後方事務の担当が見るのは、印の付いた控えだけです。 印の無い控えは、件数と合計金額を一覧で流し見ます。
not_postedとserial_gapを先に見る … 控えの原本と冊子の3枚目を見て、渉外担当にその場で確かめますamount_mismatchを見る … 控えの写しの金額欄に枠が出ます。原本で数字を確かめ、控えと入金処理のどちらが違っているかを決めますuncertified_correctionとcheck_originalを見る … 原本で訂正の跡と薄い数字を確かめますincompleteを記録する … 記載の欠けを渉外担当に伝え、件数を残します- 役席が一覧を確かめる … すべての行に確かめの結果が入っていることを見てから、締めに進みます
1番目を締めの前に必ず終えてください。 翌日に回すと、渉外担当の記憶も、集金先との連絡の機会も1日遠くなります。 説明のつかないものは、金庫の規程に沿って報告します。
目標は、3,000枚をならして1枚0.6分です。 印の無い控えは流し見で数秒、印の付いた控えは原本を見て渉外担当に確かめるので数分かかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 入金処理の明細が届いていない | 照合をせず、記載の欠けと連番だけを見る。一覧に「照合待ち」と出す |
| 控えの数字が薄くて読めない | check_original。原本で確かめ、補正しない |
| 1枚に2つの種類の印 | multiple。渉外担当に確かめる |
| 同じ連番の控えが2枚 | 両方を担当へ。冊子の3枚目と見比べる |
| 書損の控えが戻っていない | serial_gap として出す。渉外担当にその日のうちに確かめる |
| 窓口の入金と集金が同じ顧客で重なる | 明細の処理した担当の列で分ける。分けられなければ担当へ |
| 控え以外の書類が混ざる | document_type を見て処理せずに戻す |
| OCR・AIが応答しない | ファイルをフォルダに残す。その日の点検は従来の目視で行う |
最後の行で目視に戻すのは、集金の点検を翌日に持ち越さないためです。 システムが止まった日も、締めの前の点検は行います。仕組みに頼りきらず、従来の手順に戻れることを確かめておきます。
記録を残す
- 元のスキャンと、スキャン日時・店舗・渉外担当・スキャンした担当
- OCRが返したJSONの全文と、Claude API の応答の全文
- 照合に使った入金処理の明細のファイルと、その書き出し日時
- 照合と連番の確認の結果(印の種類)と、確かめた担当・渉外担当の説明・役席の確認
- 冊子の交付の記録と、番号ごとの戻った日
- 渉外担当ごとの
incompleteとuncertified_correctionの件数
4つ目が、この構成で最も大事な記録です。 後から点検のやり方そのものを確かめられるとき、どの食い違いを、誰が、どう確かめて、何と説明されたかをたどれる必要があります。
最後の行は、渉外担当への指導の材料になります。 欠けや訂正印の無い訂正が続く担当には、件数を見せて書き方を一緒に見直します。
04実装レベルの3段階
最小構成は確かめるための段階です。 1枚ずつ貼り付けるので、1日150枚には使えません。 半自動化で、1枚2分が1分程度になります。 控えと明細が同じ一覧に並ぶので見比べは速くなりますが、合っているかどうかを目で確かめる作業は残ります。 本格構成で0.6分になり、この段階が本記事の想定です。 差が大きいのは、照合と連番の確認が規則に移り、人が見るのが印の付いた控えだけになるためです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、どの渉外担当の控えで unreadable が多いかが分かります。複写の筆圧の問題なら、ボールペンを変えるだけで減ることがあります。
05工数削減シミュレーション
導入後 3,000件 × 0.6分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 渉外担当が事業先や個人宅を回って定期積金の掛金や預金の入金を集金し、複写式の受領証を手書きで発行している信用金庫・信用組合。帰店後に後方事務の担当が控えを1枚ずつ見て、入金処理の明細と金額を突き合わせている場合。控えの連番の抜けや記載の欠けを、月末の点検まで見つけられないことがある場合。
- 集金をすでに携帯端末での受付に切り替えており、手書きの受領証がほとんど無い場合。集金の件数が支店で1日数件にとどまり、役席が目で見て足りる場合。顧客の口座情報を国外のリージョンで処理することを、金庫の外部委託やクラウド利用の決まりで認められない場合。なお、食い違いの原因の調査や、不正の有無の判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の控えから、渉外担当3名・各5日分を選ぶ(金額の食い違いがあった日と、訂正のある控えを必ず入れる)
- その控えについて、当時の入金処理の明細と点検の記録を用意する
- スキャンを手元のAIサービスの画面に1枚ずつ貼り付ける
- 「この受領証の控えの各欄を、書かれたとおりに写してください。数字を補ったり直したりしないでください。読めない欄は『読めない』、空欄は『空欄』としてください。二重線で消された値があれば、消された値と書き直された値の両方を写してください」と指示する
- 写された値を手で明細と照らし、当時の点検の記録と比べる
控えは顧客の口座情報を含むため、金庫の情報管理の規程で認められた環境でだけ扱ってください。 試す段階でも、規程に沿った手続きを先に済ませます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の点検と同じ食い違いが見つかった | OCRとプログラムの連携に進む |
| 薄い数字をそれらしい数字に直した | 指示の書き方で直る。構成は有効 |
| 訂正の前後の値の片方しか写さない | 指示を直す。直らなければ訂正のある控えは全件を人に回す |
| 数字が読めない枚数が多い | スキャンの設定が先。 グレー・300dpiで取り直す |
3行目の判断は、導入の可否を分けます。 訂正の前後を分けて写せないなら、訂正のある控えは機械に任せず、最初から人の確かめに回す規則にします。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 薄い数字をAIがそれらしく直す | 明細をAIに見せない。 書かれたとおりに写させる |
| 訂正の前後のどちらかを選んでしまう | 両方を写させ、選ぶのは人 |
| 白黒のスキャンで数字が欠ける | グレーかカラーで300dpi |
| 書損の控えが照合で毎日引っかかる | 書損は連番の確認にだけ使う |
| 連番の抜けが当日分しか見えない | 冊子の交付の記録を表にして、範囲で確かめる |
窓口の入金が no_receipt に出る | 明細の処理した担当の列で、集金分だけに絞る |
| 空欄と読めない欄が混ざる | 値が空のキーと値は確実に読めない。全文と信頼度で分ける |
| 一覧の確かめの記録が残らない | 確かめた担当・説明・役席の確認を一覧の列にする |
| システムが止まった日に点検が抜ける | 従来の目視に戻す手順を決めておく |
| 国外での処理の審査が済んでいない | 日本のリージョンが無い。審査を構成より先に行う |
上の2行が、この構成の失敗のほとんどです。 どちらも、AIが「合っている」側に寄せてしまうという同じ型の失敗です。照らす相手を見せないことと、選ばせないことで、点検が自分で自分を確かめる形にならないようにします。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧客名、顧客番号、口座番号と入金の金額、渉外担当の名前と印影です。金融機関として最も慎重に扱う種類の情報です。
- 国外で処理することを規程に照らして決める … Document AI のリージョンの一覧に日本はありません。顧客の口座情報を国外のリージョンで処理してよいかを、金庫の外部委託・クラウド利用の規程と、顧客の情報の管理の決まりで確かめます。監督指針でも、顧客等に関する情報管理の態勢と、業務の外部委託に係る内部管理が着眼点として挙げられています。認められない場合は、日本のリージョンで処理できる製品を検討します
- 外部へ渡す範囲を絞る … AIに渡すのは控えの読み取り結果だけです。入金処理の明細や顧客の一覧はAIに渡さず、照合は金庫の中の Python で行います
- 入金処理を自動で行わない … 読み取った金額で入金や訂正の取引を起こしません。取引は後方事務が端末の手順で行います
- 不正の有無を判断させない … この構成が出すのは、食い違いと連番の抜けがあるという事実までです。原因の調査と、規程に沿った報告は人が行います。 監督指針では、不祥事件等が発覚したときに本部の事務部門・内部監査部門への迅速な報告や、事件とは独立した部署による調査が確認の点として挙げられています
- 渉外担当を疑う道具として扱わない … 欠けや訂正の件数は書き方の指導の材料です。件数だけで個人を評価すると、控えが正直に書かれなくなります
- 元の控えを残す … 点検の拠り所は控えの原本と冊子の3枚目です。スキャンとAIの写しは、原本の代わりにしません
監督指針は、職員の派出先でやむを得ず預金等の取次を行う場合の留意点として、金銭や通帳の預り証等を発行するなど事故防止に万全を期しているかを挙げています。 渉外の集金はその場面そのものではありませんが、受領証という記録を発行し、それを点検することが事故防止の仕組みである点は同じです。この構成は、その点検を毎日、全件に届かせるためのものです。
10まず何から始めるか
1週目:冊子の交付簿を表にする
対象の店舗で、どの渉外担当に、どの番号からどの番号までの冊子を渡したかを表に起こします。使い終わった冊子の3枚目がそろっているかも、あわせて確かめます。
2週目:明細の書き出しと規程の手続きを確かめる
営業店端末から当日の入金の明細を書き出せるかを、本部の事務部門・システム部門と確かめます。あわせて、外部のサービスで控えを処理するための規程の審査を始めます。
3週目:控えで試す
規程で認められた環境で、渉外担当3名・各5日分の控えを読み取らせます。薄い数字を直していないか、訂正の前後を両方写しているかを最優先で見ます。
4週目:フォルダから一覧までをつなぐ
Python でフォルダを見張り、OCRを呼び、写した値を明細と並べた一覧を作るところまで作ります。この時点では印を出さず、後方事務がこれまでどおり見比べながら、一覧と結果が一致するかを見ます。
2か月目: 照合・連番・欠けの規則を足し、1店舗で印の付いた控えだけを見る運用を始めます。3か月目以降: 対象の8店舗に広げ、1枚2分が何分になったかを実測します。連番の抜けが毎日の締めの前に確かめられ、確かめの記録が役席の確認とともに残るようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 監督指針の対象となる中小・地域金融機関に信用金庫が含まれること。不祥事件等の発覚の第一報で、本部等の事務部門・内部監査部門への迅速な報告、事件とは独立した部署での調査を確認すること、着眼点に内部けん制機能が適切に発揮されているかが含まれること。顧客等に関する情報管理態勢と外部委託に係る内部管理が監督上の項目とされていること。派出先で預金等の取次を行う場合に、金銭や通帳の預り証等を発行するなど事故防止に万全を期しているかが留意点とされていること(令和8年10月版) | 金融庁: 中小・地域金融機関向けの総合的な監督指針(本編) | 2026-10-08 |
Form Parser がOCRのテキストに加えてキーと値のペア、チェックボックス、表を抽出すること。言語の一覧で日本語(ja)が手書きに対応する言語として示されていること。オンラインの処理が1回の要求で最大15ページ、バッチ処理が最大100ページであること | Google Cloud: Processor list | 2026-10-08 |
| 値の入っていないキーと値の組を確実には読み取れないこと | Google Cloud: Form Parser | 2026-10-08 |
項目名と値の組が formFields の fieldName/fieldValue で返ること。チェックボックスの valueType が filled_checkbox/unfilled_checkbox であること。信頼度と位置が各要素の layout に入ること | Google Cloud: Handle the processing response | 2026-10-08 |
| 対応形式が PDF、GIF、TIFF、JPEG、PNG、BMP、WebP などであること。スキャンは最低200dpiが望ましく300dpi以上が一般に最もよいこと | Google Cloud: Supported files | 2026-10-08 |
マルチリージョンが us と eu で、単一リージョンにシンガポール(asia-southeast1)などがあり、日本のリージョンが一覧に無いこと | Google Cloud: Regional and multi-regional support | 2026-10-08 |
output_config.format に JSON スキーマを渡して応答の形を固定できること。列挙の値の大文字・小文字は保証されないこと。max_tokens で打ち切られたときはスキーマに合わない出力になりうること | Claude API: Structured outputs | 2026-10-08 |
食い違いの原因の調査、報告の要否、外部のサービスで顧客の情報を処理してよいかは、金庫の規程に沿って事務部門・内部監査部門・コンプライアンス部門が決めてください。 本記事は各製品の公式ページと金融庁の監督指針で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0973)についてのご相談はこちらから。
