海外子会社から毎月届く英文の債権債務の残高確認書を読み取り、相手先ごとの残高を自社の帳簿と照らして、連結の消去の前に差異と理由の候補を拾う
海外子会社から毎月届く英文の残高確認書を読み取り、相手先・通貨ごとの債権債務の残高を自社の帳簿と照らします。差異を未着の商品・送金の行き違い・計上の時期のずれなどの理由の候補に分け、連結の消去の前に担当者へ回します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- 商社/物流/製造
- 対象部門
- 経理
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- データ分析に時間がかかる/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 判断支援/対応スピード向上/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 子会社から届いた残高確認書のPDFを、月と子会社ごとのフォルダに保存する
- 残高確認書を開き、相手先・通貨・科目ごとの残高を表計算のファイルへ写す
- 親会社の会計の仕組みから、同じ相手先・通貨のグループ会社間の勘定の残高と未決済の請求書を書き出す
- 残高の差を出し、差のある相手先について未決済の請求書を1件ずつ見比べる
- 片側にしか無い請求書について、出荷の記録で未着の商品か、送金の記録で行き違いかを調べる
- 説明できない差異を、子会社の経理へ英文のメールで照会する
- 回答を待って、差異の一覧と調整の案を連結の担当にまとめる
- 人子会社から届いた残高確認書のPDFを、子会社と月ごとの受け取りの場所(Amazon S3)に保存する
- 自動保存をきっかけに、AWS Textract が表と問い合わせ(基準日・相手先・合計)の読み取りを非同期で始める
- 自動プログラムが表をセルから組み立て、列の見出しと科目の名前を子会社ごとの設定と照らす
- 自動設定に無い見出しや科目があれば、Claude API が自社の勘定への対応づけの案を出し、担当者の承認を待つ
- 自動プログラムが、相手先・取引の通貨・科目ごとの残高を帳簿と照らし、未決済の請求書を請求書番号で突き合わせる
- 自動プログラムが、片側にしか無い請求書を出荷の記録と送金の記録に当て、未着の商品・送金の行き違い・計上の時期のずれに分ける
- 自動Claude API が残高確認書の備考の英文を理由の区分に分け、原因不明の差異について子会社への照会の英文の下書きを作る
- 人経理の担当者が、原因不明の差異と理由の候補の根拠を確かめ、照会を直して送る
- 人回答を受けて差異の一覧を確定し、連結の担当に回す
各工程の詳しい説明を読む
- 子会社から届いた残高確認書のPDFを、月と子会社ごとのフォルダに保存する
- 残高確認書を開き、相手先・通貨・科目ごとの残高を表計算のファイルへ写す
- 親会社の会計の仕組みから、同じ相手先・通貨のグループ会社間の勘定の残高と未決済の請求書を書き出す
- 残高の差を出し、差のある相手先について未決済の請求書を1件ずつ見比べる
- 片側にしか無い請求書について、出荷の記録で未着の商品か、送金の記録で行き違いかを調べる
- 説明できない差異を、子会社の経理へ英文のメールで照会する
- 回答を待って、差異の一覧と調整の案を連結の担当にまとめる
(a)写すだけで時間がかかる。 未決済の請求書が多い販売子会社の残高確認書は、数十行の請求書が並び、写し間違いが差異として現れます。
(b)通貨の扱いがそろわない。 子会社は現地の通貨で帳簿をつけ、親会社は取引の通貨で持っています。残高確認書の「換算後の金額」で比べると、換算のレートの違いが差異に見えます。 取引の通貨の金額で比べないと、本当の差異が埋もれます。
(c)差異の理由を探すのに時間がかかる。 片側にしか無い請求書を見つけても、それが未着の商品か、計上の漏れかは、出荷の記録と送金の記録を別々に開いて調べるまで分かりません。
(d)照会が漏れる・遅れる。 締めの直前に差異が見つかると、子会社との時差もあって回答が締めに間に合いません。照会したかどうかの記録が担当者のメールの中にしか無く、前月の照会の回答待ちが漏れることもあります。
- 【人】 子会社から届いた残高確認書のPDFを、子会社と月ごとの受け取りの場所(Amazon S3)に保存する
- 【自動】 保存をきっかけに、AWS Textract が表と問い合わせ(基準日・相手先・合計)の読み取りを非同期で始める
- 【自動】 プログラムが表をセルから組み立て、列の見出しと科目の名前を子会社ごとの設定と照らす
- 【自動】 設定に無い見出しや科目があれば、Claude API が自社の勘定への対応づけの案を出し、担当者の承認を待つ
- 【自動】 プログラムが、相手先・取引の通貨・科目ごとの残高を帳簿と照らし、未決済の請求書を請求書番号で突き合わせる
- 【自動】 プログラムが、片側にしか無い請求書を出荷の記録と送金の記録に当て、未着の商品・送金の行き違い・計上の時期のずれに分ける
- 【自動】 Claude API が残高確認書の備考の英文を理由の区分に分け、原因不明の差異について子会社への照会の英文の下書きを作る
- 【人】 経理の担当者が、原因不明の差異と理由の候補の根拠を確かめ、照会を直して送る
- 【人】 回答を受けて差異の一覧を確定し、連結の担当に回す
6番目が、この設計の分かれ目です。 未着の商品は「親会社が月末前に出荷し、子会社の受け取りが翌月」の記録で、送金の行き違いは「子会社が月末前に送金し、親会社の入金が翌月」の記録で決まります。どちらも記録と日付で機械的に決められるので、人は規則で説明できなかった差異だけを見ます。
5番目で取引の通貨で比べるのも、意図してのことです。 換算後の金額で比べると、子会社と親会社の換算のレートの違いだけで差異が出ます。取引の通貨の金額を正にし、換算後の金額は参考として持ちます。
02今回想定するシステム構成
残高確認書(英文のPDF。子会社15社・相手先ごと) │ 担当者が子会社と月ごとの場所へ保存 ▼【トリガー】Amazon S3 への保存 AWS Lambda ── StartDocumentAnalysis(FeatureTypes:TABLES、QUERIES) ▼ AWS Textract(非同期の文書分析)── 完了の通知(Amazon SNS) ▼ AWS Lambda ── GetDocumentAnalysis(NextToken でページを送る) ├──▶ Python:表の組み立て、見出しと科目の名前の照合 ├──▶ Claude API:設定に無い見出し・科目の対応づけの案(承認待ち) ├──▶ Python:取引の通貨での残高の照合、請求書番号での突き合わせ ├──▶ Python:出荷・送金の記録で理由の候補を付ける └──▶ Claude API:備考の区分、照会の英文の下書き ▼ 差異と理由の候補の一覧(経理の担当者が確認) ▼ 子会社への照会(担当者が送る)/連結の担当へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(StartDocumentAnalysis/GetDocumentAnalysis。TABLES と QUERIES) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(見出しと科目の対応づけの案、備考の区分、照会の英文の下書き) | OpenAI API、Gemini API |
| 差異計算 | Python(取引の通貨での照合、請求書番号の突き合わせ、理由の候補付け) | 連結の仕組みのグループ会社間の照合の機能 |
| 連携 | AWS Lambda(保存と完了の通知を起点に処理を動かす) | AWS Step Functions |
| 保管 | Amazon S3(残高確認書の原本、読み取り結果、照合の結果、確認の記録) | 社内のファイルサーバー |
土台は、AWS Textract の非同期の文書分析です。 未決済の請求書の一覧が数ページに及ぶ残高確認書があるので、同期の処理(PDFは1ページまで)ではなく、非同期の StartDocumentAnalysis を使います。 非同期ではPDFが500MBと3,000ページまでとされています。
Textract を選べるのは、残高確認書が英文だからです。 公式の対応言語は英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語です。表の読み取りでは、列の見出しや合計のセルに種類が付いて返るので、科目ごとの合計を取り出して照らす処理を組みやすくなります。
親会社の会計の仕組みにも連結の仕組みにも書き込みません。 差異の一覧を見て、どちらの帳簿を直すかを決めるのは担当者です。
03どうやって実装するのか
処理の起点を決める
子会社と月ごとの受け取りの場所(S3 のフォルダ)にPDFが保存されたことを起点にします。 フォルダは ic/<対象月>/<子会社の記号>/<相手先の記号>/ の形にし、どの子会社のどの相手先との残高確認書かを、保存した場所で決めます。 残高確認書の中の会社名を読み取って決めると、似た名前のグループ会社と取り違えます。
読み取りを始めるとき、ClientRequestToken に「対象月+子会社の記号+相手先の記号+版」を入れます。 公式のページでは、同じトークンで StartDocumentAnalysis を呼ぶと同じ JobId が返り、同じジョブを誤って二度始めるのを防げるとされています。子会社が訂正版を送ってきたら版を上げます。
完了は Amazon SNS の通知で受け、JobTag に入れた子会社と相手先の記号で、どの残高確認書かを知ります。 JobId は7日間だけ有効なので、結果は受け取ったその場で S3 に保存します。
照合は、親会社の帳簿の月次の締めの印が付いてから始めます。 親会社の側の計上が終わっていないうちに照らすと、自社の計上待ちが差異として出て、子会社への照会が空振りになります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 残高確認書 | 基準日、相手先、通貨ごとの科目別の残高(売掛金・買掛金・貸付金・未収利息・未払の手数料)、未決済の請求書の一覧、備考、換算後の金額 | 子会社から届くPDF |
| 読み取り結果 | 表・セル・列の見出し・合計の行、問い合わせの答え、各セルの信頼度 | AWS Textract |
| 子会社ごとの設定 | 列の見出しと自社の項目の対応、科目の名前と自社の勘定の対応、数の桁区切り、日付の順 | 自社で用意する設定表 |
| 親会社の帳簿 | 相手先コード・通貨ごとのグループ会社間の勘定の残高、未決済の請求書(番号・日付・金額) | 親会社の会計の仕組みから書き出す |
| 出荷の記録 | グループ会社向けの出荷の日、請求書番号、着荷の予定日 | 販売の仕組みから書き出す |
| 送金の記録 | グループ会社との送金と入金の日、金額、通貨、参照番号 | 資金の記録から書き出す |
| 前月の照会の記録 | 照会した差異、回答、未回答のもの | この構成の保存の場所 |
質を決めるのは、請求書番号がそろっているかです。 親会社の請求書番号を子会社がそのまま帳簿に入れていれば、請求書の単位で突き合わせられます。子会社が自分の伝票番号しか持っていないと、金額と日付で照らすしかなくなり、同じ金額の請求書が並ぶと決められません。 最初の準備は、子会社に請求書番号を残高確認書に載せてもらうことです。
前月の照会の記録も入力にします。 前月に照会して回答が無い差異が今月も残っていれば、それ自体を照会の催促として拾います。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 表とセル | GetDocumentAnalysis の TABLE と CELL のブロック | 科目別の残高と未決済の請求書の行 |
| 列の見出し | EntityTypes が COLUMN_HEADER のセル | 子会社の設定の見出しと照らす |
| 合計の行 | EntityTypes が TABLE_SUMMARY のセル、または TABLE_FOOTER | 請求書の行の合計と科目の残高を照らす |
| 通貨の区切り | EntityTypes が TABLE_SECTION_TITLE のセル | 通貨ごとに表が分かれている残高確認書の区切り |
| 基準日・相手先・合計 | QUERIES の QUERY_RESULT | 保存した場所の月と相手先との照合 |
| セルの信頼度 | CELL と WORD の Confidence | 低いセルを人に回す |
表は、CELL のブロックの RowIndex と ColumnIndex で組み立てます。 公式のページでは、表は TABLE のブロックとして返り、各セルは CELL のブロックで表の中の位置の情報を持つとされています。結合されたセルは MERGED_CELL で示されます。
結果は1回に最大1,000ブロックずつ返ります。 NextToken が返る限り呼び続け、全ページ分をそろえてから表を組み立てます。 途中で組み立てると、ページの境目で請求書の行が落ちます。
基準日と相手先は、問い合わせで取ります。 問い合わせは英語の文書でだけ使え、非同期では1ページあたり30件までです。答えが見つからなければ空のまま返るので、基準日の書かれていない残高確認書を見分けられます。
| 問い合わせ(Text) | Alias |
|---|---|
| What is the balance confirmation date or as-of date? | AS_OF_DATE |
| Who is the counterparty company? | COUNTERPARTY |
| What is the total balance due? | TOTAL_BALANCE |
| What is the reporting currency? | CURRENCY |
AIへ渡す前に整形する
- 形式の確認 … JPEG、PNG、PDF、TIFF のどれかであることを確かめます。XFA の形式のPDFは扱えないとされています
- パスワードの確認 … パスワードで保護されたPDFは扱えません。 子会社に解除して送り直してもらいます
- 基準日の確かめ … 問い合わせで取った基準日が、保存した場所の対象月の末日と合うかを確かめます
- ページをまたぐ表の連結 … 見出しが同じなら1つの表として続け、繰り返しの見出しの行は落とします
- 数の整え … 子会社ごとの設定で桁区切りと小数点を読み替え、括弧付きの金額を負の数に直します
- 請求書番号の整え … 前後の空白、記号、先頭のゼロをそろえ、親会社の請求書番号の形に合うかを確かめます
- 合計の照合 … 請求書の行を通貨ごとに足し、科目の残高と比べます
6番目を軽く見ないでください。 子会社の帳簿では「INV-0012345」が「12345」や「INV12345」になっていることがあり、そろえないと同じ請求書が片側ずつにしか無いように見えます。
AIに処理させる
させるのは、言葉を扱う3つの仕事だけです。 数の読み取りは Textract、照合と理由の候補付けはプログラムが行います。
| させること | 中身 | できないときの扱い |
|---|---|---|
| 見出しと科目の対応づけの案 | 設定に無いときだけ、残高確認書の見出しと科目の名前を自社の項目と勘定に対応づける案を出す | 決められないものは「対応なし」 |
| 備考の区分 | 子会社が書いた備考の英文を、in_transit_goods/payment_in_transit/timing/dispute/fx/other に分ける | 当たらなければ other と原文 |
| 照会の下書き | 原因不明の差異と回答待ちの差異ごとに、請求書番号・金額・根拠を並べた英文のメール | 理由の候補が無いものは事実だけを書く |
2行目は、プログラムの理由の候補を補う手がかりです。 子会社が「Goods in transit, received on 3 Oct」と書いていれば、出荷の記録と照らす前に見当が付きます。ただし、備考の区分だけで理由を確定させず、記録で裏付けが取れたものだけを理由の候補にします。
| させないこと | 理由 |
|---|---|
| 金額の読み替えと差の計算 | 桁区切りを推し量ると桁がずれる |
| 理由の確定 | 出荷・送金の記録と日付で決める |
| どちらの帳簿を直すかの判断 | 経理の責任者が記録を見て決める |
| 換算のレートの判断 | 適用するレートはグループの方針で決まる |
| 連結の消去の仕訳の作成 | 差異が残ったまま仕訳を作ると、誤りが連結に入る |
3行目を外すのは、差異の多くが自社の側の計上の遅れから出るからです。 AIに「どちらが誤りか」と聞くと、もっともらしく子会社の誤りと答えることがあります。照会は、確認をお願いする形に限ります。
指示内容を固定する
備考の区分の指示です。
あなたは商社の経理部で、海外子会社から届いたグループ会社間の残高確認書の
備考を、差異の理由の区分に分ける担当者を手伝います。渡された備考の一覧だけを見てください。
【区分】
in_transit_goods(未着の商品)/payment_in_transit(送金の行き違い)/
timing(計上の時期のずれ)/dispute(請求の内容の争い)/fx(換算の違い)/other
【厳守事項】
- 備考の言葉だけで判断してください。金額の大きさから推し量らないでください。
- 備考の原文を raw にそのまま残してください。
- 日付や請求書番号が書かれていれば、そのまま dates と invoice_refs に写してください。
- 2つの区分に当たりうる備考は other とし、note に理由を書いてください。
- どちらの会社の誤りかを書かないでください。
照会の英文の下書きの指示です。
あなたは商社の経理部で、海外子会社の経理担当へのグループ会社間の残高の照会を
英文で下書きする担当者を手伝います。渡された差異の一覧と根拠だけを見てください。
【書き方】
- 差異ごとに、請求書番号、通貨、自社の帳簿の金額、残高確認書の金額、根拠
(出荷の日、送金の参照番号、残高確認書のページ)を並べてください。
- 数は渡された値をそのまま書いてください。足したり引いたりしないでください。
- どちらの誤りかを書かないでください。確認をお願いする形にしてください。
- 前月から回答待ちのものは、前月の照会の日付を添えて、分けて書いてください。
- 回答の希望日は、渡された日付だけを書いてください。
日付と請求書番号を写させるのは、プログラムで記録と照らすためです。 「received on 3 Oct」の日付が出荷の記録の着荷の予定と合えば、未着の商品の候補として裏付けが取れます。写させずに区分だけを返させると、裏付けの照合ができません。
出力形式を固定する
照合の結果は、プログラムがJSONで出します。 生成AIの出力も、Claude API の構造化出力で形を決めて受けます。公式のページでは、output_config.format に JSON スキーマを渡すと、スキーマに合う JSON が返るとされ、正式提供の機能です。
{
"period": "2026-09",
"entity": "SG01",
"counterparty": "JP00",
"as_of_date": "2026-09-30",
"summary_check": "matched | mismatch",
"balances": [
{ "account": "trade_receivable", "currency": "USD",
"ledger": 1200000.00, "confirmation": 950000.00, "difference": 250000.00 }
],
"items": [
{ "invoice_no": "INV-0012345", "currency": "USD", "amount": 250000.00,
"side": "ledger_only | confirmation_only | both_amount_differs",
"reason": "in_transit_goods | payment_in_transit | timing | unknown",
"evidence": "Shipped 2026-09-28, ETA 2026-10-06",
"remark_class": "in_transit_goods", "min_cell_confidence": 98.1 }
],
"follow_ups": [ { "invoice_no": "", "first_asked": "2026-08-05", "status": "awaiting_reply" } ],
"needs_human": [ { "item": "", "reason": "low_confidence | no_mapping | summary_mismatch | as_of_mismatch" } ]
}
1つ目の理由は、side と reason を分けて持てることです。 side は事実(どちらの帳簿にだけあるか)、reason はプログラムが記録で付けた候補です。理由の候補が誤っていても、事実の列は残ります。
2つ目は、follow_ups で照会の漏れを防げることです。 前月から回答待ちの差異を毎月の結果に載せ続け、回答が来るまで一覧から消えません。
reason | 決め方(プログラム) |
|---|---|
| in_transit_goods | 親会社の帳簿にだけあり、出荷の日が基準日以前で、着荷の予定が基準日の後 |
| payment_in_transit | 子会社の側で消し込み済みで、送金の日が基準日以前、親会社の入金が基準日の後 |
| timing | 請求書の日付が基準日の前後3日以内で、片側の計上が翌月 |
| unknown | 上のどれにも当たらない |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Amazon S3 | 保存の通知で Lambda を動かす | 子会社・相手先・月をフォルダで決める |
| AWS Textract | StartDocumentAnalysis/GetDocumentAnalysis | 表・セル・見出し・合計・問い合わせの答え・信頼度 |
| Amazon SNS | 完了の通知 | JobTag で残高確認書を知る |
| 親会社の会計の仕組み・販売・資金の記録 | 締めの後に書き出したファイルを読む | 読み取りだけ |
| Claude API | API呼び出し(構造化出力) | 見出しと科目の対応の案、備考の区分、照会の下書き |
| 経理の担当者と連結の担当 | 差異の一覧を共有の場所に置き、チャットで知らせる | 確認、照会の送信、連結への引き継ぎ |
会計の仕組みにも連結の仕組みにも書き込みません。 差異の一覧から自動で調整の仕訳を起こすと、理由の候補が誤っていたときに、誤った仕訳が連結の数字に入ります。
Claude を Amazon Bedrock から使う場合は、構造化出力の対応を先に確かめます。 公式のページでは、Bedrock では構造化出力が旧来の連携でだけ使え、Claude in Amazon Bedrock では使えないとされています。
人が確認する
経理の担当者が全件の照合の結果を確かめます。 見る順を決めておきます。
needs_humanを先に見る … 合計が合わないもの、基準日が違うもの、対応なしの見出しは照合に進んでいませんunknownの差異の根拠を確かめる … 自社の計上の漏れでないかを、会計の仕組みで先に見ます- 理由の候補の根拠を流し見る …
evidenceの出荷の日・送金の参照番号が妥当かを確かめます - 照会を直して送る … 下書きの番号と根拠を確かめ、送信は担当者が行います
follow_upsを確かめる … 回答が来たものを閉じ、来ていないものを催促します
2番目を省かないでください。 自社の計上の漏れなのに照会を送ると、子会社は自分の帳簿を調べ直すことになり、回答が締めに間に合わなくなります。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワード付き・XFA のPDF | 読めない。子会社に送り直してもらう |
| JobStatus が FAILED か PARTIAL_SUCCESS | Warnings のページを見て、そのページだけ人が写す |
| 基準日が対象月の末日と違う | 照合せずに子会社へ戻す |
| 未決済の請求書の一覧が無い | 残高だけを照らし、差異があれば一覧の提出を頼む |
| 同じ金額の請求書が並び、突き合わせを決められない | unknown とし、請求書番号の記載を子会社に頼む |
| 換算後の金額しか書かれていない | 取引の通貨で照らせないため人へ。書式の見直しを頼む |
| 訂正版が届いた | 版を上げて保存し、前の版の照合結果は消さずに残す |
上から4行目と6行目は、最初の数か月に多く起きます。 どちらも子会社の書式の問題で、グループで残高確認書の様式をそろえると減ります。
記録を残す
- 残高確認書の原本と、保存した場所(月・子会社・相手先・版)
- Textract が返したブロックの全文と、組み立てた表
- 子会社ごとの設定の、その月に使った版
- 照合の結果(
balances、items、follow_ups、needs_human)と、理由の候補付けに使った出荷と送金の記録 - 担当者が直した箇所 … どの理由の候補を、どう変えたか
- 子会社への照会と回答、差異の解消の記録
- 子会社ごとの差異の件数と理由の推移
最後の行は、グループの経理の会議の材料になります。 同じ子会社で timing の差異が毎月出るなら、締めの日程か計上の基準をそろえる話し合いが要ります。
04実装レベルの3段階
半自動化で、1件40分が25分程度になります。 写しと差の計算は無くなりますが、出荷と送金の記録での理由の確認と、照会の英文が手作業のまま残ります。 本格構成で12分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化で3か月回すと、子会社ごとの見出しと科目の名前、請求書番号の書き方が設定表にそろいます。 そこを固めてから理由の候補付けに進むほうが、誤った照会が減ります。
05工数削減シミュレーション
導入後 45件 × 12分 ÷ 60 = 9 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 海外に販売子会社や調達の子会社を多く持ち、グループ会社間の売買・貸付・役務の取引が毎月ある商社・メーカー・物流会社の経理部門。子会社ごとに違う会計の仕組みを使っていて、残高確認書が英文のPDFで届き、担当者が相手先ごとの残高を自社の帳簿と見比べて差異の理由を探している場合。連結の締めの直前に差異が見つかり、消去の調整が後ろにずれ込んでいる場合。
- グループで同じ会計の仕組みを使っていて、グループ会社間の残高を仕組みの中で突き合わせられる場合(読み取りは要らず、データを照らせば足ります)。子会社が数社で、残高確認書を目で見れば足りる場合。残高確認書が日本語で届く国内の子会社が中心の場合(この構成で使う読み取りのサービスは英語など6言語に対応します)。なお、差異をどう調整するか、どちらの帳簿を直すか、連結の消去の仕訳は、経理の責任者が決めます。この構成は差異の理由の候補を挙げるまでです。
07最小構成で試す方法
- 先月の残高確認書から、書式の違う3社の3件を選ぶ(うち1件は、未決済の請求書の多い販売子会社を入れる)
- AWS のコンソールで Textract の文書分析を開き、表の読み取りを試す
- 表を表計算のファイルとして書き出し、親会社の帳簿の未決済の請求書と請求書番号で並べる
- 片側にしか無い請求書を、出荷と送金の記録で手で確かめる
- 手元のAIサービスに備考の一覧を貼り、理由の区分に分けさせる
未決済の請求書の多い販売子会社は必ず入れてください。 請求書番号の書き方の違いと、未着の商品の差異がどれくらい出るかが、ここで分かります。
| 出てきた内容 | 判断 |
|---|---|
| 表がセル単位で取れ、請求書番号で突き合わせられた | 照合のプログラムに進む |
| 請求書番号の書き方が違って突き合わせられない | 番号の整えの手順で直る。構成は有効 |
| 換算後の金額しか書かれていない | 子会社の書式を見直す。取引の通貨の列を足してもらう |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 換算のレートの違いを差異として出す | 取引の通貨の金額で照らす。 換算後の金額は参考に留める |
| 請求書番号の書き方の違いで突き合わせられない | 前処理で番号の形をそろえる |
| 自社の計上待ちを差異として子会社に照会する | 親会社の締めの印が付いてから照合を始める |
| 同じ金額の請求書が並んで決められない | 請求書番号の記載を子会社に頼み、決められないものは unknown |
| 前月の照会の回答待ちが漏れる | follow_ups を毎月の結果に載せ続ける |
| ページの境目で請求書の行が落ちる | 全ページのブロックをそろえてから連結する |
| 備考の区分だけで理由を確定させる | 記録で裏付けが取れたものだけを理由の候補にする |
| Bedrock で構造化出力が使えない | Claude API を直接使うか、対応を先に確かめる |
上の3行が、この構成の失敗のほとんどです。 どれも、本当の差異でないものを差異として子会社に照会する失敗です。取引の通貨で、番号をそろえて、自社の締めの後に照らす設計にしておけば、空振りの照会を防げます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: グループ会社間の債権債務の残高、取引の請求書番号と金額、貸付金と利息、送金の記録です。個人情報は含みませんが、公表前の月次の財務の数字です。
- 受け取りの場所の権限を絞る … S3 のフォルダは連結グループと処理のプログラムだけが読めるようにし、結果は KMSKeyId を指定した暗号化で保存します
- 生成AIに渡す範囲を絞る … 見出しの対応づけには見出しと科目の名前だけ、備考の区分には備考だけ、照会の下書きには差異のある請求書の行だけを渡します。残高の全体は渡しません
- 帳簿を自動で直さない・仕訳を起こさない … 差異の調整は担当者が記録を確かめてから行います
- 照会を自動で送らない … 下書きまでです
- 連結の数字の根拠にしない … 差異の一覧は調整の材料で、消去と調整の仕訳は経理の責任者が決めます
- 社内のクラウドの利用の手続きに載せる … 読み取りと生成AIのサービスを使うことを、社内の手続きに載せます。子会社の所在国のデータの扱いの決まりも確かめます
誤りが起きた場合のリスクは、本当でない差異で子会社に照会して締めを遅らせることと、本当の差異を見落として連結に説明のつかない残高を残すことの2つです。 前者は取引の通貨と締めの印で、後者は全相手先の請求書を機械で突き合わせることで防ぎます。
10まず何から始めるか
1週目:子会社ごとの設定表を作る
15社の残高確認書を1件ずつ見て、列の見出しと科目の名前の対応、桁区切りと日付の順、通貨の区切りの形を設定表に書きます。
2週目:3件で読み取りを試す
書式の違う3社の残高確認書をコンソールで読み取り、帳簿の未決済の請求書と並べます。請求書番号で突き合わせられるかを最優先で見ます。
3週目:子会社に様式の調整を頼む
請求書番号と取引の通貨の金額が載っていない子会社に、その2列を残高確認書に足してもらうよう頼みます。 グループの経理の会議で話すと早く進みます。
4週目:表の組み立てと照合をつなぐ
保存を起点に読み取り、表を組み立て、取引の通貨で帳簿と照らすところまで作ります。この時点では理由の候補を付けず、side だけを見ます。
2か月目: 出荷と送金の記録での理由の候補付けを足し、unknown の件数を毎月数えます。3か月目以降: 照会の下書きと follow_ups を足し、1件40分が何分になったかを実測します。子会社ごとの差異の推移をグループの経理の会議で使い始めた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 対応する形式が JPEG・PNG・PDF・TIFF で XFA の形式のPDFは扱えないこと。同期の処理はPDFが1ページまで、非同期の処理はPDFが500MB・3,000ページまでであること。パスワードで保護されたPDFは扱えないこと。対応言語が英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語であること。問い合わせは英語の文書だけで、非同期で1ページ30件までであること | AWS: Set Quotas in Amazon Textract | 2026-10-14 |
| 表が TABLE のブロック、各セルが CELL のブロックとして返り、表の中の位置の情報を持つこと。結合されたセルが MERGED_CELL で示されること。セルの EntityTypes に TABLE_TITLE・TABLE_FOOTER・TABLE_SECTION_TITLE・COLUMN_HEADER・TABLE_SUMMARY があること | AWS: Tables(Amazon Textract) | 2026-10-14 |
| StartDocumentAnalysis の FeatureTypes に TABLES・FORMS・QUERIES・SIGNATURES・LAYOUT があること。文書を S3 に置くこと。完了の状態が SNS に通知されること。ClientRequestToken で同じジョブの二重の開始を防げること。JobTag が通知に含まれること。KMSKeyId で結果を暗号化できること。JobId が7日間だけ有効であること | AWS: StartDocumentAnalysis | 2026-10-14 |
| GetDocumentAnalysis が MaxResults 最大1,000で NextToken によりページを送ること。JobStatus が IN_PROGRESS・SUCCEEDED・FAILED・PARTIAL_SUCCESS であること。Warnings が返ること | AWS: GetDocumentAnalysis | 2026-10-14 |
| 問い合わせの答えが QUERY_RESULT として信頼度付きで返り、答えが見つからなければ空のまま返ること | AWS: Queries(Amazon Textract) | 2026-10-14 |
output_config.format に JSON スキーマを渡すとスキーマに合う JSON が返ること。正式提供の機能であること。Amazon Bedrock では旧来の連携でだけ使え、Claude in Amazon Bedrock では使えないこと | Claude Docs: Structured outputs | 2026-10-14 |
差異の調整、どちらの帳簿を直すか、連結の消去の仕訳は、経理の責任者が決めてください。 本記事は公開されている製品の仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1432)についてのご相談はこちらから。
