Media > AI活用ユースケース > 物流 > 納品書の控えと受領書の未回収を追って、督促と保管までを回す

納品書の控えと受領書の未回収を追って、督促と保管までを回す

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

戻ってきた受領書のスキャン画像を入力に、伝票番号と受領日を読み取り、出荷実績と突き合わせて回収状況を更新します。担当者の作業は、1枚ずつ番号を見てExcelに印を付けることから、読み取り結果を確認することに変わります。

サマリー
利用ツール
AWS Textract/Azure AI/Claude/Gemini/Google Apps Script/Google Document AI/Power Automate/Python
対象業界
商社/小売/建設/物流/製造
対象部門
物流/経理
対象業務
内容確認・チェック/台帳・マスタ管理
主な課題
入力作業が多い/属人化している/期限・対応漏れが起きる
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/工数削減/機会損失防止
導入難易度
★★☆☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
必須
現在工数
80h/月
AI導入後
28h/月
想定削減
65%
年間削減
624h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 出荷時に納品書を3枚複写で発行し、1枚を受領書として同送する
  2. 取引先が押印し、ドライバーが持ち帰るか、郵送・FAXで返送される
  3. 出荷事務が、戻ってきた受領書の伝票番号を目で読む
  4. Excelの管理表で該当行を探し、受領日を入力する
  5. 受領書を日付順にファイルへ綴じる
  6. 月末に、管理表で受領日が空欄の行を抽出する
  7. 未回収の取引先ごとに一覧を作り、督促の連絡をする
  8. 経理から「受領書はあるか」と問い合わせがあれば、ファイルから探す
導入後(After)
  1. 戻ってきた受領書を、複合機でまとめてスキャンする(1日分を一括で)
  2. 自動PDFを1枚ずつに分割する
  3. 自動各ページから伝票番号と受領日を読み取る
  4. 自動押印欄に印があるかを判定する
  5. 自動販売管理システムの出荷実績と伝票番号で突き合わせる
  6. 自動一致したものは受領済みとして記録し、PDFを伝票番号の名前で保存する
  7. 番号が読めなかったもの、押印がないものだけを画面で確認する
  8. 自動毎朝、出荷から一定日数が過ぎて未回収のものを一覧にする
  9. 自動取引先ごとに督促の文面を作る
  10. 担当者が確認して送る
各工程の詳しい説明を読む
  1. 出荷時に納品書を3枚複写で発行し、1枚を受領書として同送する
  2. 取引先が押印し、ドライバーが持ち帰るか、郵送・FAXで返送される
  3. 出荷事務が、戻ってきた受領書の伝票番号を目で読む
  4. Excelの管理表で該当行を探し、受領日を入力する
  5. 受領書を日付順にファイルへ綴じる
  6. 月末に、管理表で受領日が空欄の行を抽出する
  7. 未回収の取引先ごとに一覧を作り、督促の連絡をする
  8. 経理から「受領書はあるか」と問い合わせがあれば、ファイルから探す

問題は4つあります。

(a)伝票番号を目で読んで探す。 1,200行のExcelから該当行を探します。番号を1桁読み違えると別の行に入力され、2件が同時に狂います。

(b)押印がない受領書が混ざる。 押印を忘れて返されることがあります。受け取った側がそれに気づかず「回収済み」にしてしまうと、後から受領の証明ができません。

(c)未回収に月末まで気づかない。 出荷から30日たっていても、月末の抽出まで気づきません。そのころには取引先の担当者も記憶が薄れています。

(d)保管したものが探せない。 日付順に綴じてあるので、伝票番号から探すには出荷日を先に調べる必要があります。経理からの問い合わせ1件に10分かかることがあります。

  1. 戻ってきた受領書を、複合機でまとめてスキャンする(1日分を一括で)
  2. 【自動】 PDFを1枚ずつに分割する
  3. 【自動】 各ページから伝票番号と受領日を読み取る
  4. 【自動】 押印欄に印があるかを判定する
  5. 【自動】 販売管理システムの出荷実績と伝票番号で突き合わせる
  6. 【自動】 一致したものは受領済みとして記録し、PDFを伝票番号の名前で保存する
  7. 【人】 番号が読めなかったもの、押印がないものだけを画面で確認する
  8. 【自動】 毎朝、出荷から一定日数が過ぎて未回収のものを一覧にする
  9. 【自動】 取引先ごとに督促の文面を作る
  10. 【人】 担当者が確認して送る

自動化されるのは「読む」「探す」「記録する」「保管する」「督促の一覧を作る」の5つです。残るのは「読めなかったものの確認」と「督促を送る判断」です。

7番目の「だけ」が効きます。 1,200件のうち、人が見るのは読めなかった数十件だけになります。残りは触りません。

02今回想定するシステム構成

構成図
複合機で一括スキャン(1日分)
   │
   ▼
Google ドライブの受領書フォルダ
   │
   ▼【トリガー】Apps Script の時間主導型(毎営業日・複数回)
Google Apps Script
   │
   ├──▶ PDFを1ページずつに分割
   │
   ├──▶ Azure AI Document Intelligence(prebuilt-layout)
   │       └─ 伝票番号・受領日のテキスト/押印欄の選択マーク
   │
   ├──▶ Gemini API ── 手書きの受領日の読み取り/読めなかった箇所の所見
   │
   ├──▶ 販売管理システムの出荷実績と突き合わせ
   │
   └──▶ 受領済みとして記録/PDFを伝票番号で保存
   │
   ▼
読めなかったもの・押印なしの確認画面 ──【人が確認】
   │
   ▼【毎朝】未回収の一覧 + 督促文の下書き ──【人が送る】
役割想定する製品代替候補
実行環境Google Apps ScriptPower Automate、Python
OCRAzure AI Document Intelligence(prebuilt-layout)Google Document AI、AWS Textract
処理Gemini APIClaude API
保管Google ドライブSharePoint、Box
台帳販売管理システムGoogle スプレッドシート

レイアウトが1種類であることが、この構成を簡単にしています。 受領書は自社が発行した納品書の複写なので、伝票番号の位置も押印欄の位置も固定です。取引先ごとに様式が違う請求書の読み取りとは、難しさがまったく違います。

そのため、汎用のレイアウトモデルで足ります。カスタムモデルの学習は不要です。

03どうやって実装するのか

Step1

処理の起点を決める

Apps Script の時間主導型トリガーで、毎営業日に複数回動かします。 時間主導型トリガーは1分ごとから月1回までの頻度で設定できます。ここでは1時間ごとに動かし、フォルダに新しいPDFがあれば処理します。

トリガーの開始時刻が正確でないことに注意してください。 9時のトリガーを作ると、Apps Script は9時から10時の間の時刻を選びます。「スキャンした直後に処理される」形にはなりません。

これはこの業務では問題になりません。受領書の処理は数時間遅れても実害がないためです。むしろ、まとめて処理するほうが効率がよくなります。

未回収の一覧は、別のトリガーで毎朝1回作ります。

Step2

入力データを集める

データ中身取得元
受領書のスキャン画像押印済みの納品書控え複合機
出荷実績伝票番号、出荷日、取引先、品目、金額販売管理システム
取引先マスタ取引先コード、名称、担当者、連絡先、回収方法販売管理システム
回収状況伝票番号ごとの受領日、保管先この構成で作る台帳
督促の履歴いつ誰に何を督促したか同上

取引先マスタに「回収方法」の欄を作ってください。 ドライバー持ち帰り、郵送、FAX、電子で、督促のタイミングも文面も変わります。電子で受領している取引先に紙の督促を送ると、信用を落とします。

Step3

データの取得方法を決める

スキャン: 複合機でまとめてスキャンし、1つのPDFとして保存します。1日分を1ファイルにしてかまいません。 分割は後段で行います。

OCR: Azure AI Document Intelligence の prebuilt-layout モデルにページを渡します。このモデルは、段落・行・単語・表・選択マークなどの構造要素を抽出します。対応するファイル形式はPDFのほか、JPEG/JPG、PNG、BMP、TIFF、HEIF の画像です。

押印の判定: レイアウトモデルは選択マークを抽出し、境界の polygonconfidence、選択の stateselected / unselected)を返します。押印欄をチェックボックスとして扱えるとは限らないので、この構成では押印欄の領域に何かが書かれているかを、抽出された単語や図形の位置で判定します。選択マークが取れる様式なら、それを使います。

手書きの受領日: レイアウトモデルは、各テキスト行が手書きスタイルかどうかを信頼度スコア付きで返します(stylesisHandwritten)。手書きと判定された行は、読み取りの精度が落ちる前提で扱います。

Step4

AIへ渡す前に整形する

  1. ページの分割 … 1日分のPDFを1ページずつに分ける。1枚の受領書が1ページであることを前提にします
  2. 向きの補正 … スキャンで上下逆になることがあります。レイアウトモデルはページごとに向きの角度を返すので、それを使って補正します
  3. 画像サイズの確認 … Document Intelligence が扱える画像サイズは50×50ピクセルから10,000×10,000ピクセルの間です。複合機の既定の解像度で問題になることはまずありませんが、確認しておきます
  4. 読み取り領域の限定 … 伝票番号と受領日と押印欄の位置は固定なので、その領域だけを見ます。全文を読む必要はありません
  5. 白紙・重複の除去 … スキャンで白紙が混ざることがあります。文字が1つも検出されないページは除きます

4番目が精度を大きく上げます。 全文から「それらしい番号」を探すより、決まった位置の文字列を読むほうがずっと確実です。

Step5

AIに処理させる

OCRとAIと自前の処理で役割を分けます。

OCR(Document Intelligence)にさせること: 文字の読み取り、手書きかどうかの判定、選択マークの検出、ページの向きの検出。

自前の処理にさせること: 伝票番号での突き合わせ、未回収の抽出、督促のタイミングの判定。照合は文字列の一致であって判断ではありません。

AIにさせること:

処理内容
手書きの受領日の解釈「9/3」「R8.9.3」「令和8年9月3日」を同じ日付に直す
読めなかった番号の候補出し一部が読めた番号から、出荷実績の中の候補を挙げる
押印の有無の所見押印欄に何が見えるか(印影、サイン、空欄、かすれ)
督促文の作成取引先ごと、回収方法ごとの文面

AIに伝票番号を推測させません。 「7かもしれないし1かもしれない」という状態で確定させると、別の出荷に受領書が紐づきます。候補を挙げさせ、選ぶのは人です。

Step6

指示内容を固定する

あなたは出荷事務を支援する立場です。
OCRで読み取った受領書の情報を確認し、受領日を標準形式に直してください。

【厳守事項】
- 伝票番号を推測で確定しないでください。
  OCRが読み取れなかった桁がある場合は、slip_number を null にし、
  読み取れた部分を partial_number に入れてください。
- 受領日は、和暦・西暦・月日のみのいずれで書かれていても
  YYYY-MM-DD に直してください。年の記載がない場合は
  year_missing を true にし、年を補わないでください。
- 押印欄については、見えているものを observation に書いてください。
  「押印あり」と断定せず、何が見えるか(丸い印影、角印、サイン、空欄、
  かすれた印影)を書いてください。
- 受領日が未来の日付、または出荷日より前の日付になる場合は、
  date_anomaly を true にしてください。
- OCRの結果にない文字を補わないでください。

【OCRの読み取り結果】
{ocr_result}

【この伝票の出荷日】
{ship_date}

「年を補わない」の指示が必要です。 受領書には「9/3」としか書かれていないことがあります。出荷日から推測できそうに見えますが、年末年始をまたぐと誤ります。 年が書かれていない場合は、出荷日から機械的に補うルールを別に決め、そのルールで補ったことを記録します。

「押印あり」と断定させないことも重要です。 かすれた印影を「あり」と判定すると、後から受領の証明ができません。見えているものを書かせ、判断は人がします。

Step7

出力形式を固定する

{
  "page_no": 0,
  "slip_number": null,
  "partial_number": "",
  "number_candidates": [],
  "received_date": null,
  "year_missing": false,
  "date_anomaly": false,
  "stamp": {
    "observation": "",
    "present": "yes | no | unclear"
  },
  "handwritten_fields": [],
  "needs_review": true,
  "review_reason": ""
}

突き合わせの結果は自前の処理が作ります。

{
  "slip_number": "",
  "match_status": "matched | not_found | ambiguous",
  "ship_date": "",
  "received_date": "",
  "days_to_receive": 0,
  "stored_path": "",
  "customer_code": ""
}

match_statusambiguous(候補が複数)を用意します。not_found と混ぜないでください。 前者は台帳にない番号、後者は似た番号が複数ある状態で、対処が違います。

Step8

システムへ連携する

つなぎ先方式内容
Google ドライブApps ScriptスキャンPDFの取得と、保管
Document IntelligenceREST APIOCR
販売管理システムAPI または日次エクスポート出荷実績・取引先マスタの参照
メールApps Script督促文の送信(人が確認後)

販売管理システムへの書き込みは、受領日の記録だけに限定します。 システムに受領日の欄がなければ、この構成の台帳に持ち、システムには書き込みません。受領書の回収管理のために販売管理システムを改修する必要はありません。

保管は、伝票番号で探せる形にします。 ファイル名に「伝票番号_取引先コード_受領日」を入れ、ドライブの検索でそのまま出てくるようにします。日付順のフォルダに入れるだけでは、従来の紙のファイルと同じ問題が残ります。

Step9

人が確認する

全件は確認しません。条件付きの確認にします。

人が見るのは次の場合だけです。

条件なぜ見るか
伝票番号が読めなかった誤った紐づけを防ぐため
番号の候補が複数ある選ぶ必要があるため
押印が unclear または no受領の証明にならない可能性があるため
受領日が出荷日より前、または未来読み取り誤りか、記入誤りのため
台帳に伝票番号がない他社の伝票が混ざった可能性があるため

これらに当たらないものは、そのまま記録します。 月1,200件のうち、人が見るのは数十件になります。

全件確認にしない理由は、受領書の照合が金銭の移動を伴わないためです。誤って紐づけても、後から気づいて直せます。一方、支払や請求の金額を扱う業務では全件確認が必要です(このデータベースの受領請求書の読み取りの事例では全件確認としています)。同じOCRでも、扱うものの重さで設計が変わります。

確認を速くするための設計が重要です。

  • 確認画面で、受領書の画像と読み取り結果を並べて表示する
  • 番号の候補を、出荷日と取引先名つきで並べる(番号だけでは選べない)
  • 押印欄を拡大して表示する
  • 確認が終わったら次の1件へ自動で進む
Step10

例外に対処する

起きること対応
伝票番号が読めないslip_number を null にして人へ回す。推測で確定しない
似た番号が複数あるambiguous として候補を並べ、人に選ばせる
台帳に伝票番号がないnot_found として人へ回す。他社の伝票の混入を疑う
押印がないpresent: "no" として人へ回す。自動で受領済みにしない
受領日が書かれていない押印だけで受領の記録とするかを、社内ルールで決めておく
年が書かれていない出荷日から補うルールを決め、補ったことを記録する
受領日が出荷日より前date_anomaly として人へ回す。読み取り誤りが大半
1ページに2枚が写っている文字が検出される領域が2つに分かれることで検出し、人へ回す
スキャンで白紙が混ざる文字が検出されないページを除く
同じ受領書を二重にスキャンした伝票番号で既存の記録を確認し、二重なら処理を止める
電子で受領している取引先の伝票回収方法が「電子」の取引先は、督促の対象から外す
スキャンの解像度が低く読めない複合機の設定を見直す。解像度を上げれば解決する問題を、AIで解こうとしない
Step11

記録を残す

  • 受領書のスキャン画像(伝票番号で検索できる形で)
  • OCRの読み取り結果(生の状態)と、手書き判定の結果
  • AIが返した解釈と needs_review の理由
  • 人が確認した件と、確定した内容
  • 突き合わせの結果(matched / not_found / ambiguous
  • 督促の履歴(いつ、誰に、何回目か)

受領書は、取引の証憑として保存期間の定めがあります。 電子で保存する場合、電子帳簿保存法の要件(取引年月日・取引金額・取引先で検索できること)を満たす形にしてください。ファイル名に伝票番号を入れるだけでは、金額での検索ができません。 メタデータとして持たせるか、台帳と紐づけて検索できる形にします。

この点は顧問税理士に確認してください。 紙で保存を続けるか、電子に移行するかで要件が変わります。

04実装レベルの3段階

最小構成:スキャンして、OCRの結果をCSVで出し、Excelに貼り付ける / 読み取りのみ
半自動化:上記+出荷実績との突き合わせ+伝票番号での保管+確認画面 / 読み取りと照合と保管
本格構成:上記+毎朝の未回収一覧+取引先ごとの督促文+督促履歴の管理 / 督促の送信以外のすべて

半自動化の時点で、4分が2分程度になります。 目で番号を読んでExcelから行を探す作業が消えるためです。 本格構成にすると1.4分程度になります。 ここで減るのは保管の手間と、月末にまとめて未回収を抽出する作業です。 未回収の一覧は、半自動化の段階でも作れます。 突き合わせができていれば、受領日が空欄の行を毎朝抽出するだけです。督促文の自動作成より先に、これを入れてください。 効果の大半はここにあります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
2 名
月間件数
1,200 件
1件あたり現在時間
4 分
1件あたり導入後時間
1.4 分
現在  1,200件 × 4分 ÷ 60 = 80 時間/月
導入後 1,200件 × 1.4分 ÷ 60 = 28 時間/月
月間削減時間
52h
削減率
65%
年間削減時間
624h
年間金額換算(時間単価3,000円)
187万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 月1,000件以上の出荷があり、取引先から押印済みの受領書を回収する運用の企業。受領書の到着確認をExcelや紙のファイルで管理しており、未回収の把握が月末にまとめて行われている場合。受領書が請求の前提になっており、未回収が入金の遅れにつながっている場合。
向いていない
  1. 取引先がすべて電子取引に移行しており、受領の記録がシステム上で自動的に残る場合。月の出荷が100件未満で、未回収が一目で分かる場合。受領書の回収を求めていない業態の場合。

07最小構成で試す方法

  1. 戻ってきた受領書を50枚まとめてスキャンする
  2. Document Intelligence Studio(画面上でファイルを上げて結果を見られる)に投入する
  3. 伝票番号と受領日の位置の文字が正しく読めているかを確認する
  4. 50枚のうち、伝票番号が正しく読めたのが何枚かを数える

この50枚の検証だけは必ずやってください。 受領書は複写紙なので、印字が薄いことがあります。自社の受領書で測らないと、導入後の確認件数が読めません。

判断の目安は次のとおりです。

伝票番号の正解率判断
95%以上自動化する価値が大きい。人の確認は月数十件で済む
85〜95%効果はある。確認件数が月100〜180件になる前提で組む
85%未満スキャンの解像度を上げて再測定する。それでも改善しなければ、伝票にバーコードを印字することを検討する

最後の選択肢を軽視しないでください。 納品書の様式を変えて伝票番号のバーコードを印字すれば、読み取りの問題はほぼ消えます。OCRの精度を上げる努力より、そちらのほうが確実です。

08実装時につまずきやすいポイント

問題対策
複写紙で印字が薄く、番号が読めないスキャンの解像度を上げる。それでも駄目なら伝票にバーコードを印字する
伝票番号を推測で確定して誤紐づけする読めなかった桁があれば null にして人へ回す
「台帳にない」と「候補が複数」が区別できないnot_foundambiguous を分ける。対処が違う
受領日の年が書かれていない出荷日から補うルールを決め、補ったことを記録する
かすれた印影を「押印あり」と判定する「押印あり」と断定させず、見えているものを書かせる
Apps Script のトリガーが指定時刻に動かない開始時刻はランダムに調整される(9時なら9時〜10時の間)。時刻に依存しない設計にする
1回の実行で処理が終わらない1回あたりの処理枚数を制限し、続きは次の実行で処理する
スキャンで上下逆になるレイアウトモデルが返すページの向きの角度を使って補正する
保管したPDFが伝票番号で探せないファイル名に伝票番号を入れる。日付順のフォルダだけにしない
電子受領の取引先に紙の督促を送る取引先マスタに回収方法の欄を作り、督促の対象を分ける
電子帳簿保存法の検索要件を満たしていない取引年月日・取引金額・取引先で検索できる形にする。顧問税理士に確認する

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 取引先名、伝票番号、出荷品目、金額、押印(印影)。取引先の印影が含まれます。

  1. 印影の扱い … 受領書には取引先の社印や担当者印が押されています。印影は複製されると悪用されうるものです。 スキャン画像の保管場所とアクセス権限を限定し、外部へ持ち出さない運用にしてください
  2. 外部AIへの入力可否 … OCRサービスには受領書の画像そのものを渡します。印影と取引先名が含まれるため、入力を学習に使わないことが契約で保証されるサービスを選んでください
  3. アクセス権限 … 受領書の保管場所を、物流部門と経理部門に限定します。全社の共有ドライブに置かない運用にします
  4. 保存期間 … 取引の証憑としての保存期間を、自社の文書管理規程と税法上の要件に合わせます
  5. 自動実行してよい範囲 … 督促の送信は人が行います。未回収の一覧が自動で出ることと、自動で督促が送られることは別です。 取引先への連絡が機械的に送られると、関係に影響します
  6. 誤った紐づけの影響 … 受領書を別の出荷に紐づけると、実際には未回収のものが回収済みになります。読めなかったものを推測で確定しない設計が、この構成の安全装置です

10まず何から始めるか

1週目:50枚で読み取りの精度を測る

戻ってきた受領書50枚をスキャンし、Document Intelligence Studio で伝票番号が読めるかを測ります。あわせて、複合機のスキャン解像度の設定を確認してください。 解像度を上げるだけで解決することがあります。

2週目:未回収の一覧を先に作る

OCRを使わず、販売管理システムの出荷実績と、現在のExcel管理表を突き合わせるだけで、未回収の一覧を毎朝作ります。これだけで「月末まで気づかない」問題が消えます。効果の大きさの割に、作るのは半日です。

3〜4週目:読み取りと突き合わせを作る

スキャン→分割→OCR→突き合わせ→保管までを作り、確認画面を用意します。担当者1名が1か月使い、確認が必要になる件数と、4分が何分になるかを実測します。

2か月目以降: 督促文の作成と履歴の管理を足します。並行して、受領書を電子で保存するかどうかを顧問税理士と決めてください。 紙の保管を続けるなら、この構成は「探せるようにする」だけの役割になります。それでも十分な価値がありますが、方針は先に決めておくほうがよいものです。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-09-22/最終更新:2026-09-22
確認した内容情報源確認日
Document Intelligence のレイアウトモデル(prebuilt-layout)が、段落・行・単語・表・選択マークなどの構造要素を抽出すること。選択マークが境界の polygon、confidence、選択の state(selected / unselected)を持つこと。各テキスト行が手書きスタイルかどうかを信頼度スコア付きで返すこと(styles の isHandwritten)。ページごとに向きの角度と幅・高さを返すこと。対応形式が PDF、JPEG/JPG、PNG、BMP、TIFF、HEIF と Office ファイルであること。画像のサイズが50×50ピクセルから10,000×10,000ピクセルの間である必要があることMicrosoft Learn: ドキュメント レイアウト分析2026-09-22
Apps Script の時間主導型トリガーが1分ごとから月1回までの頻度で設定できること。開始時刻はランダムに調整され、9時のトリガーを作ると9時から10時の間の時刻が選ばれることGoogle: Installable triggers2026-09-22

受領書を電子で保存する場合の要件(電子帳簿保存法における検索要件、真実性の確保)は、自社の運用によって満たし方が異なります。この部分は顧問税理士への確認が必要です。 また、販売管理システムからの出荷実績の取得方法は製品によって異なるため、利用環境に応じた個別確認が必要です。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0152)についてのご相談はこちらから。

AI活用について相談する
目次