海外出張の英文の領収書を読み取り、日付・金額・通貨・支払先を精算の明細にそろえて、外貨換算と旅費規程の上限に照らした確認点を出す
海外出張から戻った社員が出す英文の領収書を読み取り、日付・金額・通貨・支払先・費目を精算の明細にそろえます。外貨を社内の規則で円に換算し、出張の期間と旅費規程の上限に照らして、経理が確かめるべき点を出します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- IT・SaaS/商社/建設/製造
- 対象部門
- 経理
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 出張者が経費精算システムに領収書の画像を添付し、出張の番号を付けて提出する
- 経理の担当者が画像を1枚ずつ開き、日付・金額・通貨・支払先を読む
- 費目(宿泊・交通・食事・その他)を決め、明細を入力する
- 現金の支払いは為替レートの表を引いて円に換算する。カードの支払いはカードの明細と突き合わせる
- 宿泊費と食事を規程の上限と比べ、出張の期間の外の日付が無いかを見る
- 分からない点や上限を超えるものを、出張者にメールで問い合わせる
- 人出張者が経費精算システムに領収書の画像を添付し、出張の番号と支払方法(カード/現金)を付けて提出する
- 自動提出をきっかけに、画像を受付の場所へ写し、形式・サイズ・ページ数を確かめる
- 自動OCRが領収書の標準の項目(日付・支払先・合計・税・チップなど)と明細の行、通貨の情報、信頼度を返す
- 自動生成AIが、明細の行を費目に分け、ホテルの明細を「宿泊料」「税」「食事」「私的な費用の候補」に分ける
- 自動出張申請から出張先の国と期間を引き、通貨と日付の読み方を確かめる
- 自動規則で円に換算し、規程の上限・出張の期間・重複と照らす
- 自動明細ごとに `ok` / `check` を付け、`check` には理由を付ける
- 人経理の担当者が `check` の明細だけを開き、画像と理由を見て直すか、出張者へ問い合わせる
- 人`ok` の明細は一覧で流し見て、精算を確定する
各工程の詳しい説明を読む
- 出張者が経費精算システムに領収書の画像を添付し、出張の番号を付けて提出する
- 経理の担当者が画像を1枚ずつ開き、日付・金額・通貨・支払先を読む
- 費目(宿泊・交通・食事・その他)を決め、明細を入力する
- 現金の支払いは為替レートの表を引いて円に換算する。カードの支払いはカードの明細と突き合わせる
- 宿泊費と食事を規程の上限と比べ、出張の期間の外の日付が無いかを見る
- 分からない点や上限を超えるものを、出張者にメールで問い合わせる
(a)通貨を取り違える。 「$」と書かれた領収書を、出張先を見ずにアメリカドルとして換算することがあります。シンガポールの出張で、円の金額が実際より大きく計上されるといった誤りは、合計が大きくずれないと気づきません。
(b)ホテルの明細を合計で入れる。 フォリオには、宿泊料・税・朝食・ミニバー・ランドリー・電話が並び、途中で部屋の料金が変わることもあります。忙しいと合計だけを宿泊費として入れ、1泊あたりの上限の確認と、私的な費用の区別が抜けます。
(c)日付の読み方が国で違う。 「04/05」が4月5日か5月4日かは、国と店で変わります。出張の期間の外に見えるものを問い合わせたら、読み違いだったということが毎月起きます。
(d)全件を同じ細かさで見るのは続かない。 1,200枚を3名で見ると、1枚5分でも月100時間です。問い合わせが要るのは一部なのに、全部を同じように見ています。
- 【人】 出張者が経費精算システムに領収書の画像を添付し、出張の番号と支払方法(カード/現金)を付けて提出する
- 【自動】 提出をきっかけに、画像を受付の場所へ写し、形式・サイズ・ページ数を確かめる
- 【自動】 OCRが領収書の標準の項目(日付・支払先・合計・税・チップなど)と明細の行、通貨の情報、信頼度を返す
- 【自動】 生成AIが、明細の行を費目に分け、ホテルの明細を「宿泊料」「税」「食事」「私的な費用の候補」に分ける
- 【自動】 出張申請から出張先の国と期間を引き、通貨と日付の読み方を確かめる
- 【自動】 規則で円に換算し、規程の上限・出張の期間・重複と照らす
- 【自動】 明細ごとに
ok/checkを付け、checkには理由を付ける - 【人】 経理の担当者が
checkの明細だけを開き、画像と理由を見て直すか、出張者へ問い合わせる - 【人】
okの明細は一覧で流し見て、精算を確定する
8番目で人が開くのは check だけです。 通貨と日付が出張先と合い、上限の内に収まっているものは、一覧で件数と金額を流し見ます。全件を開く設計にすると、100.0時間はほとんど減りません。
7番目で「規程の例外を認めるか」は決めません。 出すのは、上限を超えているという事実と金額の差です。会議の都合で指定のホテルに泊まった、といった事情を判断するのは人です。
02今回想定するシステム構成
英文の領収書(写真・PDF・電子領収書) ▼【トリガー】経費精算システムでの提出 → 受付の場所(Amazon S3)へ写す AWS Lambda ── 形式・サイズ・ページ数の確認 ▼ AWS Textract(AnalyzeExpense/StartExpenseAnalysis:請求書・領収書の分析) │ 標準の項目(日付・支払先・合計・税・チップ)と明細の行、通貨、信頼度 ▼ Claude API ── 明細の行を費目に分ける │ ① 宿泊料 ② 税・サービス料 ③ 食事 ④ 交通 ⑤ 私的な費用の候補 ▼ Python ── 出張申請(国・期間)と照らし、換算し、規程の上限・重複と照合 ▼ 判定(ok / check と理由) ▼ 【経理が check だけ確認】 ├──▶ 出張者への問い合わせ(下書き) └──▶ 経費精算システムの明細へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(AnalyzeExpense/StartExpenseAnalysis) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(明細の行の費目分けと、問い合わせの下書き) | OpenAI API、Gemini API |
| 差異計算 | Python(換算、規程の上限・出張の期間・重複との照合) | 経費精算システムの規程チェックの機能 |
| 連携 | AWS Lambda(提出を起点に処理を動かす) | Amazon EventBridge |
| 保管 | Amazon S3(領収書の画像、読み取り結果、判定の結果) | 経費精算システムの添付の保管 |
経費精算システムと出張申請は、新しく足すものではありません。 最初の準備は、旅費規程の上限を「都市の区分ごとの1泊の上限」「食事の上限」の表にし、国ごとの通貨と日付の書き方の表を作ることです。
OCRに AWS Textract を選ぶのは、領収書が英文だからです。 対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語で、縦書きには対応していません。 欧州の出張でドイツ語やフランス語の領収書が混ざっても文字は読めますが、中国語・韓国語・タイ語の領収書はこの経路に入れません。
使う機能は、請求書と領収書の分析(AnalyzeExpense)です。 テンプレートなしで日付、番号、品目の金額、合計を取り出し、違う言い方を標準の項目名にそろえて返します。 「Total」「Amount Due」「Balance」の揺れは TOTAL・AMOUNT_DUE に、チップは GRATUITY、サービス料は SERVICE_CHARGE になります。ロゴにしか書かれていない店名も支払先として拾えるとされています。
金額には通貨の情報が付きます。 公開されている出力例では、「$55.64」に Currency の Code として USD が付いています。ただし、その「$」がどの国のドルかは、記号だけからは決まりません。 出張先の国と照らすのは、この構成の側の仕事です。
1枚の写真やPDFは同期の処理(AnalyzeExpense)、複数ページのフォリオは非同期の処理(StartExpenseAnalysis)で読みます。 同期の処理はPDFとTIFFで1ページ・10MBまで、非同期はPDFで500MB・3,000ページまでです。
03どうやって実装するのか
処理の起点を決める
経費精算システムで出張者が提出したことを起点にします。 提出された精算の添付を受付の場所(Amazon S3)へ写し、1枚ずつ処理を始めます。月末にまとめて処理しません。 問い合わせは、出張者の記憶が新しいうちに出したほうが早く片づくからです。
1回の出張の領収書は、出張の番号でひとまとまりに扱います。 重複や期間の確認は、出張単位で見ないと分からないからです。出張の番号が付いていない提出は、処理を止めずに check で受け、理由に「出張の番号が無い」と出します。
処理が終わった画像は処理済みの場所へ移します。移すのは、判定の一覧への書き出しまで成功したときだけです。 受付の場所に残っている数が、そのまま未処理の数になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 領収書 | 写真(JPEG/PNG)またはPDF。出張の番号、支払方法(カード/現金) | 経費精算システム |
| 読み取り結果 | 標準の項目、明細の行、書かれていた項目名、値、通貨、信頼度 | AWS Textract |
| 出張申請 | 出張者、出張先の国と都市、出発日と帰着日、目的 | 出張申請 |
| 旅費規程の上限 | 都市の区分ごとの1泊の上限、食事の上限、対象外の費用 | 自社で整備する表 |
| 国ごとの表 | 使われる通貨、日付の書き方(月と日の順)、チップの慣習 | 自社で用意する表 |
| 為替レートの表 | 日ごとの通貨別のレート | 社内で使っている為替の表 |
| カードの利用明細 | 利用日、加盟店名、外貨の金額、円の金額 | 法人カードの明細 |
質を決めるのは、真ん中の3つです。 出張申請が無ければ国も期間も分からず、規程の上限が表になっていなければ照らせません。国ごとの表が無いと、第3章の(a)と(c)がそのまま機械に移ります。
データの取得方法を決める
1ページのものは、Lambda から AnalyzeExpense を呼んで結果をその場で受け取ります。 複数ページのPDFは StartExpenseAnalysis で始め、完了の通知を受けて GetExpenseAnalysis で取ります。ClientRequestToken に添付ごとの値を入れ、同じ画像の処理が二重に始まらないようにします。 非同期の JobId は7日間しか有効でないので、完了を受けたらすぐに結果を自社のバケットへ書き出します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 日付 | INVOICE_RECEIPT_DATE | 出張の期間との照合、換算の日 |
| 支払先 | VENDOR_NAME・VENDOR_ADDRESS | 費目の判断、重複の検知 |
| 合計と内訳 | TOTAL・SUBTOTAL・TAX・GRATUITY・SERVICE_CHARGE・AMOUNT_PAID | 明細の金額、チップの割合 |
| 通貨 | 金額の ValueDetection の Currency(Code と信頼度) | 換算の通貨 |
| 明細の行 | LineItemGroups の ITEM・PRICE・QUANTITY | フォリオの行ごとの費目分け |
| 領収書の番号 | INVOICE_RECEIPT_ID | 重複の検知 |
| 文書内の領収書の番号 | ExpenseIndex | 1枚の写真に複数の領収書があるときの分割 |
| 項目名・信頼度 | LabelDetection・Confidence | 根拠と、読み直しの要否 |
通貨は、読み取りの結果と出張先の国の両方から決めます。 読み取りが USD を返しても、出張先がシンガポールなら check にします。読み取りが返した値を、国の表で上書きはしません。 食い違いとして人に見せます。
カードの支払いは、利用明細と突き合わせます。 利用日・加盟店名・外貨の金額で照らし、一致すれば明細の円の金額を使います。
AIへ渡す前に整形する
- 形式の確認 … 同期の処理はJPEG・PNG・PDF・TIFF、非同期はJPEG・PNG・PDFが対象です。XFA形式のPDFには対応していません
- サイズとページ数の確認 … 同期はPDFとTIFFで1ページ・10MBまで。フォリオが2ページ以上なら非同期へ回します
- パスワードの確認 … パスワードで保護されたPDFは読めません。 航空会社やホテルから届いたものに付いていることがあります
- 写真の確認 … 読み取れる文字の高さは15ピクセル以上で、150dpiで8ポイントの文字に当たります。感熱紙のレシートを斜めから撮った写真は、この下限に近くなります。 文書の傾きには対応しています
- 1枚に複数の領収書 … テーブルに並べて1枚で撮ったものは、
ExpenseIndexで分けます - 日付の正規化 … 国ごとの表の書き方で年月日に直します。元の文字列は残します
- 重複の検知 … 同じ支払先・日付・金額のものが、同じ出張または直近の精算にあれば印を付けます
6番目はAIに任せません。 「04/05/2026」を生成AIに読ませると、文脈から月と日を推測します。推測が外れても、もっともらしい日付が返ります。 書き方は国ごとの表で決め打ちし、出張の期間の外に出たら check にします。
AIに処理させる
させるのは、明細の行を費目に分け、根拠にした文字列を写すことだけです。 標準の項目の読み取りは Textract が行い、AIは行の意味を判断します。
| 見るもの | 書き出す内容 | 判断できないときの扱い |
|---|---|---|
| 領収書全体 | 種類(ホテル・タクシー・鉄道・航空・食事・その他) | 決められなければ unknown |
| ホテルの明細の行 | 宿泊料/税・サービス料/食事/私的な費用の候補(ミニバー・ランドリー・映画など) | 行の意味が取れなければ unknown |
| 宿泊料の行 | 泊数と1泊の金額(行の日付と金額から) | 日ごとの金額が違えば行ごとに写す |
| 食事の領収書 | 人数の記載(「Guests: 3」など) | 書かれていなければ「不明」 |
| 航空券の領収書 | 区間、搭乗日、運賃と税・手数料の内訳 | 内訳が無ければ合計だけ |
私的な費用は「候補」として出させます。 ミニバーやランドリーが私的な費用かどうかは、長期の出張でランドリーを規程で認めている会社もあるように、会社の決まりによります。AIには行の意味だけを判断させ、精算から外すかは規則と人が決めます。
| させないこと | 理由 |
|---|---|
| 円への換算 | 換算の規則で決める。AIに計算させない |
| 通貨の決定 | 読み取りの値と国の表で決める |
| 規程の例外の判断 | 事情を知っている人が決める |
| 合計の作り直し | 行の合計が合わなくても、合わないまま出す |
| 読めない金額の補完 | 合計から差し引いて行を埋めない |
4行目と5行目は同じ失敗の裏表です。 フォリオの行の合計が TOTAL と合わないとき、AIに任せるとどこかの行の金額を直して辻褄を合わせます。 合わないこと自体が、読み違いか、明細の抜けの知らせです。
指示内容を固定する
あなたは経理部で、海外出張の領収書の明細を費目に分ける立場です。
渡すのは、OCRが返した標準の項目と明細の行です。そこに書かれたことだけを使ってください。
【書き出すこと】
1. receipt_type: hotel / taxi / rail / air / meal / other / unknown
2. 明細の行ごとの category:
lodging(宿泊料) / tax_service(税・サービス料) / meal(食事) /
transport(交通) / personal_candidate(私的な費用の候補) / unknown
3. 宿泊料の行は、行に書かれた日付と金額をそのまま写す
4. 食事の領収書は、人数の記載があれば写す
【厳守事項】
- 書かれていない項目は「不明」としてください。推測で埋めないでください。
- 金額は読み取り結果の文字列をそのまま写してください。
円に換算しないでください。通貨を決めないでください。
- 行の金額の合計が TOTAL と合わなくても、どの行も直さないでください。
合わないことを note に書いてください。
- ミニバー、ランドリー、映画、電話などは personal_candidate にしてください。
精算から外すかどうかは書かないでください。
- 行の意味が取れないものは unknown にしてください。
近そうな費目に寄せないでください。
- 日付の月と日の順を決めないでください。書かれた文字列のまま写してください。
- evidence には、根拠にした文字列をそのまま写してください。
- 領収書でない書類(予約の確認書、見積など)と判断した場合は、
費目分けをせず document_type に種類を書いてください。
【標準の項目】{summary_fields}
【明細の行】{line_items}
「予約の確認書」を見分けさせるのは、よく混ざるからです。 ホテルの予約の確認メールやオンラインの予約画面の写しは、金額も日付も書かれていて領収書に見えます。支払った証拠ではないので、明細にしてはいけません。
「近そうな費目に寄せない」を書かないと、unknown がほとんど出ません。 何でもそれらしい費目に入れるので、人が見るべき行が一覧から消えます。
出力形式を固定する
次の形のJSONで受け取ります。 Claude API の構造化出力(output_config.format にJSONスキーマを渡す)を使うと、スキーマどおりの形で返り、必須の項目が欠けません。
{
"receipt_id": "",
"trip_id": "",
"document_type": "receipt",
"receipt_type": "hotel",
"vendor": "",
"date_text": "",
"total_text": "",
"lines": [
{ "item": "", "amount_text": "", "date_text": "",
"category": "lodging", "evidence": "" }
],
"guests": "",
"note": ""
}
この後に、Python が換算と照合を足します。
| 確かめること | 規則 | 結果 |
|---|---|---|
| 通貨 | 読み取りの Code と国の表が一致するか | 不一致なら check(通貨) |
| 日付 | 国の表の書き方で読み、出張の期間に入るか | 外なら check(期間外) |
| 換算 | カードは利用明細の円の金額、現金は取引日のレート | 明細が見つからなければ check(換算) |
| 宿泊費 | 1泊の金額を都市の区分の上限と比べる | 超えたら check(上限)と差額 |
| 食事 | 1人あたりの金額を上限と比べる | 超えたら check(上限)と差額 |
| 重複 | 同じ支払先・日付・金額 | 重なれば check(重複) |
| 私的な費用 | personal_candidate の行がある | check(私的な費用の候補) |
1つ目の理由は、換算を規則で行えることです。 法人税の通達では、外貨建取引の円換算は原則として取引日の電信売買相場の仲値(TTM)により、継続適用を条件に費用は電信売相場(TTS)も使え、前月末などの相場も使えるとされています。どれを使うかは自社で決め、決めた1つを規則に書きます。 AIに選ばせると、領収書ごとに違うレートが混ざります。
2つ目は、上限の差額を出せることです。 「上限を超えた」だけでなく「1泊あたり何円超えた」まで出るので、人は差額を見て、問い合わせるかを決められます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 経費精算システム | 提出の通知、添付の取得 | 領収書と支払方法の受け取り |
| AWS Textract | AnalyzeExpense/StartExpenseAnalysis | 標準の項目、明細の行、通貨 |
| Claude API | API呼び出し | 行の費目分けと、問い合わせの下書き |
| 出張申請・規程の表・為替の表 | 読み取り | 照合の基準 |
| カードの利用明細 | 読み取り | カード払いの円の金額 |
| 経費精算システム | 承認後の明細の書き込み | 確定した明細 |
明細の書き込みは、経理の担当者が確定した後だけです。 ok の明細も一覧で流し見てから確定します。出張者への問い合わせも、下書きまでにして人が送ります。
人が確認する
人が開くのは check の明細だけです。 理由ごとに見る順を決めます。
- 通貨と期間外を先に見る … 多くは読み違いで、画像を見れば数秒で決まります
- 重複を確かめる … 同じ食事を2人が別々に出していないか、同じ領収書を2回出していないか
- 上限を超えたものの事情を見る … 出張報告に理由が書かれていれば認め、無ければ問い合わせます
- 私的な費用の候補を分ける … 規程に照らして精算から外すか、認めるかを決めます
- 判定を覆したら記録する … どの理由を、どう直したかを残します
1番目で読み違いが多い国は、国の表を直す材料です。 同じ国で日付の check が続くなら、その国の書き方の設定が足りていません。
3番目の問い合わせは、出張の単位でまとめて送ります。 1枚ごとに送ると、出張者は同じ出張について何通も返事を書くことになります。理由と差額を並べた1通にし、出張報告に足してもらう形にすると、返事が早く戻ります。
目標は、1,200件をならして1件2分です。 check が2割前後という想定で、それより多い月は、国の表かカードの明細の取り込みに抜けがあります。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワードで保護されたPDF | 読めない。出張者に保護のないものを出してもらう |
| 写真の文字が小さい・ぼやけている | 15ピクセルが下限。撮り直しを頼む。原本が無ければ規程の手続きへ |
| 英語以外の領収書 | この経路では扱わない。別の経路で人が入力する |
| 1枚の写真に複数の領収書 | ExpenseIndex で分ける。分けられなければ撮り直し |
| 予約の確認書が混ざる | document_type を見て明細にしない |
行の合計と TOTAL が合わない | 直さずに check。画像で確かめる |
| カードの利用明細が見つからない | 明細の締め前なら保留。現金なら取引日のレートで換算 |
| 領収書の無い支出(チップなど) | 規程の手続き(支払証明)へ回す |
| チップと合計が手書きで足されている | 手書きの認識は英語なら対応。印字の小計と手書きの合計の両方を写し、差をチップの候補として check |
| 通貨の記号が無い | 国の表の既定の通貨を当て、理由に「記号なし」と残して check |
| OCRが応答しない | 受付の場所に残す。処理済みへ移すのは成功時だけ |
2行目がいちばん多くなります。 感熱紙のレシートは時間がたつと薄くなるので、出張中に撮って提出する運用にするほうが、読み取りの工夫より効きます。
下から3行目は、北米のレストランで毎回のように起きます。 印字されたレシートにチップと合計を手で書き足して署名する形式で、印字の TOTAL と、実際に払った金額が違います。 カードの利用明細の金額と照らせば、どちらが支払った額かが決まります。チップの割合が国の表の慣習から大きく外れていれば、それも理由に足します。
記録を残す
- 元の領収書の画像と、提出した日時・出張の番号・支払方法
- OCRが返したJSONの全文
- AIが返したJSONと、そのとき参照した規程の上限の表・国の表・為替のレート
- 換算に使ったレートと日付、カードの利用明細との対応
- 判定の結果(
ok/checkと理由)と、経理が判定を覆した記録 - 出張者への問い合わせと回答
「そのとき参照した規程の上限の表」を残すのは、上限が改定されるためです。 改定の前に行った出張を後から見直すとき、当時の上限で判定したかどうかを確かめられます。
04実装レベルの3段階
本記事の想定は半自動化です。 1件5分が2分になります。本格構成に進むと、カードの明細との突き合わせと明細の書き込みが自動になりますが、経費精算システムの側の連携の口が要ります。 半自動化の check の理由を3か月数え、多い理由から国の表と規程の表を直すほうが先です。
05工数削減シミュレーション
導入後 1,200件 × 2分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 海外の工場・顧客・展示会への出張が毎月数十件あり、出張から戻った社員の英文の領収書を経理がまとめて精算の明細に入力しているメーカー・商社・IT企業・建設会社。外貨の換算と、宿泊費や食事の上限を旅費規程で決めている場合。領収書の画像が紙の写真とPDFで混ざって届く場合。
- 出張先が主に中国・韓国・台湾・タイなどで、領収書が英語以外で書かれていることが多い場合(この構成のOCRは英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語しか読めず、縦書きにも対応していません)。海外出張が月に数件で、目視の入力で足りる場合。法人カードの利用明細だけで精算を完結させ、領収書を読む必要がない場合。なお、規程の例外を認めるかどうかと、税務上の扱いの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の海外出張から3件を選び、その領収書を全部集める(ホテルのフォリオ、「$」の領収書、日付が日・月の順のものを入れる)
- 3件について、経理が入力した明細を書き出しておく
- 領収書の画像を1枚ずつ手元のAIサービスに貼り付ける
- 「この領収書から、日付・支払先・合計・通貨の記号・明細の行を写し、行ごとに宿泊料・税・食事・交通・私的な費用の候補に分けてください。換算はしないでください。書かれていない項目は『不明』としてください」と指示する
- 出てきた値を、経理が入力した明細と突き合わせる
3件分は必ずやってください。 組む前に、「フォリオの行を正しく分けられるか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| フォリオの行が費目に分かれ、明細と合う | OCRと照合の仕組みに進む |
| 「$」をアメリカドルと決めつけた | 指示と国の表で直る。構成は有効 |
| 感熱紙の写真が読めない | 撮り方の問題。 出張中に撮る運用を先に決める |
3行目が出たら、それも収穫です。 経理が1枚に時間をかけていた理由の1つが分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 「$」を一律にアメリカドルで換算する | 読み取りの Code と出張先の国の表を照らす |
| 日付の月と日を取り違える | 国ごとの書き方で決め打ちし、期間外は check |
| フォリオを合計だけで入れる | 明細の行ごとに費目を分ける |
| AIが行の金額を直して合計を合わせる | 直させない。合わないことを check に |
| 予約の確認書を明細にする | document_type で見分ける |
| 換算のレートが領収書ごとに違う | 規則を1つに決め、AIに選ばせない |
| 感熱紙の写真が読めない | 出張中に撮って出す運用にする |
| 1枚に複数の領収書が写っている | ExpenseIndex で分ける |
| 私的な費用を自動で外す | 候補にとどめ、規程と人で決める |
| 上限の超過を一律に差し戻す | 差額と出張報告の理由を見て人が決める |
| 英語以外の領収書が混ざる | この経路から外し、別の経路で入力する |
| 手書きのチップで印字の合計と払った額が違う | カードの利用明細の金額で決める |
上の3行が、この構成の失敗のほとんどです。 どれも「書かれ方が国ごとに違う」ことから出ています。国の表を持たせるかどうかで、check の多さが変わります。
下から3行目と4行目は運用の問題です。 私的な費用と上限の超過は、出張者との関係に直接ひびく判断です。自動にしないでください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 出張者の氏名、出張先と日程、宿泊先、支払った金額、カードの番号の一部や同行者の名前が領収書に印刷されていることがあります。
- 外部へ渡す範囲を、費目分けに必要な項目に限る … 生成AIに渡すのは標準の項目と明細の行だけです。カードの番号の一部や同行者の名前の行は、前処理で外せる設計にできます
- 精算の確定を自動にしない …
okの明細も、人が流し見てから確定します - この構成は税務上の判断を代替しません … 換算の方法の選び方と、私的な費用の扱いは、経理と顧問税理士が決めることです。 この構成は決めた規則を当てるだけです
- 出張の日程と宿泊先の情報を絞って扱う … 役員や担当者の行動予定が分かる情報です。判定の一覧を見られる人を、経理と出張者本人に限ります
- 保存先を暗号化する … 非同期の分析では、結果を自社のバケットに出し、KMSの鍵で暗号化する設定ができます
誤りが起きた場合のリスクは、誤った円の金額で精算することと、正当な費用を差し戻すことの2つです。 前者は通貨と日付の取り違えで、後者は私的な費用と上限の自動判断で起きます。どちらも「AIに決めさせず、規則と人で決める」設計で防ぎます。
10まず何から始めるか
1週目:国の表と規程の表を作る
出張の多い上位10か国について、使われる通貨、日付の書き方、チップの慣習を表にします。旅費規程の上限も、都市の区分ごとの表に書き直します。
2週目:3件の出張で試す
先月の出張から3件を選び、手元のAIサービスで領収書の項目と行の費目を写させます。通貨の決めつけと、フォリオの行の分け方を最優先で見ます。
3週目:換算の規則を1つに決める
カードの支払いと現金の支払いで、どのレートを使うかを決めます。顧問税理士と確認し、決めた規則を文書にします。
4週目:提出から check の一覧までをつなぐ
経費精算システムの提出を起点に AnalyzeExpense を呼び、換算と照合をして check の一覧を書き出すところまで作ります。この時点では明細を書き込まず、一覧だけを見ます。
2か月目: カードの利用明細との突き合わせを足し、check の理由ごとの件数を毎週数えます。3か月目以降: 問い合わせの下書きを足し、1件5分が何分になったかを実測します。check が2割前後に落ち着いた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
請求書と領収書の分析が、テンプレートなしで日付・番号・品目の金額・合計を取り出し、違う言い方を標準の項目名にそろえること。標準の項目(INVOICE_RECEIPT_DATE・VENDOR_NAME・TOTAL・TAX・GRATUITY・SERVICE_CHARGE・AMOUNT_PAID など)。ロゴにしか書かれていない店名も拾えること。ExpenseIndex・LabelDetection・ValueDetection・Confidence・EXPENSE_ROW が返ること。出力例で「$55.64」に Currency の Code として USD が付くこと | AWS: Analyzing Invoices and Receipts | 2026-10-06 |
AnalyzeExpense が同期の処理で、SummaryFields と LineItemGroups を返し、金額に Currency(Code と信頼度)が付くこと。PNG・JPEG・PDF・TIFFを受け付けること | AWS: AnalyzeExpense | 2026-10-06 |
StartExpenseAnalysis がJPEG・PNG・PDFを非同期で分析し、完了をSNSに通知し、GetExpenseAnalysis で結果を取ること。ClientRequestToken で二重起動を防げること、JobId が7日間有効なこと、OutputConfig と KMSKeyId で自社のバケットへの出力と暗号化ができること | AWS: StartExpenseAnalysis | 2026-10-06 |
| 同期の処理がPDFとTIFFで1ページ・10MBまで、非同期がPDFで500MB・3,000ページまで、XFA形式とパスワード保護のPDFは不可、対応言語が6言語、縦書き不可、文書の傾きに対応、文字の高さが15ピクセル以上(150dpiで8ポイント)であること | AWS: Set Quotas in Amazon Textract | 2026-10-06 |
| 外貨建取引の円換算は、原則として取引日の電信売買相場の仲値により、継続適用を条件に費用等は電信売相場によることができること。前月末等の相場や1月以内の平均相場も、継続適用を条件に使えること | 国税庁: 法人税基本通達 第13章の2 第1節 外貨建取引に係る会計処理等 | 2026-10-06 |
構造化出力を output_config.format で指定でき、スキーマどおりの形で必須の項目が欠けずに返ること | Claude Docs: Structured outputs | 2026-10-06 |
換算の方法と私的な費用の扱いは、経理と顧問税理士で決めてください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0508)についてのご相談はこちらから。
