受領請求書のPDFを読み取って支払データを作成する
仕入先から届く請求書PDFを入力に、OCRで取引先名、請求書番号、請求日、支払期日、税抜金額、消費税額、税率区分、明細行を抽出し、構造化データとして受け取ります。さらに、抽出した明細と過去の仕訳実績を照合して、勘定科目と部門コードの候補を付けます。
- 利用ツール
- AWS Textract/Azure AI/ChatGPT/Claude/Gemini/Google Document AI/Make/n8n/Power Automate
- 対象業界
- 商社/建設/物流/製造
- 対象部門
- 経理
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- SaaS追加(小)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 仕入先から請求書がメールのPDF添付で届く(紙は郵送で届き、スキャンする)
- 担当者がPDFを開き、取引先名、請求金額、支払期日を目で読む
- 会計システムを開き、仕入先コードを検索して選ぶ
- 金額、税率、支払期日を打ち込む
- 明細を見て、勘定科目と部門コードを判断して入力する
- 発注書または検収データと金額が合っているかを照合する
- 上長が承認する
- PDFを支払月のフォルダへ移動して保存する
- 請求書PDFが指定のフォルダに保存される(メール添付の自動保存、またはスキャン)
- 自動OCRで請求書の項目を抽出する
- 自動取引先名から仕入先マスタを照合し、仕入先コードを特定する
- 自動明細内容と過去の仕訳実績を照合し、勘定科目・部門コードの候補を付ける
- 自動発注書・検収データと金額を突き合わせ、一致するかを判定する
- 人経理担当が確認画面でPDFと抽出結果を並べて見て、承認する
- 自動承認された内容を会計システムへ登録する
- 自動PDFを支払月のフォルダへ保存する
各工程の詳しい説明を読む
- 仕入先から請求書がメールのPDF添付で届く(紙は郵送で届き、スキャンする)
- 担当者がPDFを開き、取引先名、請求金額、支払期日を目で読む
- 会計システムを開き、仕入先コードを検索して選ぶ
- 金額、税率、支払期日を打ち込む
- 明細を見て、勘定科目と部門コードを判断して入力する
- 発注書または検収データと金額が合っているかを照合する
- 上長が承認する
- PDFを支払月のフォルダへ移動して保存する
問題は4つあります。
(a)フォーマットが取引先ごとに違う。 400社の仕入先がいれば、400通りのレイアウトがあります。金額がどこに書かれているかも、税抜表示か税込表示かも違います。
(b)打ち間違いが月に数件出る。 桁の入力ミス、支払期日の月違いが起きます。金額のミスは支払後に発覚することがあります。
(c)月末に集中する。 月1,500件のうち600件以上が月末3営業日に届きます。この期間は残業前提の運用になります。
(d)勘定科目の判断が属人化している。 ベテランは仕入先名を見ただけで科目が分かりますが、新任は毎回確認が必要です。
- 請求書PDFが指定のフォルダに保存される(メール添付の自動保存、またはスキャン)
- 【自動】 OCRで請求書の項目を抽出する
- 【自動】 取引先名から仕入先マスタを照合し、仕入先コードを特定する
- 【自動】 明細内容と過去の仕訳実績を照合し、勘定科目・部門コードの候補を付ける
- 【自動】 発注書・検収データと金額を突き合わせ、一致するかを判定する
- 【人】 経理担当が確認画面でPDFと抽出結果を並べて見て、承認する
- 【自動】 承認された内容を会計システムへ登録する
- 【自動】 PDFを支払月のフォルダへ保存する
自動化されるのは「読む」「探す」「打ち込む」「照合する」の4つです。残るのは「合っているかを判断する」だけになります。
02今回想定するシステム構成
メール添付 / スキャン / ポータルからのダウンロード │ ▼ SharePoint の受領フォルダ │ ▼【トリガー】ファイルが作成されたとき Power Automate │ ├──▶ Azure AI Document Intelligence(prebuilt-invoice) │ └─ 取引先 / 金額 / 税率 / 期日 / 明細 を構造化JSONで取得 │ ├──▶ 仕入先マスタ照合(ERP / マスタDB) │ ├──▶ LLM API ── 勘定科目・部門コードの候補付け │ └──▶ 発注・検収データとの金額照合 │ ▼ 確認画面(PDFと抽出結果を左右に並べる)──【人が承認】 │ ▼ 会計システムへ登録 + PDFを保管
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Azure AI Document Intelligence(prebuilt-invoice) | Google Document AI、AWS Textract、国内の請求書処理SaaS |
| ワークフロー | Power Automate | Make、n8n、個別開発 |
| 生成AI | Claude API | OpenAI API、Gemini API |
| 保管 | SharePoint | Box、Google Drive |
| 会計システム | ERP | 各社の会計ソフト |
国内の請求書処理SaaS(電子帳簿保存法対応をうたう製品群)を先に検討してください。 仕入先マスタ照合、承認フロー、法定要件への対応までパッケージ化されています。自前で組む価値があるのは、既存ERPとの連携要件が特殊な場合、または月数千件以上で従量課金が見合わなくなる場合です。
03どうやって実装するのか
処理の起点を決める
SharePointの受領フォルダにファイルが作成されたことを起点にします。Power Automate の SharePoint コネクタには「ファイルが作成されたとき」トリガーが標準で用意されています。
メール添付を自動でこのフォルダへ保存する部分は、Office 365 Outlook コネクタの「新しいメールが届いたとき」トリガーと組み合わせます。ただし、請求書以外の添付ファイルも大量に届くため、送信元アドレスまたは件名での絞り込みが必要です。専用のメールアドレス(invoice@ 等)を用意して、仕入先にそこへ送ってもらうのがもっとも確実です。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 請求書PDF | 1ファイル1請求書 | SharePoint |
| 仕入先マスタ | 仕入先コード、正式名称、略称、登録番号 | ERP |
| 過去の仕訳実績 | 仕入先ごとの勘定科目・部門コードの実績(直近12か月) | 会計システム |
| 発注・検収データ | 発注番号、金額、検収済みか | ERP |
データの取得方法を決める
OCR: Azure AI Document Intelligence の prebuilt-invoice モデルにPDFを渡します。このモデルは請求書、公共料金明細、発注書を対象に、取引先名、請求先住所、支払期日、合計金額などの主要項目と明細行を抽出し、構造化されたJSONで返します。対応言語は27言語です。スキャン画像、スマートフォンで撮影した画像、デジタルPDFのいずれも扱えます。
仕入先マスタ: ERPのAPI、または日次でエクスポートしたマスタファイルを参照します。リアルタイム連携は必須ではありません。
過去の仕訳実績: 会計システムから直近12か月の仕訳をエクスポートし、「仕入先コード × 勘定科目 × 部門コード」の出現回数を集計したテーブルを持ちます。これは月1回の更新で足ります。
AIへ渡す前に整形する
- 複数請求書の分割 … 1つのPDFに複数の請求書が入っていることがあります。ページ単位で請求書番号を検出し、分割します
- 向きの補正 … スキャンした紙は上下逆や横向きのことがあります。OCRサービス側で自動補正されるか確認し、されない場合は前段で回転させます
- 重複の検出 … 同じ請求書が再送されることがあります。「仕入先コード+請求書番号+金額」で既存データと照合し、重複なら処理を止めます。これを入れないと二重支払いが起きます
- 請求書以外の除外 … 見積書、納品書、督促状が混ざります。書類種別を判定して振り分けます
AIに処理させる
OCRとLLMで役割を分けます。
OCR(Document Intelligence)にさせること: 文字と項目の読み取り。金額、日付、明細行の抽出。ここはLLMにさせません。専用モデルのほうが精度が高く、費用も安いためです。
LLMにさせること:
| 処理 | 内容 |
|---|---|
| 仕入先名の名寄せ | 「(株)◯◯商事」「株式会社◯◯商事」「マルマル商事」をマスタの1社に対応づける |
| 勘定科目の候補付け | 明細の品目名から、過去実績を参照して科目を推定する |
| 摘要文の生成 | 明細から会計システムの摘要欄に入れる短文を作る |
| 異常の指摘 | 前月比で金額が大きく違う、税率が想定と違う等を指摘する |
指示内容を固定する
あなたは経理の買掛金担当を支援する担当者です。
OCRで抽出された請求書の内容と、仕入先マスタ・過去仕訳実績をもとに、
仕入先コードと勘定科目の候補を付けてください。
【厳守事項】
- 金額、日付、請求書番号を書き換えないでください。
OCRの抽出結果をそのまま引き継いでください。
- 仕入先マスタに一致する候補がない場合は、新しいコードを作らず
supplier_code を null にし、reason に理由を書いてください。
- 勘定科目は、過去仕訳実績に存在する組み合わせからのみ選んでください。
実績にない科目を提案する場合は confidence を low にしてください。
- 税率区分(10% / 8%軽減 / 対象外)は、請求書に明記された表示に従ってください。
品目名から推測しないでください。
- 判断に迷った項目は needs_review に列挙してください。
【OCR抽出結果】
{ocr_result}
【仕入先マスタの候補(名称の近い上位5件)】
{supplier_candidates}
【この仕入先の過去仕訳実績(直近12か月)】
{past_entries}
「税率区分を品目名から推測しない」の1行が重要です。 軽減税率の判定は、AIが品目名から推測すると誤ります。請求書に書かれた表示に従わせ、書かれていなければ人に回します。税額の誤りは、後から修正申告の対象になります。
出力形式を固定する
{
"supplier_code": "",
"supplier_name_matched": "",
"invoice_no": "",
"invoice_date": "",
"due_date": "",
"amount_excluding_tax": 0,
"tax_amount": 0,
"tax_rate_breakdown": [
{ "rate": "10", "base": 0, "tax": 0 }
],
"total_amount": 0,
"line_items": [
{
"description": "",
"amount": 0,
"account_code": "",
"department_code": "",
"confidence": "high | medium | low"
}
],
"po_match": "matched | mismatched | not_found",
"duplicate_check": "ok | duplicate",
"needs_review": [],
"reason": ""
}
金額は文字列でなく数値で返させます。文字列にすると「1,200,000」のようにカンマ入りで返り、後段の計算で壊れます。
システムへ連携する
承認後、会計システムへ登録します。連携方法は会計システムによって3通りあります。
| 方式 | 内容 |
|---|---|
| API連携 | 会計システムがAPIを提供していれば、承認と同時に登録する |
| ファイル取込 | 所定のCSV形式で書き出し、会計システムの取込機能で読ませる |
| RPA | 上記が使えない場合。画面操作を自動化する |
多くの国産ERPでは、CSV取込がもっとも確実です。 APIの有無と仕様は、自社の会計システムのベンダーに確認してください。この部分は利用環境に応じた個別確認が必要です。
PDFの保管は、電子帳簿保存法の要件(取引年月日・取引金額・取引先での検索が可能であること)を満たす形にします。ファイル名に「日付_取引先_金額」を含める、または検索項目をメタデータとして持たせます。
人が確認する
全件、人が承認します。段階的な自動化もしません。
理由は、支払という金銭の移動を伴うためです。誤った金額が登録されれば、そのまま振り込まれます。この構成で減らしているのは「読んで打ち込む時間」であって、「確認の責任」ではありません。
確認を速くするための設計が重要です。
- 確認画面で、PDFの原本と抽出結果を左右に並べて表示する
- OCRが抽出した箇所を、PDF上でハイライトする
confidenceが低い項目、needs_reviewに入った項目を色分けする- 発注データと金額が一致した請求書は、その旨を大きく表示する(確認の負荷が下がる)
これらがないと、確認に4分かかり、削減効果が出ません。
例外に対処する
| 起きること | 対応 |
|---|---|
| OCRが金額を読めない | 該当項目を空で返し、needs_review に入れる。推測値を入れない |
| 仕入先がマスタにない(新規取引先) | supplier_code を null にして人へ回す。自動でマスタに追加しない |
| 同名の仕入先が複数ある | 候補を並べて人に選ばせる |
| 発注データと金額が合わない | po_match: mismatched として、差額を表示したうえで人へ回す |
| 重複請求書を検出した | 処理を止め、既存データへのリンクとともに通知する |
| 1つのPDFに複数請求書 | ページ単位で分割して、それぞれ処理する |
| 請求書ではない書類(見積書等) | 書類種別判定で振り分け、別フォルダへ移す |
| 手書きの請求書 | OCR精度が落ちる。confidence が low で返るため、従来どおり手入力に回す |
| 外貨建ての請求書 | 為替レートの適用が必要。自動処理の対象外とし、人へ回す |
| 月末に1日600件が集中する | 処理をキューに入れ、順次実行する。同時実行数の上限を設定してAPIの制限に当たらないようにする |
記録を残す
この業務では、ログの保存が法令上の要件になります。
- 請求書PDFの原本(電子帳簿保存法の保存要件に従う)
- OCRの抽出結果(生の状態)
- LLMが付けた候補と
confidence - 承認者、承認日時
- 人が修正した項目と、修正前後の値
最後の項目は、精度の実測値になります。「金額は毎回そのまま通るが、勘定科目は3割修正されている」と分かれば、どこを改善すべきかが決まります。
04実装レベルの3段階
半自動化の時点で、4分が2分程度になります。 読み取りが自動化されるだけで、目で読んで打つ作業の大半が消えるためです。本格構成にすると1.2分程度になりますが、確認画面と会計システム連携の実装が必要です。
05工数削減シミュレーション
導入後 1,500件 × 1.2分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 受領請求書が月500件以上あり、PDFでの受領が中心。仕入先が100社以上で、会計システムにCSV取込またはAPIがあること。
- 月100件未満で手入力が回っている場合。手書き請求書が大半を占める場合。国内の請求書処理SaaSで要件が満たせる場合。
07最小構成で試す方法
- 直近の請求書PDFを20件用意する(取引先はばらばらに選ぶ)
- Azure AI Document Intelligence の Studio(画面上でファイルをアップロードして結果を見られる)に1件ずつ投入する
- 抽出された取引先名、金額、税率、支払期日が正しいかを目で確認する
- 20件のうち、全項目が正しく取れたのが何件かを数える
この検証だけは必ずやってください。 OCRの精度は、請求書のレイアウトに強く依存します。自社に届く請求書で測らないと、導入後の工数が読めません。
判断の目安は次のとおりです。
| 全項目正解率 | 判断 |
|---|---|
| 8割以上 | 自動化する価値がある |
| 5〜8割 | 確認に時間がかかるが、それでも手入力より速い可能性がある。金額項目の精度を個別に見る |
| 5割未満 | OCRサービスを変えるか、仕入先に請求書フォーマットの統一を依頼する |
勘定科目の候補付けは、ChatGPTやClaudeに「この明細と過去の仕訳実績から科目を推定して」と聞くだけで試せます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 取引先ごとにレイアウトが違い、精度が安定しない | 汎用の請求書モデルで20件試し、精度が出ない仕入先だけ個別対応する。全社統一を目指さない |
| 金額がカンマ入りの文字列で返る | 出力スキーマで数値型を指定する。後段で必ず数値に変換する |
| 仕入先名の表記ゆれで照合できない | 略称・旧社名を含む名寄せ辞書を作る。マスタの「検索用カナ」を活用する |
| 軽減税率の判定を誤る | 請求書の記載に従わせ、品目名からの推測を禁止する。記載がなければ人へ回す |
| 同じ請求書を二重に処理する | 「仕入先コード+請求書番号+金額」で重複チェックする。必須 |
| 月末に処理が集中してAPI制限に当たる | キューに入れて同時実行数を制限する |
| 手書きや低品質スキャンで精度が落ちる | confidence が低いものは従来どおり手入力に回す分岐を作る |
| 確認画面が使いにくく、確認に時間がかかる | PDFと抽出結果を左右に並べる。低確信度の項目を色分けする。ここを省くと削減効果が出ない |
| 電子帳簿保存法の検索要件を満たしていない | 取引年月日・取引金額・取引先で検索できる形で保管する |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 仕入先の社名、取引金額、取引内容、銀行口座情報。自社の原価構造と、仕入先との取引条件が含まれます。
- 外部AIへの入力可否 … 請求書には取引単価が記載されています。これは仕入先との秘密保持の対象になることがあります。自社の情報管理規程と、主要仕入先との契約を確認してください
- 銀行口座情報の扱い … 請求書に振込先口座が記載されている場合、これを抽出・保存する必要があるかを検討します。不要なら抽出対象から外します。振込先の自動更新は絶対に自動化しないでください。 請求書の口座情報を書き換える手口の詐欺があり、これを自動反映する構成は危険です
- 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます
- アクセス権限 … 請求書PDFの保管場所を、経理部門に限定します
- 自動実行してよい範囲 … 承認は必ず人が行います。ここは運用が安定しても変えません。特に、支払データの登録を人の承認なしで実行する構成にしないでください
誤りが起きた場合のリスクは、誤った金額の支払い、二重支払い、税額の誤りです。すべて金銭的な損失または法令上の問題に直結します。承認ログを残し、後から追跡できる状態にしてください。
10まず何から始めるか
1週目:OCRの精度を測る
直近の請求書20件(取引先をばらばらに選ぶ)で、OCRサービスの画面から抽出精度を測ります。この結果で導入可否が決まります。 8割以上取れるなら進めます。
2週目:仕入先の分布を見る
月1,500件の請求書が、何社から届いているかを数えます。上位20社で件数の6割を占めるのが一般的です。まずその20社だけを対象にした構成にすると、実装が軽く済み、効果の大半が取れます。
3〜4週目:半自動化を作る
フォルダ監視 → OCR → スプレッドシート出力までを作り、経理1名が2週間使います。4分が何分になるかを実測します。会計システム連携はまだ作りません。
2か月目以降: 削減効果が確認できたら、確認画面と会計システム連携を実装します。並行して、電子帳簿保存法の保存要件を満たす形になっているかを、顧問税理士に確認してください。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Azure AI Document Intelligence の prebuilt-invoice モデルが、請求書から主要項目と明細行を抽出し構造化JSONを返すこと。27言語対応。スキャン画像・撮影画像・デジタルPDFに対応 | MicrosoftDocs: Invoice model / Azure: Document Intelligence | 2026-09-02 |
| Power Automate の SharePoint コネクタに「ファイルが作成されたとき」トリガーがあること | Microsoft Learn: SharePoint コネクタ | 2026-09-02 |
会計システムへの登録方式(API / CSV取込 / RPA)は製品によって異なります。この部分は利用環境に応じた個別確認が必要です。 電子帳簿保存法の保存要件についても、自社の運用が要件を満たすかを顧問税理士に確認してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0005)についてのご相談はこちらから。
