取引先から届いた請求書PDFが、ダウンロードフォルダにそのまま溜まっていく。心当たりのある方、少なくないはずです。
インボイス番号(適格請求書発行事業者の登録番号)が有効かどうか、そのつど国税庁のサイトで検索するのも地味に面倒な作業ですよね。この記事で紹介するのは2つの仕組みです。電帳法(電子帳簿保存法)の検索要件を満たすファイル名への自動リネームと、インボイス番号の自動照合。最低限おさえておきたい制度知識から、作るもの、手順、注意点まで一通り押さえます。
電帳法・インボイス制度で最低限おさえておきたいこと
先に断っておきます。ここで説明するのはあくまで概要です。自社の対応状況や保存方法が要件に合っているかどうかは、この記事だけでは判断できません。専門家への確認が前提だと考えてください。
電帳法には「検索要件」というルールがあります。代表的な要件は、取引年月日・取引先・取引金額の3項目で検索できる状態にしておくこと(またはそれに準ずる方法)。ファイル名にこの3項目を入れておけば、フォルダ内検索だけで目的のファイルにたどり着けます。
インボイス制度では、適格請求書発行事業者として登録すると「T」から始まる13桁の登録番号が発行されます。取引先がこの番号を持つ課税事業者かどうかは、仕入税額控除(消費税の納税額を計算するときに差し引ける仕組み)に関わるため、確認しておく価値があります。
この記事で作るもの/ビフォーアフター
作るのは、受領した請求書・領収書を自動でリネーム・仕分けし、あわせてインボイス番号の有効性も一覧でチェックできる仕組みです。
- Before:請求書PDFがダウンロードフォルダや共有フォルダに雑多に溜まり、検索もできない。インボイス番号は目視で国税庁サイトを都度検索
- After:ファイルは「日付_取引先_金額」形式に自動リネームされ、取引先・月ごとのフォルダに整理される。インボイス番号は有効・無効・要確認の一覧として自動で出てくる
ここも念を押しておきますが、これで「保存要件を完全に満たした」ことにはなりません。ゴールはあくまで、日々の整理と一次チェックの手間を減らすことです。

必要なもの・前提
- Python(ファイル操作と簡易的なテキスト抽出に使う。Google Workspace中心の会社ならGASでも近い仕組みは作れる)
- AIチャットツール(ChatGPTやClaudeなど。コードの書き方やWeb-APIの使い方を手伝ってもらえます)
- 国税庁「適格請求書発行事業者公表システム」のWeb-API利用申請
- 保存先フォルダの構成ルール(取引先別か月別か、自社の運用と整合させておく)
Web-APIを使うには、事前にアプリケーションIDの申請が必要です。発行までに1か月〜1か月半程度かかることがあるとされています(国税庁FAQ参照)。数日で済むだろうと油断していると、後の工程がまるごと止まりかねません。
着手を決めたら、真っ先に申請だけ済ませておくのが賢明です。私の感覚では、こういう申請系の手続きは後回しにされがち。気づけば一番のボトルネックになっていた、というのはよくある話です。申請ページは国税庁の適格請求書発行事業者公表システムWeb-API機能から確認できます。
作り方のステップ
- Step1:ファイルから日付・取引先・金額を抽出する
PDFにテキスト情報が含まれていれば、pdfplumberなどのライブラリで直接文字を取り出せます。スキャン画像だけの請求書は、OCR(画像から文字を読み取る技術)を通す一手間が必要です。
import pdfplumber
with pdfplumber.open("invoice_001.pdf") as pdf:
text = pdf.pages[0].extract_text()
# この時点ではまだ「日付・取引先・金額らしき文字列」が混在した状態。
# 正規表現などで狙った項目だけ抜き出すのは次のステップで行う
- Step2:電帳法の検索要件を満たすファイル名にリネームする
抽出した情報を「日付_取引先_金額」の形式に組み立て、ファイル名に使えない記号は置換します。
import re
from pathlib import Path
def make_filename(date, vendor, amount):
safe_vendor = re.sub(r'[\\/:*?"<>|]', "_", vendor) # /等の禁止記号を置換
return f"{date}_{safe_vendor}_{amount}.pdf"
new_name = make_filename("20260722", "〇〇商事", "33000")
Path("invoice_001.pdf").rename(Path("invoices") / new_name)
-
Step3:取引先・月ごとにフォルダへ仕分ける
リネームしたファイルを、shutil.moveなどで取引先名や年月のフォルダへ振り分けます。同名ファイルが発生した場合は、末尾に連番を足すといった重複回避も忘れずに。 -
Step4:インボイス番号を抽出し、国税庁Web-APIへ照会する
請求書テキストから「T」+13桁の登録番号を正規表現で抜き出し、Web-APIへリクエストを送ります。
import requests
number = "T1234567890123" # 抽出した登録番号
url = "(申請時に届く仕様書に記載のエンドポイントURLを指定)"
params = {"id": "発行されたアプリケーションID", "number": number}
res = requests.get(url, params=params)
# レスポンスの内容から有効/無効/該当なしを判定する
- Step5:結果を一覧化し、無効・不明なものだけ人が確認する
有効・無効・要確認の3種類に振り分けた一覧をCSVなどに出力し、無効または不明なものだけレビューする運用にします。全件を毎回目視で確認する必要はありません。

つまずきやすい注意点と免責事項
つまずきやすい注意点
- ファイル名に使えない記号(/など)の置換や、同名ファイルが発生した場合の重複回避を忘れずに
- PDF・OCRからの情報抽出は完璧ではありません。抽出に失敗したファイルは人手で確認するフォールバックを必ず用意してください
- 国税庁Web-APIはアプリケーションIDの発行に1か月〜1か月半程度かかることがあります。着手前に早めに申請しておくこと
- 電帳法の検索要件は「日付・取引先・金額」の3点が代表例ですが、保存期間やタイムスタンプなど他の要件もあります。ファイル名の自動整理だけで法令対応が完結するわけではありません
免責・専門家確認
電帳法・インボイス制度の適用要否や、自社の保存方法が要件に適合しているかどうかの最終判断は、この記事だけでは行えません。必ず税理士・所轄の税務署等の専門家に確認してください。
ここで紹介した自動化は、あくまで日々の作業負担を減らすための一次整理・一次チェックの手段です。法令遵守の最終責任は事業者自身にあります。
まとめ
雑多に溜まるファイルと、そのつどの目視確認。この2つの地味な手間を、リネームと自動照合で軽くする。それがこの記事のゴールでした。
自動化はあくまで一次整理・一次チェックにとどまり、要件適合の最終判断は専門家に委ねる。この距離感を忘れずに運用してください。次の行動としては、まず直近1ヶ月分の請求書フォルダだけで試してみることをおすすめします。
証憑の内容そのものをAIにチェックさせたい場合は、「ローカルLLMで仕訳の勘定科目提案と異常検知をする方法」(③)で紹介した発想がそのまま応用できます。
証憑データの保管・バックアップ体制に不安がある方は、中小企業のセキュリティ対策5選もあわせてご覧ください。
経理を自動化できるアイデアの全体像は「中小企業の経理を自動化するアイデア20選」(一覧に戻る)でまとめています。
電帳法対応の仕組み化を含めた業務整理のご相談は、税理士との連携も含めてサポートしています。ただし税務判断そのものはTechnoBridgeが行うものではなく、あくまで仕組みづくりの伴走が役割です。気になる方はお問い合わせページからどうぞ。



コメント