取引先から届く振込先の変更届を読み取り、支払先マスタと照らして、口座名義の食い違いや押印・連絡先の不一致など、なりすましの疑いを支払の前に拾う
取引先から届く振込先の変更届を読み取り、変更前後の口座・名義・連絡先・押印の有無を支払先マスタと項目ごとに照らします。食い違いのある届出と、その取引先の直近の支払予定を、支払の締めの前に経理へ出します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Document AI
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- その他/商社/建設/製造
- 対象部門
- 経理
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 判断に時間がかかる/属人化している/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 変更届を受け取り、紙はスキャンして保存する
- 担当が支払先マスタを開き、取引先名と取引先コードで取引先を探す
- 届出の住所・代表者・連絡先をマスタと見比べる
- 届出の「変更前の口座」をマスタの口座と見比べる
- 変更後の口座の名義と取引先名、通帳の写しの名義を見比べる
- 気になる点があれば、取引先に電話して確かめる。どの番号にかけるか、そもそもかけるかは担当者が決める
- 上長の承認を受けて支払先マスタを書き換える
- 人郵送の紙をスキャンし、FAXとPDFと同じ受付フォルダに保存する
- 自動Python のプログラムが受付フォルダを確かめ、新しい届出を取り出す
- 自動Google Document AI の Form Parser が、届出の欄のキーと値、通帳の写しの全文、信頼度を返す
- 自動Claude API が、届出と通帳の写しの欄を決まった項目に写し、押印の欄に印影があるかを拾う
- 自動Python が、支払先マスタと項目ごとに照らし、食い違いの印を付ける
- 自動その取引先の直近の支払予定を引き、届出と並べた確認票を作る
- 人担当が確認票を見て、支払先マスタに登録済みの電話番号で取引先に確かめる
- 人確かめの結果を確認票に記録し、上長の承認を受けて支払先マスタを書き換える
各工程の詳しい説明を読む
- 変更届を受け取り、紙はスキャンして保存する
- 担当が支払先マスタを開き、取引先名と取引先コードで取引先を探す
- 届出の住所・代表者・連絡先をマスタと見比べる
- 届出の「変更前の口座」をマスタの口座と見比べる
- 変更後の口座の名義と取引先名、通帳の写しの名義を見比べる
- 気になる点があれば、取引先に電話して確かめる。どの番号にかけるか、そもそもかけるかは担当者が決める
- 上長の承認を受けて支払先マスタを書き換える
(a)見比べる項目が多い。 1件の届出で、取引先の名称・住所・代表者・電話、変更前の口座の5項目、変更後の口座の5項目、通帳の写しの名義と、十数か所を見比べます。1つずつは単純でも、全部を同じ丁寧さで見続けるのは難しい作業です。
(b)確かめの電話が担当者まかせ。 経験のある担当は、名義の小さな違いや見慣れない書式に気づいて電話をかけます。慣れていない担当は、届出に書かれた番号にかけて「確認済み」にしてしまうことがあります。それでは、なりすました本人に確かめていることになります。
(c)確かめが支払に間に合わない。 変更届は、適用の開始日を直近の支払日にして届くことが多くあります。確かめが済まないまま支払の締めが来ると、新しい口座で支払うか、古い口座で支払うかを急いで決めることになります。
(d)名義の表記がそろっていない。 口座の名義は半角カナで、「カ)」「(カ」のような略称が入ります。取引先名の漢字と見比べるには、頭の中で読み替える必要があります。 読み替えのたびに、見落としの機会が生まれます。
- 【人】 郵送の紙をスキャンし、FAXとPDFと同じ受付フォルダに保存する
- 【自動】 Python のプログラムが受付フォルダを確かめ、新しい届出を取り出す
- 【自動】 Google Document AI の Form Parser が、届出の欄のキーと値、通帳の写しの全文、信頼度を返す
- 【自動】 Claude API が、届出と通帳の写しの欄を決まった項目に写し、押印の欄に印影があるかを拾う
- 【自動】 Python が、支払先マスタと項目ごとに照らし、食い違いの印を付ける
- 【自動】 その取引先の直近の支払予定を引き、届出と並べた確認票を作る
- 【人】 担当が確認票を見て、支払先マスタに登録済みの電話番号で取引先に確かめる
- 【人】 確かめの結果を確認票に記録し、上長の承認を受けて支払先マスタを書き換える
7番目は、印が付かなかった届出でも行います。 印の無い届出は、食い違いが見つからなかったというだけで、本物だと確かめられたわけではありません。 電話は全件にかけます。減るのは、電話をかける前の見比べと、電話で何を聞くかを考える時間です。
支払先マスタへの書き込みは、人が行います。 この構成は会計システムに書き込みません。確かめの済んでいない口座が、支払データに入る経路を作らないためです。
02今回想定するシステム構成
振込先の変更届+通帳の写し(郵送・FAX・PDF) │ 郵送の紙は受付でスキャン ▼【トリガー】受付フォルダへの保存 Python ── 届出ごとに取り出し、形式とページを確認 ▼ 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 の注意書きのうち、この題材で効くのは空欄の扱いです。 公式のページでは、値が空のキーと値のペアは確実には読み取れないとされています。「変更前の口座が空欄」は、それ自体が確かめる理由になるので、「空欄」と「読めなかった」を分ける材料を別に持ちます(第7章)。
処理する場所は、リージョンの一覧から選びます。 マルチリージョンの us と eu、シンガポール(asia-southeast1)などの単一リージョンがあり、日本のリージョンはありません。 変更届には取引先の口座番号が書かれているので、自社の情報管理の決まりに照らして、国外で処理してよいかを導入前に決めます(第13章)。
03どうやって実装するのか
処理の起点を決める
受付フォルダに届出が保存されたことを起点にします。 Python のプログラムを数分おきに動かし、新しいファイルを探します。変更届は1件ずつ処理し、支払の締めの前にまとめて処理する形にはしません。届いた日に確認票ができていれば、確かめの電話に使える日が増えます。
FAXとPDFは、受け取った経路をファイル名に入れて保存します。 メールで届いたPDFは、送ってきたメールアドレスも記録しておきます。 送信元のアドレスがマスタの取引先の担当者と違うことも、確かめの材料になります。
支払の締めの3営業日前からは、未処理の届出を1時間ごとに数えて担当に知らせます。 締めの直前に届いた届出が、確かめが済まないまま埋もれないようにします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 変更届と通帳の写し | PDF。受付日、経路、メールの送信元 | 受付フォルダ |
| 読み取り結果 | 欄のキーと値、全文、信頼度 | Google Document AI |
| 支払先マスタ | 取引先コード、名称、名称のカナ、住所、代表者、電話、口座の一式、登録日 | 会計システムから書き出したファイル |
| 支払予定 | 取引先ごとの直近の支払日と金額 | 会計システムから書き出したファイル |
| 過去の変更の履歴 | 取引先ごとの口座の変更日と、確かめた担当 | 確認票の記録 |
質を決めるのは、支払先マスタの電話番号です。 確かめの電話は、マスタに登録済みの番号にかけます。この番号が古いと、確かめそのものができません。 マスタの電話番号の最終の確認日も、あわせて書き出します。
過去の変更の履歴は、短い間隔での変更を拾うために使います。 数か月前に変わったばかりの口座が、また変わるという届出は、正当な理由があることもありますが、確かめる理由になります。
データの取得方法を決める
読み取りは、Python から Form Parser のプロセッサを呼ぶだけです。オンラインの処理は1回の要求で最大15ページなので、変更届と通帳の写しは1回で足ります。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 届出の欄 | 各ページの formFields(fieldName/fieldValue) | 取引先、変更前後の口座、名義、連絡先、適用の開始日 |
| 預金の種別の印 | fieldValue の valueType(filled_checkbox/unfilled_checkbox) | 普通・当座の別 |
| 全文 | 応答の text | 通帳の写しの名義と口座番号、欄として取れなかった値 |
| 信頼度 | 各要素の layout の confidence | 口座番号の読めない桁の見分け |
| 位置 | layout の boundingPoly | 確認票で、届出の写しの該当欄を示す |
空欄の見分けは、キーと値のペアだけに頼りません。 「変更前の口座番号」という項目名があって値が取れないとき、全文の中で項目名の近くに数字が検出されているかを見ます。何も検出されていなければ空欄、検出されていて信頼度が低ければ読めない欄です。
支払先マスタは、口座番号と取引先コードを文字列のまま読みます。 先頭のゼロを落とすと、照合が合わなくなります。
AIへ渡す前に整形する
- 形式の確認 … PDFか画像であることを確かめます。複合機の保存はPDFにします
- ページの分け方の確認 … 変更届のページと通帳の写しのページを分けます
- 送り状の除外 … FAXの送り状は読み取りの対象から外します
- 名義の正規化の準備 … マスタの名称のカナを、全角・半角、法人の略称(「カ)」「(カ」など)をそろえた形にしておきます
- 重複の確認 … 同じ取引先の届出が短い間隔で2通あれば、両方を担当に回します
4番目は、AIではなく Python で行います。 名義の略称の付け方には決まった形があるので、規則で書けるものは規則で書きます。 AIに読み替えさせると、「似ている」を「同じ」として扱うことになります。
5番目は、なりすましの届出の後に本物の取引先から問い合わせが来る、という順にも備えるためです。 2通が並ぶと、どちらかが本物でないことがすぐに分かります。
AIに処理させる
させるのは、届出と通帳の写しの欄を、決まった項目に書かれたとおりに写すことと、押印の欄に印影があるかを拾うことです。 マスタとの照合は、Python の規則で行います。
| させること | 中身 | 判断できないときの扱い |
|---|---|---|
| 取引先の写し | 名称、住所、代表者、取引先コード、担当者、電話、メール | 空欄なら blank、読めなければ unreadable |
| 変更前の口座の写し | 銀行、支店、種別、口座番号、名義(カナ) | 同上 |
| 変更後の口座の写し | 銀行、支店、種別、口座番号、名義(カナ) | 同上 |
| 通帳の写しの写し | 銀行、支店、口座番号、名義 | 通帳の写しが無ければ absent |
| 押印の欄 | 印影があるか | 判断できなければ unclear |
| 届出の日付と適用の開始日 | 書かれたとおり | 読めなければ unreadable |
| 書式の別 | 自社の様式か、別の書式か | 判断できなければ unclear |
押印は「あるかどうか」だけを拾います。 届出印が登録の印と同じかどうかは、画像の見た目で判断できることではありません。 印影の比べ合わせは、担当が過去の届出の原本と並べて行います。
| させないこと | 理由 |
|---|---|
| 届出が本物かどうかの判断 | 確かめの電話で人が決める |
| 名義と取引先名が「同じ」かの判断 | Python の正規化と完全一致で見る。似ているは同じではない |
| 口座番号の補正 | 読めない桁を推測すると、照合が意味を失う |
| 届出の電話番号を確かめの連絡先として出すこと | 確かめにはマスタの番号を使う |
| 支払を止めるかどうかの判断 | 担当と上長が決める |
4行目を、AIにさせないことの表にわざわざ書いています。 確認票を作るときに、届出の電話番号が「連絡先」として目立つ場所に出ると、担当はその番号にかけてしまいます。 確認票の連絡先の欄には、マスタの番号だけを出します。 届出の番号は照合の結果の欄に、食い違いとして出します。
指示内容を固定する
あなたは経理部で、取引先から届いた振込先の変更届と通帳の写しの
読み取り結果を、決まった項目に写す立場です。OCRが返した結果だけを見て、
書かれていることを写してください。推測で埋めないでください。
【写す項目】
取引先:vendor_name、vendor_code、address、representative、
contact_person、phone、email
変更前の口座:old_bank、old_branch、old_type、old_number、old_holder_kana
変更後の口座:new_bank、new_branch、new_type、new_number、new_holder_kana
通帳の写し:passbook_bank、passbook_branch、passbook_number、passbook_holder
その他:filed_date(届出日)、effective_date(適用の開始日)、
seal(届出印の欄の印影の有無)、form_type(自社の様式か)
【厳守事項】
- 口座番号・電話番号は書かれたとおりの文字列で写してください。
桁を補う、読めない桁をそれらしい数字にする、ということをしないでください。
- 名義は書かれたとおりに写してください。漢字に直したり、
略称を補ったりしないでください。
- 欄が空欄なら status を blank、文字はあるが読めなければ unreadable に
してください。空欄と読めない欄を混ぜないでください。
- 通帳の写しが無ければ、通帳の項目の status を absent にしてください。
- 届出印の欄は、印影があれば present、無ければ absent、
判断できなければ unclear にしてください。印が正しいかは判断しないでください。
- 届出が本物か、怪しいか、支払ってよいかは書かないでください。
- 変更届でない書類と判断した場合は、document_type に種類を書いてください。
【読み取り結果】{ocr_result}
AIに支払先マスタを渡していないことが、このプロンプトのいちばんの工夫です。 マスタを見せると、読めない桁をマスタの番号に合わせて写します。変更前の口座がマスタと合うかどうかは、この構成でいちばん大事な照合の1つです。 照らす相手を見せなければ、合わせることもできません。
「怪しいかを書かない」と明記しているのは、AIの見立てが担当の判断に影響するためです。 「問題なさそうです」と書かれた確認票を見ると、電話で聞く中身が浅くなります。
出力形式を固定する
次の形のJSONで受け取ります。 Claude API の構造化出力(output_config.format に JSON スキーマを渡す方式)を使い、形を固定します。
{
"document_type": "payee_change_form",
"form_type": "own | other | unclear",
"seal": "present | absent | unclear",
"fields": [
{ "item": "vendor_name | vendor_code | address | representative | phone | email | old_bank | old_branch | old_type | old_number | old_holder_kana | new_bank | new_branch | new_type | new_number | new_holder_kana | filed_date | effective_date",
"value": "", "status": "read | blank | unreadable" }
],
"passbook": {
"status": "read | absent | unreadable",
"bank": "", "branch": "", "number": "", "holder": ""
}
}
1つ目の理由は、項目ごとに status を持てることです。 変更前の口座が blank なのか unreadable なのかで、確かめの電話で聞く中身が変わります。
2つ目は、照合を Python の規則で持てることです。
| 条件 | 扱い |
|---|---|
| 取引先がマスタで特定できない | vendor_unknown |
変更前の口座がマスタの口座と違う、または blank | old_account_mismatch |
| 変更後の名義(正規化後)がマスタの名称のカナと違う | holder_mismatch |
| 通帳の写しの名義・口座番号が、変更後の口座と違う | passbook_mismatch |
| 通帳の写しが無い | passbook_absent |
| 届出の電話番号・住所・代表者がマスタと違う | contact_mismatch |
届出印の欄が absent または unclear | seal_check |
| 自社の様式でない | other_form |
| 前回の口座の変更から短い期間での変更 | recent_change |
| 適用の開始日が直近の支払日より前、または近い | payment_due |
payment_due は、他の印と組み合わせて並べ方を決めます。 適用の開始日が近く、old_account_mismatch や contact_mismatch も付いている届出を、確認票の一覧の一番上に出します。 確かめに使える時間が少ないものから見ます。
contact_mismatch を「疑いの印」と呼ばないのは、正当な移転もあるからです。 本社が移転して届出の住所が新しい、というのはよくあることです。印は事実を示すだけで、意味づけは確かめの電話の後に担当が行います。
公式のページでは、列挙の値の大文字・小文字までは保証されないとされているので、status などは Python で小文字にそろえてから使います。stop_reason が max_tokens のときは出力が途中で切れているので、確認票に載せずに呼び直します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ | Python で数分おきに確認 | 新しい届出を取り出す |
| Google Document AI | API呼び出し | 欄、全文、信頼度 |
| Claude API | API呼び出し | 届出と通帳の写しの欄を項目に写す |
| 支払先マスタ・支払予定 | 書き出したファイルの読み込み | 照合と、直近の支払日・金額の引き当て |
| 確認票 | 経理部の共有フォルダの表 | 印、照合の結果、支払予定、確かめの記録の欄 |
会計システムには書き込みません。 支払先マスタの書き換えは、確かめと上長の承認の後に、担当が会計システムの画面で行います。この構成から書き込めるようにすると、確かめを飛ばす近道ができてしまいます。
確認票は、確かめの記録を兼ねます。 確かめた日時、かけた番号(マスタの番号であること)、話した相手、確かめた内容、上長の承認の欄を持たせます。
人が確認する
担当は、全件について確認票を見て、マスタに登録済みの電話番号で取引先に確かめます。 印の有無で変わるのは、電話で聞く中身と、確かめの順番です。
payment_dueの付いたものから見る … 支払日までに確かめが済むよう、先に電話します- 印の付いた項目を、電話で具体的に聞く … 「変更前の口座の番号の末尾を教えてください」のように、届出に書かれていない情報で確かめます
seal_checkは原本と過去の届出を並べる … 届出印の印影を担当が見比べます- 確かめが済まないものは、支払を保留するかを上長と決める … 古い口座で支払うか、支払そのものを待つかは、取引先に確かめたうえで決めます
- 確認票に記録し、上長の承認を受けてマスタを書き換える
2番目の聞き方が、確かめの質を決めます。 「変更届を出されましたか」と聞くだけでは、なりすましの相手に確かめていても「はい」と返ってきます。マスタの番号にかけ、届出に書かれていないことを聞くのが基本です。
目標は、120件をならして1件6分です。 電話の時間は含みません。見比べと記録の時間が減り、電話で何を聞くかが確認票に並んでいる状態を目指します。
例外に対処する
| 起きること | 対応 |
|---|---|
| 取引先がマスタで見つからない | vendor_unknown。社名変更・合併を担当が確かめる |
| 口座番号の桁が読めない | unreadable。原本で確かめ、推測しない |
| 通帳の写しが添付されていない | passbook_absent。取引先に送ってもらう |
| 自社の様式でない | other_form。項目がそろっていれば照合する。足りなければ様式での再提出を頼む |
| 同じ取引先の届出が2通届く | 両方を担当へ。どちらかを自動で無効にしない |
| マスタの電話番号が古い | 確かめができない。別の登録済みの連絡先を使い、マスタの更新は別に確かめる |
| OCR・AIが応答しない | ファイルを受付フォルダに残す。締めが近ければ従来の目視で確かめる |
6行目は、この構成の弱点です。 マスタの電話番号が古いと、確かめの電話がかけられません。届出の番号を代わりに使うことはしません。 営業の担当が持つ名刺や過去の取引の書類など、登録済みの別の連絡先を使います。
記録を残す
- 元の変更届と通帳の写し、受付日、経路、メールの送信元
- OCRが返したJSONの全文と、Claude API の応答の全文
- 照合に使った支払先マスタと支払予定の書き出し日時
- 確認票の内容と、確かめた日時・かけた番号・話した相手・聞いた内容・上長の承認
- 支払先マスタを書き換えた日時と担当
- 確かめの結果、届出が本物でなかった件数と、そのとき付いていた印
4つ目が、この構成で最も大事な記録です。 後から支払の誤りが分かったとき、どの届出を、誰が、どの番号に電話して、何を確かめたかをたどれる必要があります。
最後の行は、規則を見直す材料になります。 本物でなかった届出に、どの印が付いていたかを数えておくと、確認票の並べ方を見直す根拠になります。
04実装レベルの3段階
最小構成は確かめるための段階です。 1件ずつ貼り付けるので、月120件には使えません。 半自動化で、1件20分が12分程度になります。 届出とマスタが同じ表に並ぶので見比べは速くなりますが、名義の読み替えと、どこが違うかを探す作業は残ります。 本格構成で6分になり、この段階が本記事の想定です。 差が大きいのは、名義の正規化と項目ごとの照合が規則に移り、確認票に「何を聞くか」が並ぶためです。 段階を飛ばさないでください。 半自動化の表を1か月見ると、名義の略称のどの書き方で正規化が外れるかが分かります。そこを規則に足してから holder_mismatch の印を出すほうが、空振りの印に担当が慣れてしまうことを防げます。
05工数削減シミュレーション
導入後 120件 × 6分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 仕入先・外注先・協力会社が数百〜数千社あり、振込先の変更届が紙・FAX・PDFで毎月数十件以上届く会社。届出の中身を支払先マスタと目で見比べ、確かめの電話をかけるかどうかが担当者の経験で決まっている場合。変更届の受付と支払の締めが近く、確かめが済まないまま新しい口座に支払ってしまう恐れがある場合。
- 振込先の変更を取引先向けのWebの画面だけで受け付け、ログインと多要素認証で本人を確かめている場合。変更届が月に数件で、担当者が全件に電話して足りる場合。口座情報を国外のリージョンで処理することを、自社の情報管理の決まりで認められない場合。なお、届出が本物かどうかの判断と、支払を止めるかどうかの判断は、この構成では代替できません。
07最小構成で試す方法
- 過去の変更届から20件を選ぶ(社名変更・合併によるもの、通帳の写しが無かったもの、手書きのものを必ず入れる)
- その20件について、当時の支払先マスタの内容と、確かめの記録を用意する
- 変更届のPDFを、自社の決まりで認められた環境のAIサービスの画面に1件ずつ貼り付ける
- 「この振込先の変更届と通帳の写しから、取引先の名称・住所・電話、変更前と変更後の銀行・支店・種別・口座番号・名義、通帳の名義を、書かれたとおりに写してください。読めない桁を補わないでください。空欄と読めない欄を分けてください。届出が本物かどうかは書かないでください」と指示する
- 写された値を当時のマスタと手で照らし、当時の確かめの記録と比べる
変更届は取引先の口座情報を含むため、自社の情報管理の決まりで認められた環境でだけ扱ってください。
| 出てきた内容 | 判断 |
|---|---|
| 当時の確かめと同じ食い違いが見つかった | OCRとプログラムの連携に進む |
| 読めない桁をそれらしく補った | 指示の書き方で直る。構成は有効 |
| 名義を漢字に直して写した | 指示を直す。名義は書かれたとおりに |
| 「問題なさそう」と書き添えた | 指示を直す。見立てを書かせない |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 確認票の連絡先に届出の番号が出る | 連絡先の欄はマスタの番号だけ。 届出の番号は食い違いの欄へ |
| 読めない桁をマスタに合わせて写す | マスタをAIに見せない |
| 名義の「似ている」を「同じ」にする | 正規化は Python の規則、照合は完全一致 |
| 印が無い届出を電話せずに通す | 電話は全件。 印は聞く中身と順番を決めるもの |
| AIが「問題なさそう」と書き添える | 見立てを書かせない |
| マスタの電話番号が古い | 届出の番号を使わず、登録済みの別の連絡先で確かめる |
| 空欄と読めない欄が混ざる | 値が空のキーと値は確実に読めない。全文と信頼度で分ける |
| 支払の締め直前の届出が埋もれる | 締めの前は未処理の件数を知らせる |
| 国外での処理を確かめていない | 日本のリージョンが無い。決まりの確認を先に |
上の2行が、この構成の失敗のほとんどです。 どちらも、確かめが「なりすました相手に確かめる」形に戻ってしまうという同じ型の失敗です。
4行目も同じくらい大事です。 印の無い届出を通すようになると、印を避けて書かれた届出がそのまま通ります。 なりすましをする側は、変更前の口座も名義も正しく書いてくることがあります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 取引先の名称・住所・代表者・電話、変更前と変更後の口座番号と名義、通帳の写しです。漏れれば、それ自体がなりすましの材料になります。
- 国外で処理することを決まりに照らして決める … Document AI のリージョンの一覧に日本はありません。取引先の口座情報を国外のリージョンで処理してよいかを、自社の情報管理の決まりで確かめます。認められない場合は、日本のリージョンで処理できる製品を検討します
- 外部へ渡す範囲を絞る … AIに渡すのは届出の読み取り結果だけです。支払先マスタや支払予定はAIに渡さず、照合は社内の Python で行います
- マスタを自動で書き換えない … 確かめと上長の承認の後に、人が書き換えます
- 確かめにはマスタの連絡先を使う … 警察庁は、メールに書かれた電話番号は偽装されている可能性があるとし、名刺やアドレス帳に登録された連絡先を使うよう示しています。IPAも、振込先や決済手段が急に変わった場合はメール以外の手段で取引先に確かめることと、電信送金に関する社内規程の整備を対策に挙げています
- 確認票の共有範囲を絞る … 口座番号が並ぶ表です。経理の担当と上長だけが見られるようにします
- 元の届出を残す … 届出印の比べ合わせと後の調べの拠り所です
送金してしまったと気づいたときの手順も、あらかじめ決めておきます。 警察庁は、攻撃者の口座に送金してしまったら、すぐに送金元の銀行へ「送金のキャンセル」または「組戻し」を依頼するよう示しています。確認票の記録から、どの支払が該当するかをすぐ引けるようにしておきます。
10まず何から始めるか
1週目:支払先マスタの電話番号を確かめる
取引の多い上位の取引先から、マスタの電話番号が今も使えるかを確かめます。確かめの電話の拠り所なので、ここが最初です。
2週目:確かめの手順を規程にする
マスタの番号にかけること、届出に書かれていないことを聞くこと、全件にかけることを、経理の規程に書きます。この構成は、その規程を回すための道具です。
3週目:20件で試す
認められた環境のAIサービスで、過去の変更届20件の欄を写させます。読めない桁を補っていないか、名義を言い換えていないかを最優先で見ます。
4週目:フォルダから確認票までをつなぐ
Python で受付フォルダを確かめ、OCRを呼び、写した値をマスタと並べた表を作るところまで作ります。この時点では印を出さず、担当がこれまでどおり見比べながら、表の値が合っているかを見ます。
2か月目: 照合の規則と支払予定の引き当てを足し、確認票の運用を始めます。3か月目以降: 1件20分が何分になったかを実測します。全件の確かめがマスタの番号で行われ、その記録が確認票に残るようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| ビジネスメール詐欺で攻撃者が取引先などになりすまして振込先口座の変更を指示し、多くは海外の口座を指定すること。一度海外へ送金されると回収はきわめて困難なこと。メール以外の方法で確かめ、メールに書かれた電話番号ではなく名刺やアドレス帳に登録された連絡先を使うこと。送金してしまったら送金元の銀行へ送金のキャンセルまたは組戻しを依頼すること | 警察庁: ビジネスメール詐欺に注意! | 2026-10-08 |
| 対策として、電信送金に関する社内規程の整備、振込先や決済手段が急に変わった場合のメール以外の手段での確認が挙げられていること | IPA: ビジネスメール詐欺の対策について知る | 2026-10-08 |
Form Parser がOCRのテキストに加えてキーと値のペア、チェックボックス、表を抽出すること。言語の一覧で日本語(ja)が手書きに対応する言語として示されていること。オンラインの処理が1回の要求で最大15ページであること | 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 |
マルチリージョンが 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 |
届出が本物かどうか、支払を保留するかどうか、口座情報を外部のサービスで処理してよいかは、自社の経理の規程と情報管理の決まりに沿って、経理部と上長が決めてください。 本記事は警察庁・IPAのページと各製品の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1055)についてのご相談はこちらから。
