手書きの口座振替依頼書を読み取って登録データにそろえ、口座番号の桁・届出印の欄・記入漏れの不備を返送の前に洗い出す
委託先から届く手書きの口座振替依頼書を読み取り、収納の登録データの形にそろえます。口座番号の桁、預金種目の選択、届出印の欄の空き、記入漏れを規則で点検し、不備のある依頼書を金融機関へ回す前に洗い出します。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- AIサービス
- Azure AI/Google Document AI
- 連携・自動化
- Power Automate
- 対象業界
- その他/保険/教育/金融
- 対象部門
- 総務
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 委託先から依頼書の束が届き、件数を数えて受付台帳に記録する
- 1枚ずつ見ながら、顧客番号、金融機関名と支店名、預金種目、口座番号、口座名義(カナ)、氏名、住所、電話番号を基幹システムに入力する
- 口座番号と金融機関・支店のコードは、別の担当者がもう一度入力し、一致するかを確かめる
- 入力しながら、押印欄、預金種目の選択、記入日、訂正の跡を目で見る
- 不備があれば付箋を貼り、不備の一覧に書き出す
- 不備の一覧から、委託先ごとに返送状を作り、依頼書を同封して戻す
- 不備の無いものの1枚目を、金融機関ごとに束ねて送る
- 人届いた束の件数を数え、依頼書の1枚目をスキャナで読み込む
- 自動Azure Blob Storage の受付用のコンテナーにファイルが入ったことをきっかけに、ワークフローが動く
- 自動依頼書の様式を学習したOCRのモデルが、欄ごとの値、預金種目の選択マーク、押印欄の状態、信頼度を返す
- 自動規則で、口座番号の桁、預金種目の選択、ゆうちょ銀行の欄の使い方、記入漏れを点検する
- 自動金融機関名・支店名とコードを自社のマスタと照合する
- 自動依頼書ごとに `ready` / `needs_return` / `needs_human` を規則で決める
- 人担当者が確認画面で、全件の口座番号と金融機関・支店の欄を、画像の切り抜きと読み取った値で見比べて確定する
- 人`needs_return` と `needs_human` のものを開き、不備の判定を確かめる
- 自動`needs_return` のものについて、生成AIが委託先あての返送状の下書きを作る
- 人返送状を直して依頼書と同封し、委託先へ戻す
- 自動確定した `ready` のものを、基幹システムの取り込みの形に書き出す
- 人1枚目を金融機関ごとに束ねて送る
各工程の詳しい説明を読む
- 委託先から依頼書の束が届き、件数を数えて受付台帳に記録する
- 1枚ずつ見ながら、顧客番号、金融機関名と支店名、預金種目、口座番号、口座名義(カナ)、氏名、住所、電話番号を基幹システムに入力する
- 口座番号と金融機関・支店のコードは、別の担当者がもう一度入力し、一致するかを確かめる
- 入力しながら、押印欄、預金種目の選択、記入日、訂正の跡を目で見る
- 不備があれば付箋を貼り、不備の一覧に書き出す
- 不備の一覧から、委託先ごとに返送状を作り、依頼書を同封して戻す
- 不備の無いものの1枚目を、金融機関ごとに束ねて送る
(a)二重の入力が重い。 口座番号と金融機関・支店のコードは、1桁違えば引落し先が変わります。だから2人で別々に打ち、一致を確かめています。 間違えないための仕組みですが、1,800枚の全部に2人分の手がかかります。
(b)点検は入力のついでに行われる。 押印欄や預金種目の選択は、打ち込みながら目に入ったときに見ています。月末に束が重なると、打ち込みが優先され、点検は流れます。 押印欄が空いたまま金融機関に回り、数週間後に戻ってくる依頼書が、毎月一定数あります。
(c)見る項目が人によって違う。 訂正の跡を不備とするか、口座名義のカナが氏名と違うものを止めるか。ベテランは止め、新しい担当者は通します。 同じ委託先の依頼書が、担当者によって戻ったり戻らなかったりします。
(d)ゆうちょ銀行の欄を取り違える。 ゆうちょ銀行の口座は記号と番号で書かれ、ほかの金融機関とは欄が別です。銀行の欄に記号と番号を書いたもの、記号と番号の間の1桁まで書いたものが混ざります。 気づかずに入力すると、存在しない口座番号になります。
- 【人】 届いた束の件数を数え、依頼書の1枚目をスキャナで読み込む
- 【自動】 Azure Blob Storage の受付用のコンテナーにファイルが入ったことをきっかけに、ワークフローが動く
- 【自動】 依頼書の様式を学習したOCRのモデルが、欄ごとの値、預金種目の選択マーク、押印欄の状態、信頼度を返す
- 【自動】 規則で、口座番号の桁、預金種目の選択、ゆうちょ銀行の欄の使い方、記入漏れを点検する
- 【自動】 金融機関名・支店名とコードを自社のマスタと照合する
- 【自動】 依頼書ごとに
ready/needs_return/needs_humanを規則で決める - 【人】 担当者が確認画面で、全件の口座番号と金融機関・支店の欄を、画像の切り抜きと読み取った値で見比べて確定する
- 【人】
needs_returnとneeds_humanのものを開き、不備の判定を確かめる - 【自動】
needs_returnのものについて、生成AIが委託先あての返送状の下書きを作る - 【人】 返送状を直して依頼書と同封し、委託先へ戻す
- 【自動】 確定した
readyのものを、基幹システムの取り込みの形に書き出す - 【人】 1枚目を金融機関ごとに束ねて送る
7番目が、この設計の分かれ目です。 口座番号の確認は、全件に残します。ただし打ち直すのではなく、見比べるだけにします。 二重の入力の目的は「1桁の違いを見つけること」で、画像の切り抜きと値を並べて見れば、同じ目的を短い時間で果たせます。
6番目を規則で決めているのも、意図してのことです。 訂正の跡を不備とするかは、金融機関や委託先との取り決めで変わります。AIには欄の状態を記録させ、それを不備とするかは規則の表に置きます。
02今回想定するシステム構成
口座振替依頼書(手書き、複写式の1枚目) │ スキャナで読み込み ▼【トリガー】Azure Blob Storage の受付用コンテナーへの保存 Azure Logic Apps ├──▶ ファイル形式・ページ数の確認、1ファイル1枚への分割 ▼ Azure AI Document Intelligence(カスタム テンプレート モデル) │ 様式ごとに学習したモデルで、欄ごとの値・選択マーク・押印欄・信頼度を返す ▼ Azure Logic Apps ── 規則による点検 │ ① 口座番号の桁 ② 預金種目の選択 ③ ゆうちょ銀行の欄 │ ④ 押印欄の空き ⑤ 記入漏れ ⑥ 金融機関・支店のマスタ照合 ▼ 判定(ready / needs_return / needs_human) ▼ 【人が全件の口座番号を見比べ、不備のものを確かめる】 ├──▶ Azure OpenAI ── 委託先あての返送状の下書き └──▶ 基幹システムの取り込みの形に書き出し
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Azure AI Document Intelligence(カスタム テンプレート モデル) | Google Document AI(Form Parser) |
| 生成AI | Azure OpenAI(Microsoft Foundry)(不備の一覧から返送状の下書きを作る) | Claude API、Gemini API |
| 連携 | Azure Logic Apps(Blob のトリガー、規則による点検、書き出し) | Power Automate |
| 保管 | Azure Blob Storage(受付用・処理済み・確認待ちのコンテナー) | SharePoint |
基幹システムと金融機関・支店のマスタは、新しく足すものではありません。 足すのは、依頼書の様式を学習させたOCRのモデル、規則の表、確認画面です。
土台になるのは、Azure AI Document Intelligence のカスタム テンプレート モデルです。 ラベル付けしたキーと値のペア、選択マーク、テーブル、領域、署名をドキュメントから抽出するモデルで、定義されたビジュアル テンプレートを持つ、高度に構造化されたドキュメントに向くとされています。口座振替依頼書は、まさに欄の位置が決まった書類です。
手書きの日本語に対応しています。 カスタム テンプレートの言語サポートでは、印刷のテキストと手書きのテキストの両方に日本語が含まれています。
様式が変わると精度が落ちる、とも書かれています。 テンプレートを変更すると精度が低下するため、様式ごとに少なくとも5つのサンプルで学習し、それぞれのモデルを1つのエンドポイントにまとめる(モデルの合成)方法が示されています。委託先ごとの様式が数種類であれば、この形で扱えます。
03どうやって実装するのか
処理の起点を決める
Azure Blob Storage の受付用のコンテナーにファイルが追加されたことを起点にします。 Azure Logic Apps の Blob Storage のマネージド コネクタのトリガー「BLOB が追加または変更されたとき (プロパティのみ)」を使い、続けて「BLOB コンテンツの取得」で中身を取ります。
このトリガーには、知っておくべき性質が2つあります。 1つは、ストレージ コンテナーのルート フォルダーで起動し、設定した時点ですでにあるBLOBは無視することです。委託先ごとにフォルダーを分けると、入れ子のフォルダーでは起動しません。受付用はルートにまとめ、委託先はファイル名で区別します。 もう1つは、ポーリングする仮想フォルダー内のBLOBが30,000個までに制限されることで、超えると新しいBLOBでワークフローが起動しないことがあります。処理が終わったファイルは、必ず処理済みのコンテナーへ移します。
スキャンは、束が届いた日のうちに行います。束ごとに1つのPDFにまとめてスキャンし、ワークフローの最初で1枚ずつに分けます。 ファイル名には、委託先コードと受付日、束の番号を入れます。受付台帳の件数と、分けた枚数が一致するかを最初に確かめます。
処理済みへ移すのは、確認画面への書き込みまで成功したときだけです。 受付用に残っている数が、そのまま未処理の数です。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 依頼書の画像 | 1枚目のスキャン。委託先コード、受付日、束の番号 | 受付用のコンテナー |
| 読み取り結果 | 欄ごとの値、預金種目の選択マーク、押印欄の状態、信頼度 | カスタム テンプレート モデル |
| 様式の情報 | 様式ごとの口座番号のマス数、ゆうちょ銀行の記号・番号のマス数、必須の欄 | 自社で作る様式の一覧 |
| 金融機関・支店のマスタ | 金融機関名とコード、支店名とコード、ゆうちょ銀行かどうか | 基幹システムのマスタ |
| 委託先の情報 | 委託先コード、顧客番号の形式、返送先、訂正の跡を不備とするか | 委託先の一覧 |
質を決めるのは、3つ目と5つ目です。 口座番号のマス数は様式で決まっています。桁の点検は、そのマス数と記入された数字の数を突き合わせるだけです。 一般的な桁数の知識に頼らず、様式の側の決まりで見ます。
委託先ごとの取り決めは、規則の表に持たせます。 訂正印のある訂正を受け付けるか、口座名義が利用者本人と違うもの(保護者名義など)をどう扱うか。ここを人の判断に残すと、第3章の(c)が繰り返されます。
データの取得方法を決める
モデルの学習が最初の作業です。 様式ごとに、記入済みの依頼書を5枚以上用意し、Document Intelligence Studio で欄にラベルを付けて学習させます。学習の操作で buildMode を template に設定するとカスタム テンプレート モデルになります。
| ラベルを付ける欄 | 種類 | 何に使うか |
|---|---|---|
| 顧客番号、委託者コード | フォーム フィールド | 基幹システムの顧客との対応 |
| 金融機関名、支店名、各コードのマス | フォーム フィールド | マスタとの照合 |
| 預金種目(普通・当座) | 選択マーク | どちらか1つに印があるか |
| 口座番号のマス | フォーム フィールド | 桁の点検と登録 |
| ゆうちょ銀行の記号・番号のマス | フォーム フィールド | 銀行の欄との使い分けの点検 |
| 口座名義(カナ)、氏名、住所、電話 | フォーム フィールド | 記入漏れの点検と登録 |
| 届出印の欄 | 署名 | 欄に何か押されているか |
| 記入日 | フォーム フィールド | 日付として読めるか |
届出印の欄は「署名」のフィールドとしてラベルを付けます。 カスタム テンプレート モデルは署名のフィールドに対応しています。ただし、印影を署名として安定して検出できるかは、自社の様式と朱肉の色で事前に試して確かめる必要があります。 検出が不安定なら、押印欄を「領域」として切り出し、確認画面で人が見る形に落とします。
学習データには、うまく書かれていない依頼書も入れます。 マスからはみ出した数字、薄い複写、斜めのスキャン。きれいな5枚だけで学習すると、実際の束で信頼度が落ちます。 様式の小さな違い(印刷の版の違いなど)があれば、同じ学習データにそれぞれ5枚以上入れます。
AIへ渡す前に整形する
- ページの分割 … 束のPDFを1枚ずつに分けます。両面スキャンの白紙の裏は除きます
- 件数の照合 … 分けた枚数と受付台帳の件数が一致するかを見ます。合わなければ、束ごと止めます
- 形式と寸法の確認 … PDFまたは画像であること、画像が50×50から10,000×10,000ピクセルの間であることを確かめます
- 解像度の確認 … 抽出するテキストの最小の高さは、1024×768の画像で12ピクセルです。マスの中の数字は小さいので、スキャンは300dpiに固定します
- パスワードの確認 … パスワードでロックされたPDFは、提出前に解除する必要があります(スキャナの暗号化の設定を切ります)
- 様式の判別 … 委託先コードから様式を引き、合成したモデルで読ませます
- 重複の検知 … 同じ委託先・同じ顧客番号の依頼書が直近にあれば、二重の受付として印を付けます
2番目を省かないでください。 束の中で2枚が重なったままスキャンされると、1件が消えます。消えた1件は、誰も気づかないまま引落しが始まらない利用者になります。
AIに処理させる
OCRのモデルにさせるのは、欄ごとの値と状態を読み取ることだけです。 点検は、読み取った値に規則を当てて行います。
| 点検 | 規則 | 結果 |
|---|---|---|
| ① 口座番号の桁 | 記入された数字の数が、様式のマス数と一致するか。数字以外が無いか | 不一致なら account_digits |
| ② 預金種目 | 選択マークがちょうど1つ selected か | 0個・2個なら deposit_type |
| ③ ゆうちょ銀行の欄 | ゆうちょ銀行を選んだのに銀行の欄に書いた、または両方に書いたものが無いか | 該当すれば yucho_field |
| ④ 押印欄 | 署名のフィールドが検出されたか | 検出されなければ seal_missing |
| ⑤ 記入漏れ | 必須の欄に値があるか | 空なら blank_<欄の名前> |
| ⑥ マスタ照合 | 金融機関名・支店名とコードの組がマスタと一致するか | 不一致なら bank_mismatch |
判定は、次の規則で決めます。
| 判定 | 条件 |
|---|---|
ready | ①〜⑥に該当なし、かつ全欄の信頼度が基準以上 |
needs_return | ①〜⑤のどれかに該当し、その欄の信頼度が基準以上(書かれていないことが確か) |
needs_human | 該当した欄の信頼度が基準未満、または⑥のみの該当、または二重の受付 |
真ん中の行が大事です。 needs_return は委託先へ書き直しを頼むもので、利用者に手間をかけさせます。 押印欄が空に見えても、それが朱肉の薄さで検出されなかっただけなら、返送は空振りです。信頼度が基準に届かないものは、返送ではなく人の確認に回します。
⑥を needs_human にしているのは、表記ゆれが多いためです。 「〇〇信金」「〇〇信用金庫」、支店名の旧称、合併前の金融機関名。マスタと合わないことが、そのまま不備とは限りません。
| AIにさせないこと | 理由 |
|---|---|
| 口座番号の桁を補う(先頭に0を足すなど) | 足りないのか読めないのかが消える |
| 金融機関名からコードを推測して埋める | 支店の取り違えがそのまま登録される |
| ゆうちょ銀行の記号・番号を振込用の口座番号に変換する | 変換の規則は番号の桁で分かれ、誤ると存在しない口座になる |
| 届出印が正しいかの判断 | 金融機関でしか確かめられない |
| 不備として返送するかの最終判断 | 規則と人で決める |
3行目は特に気をつけてください。 ゆうちょ銀行の口座は、記号の先頭が1か0かで口座の種類が分かれ、番号の桁数によって振込用の口座番号への変換方法が違うとされています。また、記号と番号の間に1桁の数字がある場合、その数字は振込には使わないとされています。依頼書に書かれた記号と番号をそのまま登録し、変換は基幹システムの決まった処理に任せます。
指示内容を固定する
生成AIは、返送状の下書きだけに使います。 点検の結果は規則で決まっているので、生成AIに渡すのは不備のコードと欄の名前までです。
あなたは収納代行の事務センターで、委託先に口座振替依頼書の書き直しを
お願いする文書を作る担当です。次の不備の一覧から、委託先あての返送状の下書きを作ってください。
【不備の一覧】{issues}
例: [{"form_id": "A-0123", "code": "seal_missing", "field": "届出印"},
{"form_id": "A-0124", "code": "account_digits", "field": "口座番号"}]
【委託先の名称】{client_name}
【返送の期日】{due_date}
【厳守事項】
- 不備の一覧に無い不備を書き足さないでください。
- 依頼書の番号(form_id)ごとに、どの欄をどう直してほしいかを1行で書いてください。
- 口座番号、金融機関名、氏名などの値を本文に書かないでください。
依頼書は同封するので、番号と欄の名前だけで足ります。
- 「印鑑が違う」「口座が存在しない」など、事務センターで確かめていないことを書かないでください。
届出印は「押印が確認できませんでした」と書いてください。
- 利用者の落ち度を責める書き方をしないでください。
- 書き直しの依頼書は新しい用紙に書いてもらう必要がある場合、その旨を書いてください。
訂正の扱いは {correction_rule} に従ってください。
- 出力は次のJSONで返してください。
「値を本文に書かない」を入れるのは、返送状が委託先の担当者を経由するためです。 口座番号は返送状に要りません。依頼書の番号と欄の名前があれば、同封した依頼書で場所が分かります。
「確かめていないことを書かない」も同じくらい大事です。 押印欄が空に見えたことと、印鑑が違うことは別の話です。後者は金融機関の判断で、事務センターが書けば誤りになります。
出力形式を固定する
OCRのモデルの結果から、規則の層で次の形のJSONを作ります。
{
"form_id": "",
"client_code": "",
"form_type": "",
"fields": [
{ "name": "account_number", "value": "", "confidence": 0,
"status": "ok | blank | unreadable", "crop_ref": "" }
],
"deposit_type": { "selected": ["普通"], "confidence": 0 },
"seal": { "detected": true, "confidence": 0 },
"checks": [ { "code": "account_digits", "field": "account_number", "detail": "" } ],
"verdict": "ready | needs_return | needs_human",
"duplicate_of": null
}
crop_ref が、7番目の見比べのための項目です。 欄の位置の情報から画像を切り抜き、その場所を持たせておきます。確認画面では、切り抜きと値を横に並べて、1枚ずつ見比べます。
1つ目の理由は、checks と verdict を別の層に置けることです。 委託先の取り決めが変わっても、直すのは規則だけです。2つ目は、返送状の下書きに渡すのが checks だけで済むことです。 生成AIに口座番号や氏名を渡さずに済みます。
返送状の下書きは、Azure OpenAI の構造化出力で受け取ります。 構造化出力は、指定した JSON スキーマに従った応答を返させる仕組みで、すべてのフィールドを必須にし、オブジェクトには additionalProperties: false を設定する決まりです。依頼書の番号ごとの行と、本文の段落を固定の項目にしておくと、返送状の書式に流し込めます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Azure Blob Storage | Logic Apps のトリガーとアクション | 受付用・処理済み・確認待ちのコンテナー |
| Azure AI Document Intelligence | API呼び出し | 合成したカスタム テンプレート モデルで読み取る |
| 金融機関・支店のマスタ | 基幹システムからの定期の書き出しを読む | 照合 |
| 確認画面 | 社内の業務画面(切り抜きと値を並べて表示) | 見比べと確定 |
| Azure OpenAI | API呼び出し | 返送状の下書き |
| 基幹システム | 既存の取り込み口(ファイル) | 確定した ready のものだけ |
基幹システムへは、確定したものだけを渡します。 口座番号の見比べが済んでいないものは、ready でも書き出しません。読み取りの直後に登録すると、1桁の読み違いがそのまま引落し先になります。
金融機関・支店のマスタは読むだけです。 合わなかった金融機関名をマスタに書き足しません。合併や支店の統廃合はマスタ側の更新で扱います。
人が確認する
人が見るのは2種類です。 全件の口座番号と金融機関・支店の欄、そして needs_return と needs_human の依頼書です。
- 口座番号の見比べ … 切り抜きと読み取った値を並べ、1桁ずつ合っているかを見ます。合っていれば確定、違っていれば値を直して確定します
- 金融機関・支店の見比べ … 名称とコードの切り抜きを見て確定します
needs_humanを確かめる … 信頼度が低い欄を画像で見て、不備か読めなかっただけかを決めますneeds_returnを確かめる … 該当の欄を画像で見て、本当に空欄か、本当に桁が違うかを確かめます- 判定を覆したら記録する … どの欄を、どちらに変えたかを残します
1番目は、二重の入力の代わりです。 二重の入力は「2人が別々に打って一致すれば正しい」という考え方でした。見比べは「画像と値を同じ画面で照らす」考え方で、1人で済みます。 見比べで直した件数は、毎週数えておきます。読み取りの癖が見えてきます。
目標は、1,800枚をならして1枚2分です。 見比べに1分、needs_return と needs_human の確認をならして1分という想定です。不備の多い委託先の束では2分を超えます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 分けた枚数と受付台帳の件数が合わない | 束ごと止め、重なったスキャンと抜けを探す |
| 様式が学習したどれとも違う | 委託先が新しい様式を使い始めた可能性。読み取らずに人へ回し、5枚集まったら学習に足す |
| 画像の寸法・解像度が範囲外 | 50×50から10,000×10,000ピクセルの範囲外、または文字が小さすぎるものはスキャンし直す |
| パスワードでロックされたPDF | 提出前に解除が必要。スキャナの設定を直して取り直す |
| 複写の2枚目以降をスキャンした | 文字が薄く信頼度が全体に低い。1枚目で取り直す |
| 同じ利用者の依頼書が二度届く | duplicate_of に印を付け、新しいほうを人が選ぶ |
| 押印欄の検出が不安定 | 署名のフィールドをやめ、領域として切り出して人が見る |
| 訂正の跡がある | 委託先の取り決めに従い、規則で needs_return か ready に分ける |
| OCRが応答しない | 受付用に残す。処理済みへ移すのは成功時だけ |
上から2行目が、運用で最も起きやすい例外です。 委託先は様式を断りなく変えることがあります。テンプレートは様式の変更で精度が落ちるので、 委託先コードと様式の組を一覧で持ち、知らない様式は読み取りに進ませません。
記録を残す
- 依頼書の画像と、委託先コード、受付日、束の番号
- OCRが返したJSONの全文(欄ごとの値、選択マーク、署名、信頼度)と、使ったモデルの番号
- 規則による点検の結果(
checks、verdict)と、そのときの規則の表と委託先の取り決め - 見比べで人が直した記録 … どの欄を、何から何に直したか、誰が確定したか
- 返送状の下書きと、送った版、送った日
- 基幹システムへ書き出した日時と件数、金融機関へ送った束の記録
- 金融機関から返却された依頼書と、その理由
最後の行が、この仕組みを育てる材料です。 金融機関から返却された依頼書のうち、事務センターの点検で止められたはずのものを数えます。押印欄の空きで返ってきたものが減らないなら、署名の検出の基準を見直します。
04実装レベルの3段階
最小構成は、確かめるための段階です。 半自動化で、1枚6分が3分程度になります。 打ち込みと二重の入力は見比べに変わりますが、返送状の作成と、基幹システムへの入力が残ります。本格構成で2分になり、この段階が本記事の想定です。 差が大きいのは、返送状と登録の書き出しが、委託先ごとの手作業だからです。 段階を飛ばさないでください。 半自動化を1か月回すと、どの委託先の様式で信頼度が低いか、どの規則で needs_human が多いかが見えます。そこを直してから返送状の下書きを足すほうが、返送の空振りが減ります。
05工数削減シミュレーション
導入後 1,800件 × 2分 ÷ 60 = 60 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 学習塾、スポーツクラブ、保険代理店、管理組合などの委託先から、紙の口座振替依頼書を毎月まとめて受け取り、事務センターで登録データに打ち込んでから金融機関へ回している収納代行会社や、同じ事務を自社で持つ金融機関。依頼書の様式が委託先ごとに数種類に限られ、記入欄の位置が決まっている場合。金融機関から依頼書が戻ってくるまでの間に初回の引落しが遅れることが問題になっている場合。
- 口座振替の受付をインターネットや店頭の端末での手続きに切り替えており、紙の依頼書がほとんど無い場合。月の受付が数十件で、目視と手入力で足りる場合。なお、届出印が金融機関に届けた印鑑と一致するかは金融機関でしか確かめられず、この構成では判定できません。
07最小構成で試す方法
- 先月受け付けた依頼書から50枚を選ぶ(金融機関から返却されたものを10枚入れる)
- その50枚の登録データと、金融機関から返却された理由を書き出しておく
- 1つの様式の依頼書を5枚選び、Document Intelligence Studio でラベルを付けてカスタム テンプレート モデルを学習させる
- 残りの同じ様式の依頼書を読ませ、欄ごとの値と信頼度、押印欄の検出の結果を一覧にする
- 第7章の6つの規則を表計算で当て、2で書き出した登録データと返却の理由に突き合わせる
50枚は必ずやってください。 規則とワークフローを組む前に、自社の様式で、口座番号のマスと押印欄がどこまで読めるかを確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 口座番号が登録データとほぼ一致し、返却された10枚の多くを規則で止められた | ワークフローの連携に進む |
| 口座番号は読めるが、押印欄の検出が安定しない | 押印欄は領域として切り出し、人が見る形にする。構成は有効 |
| マスからはみ出した数字が多く、口座番号の信頼度が低い | 様式のマスの大きさと学習データが先。 汚れた見本を学習に足す |
2行目は珍しくありません。 押印欄を人が見る形にしても、二重入力が見比べに変わるだけで時間の大半は減ります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 口座番号の読み違いがそのまま登録される | 全件を見比べで確定する。 読み取った値をそのまま書き出さない |
| 桁が足りない口座番号の先頭に0を足してしまう | 補うことを禁じ、マス数と数字の数の不一致として止める |
| 押印欄が朱肉の薄さで空と判定される | 信頼度の基準を下回るものは needs_human。返送しない |
| ゆうちょ銀行の記号・番号を銀行の欄に書いたものが通る | ゆうちょ銀行を選んだ依頼書は、欄の使い分けを規則で見る |
| 記号と番号の間の1桁まで口座番号に入る | その1桁は振込には使わないとされる。変換は基幹システムの処理に任せる |
| 委託先が様式を変えて精度が落ちる | 知らない様式は読み取らずに人へ。5枚集めて学習に足す |
| 学習の見本がきれいな依頼書だけ | はみ出した数字、薄い複写、斜めのスキャンを入れる |
| 委託先ごとにフォルダーを分けてトリガーが起動しない | マネージドのトリガーはルートで起動する。ルートにまとめ、ファイル名で分ける |
| 受付用のコンテナーにファイルがたまり続ける | ポーリングは30,000個まで。処理済みへ必ず移す |
| 金融機関名の表記ゆれで照合が合わない | ⑥は needs_human。マスタに旧称を持たせる |
| 返送状に「印鑑が違う」と書いてしまう | 事務センターで確かめていないことは書かせない |
上の2行が、この構成の失敗のほとんどです。 どちらも、口座番号という1桁の違いが致命的な欄を、機械に任せきることから起きます。読み取りで速くするのは打ち込みまでで、確定は人が行います。
トリガーの2行は運用を始めてから効きます。 知らないままだと、依頼書が届いているのに誰も気づかない状態になります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 利用者の氏名、住所、電話番号、金融機関・支店、口座番号、口座名義、届出印の印影です。口座振替の依頼書は、口座から引き落とす権限を与える書類そのものです。
- 生成AIに渡すのは不備のコードと欄の名前だけにする … 返送状の下書きに、口座番号や氏名は要りません。読み取りの結果を生成AIに渡さない設計にできます
- 印影の画像を必要以上に複製しない … 押印欄の切り抜きは確認画面に出しますが、保存は元の画像に限り、切り抜きは表示のたびに作ります
- 届出印の照合をこの構成で行わない … 届出印が届けた印鑑と同じかは、金融機関の判断です。事務センターが「押印が確認できない」以上のことを言わないよう、返送状の書き方まで決めておきます
- 読み取った値を確定前に登録しない … 基幹システムへ渡すのは、人が見比べて確定したものだけです
- 委託先との契約で、外部サービスの利用を確かめる … 依頼書の画像をクラウドのOCRに渡すことが、委託先との契約や個人情報の取り決めに沿うかを、導入の前に確かめます。 リソースのリージョンと、紙の控えの保管期間も決めておきます
誤りが起きた場合のリスクは、別の口座から引き落とすことと、正しい依頼書を返送して利用者に手間をかけさせることの2つです。 前者は読み取った値をそのまま登録すると起き、後者は信頼度の低い判定で返送すると起きます。どちらも、人の確認をどこに置くかで防ぎます。
10まず何から始めるか
1週目:様式とマスの一覧を作る
受け付けている依頼書の様式を集め、様式ごとに口座番号のマス数、ゆうちょ銀行の記号・番号のマス数、必須の欄を一覧にします。委託先ごとの取り決め(訂正の扱い、名義の扱い)も書き出します。
2週目:50枚で試す
いちばん枚数の多い様式で5枚にラベルを付けてモデルを学習させ、先月の50枚を読ませます。金融機関から返却された10枚を、規則で止められたかを最優先で見ます。 押印欄の検出がどこまで安定するかも、ここで決めます。
3週目:見比べの画面を作る
口座番号と金融機関・支店の切り抜きを、読み取った値と並べて表示する画面を用意します。 二重の入力の担当者に使ってもらい、1枚あたりの時間と、直した件数を数えます。
4週目:受付から確認画面までをつなぐ
Logic Apps で受付用のコンテナーを見張り、読み取りと規則の点検を回し、確認画面に出すところまで作ります。この時点では返送状の下書きは出さず、needs_return と needs_human の件数だけを毎日数えます。
2か月目: 残りの様式のモデルを学習させて合成し、返送状の下書きを足します。3か月目以降: 基幹システムへの書き出しを足し、1枚6分が何分になったかを実測します。金融機関から返却される依頼書の件数を導入前と比べ、事務センターで止められたはずのものが減った時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
カスタム テンプレート モデルがラベル付きのキーと値のペア、選択マーク、テーブル、領域、署名を抽出し、定義されたビジュアル テンプレートを持つ高度に構造化されたドキュメントに向くこと。テンプレートを変更すると精度が低下し、各テンプレートの少なくとも5つのサンプルで学習してモデルを1つのエンドポイントにまとめられること。入力がPDFと画像で、Free レベルはPDFとTIFFの最初の2ページのみ処理すること。画像が50×50から10,000×10,000ピクセル、テキストの最小の高さが1024×768の画像で12ピクセルであること。パスワード付きPDFは提出前に解除が必要なこと。学習の buildMode を template に設定すること | Microsoft Learn: カスタム テンプレート ドキュメント モデル | 2026-10-06 |
カスタム テンプレート モデルの印刷・手書きのテキストの対応言語に日本語(ja)が含まれること | Microsoft Learn: カスタム モデルの言語サポート | 2026-10-06 |
| Logic Apps の Blob Storage マネージド コネクタのトリガー「BLOB が追加または変更されたとき (プロパティのみ)」が、コンテナーのルート フォルダーで起動し、設定時点の既存のBLOBを無視すること。「BLOB コンテンツの取得」で内容を取ること。マネージド コネクタのトリガーがポーリングする仮想フォルダー内で30,000個のBLOBに制限され、超えると新しいBLOBで起動しないことがあること | Microsoft Learn: ワークフローから Azure Blob Storage に接続する | 2026-10-06 |
構造化出力が指定した JSON スキーマに従った応答を返すこと。すべてのフィールドを必須にし、additionalProperties: false を設定すること | Microsoft Learn: Azure OpenAI で構造化出力を使用する方法 | 2026-10-06 |
| ゆうちょ銀行の口座が記号・番号で表され、記号の先頭が1(総合口座・通常貯金・通常貯蓄貯金)か0(振替口座)かで分かれ、番号の桁数によって振込用の店名・預金種目・口座番号への変換方法が異なること。記号と番号の間に1桁の数字がある場合、その数字は振込には使わないこと | ゆうちょ銀行: 記号・番号から振込用の店名・預金種目・口座番号への変換方法 | 2026-10-06 |
届出印の照合、口座の実在の確認、依頼書の受付の要件は、取引のある金融機関の定めに従ってください。 本記事は、製品の公開仕様と金融機関の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0463)についてのご相談はこちらから。
