receipt-ocr-sorter

OCR領収書自動仕分けツール。画像(JPEG/PNG)/PDF/ZIP/動画(MP4/MOV)の領収書をOCRで読み取り、日付・金額・国・カード・用途を抽出して標準ファイル名にリネーム&プロジェクト単位で仕分ける。Markdownサマリーレポート付き。D365 Expenseカテゴリマッピング・レシート添付連携対応。Use when: (1) 領収書の整理, (2) receipt sorting, (3) レシート仕分け, (4) 経費レシートをフォルダ整理, (5) OCRでリネーム, (6) D365経費カテゴリマッピング。Surya OCR + GPU(CUDA)対応。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "receipt-ocr-sorter" with this command: npx skills add aktsmm/agent-skills/aktsmm-agent-skills-receipt-ocr-sorter

Receipt OCR Sorter

OCR(Surya)を使った領収書の自動仕分け・リネーム・集計ツール。

When to Use

  • 領収書を仕分けて, レシートを整理して, receipt sorting
  • フォルダ内の領収書画像をプロジェクト単位で自動整理したい
  • 大量のレシート写真に日付・金額・用途でファイル名を付けたい
  • 出張経費の領収書を一括でリネーム&集計したい

Features

機能説明
OCR抽出日付・金額・国・カード種別・店舗/用途を自動抽出
自動リネームYYYY-MM-DD-国-金額[-カード]-用途.ext 形式
動画対応MP4/MOV → ffmpegでフレーム抽出 → OCR
品質補正日付パターン拡張、金額誤読補正、上限チェック
サマリーPJフォルダにMarkdownレポート(合計・日付別・明細・日本語概要)
GPU対応CUDA PyTorch で高速処理

Architecture

入力フォルダ(未仕分け/iCloud写真 等)
  │
  ├─ JPEG/PNG/PDF/ZIP → OCR → 抽出 → リネーム → PJフォルダへ移動
  ├─ MP4/MOV → ffmpeg → JPG → OCR → ...
  │
  ├─ カード不明 or テキスト不可 → 未分類フォルダ → 再仕分け可能
  │
  └─ 個人経費(D365対象外) → PJフォルダ/private/

private/ フォルダ: D365 に申請しない個人経費レシートを格納する。OCR後にユーザーが「個人経費」と判断した場合に移動する。

Naming Convention

YYYY-MM-DD-国コード-金額[-カード]-分類.ext

例:
  2026-02-09-jpn-14320-amex-shinkansen.jpeg
  2026-02-11-us-272-amex-hotel.jpeg
  2026-02-12-us-190.38-meal.jpeg        ← カードなし
  2026-02-09-us-6.80-amex-meal-starbucks.jpeg

国コード

コード
jpn日本
usアメリカ
cn中国
gbイギリス
sgシンガポール
kr韓国
auオーストラリア
xx不明

分類(summary)

分類日本語トリガーキーワード
shinkansen新幹線新幹線, のぞみ, ひかり, EX予約
hotel宿泊ホテル, HOTEL, MARRIOTT, HILTON
airline航空ANA, JAL, DELTA, UNITED
transport交通TRANSIT, METRO, Suica, PASMO
taxiタクシーTAXI, UBER, LYFT
meal-starbucks食費(スタバ)STARBUCKS
meal-restaurant食費(レストラン)RESTAURANT, DINING
meal-convenience食費(コンビニ)7-ELEVEN, LAWSON, FAMILYMART
meal-supermarket食費(スーパー)COSTCO, WHOLE FOODS, SAFEWAY
meal食費MEAL, LUNCH, DINNER
seminarセミナーSEMINAR, CONFERENCE
shopping買い物AMAZON, APPLE STORE

CLI Usage

# Dry-run(確認のみ、ファイル移動なし)
python receipt_sorter.py --project "202602_TechConnect_Seattle" --dry-run

# 本実行
python receipt_sorter.py --project "202602_TechConnect_Seattle" --input "未仕分け\iCloud写真"

# ログ指定
python receipt_sorter.py --project "202602_TechConnect_Seattle" --input "未仕分け\iCloud写真" --log "result.csv"

Options

オプション説明デフォルト
--project出力PJフォルダ名(必須)-
--input入力フォルダ未仕分け/
--dry-runファイル移動せず結果のみ表示false
--log結果CSVパス<PJフォルダ>/csv/<PJ名>_dryrun.csv or _result.csv

Markdown Summary Output

本実行後、PJフォルダに <PJ名>_summary.md が自動生成される。

含む内容:

  • プロジェクト合計(通貨混在・参考値)
  • 国コード別合計テーブル
  • 日付×国コード別合計テーブル
  • 全明細テーブル(日付・国・金額・カード・分類・日本語概要・ファイル名)

Setup

references/setup-guide.md

Script Reference

references/receipt_sorter.py

D365 Expense カテゴリマッピング

OCR分類から D365 Finance Expense Report のカテゴリへの対応表。

OCR分類D365 Expense Category備考
shinkansenGround Transportation国内鉄道全般
hotelHotel
airlineAirfare | International国際線。国内線は Airfare
transportGround Transportation電車・バス等
taxiGround Transportation | Taxi
meal-*Meals | Employee Travel全食費サブカテゴリ共通
seminarAdmin Services - Misc.
shoppingAdmin Services - Misc.
esim / telecomInternet/Online Fees - TraveleSIM・通信費

D365 連携(Post-OCR)

OCR → リネーム後のファイルは D365 Finance Expense Report に添付可能。

レシート添付手順

  1. Expense line を選択 → Details 下の Receipts セクション → Edit
  2. Add receiptsBrowse → リネーム済みファイルを選択
  3. Document Type: File(PDF)/ Image(JPEG/PNG)
  4. UploadOKClose

レシート差し替え手順

誤ったレシートが添付されている場合:

  1. Expense line を選択 → Receipts の Edit を押す
  2. 誤レシートのチェックボックスを選択 → RemoveYes
  3. Add receiptsBrowse → 正しいファイルを選択 → UploadOK
  4. CloseSave and continue

添付時マッチング検証(MANDATORY)

レシート添付・差し替え時に以下を照合すること:

チェック項目照合対象
金額ファイル名の金額 ≒ 経費行の Amount
日付ファイル名の日付 ≒ 経費行の Date
マーチャントファイル名の分類/店名 ∈ 経費行の Merchant

⚠️ 不一致のまま添付すると監査で差し戻される。

カテゴリ変更手順

  1. Expense line を選択 → Edit → Category コンボボックスにカテゴリ名を入力
  2. Tab キーで確定 → Close

Tips: D365 ブラウザ操作は MCP Playwright toolsbrowser_type / browser_click / browser_snapshot)が最も安定する。Node.js スクリプト(Playwright直接)による自動化は D365 の動的DOM で繰り返し失敗するため非推奨。

Known Limitations

  • OCRの精度はSuryaモデルに依存(手書きや歪みが大きい領収書は誤読あり)
  • 金額は最大候補を採用するが、複数明細のあるレシートでは個別明細は取れない
  • 金額連結誤読: OCRが改行をまたいで数字を結合し巨大整数を返すことがある(例: 14520 + 30014520300)。上限チェック(500万超は除外)で防御しているが、完全ではない
  • 動画は中間フレーム1枚のみ抽出(最適フレーム選択は未実装)
  • 日本語の漢字店名はスラッグ化時にASCII変換で落ちる(カタカナはローマ字化される)
  • Windows PIL ファイルロック: Image.open() がハンドルを保持し shutil.move()WinError 32 で失敗する。with + img.copy() + リトライで対応済み

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

powerpoint-automation

No summary provided by upstream source.

Repository SourceNeeds Review
633-aktsmm
Automation

ocr-super-surya

No summary provided by upstream source.

Repository SourceNeeds Review
234-aktsmm
Automation

skill-finder

No summary provided by upstream source.

Repository SourceNeeds Review
115-aktsmm
Automation

drawio-diagram-forge

No summary provided by upstream source.

Repository SourceNeeds Review