役割
株式会社コネクトエイトの社内経理(A10)における、証憑(領収書・請求書・利用明細)の OCR・分類・命名・スプシ記録・Freee 登録までを自動化する。クライアント経理(A09 ガッチャン担当)には一切触らない厳格分離。
「Freee の全取引 ↔ 証憑の 1:1 紐付け維持」。期末・税務調査で『この取引の証憑は?』に即答できる状態を常にキープ。
入口 3 経路
| 経路 | 用途 | 適性 |
|---|---|---|
Telegram /finance upload | 外出先・スマホ撮影で即投入 | レシート紙系 |
Discord /finance(#connect8_finance) | PC 前・複数同時投入、ボタン UI | PDF・スクショ |
Drive 直 _INBOX_会社支払 / _INBOX_代表立替 | メール添付 PDF を一括 | 電子請求書 |
標準フロー(投入から Freee 登録まで)
- 投入: スタッフ/CEO が 3 経路のいずれかに証憑を投入
- OCR: Claude Sonnet 4.6 Vision で日付・金額・店舗・税額・通貨を抽出(複数レシート 1 画像対応)
- マスタ照合: スプシ「定期取引手動調整」と部分一致 + 別名照合で正規名を取得
- 振分: 10 フォルダ(8 軸 + 通信費 + 公租公課)の該当箇所に Drive 移動
- リネーム:
YYYYMMDD_¥金額_店舗_(会社|立替)_(電子領|電子請|紙領|紙請).ext規約に統一 - 重複検知: スプシ既存行 + Freee 既登録の二重ガード
- スプシ追記: 証憑管理簿 23 列に 1 行追記(外貨対応、発生日降順 sort)
- Freee 登録:
- L2 代表立替: 取引下書き作成(決済済み・役員資金口座)+ メモタグ「社長立替え」+ 部門「AI下書き要確認」+ 画像同時紐付け
- L3 会社支払: ファイルボックスへ画像 POST のみ(既存取引への紐付けはスタッフ手動)
- レビュー: Telegram/Discord で
/done後にリネーム後ファイル名を返却。CEO が項目選択 + テキスト入力で修正可能 - スタッフ承認: Freee で部門「AI下書き要確認」フィルタ → 内容確認 → 部門外す = 承認完了
10 フォルダ構成(証憑/ 直下、年度階層なし蓄積運用)
| # | フォルダ名 | 用途 |
|---|---|---|
| 01 | 会社支払_電子領収書 | クレカ・銀行決済の電子領収書 PDF |
| 02 | 会社支払_電子請求書 | 同 電子請求書(Cloudflare 等) |
| 03 | 会社支払_紙領収書 | 会社カード決済の紙レシート |
| 04 | 会社支払_紙請求書 | 会社宛 紙請求書 |
| 05 | 代表立替_電子領収書 | CEO 立替の電子領収書 |
| 06 | 代表立替_電子請求書 | CEO 立替の電子請求書 |
| 07 | 代表立替_紙領収書 | CEO 立替の紙レシート |
| 08 | 代表立替_紙請求書 | CEO 立替の紙請求書 |
| 09 | 通信費(月次) | 定期サブスク 9 種(ワイモバイル/楽天モバイル/IIJ/SoftBank AIR/LINE/Google Workspace/OPEN AI/Anthropic/ZOOM) |
| 10 | 公租公課(税金・社会保険) | 健康保険・厚生年金・源泉所得税・法人税等 |
リネーム規約と特殊ルール 8 種
標準(01〜08)
YYYYMMDD_¥金額_店舗_(会社|立替)_(電子領|電子請|紙領|紙請).ext例:
20260518_¥990_DAISO_会社_紙領.jpg
09 通信費(月次)
YYYYMMDD_¥金額_店舗_(会社|立替)_通信費(月次).ext
10 公租公課
領収日_¥金額_書類名(送付分)_公租公課.ext例:
20260331_¥42855_保険料納入告知額・領収済額通知書(令和8年4月送付分)_公租公課.pdf
外貨対応
YYYYMMDD_$62.69_ZOOM_会社_通信費(月次).pdf(USD/EUR/GBP 等通貨記号)
発生日 特殊ルール 8 種
| サービス | 発生日ロジック |
|---|---|
| ソフトバンク AIR | ご利用月の翌月 9 日 |
| 楽天モバイル | ご利用月の翌月 11 日 |
| Google Workspace | 請求書発行日 + 1 日 |
| YOUTUBE(NOBU塾) | 請求書発行日 + 1 日 |
| LINE公式アカウント | 取引年月の月初(1 日) |
| IIJ | 利用月の月末日 |
| 佐藤先生 / 田邊先生 | 同月最終銀行営業日(土日祝繰り上げ) |
| 辻倉様 給与 | 同月 15 日(土日祝前営業日) |
| その他 | OCR の date そのまま |
マスタ「定期取引手動調整」シート(CEO 運用)
定期サブスク・固定費の正解値を CEO 手動メンテ。OCR ブレを吸収し、リネーム正規名・勘定科目・支払い方法を自動確定。
| 列 | 項目 | 例 |
|---|---|---|
| A | 支払い先(正規名) | LINE公式アカウント |
| B | 勘定科目 | 通信費 |
| C | 支払い金額 | 5500 |
| D | 証憑タイトル | お取引の詳細 |
| E | サイクル | 月次 |
| F | 支払い方法 | アメリカン・エキスプレス - ビジネス・カード(API)1 |
| O | 証憑形態 | 通信費(月次)/ 月末銀行営業日決済 / 給与 15 日 / クレカ明細 / 公租公課 |
| P | 別名(カンマ区切り) | GMO INTERNET, GMO ペパボ, お名前ドットコム |
Discord 版 /finance UX 比較
| 項目 | Telegram | Discord |
|---|---|---|
| 支払区分・証憑種別・勘定科目選択 | 番号テキスト入力(1/2 等) | ボタン UI(クリックのみ) |
| 「誰と」備考入力 | テキスト返信 | Modal ダイアログ |
| 画像添付 | 連続送信 | Discord メッセージ添付(複数可) |
| レビュー結果 | テキスト返信 | Embed + 修正/完了ボタン |
| 修正 | 番号テキスト | 番号ボタン → 項目ボタン → Modal |
| 適性 | 外出先スマホ | PC 前・複数枚同時 |
レビュー機能(Telegram / Discord 共通)
/done 後に Bot がリネーム後ファイル名を返却。CEO が間違いに気付けば 項目選択 → 値入力で即修正。
パーサー柔軟性: 日付は
2026/12/01 / 20261201 全対応、金額は ¥15,000 / ¥1,5000(typo 補正)/ 全角数字対応
Freee 登録仕様
L2 代表立替(うーぱんが新規取引登録)
- status: 決済済み(未決済山積み問題を回避)
- 支払口座: 役員資金(type=private_account_item, id=232703331)→ BS 役員借入金に自動反映
- 勘定科目: マスタ照合 or OCR 推定(交際費は CEO 入力で確定)
- メモタグ: 社長立替え(業務分類、id=9239965)
- 部門: AI下書き要確認(id=3989686、スタッフ承認フィルタ用)
- 証憑: POST /api/1/receipts → POST /api/1/deals で同時紐付け
- 備考: OCR 内容 + 交際費は CEO 入力「誰と」を転記
L3 会社支払(既存自動連携取引)
- ファイルボックスに画像 POST のみ
- 既存取引との紐付けはスタッフが Freee UI で手動実施
会議費自動判定
交際費選択時、OCR で人数取得 + 金額 ÷ 人数 ≤ 5,000 円なら会議費に自動切替(税法上の合理的区分)
重複検知(dedup 二段ガード・2026-05-28 強化)
/upload 投入済み証憑をスタッフが再投入しても二重登録されない。特に立替は Freee 自動登録があるため二重計上は致命的。
段 1: SHA256 完全一致(高速・確実)
- ファイルバイト全体の SHA256 を計算し
dedup_index.jsonと照合 - 一致 → SKIP 確定。
#connect8_financeに通知、ファイルを_重複候補/に退避 - Freee 紐付け済み(
freee_attached: true)なら「絶対に処理しない」と明示通知
段 2: OCR 3項照合(再スキャン等の補完)
- 段 1 miss 後 → OCR 実行 →
(amount_total, date, store_name)3 項をdedup_index.jsonと照合 - 一致 → 「重複候補」として
#connect8_financeに CEO 確認ボタン付き通知- [✅ 同一→SKIP]: ファイルを
_重複候補/に退避、既存スプシ行と紐付け - [🆕 別取引→処理続行]: そのまま通常パイプライン続行
- [✅ 同一→SKIP]: ファイルを
- 24 時間タイムアウト → デフォルト「別取引→処理続行」(保守的、見落とし防止)
dedup_index.json(新設)
処理済み証憑の SHA256 + OCR 3項を蓄積する JSON ファイル。processed_ids.json(file_id ベース)と並列運用。週次で _backups/ にバックアップ。
{
"schema_version": "1.0",
"entries": [
{
"sha256": "abc123...",
"amount_total": 43110,
"date": "2026-05-21",
"store_name": "日本年金機構",
"drive_file_id": "1TDn5-...",
"sheet_row": 9,
"processed_at": "2026-05-27T19:47:00+09:00",
"freee_attached": false,
"source": "pipeline"
}
]
}
既存ガード(維持)
- スプシ既存行との日付 + 金額 + 店舗(部分一致)照合 → 完全一致は
_要確認/退避 - Freee 既登録 deal との日付 + 金額照合 → 重複なら POST スキップ
自動却下はしない(誤検知防止)、必ず人間判断を挟む。
スタッフ向け簡易フロー(Drive ドロップのみ)
| 操作 | フォルダ | Drive URL |
|---|---|---|
| 立替(CEO 立替分) | _INBOX_代表立替/ |
開く |
| 会社支払(会社カード・銀行振込) | _INBOX_会社支払/ |
開く |
- 証憑(レシート画像 / PDF)を該当フォルダにドロップ
- 5 分以内にうーぱんが自動検知・OCR・振分・スプシ記録
- 公租公課(健保・年金・税金)は自動的に証憑_10 に振分
- ZOOM / Anthropic 等通信費は自動的に証憑_09 に振分
- それ以外は支払区分に応じて証憑_01〜08 に振分
- 処理後、ファイルは
_processed/<YYYY-MM>/にアーカイブ
自動処理の LaunchAgent
com.connect8.upan.poller LaunchAgent が 5 分毎に両 INBOX を監視。Mac mini で常時稼働。
インストール:
cp com.connect8.upan.poller.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.connect8.upan.poller.plist
Phase D.1 定期取引パターン分析
Freee 過去 3 年分(2,756 件)から定期支出を自動抽出。スプシ「定期取引パターン」シートに 28 件の月次/四半期/年次パターンを可視化。漏れ検知(来てるはずの請求が未着)も自動。
法的整合性
- 電帳法: 電子取引データは Drive + Freee の二重保管、紙はハイブリッド(紙原本 + 電子バックアップ)
- インボイス制度: 登録番号(T で始まる 13 桁)含む証憑を優先(楽天モバイル「ご利用料金のお知らせ」等)
- 税務判断: AI はしない(うーぱんは候補提示まで)。確定は税理士 / CEO
Bundle モード(2026-05-27 追加)
複数ファイルが同一決済(例: 自動車税 表紙+本紙、保険料 複数月分)の場合、Drive 上でフォルダ単位で証憑を保管し、スプシは 1 行に集約する機能。
/done の 2 段階フロー
- アップロード 2 件以上 →
/done押下時に確認画面を表示 - [bundle] 選択 → 1 フォルダ 1 行で処理
- [separate] 選択 → 従来の個別処理(N 行)
- 1 件のみ → 確認スキップ、従来動作と完全互換
合議制 OCR
| フィールド | 集約ルール |
|---|---|
| 金額 | 全 OCR の最大値(合計請求が含まれる想定) |
| 日付 | 全 OCR の最古値(決済発生日) |
| 発行者 | 最頻出 store_name(同率なら 1 枚目優先) |
| 通貨 | 全 OCR で一致確認、ズレたら警告 + JPY フォールバック |
| raw_text | 全ファイルを連結(公租公課/通信費キーワード判定に使用) |
| 信頼スコア | 全 OCR の平均 |
Drive フォルダ構造
証憑/証憑_01_会社支払_電子領収書/
└── 20260521_¥43110_日本年金機構_会社_公租公課/ ← bundle サブフォルダ
├── 20260521_¥43110_日本年金機構_会社_公租公課_#1.pdf
├── 20260521_¥43110_日本年金機構_会社_公租公課_#2.jpg
└── 20260521_¥43110_日本年金機構_会社_公租公課_#3.pdf
- 同名フォルダが存在する場合:
_v2,_v3自動付番 - スプシ T 列:
bundle_name/(末尾/でフォルダを表現) - スプシ U 列:
https://drive.google.com/drive/folders/<id> - K 列備考:
bundle 3件: 表紙#1, 本紙#2, 振込控#3
特殊カテゴリの自動判定
bundle でも単一ファイルと同じ優先順位で特殊カテゴリを判定(raw_text は全ファイル連結で判定):
- 公租公課(KOSOKOKA_KEYWORDS 一致)→ 証憑_10、bundle 名は公租公課フォーマット
- 通信費(月次)(TSUSHINHI_MASTER_NAMES 一致、Anthropic/ZOOM 等)→ 証憑_09
- YOUTUBE(NOBU塾)(store_name 完全一致)→ 発生日 = 請求書発行日 + 1 日
Telegram 版
/done 後に [1] bundle / [2] separate のテキスト選択(ボタン UI 非対応のため番号入力)。ステート SELECT_BUNDLE = 11 を新設。
関連リソース
- 立替管理表スプシ: A10_立替管理表_2026年度
- Drive ルート:
1RbqJDW00aQGi9eqhaTdG_K0girAVHdkl(経理専用) - Freee 事業所: 株式会社コネクトエイト(事業所番号 905-960-7206)
- コード:
~/claude/2_Areas/A10_corporate_finance/phase_b_reimbursement/