請求書発行に月3時間を奪われない|個人事業主のための自作システム入門

月末になると請求書発行に3時間取られる。この時間が惜しいと感じたことはないだろうか。

取引先が5社を超えたあたりから、請求書まわりの作業はじわじわと重くなる。先月分の作業内容を思い出し、Excelを開き、前月のファイルをコピーして日付を書き換え、金額を計算し、PDFに変換し、メールに添付して、送付先を間違えないように確認してから送る。一件あたり10分でも、10社あれば100分。その後に控えの保管と会計ソフトへの転記が続く。月末の半日が、売上にも学びにもつながらない単純作業で埋まっていく。

この記事は、その月3時間を10分まで圧縮するための、個人事業主向けの自作請求書システムの設計図だ。高価な請求書サービスを契約する前に、自分専用の小さな仕組みを持つという選択肢を知ってほしい。技術者でなくても読めるように、専門用語は括弧で言い換えながら進める。

この記事の前提

読者として想定しているのは、ひとりで事業を回している個人事業主やフリーランスで、毎月の請求書発行に地味にうんざりしている人だ。取引先は3社から20社ほど。請求額は月によって変動することもあれば、固定の顧問料のような定額契約もある。freeeやマネーフォワードのような会計ソフトは使っているかもしれないし、まだ使っていないかもしれない。

この記事は、既存のSaaS(月額制ソフトウェア)を否定するものではない。月額1,000円前後で請求書発行まで面倒を見てくれるサービスは便利だし、事業規模が大きくなればそちらに寄せた方が合理的だ。ただ、自分の業務フローにぴったり合った仕組みを、Claude Code(AIにコードを書いてもらうツール)を使って半日で組み上げられる時代になった、という話をしたい。

私は技術的な細部まで語れるほどのエンジニアではない。ただ、ひとりで小さな事業をいくつか回していて、請求書発行に溶ける時間を減らすために、自作の仕組みに切り替えた経験はある。その立場から、非エンジニアでも真似できる最短ルートをまとめておく。

なぜ請求書発行は3時間かかるのか

月末の請求書発行:手作業 vs 自作システム

図: 月末の請求書発行:手作業 vs 自作システム

まず、時間が溶ける理由を分解してみたい。請求書発行の工程は、一見すると単純に見えて、細かい判断と確認の連続だ。

  1. 先月の作業内容を思い出す(議事録やタスク管理ツールを遡る)
  2. 取引先ごとの単価・請求条件を確認する
  3. テンプレートをコピーして日付・番号を書き換える
  4. 明細を書き、消費税と源泉徴収を計算する
  5. PDFに変換する
  6. 送付先メールアドレスと担当者名を間違えないか確認する
  7. メール本文を書く
  8. 送付後に控えを保管し、会計ソフトに転記する
  9. 入金予定日をカレンダーに入れる

このうち、本当に頭を使うのは1と2だけだ。残りの7工程は、ほぼ機械的な転記と確認作業で、ミスが許されないから慎重になり、結果として時間を食う。請求書番号を一つ間違えれば再送になるし、消費税の端数処理を間違えれば信用にかかわる。だから慎重にやる。慎重にやるから遅くなる。

この構造を理解すると、打ち手は見えてくる。判断が必要な1と2だけ人間がやり、残りは仕組みに任せればいい。月3時間のうち、2時間40分は機械に渡せる。

自作システムの全体像

自作請求書システムの3つの構成要素

図: 自作請求書システムの3つの構成要素

目指す仕組みは、拍子抜けするほどシンプルだ。構成要素は三つだけで済む。

・取引先マスター(相手の情報と単価を保存する場所) ・請求書生成エンジン(マスターと作業内容からPDFを作る仕組み) ・送付テンプレート(メール本文と送付先を自動で組み立てるもの)

この三つを、Supabase(データを保存するクラウド上のデータベース)と、Claude CodeでざっくりUIを作り、PDF生成ライブラリを組み合わせるだけで形になる。全部合わせて月額1,000円以下、うまくやれば無料枠内に収まる。

流れとしてはこうなる。月末になったら、ブラウザで自分専用の管理画面を開く。取引先を選び、今月の作業内容と金額を入力する。ボタンを押すとPDFが生成され、請求書番号と発行日が自動で割り振られ、送付先メール宛の下書きメールが立ち上がる。送信ボタンを押したら、控えがSupabaseに保存され、入金予定日が自動で計算される。入力から送付まで、一件あたり1分程度だ。

この規模の仕組みは、以前なら外注して数十万円払うか、エクセルで頑張るかの二択だった。いま、Claude Codeに仕様を渡せば、非エンジニアでも半日で動くものが組み上がる。

参考になる事例

ゼロから設計を考える前に、先人の知恵を拝借しておきたい。自作とはいえ、車輪の再発明は避けるべきだ。

Invoice Ninja(オープンソースの請求書管理ツール)

Invoice Ninjaは、世界中の個人事業主に使われているオープンソース(無料で誰でも使えるソフトウェア)の請求書管理ツールだ。無料版でも取引先100社までの管理、PDF発行、定期請求、オンライン決済連携まで揃っている。有料版は月額10ドルほど。

このツールのすごいところは、個人事業主が本当に欲しい機能だけが、迷いのない導線で並んでいる点だ。自作するなら、Invoice Ninjaの無料版を一度触って、どの画面にどのボタンが配置されているかを観察するだけで、設計の手本になる。特に、取引先一覧から1クリックで新規請求書に飛べる動線と、発行済み請求書にステータス(未送付・送付済み・入金済み)が色分けされている点は、そのまま真似したい。

ただ、Invoice Ninjaをそのまま使わず自作する理由もある。日本の消費税・源泉徴収・インボイス制度の細かい要件にぴったり合わせるには、設定が思ったより面倒で、結局エクセルでやる項目が残る。だから、考え方は参考にしつつ、自分の業務に合わせて作り直す価値がある。

Paddle(決済プラットフォームの請求書機能)

Paddleは本来、SaaS事業者向けの決済代行サービスだが、請求書発行の設計思想が参考になる。彼らのダッシュボードでは、請求書の下書きを作る画面と、送信済み請求書の一覧画面が完全に分かれている。下書き画面はとことん入力しやすく、一覧画面はとことん検索しやすい。

ひとりで事業を回していると、請求書は作るときと探すときで、求めるものが正反対になる。作るときは速さ、探すときは一覧性。この二つを無理に一画面に押し込めず、潔く分けるという判断が、自作のときにも効いてくる。

国内の個人事業主が使うMisoca(簿記系サービスの請求書特化版)

国内ではMisocaが長く使われてきた。弥生グループに入ったあと、無料プランでも月5通までの発行ができ、インボイス制度にも対応している。自作する前に一度使ってみると、日本の請求書に必要な項目(適格請求書発行事業者の登録番号、源泉徴収の記載方法、消費税の内税外税表記)がどう並ぶべきかが自然に身につく。

自作の利点は、Misocaでは月5通を超えると有料になる制約や、自分の業務フロー(例えば特殊な前金請求や、日割り計算の自動化)に完全には合わない部分を、自分仕様にできる点だ。

具体的な手順

自作請求書システム構築の5ステップ

図: 自作請求書システム構築の5ステップ

ここからは、実際に手を動かすステップを順に書く。コードは最小限に留めるが、ゼロにはしない。Claude Codeに渡すための指示の出し方もあわせて紹介する。

ステップ1 取引先マスターを作る

まずSupabaseで、取引先を管理するテーブル(表のようなもの)を一つ作る。Supabaseは無料枠が太く、個人事業主レベルなら一生お金がかからない可能性もある。

テーブルに入れる項目は、最低限これだけでいい。

・取引先名 ・担当者名 ・送付先メールアドレス ・請求書宛名(法人名と敬称) ・基本単価または月額固定額 ・消費税区分(課税・免税) ・源泉徴収の有無 ・支払いサイト(末締め翌月末払いなど) ・備考(過去のトラブルや注意点)

Supabaseの画面から、ぽちぽちクリックしてテーブルを作れる。SQL(データベース操作の命令文)を書けなくても大丈夫だ。Claude Codeに「Supabaseで取引先マスターのテーブルを作りたい。項目はこれこれ」と伝えれば、作成手順を案内してくれる。

この段階で大事なのは、完璧を目指さないこと。項目は後から足せる。最初は名前とメールアドレスと単価だけでも動く。

ステップ2 PDF生成エンジンを組む

ここが自作の核心だ。取引先情報と今月の明細を入力したら、PDFが一枚出来上がる仕組みを作る。

非エンジニアにとって、PDFを自分のコードで作るのは怖そうに聞こえるかもしれない。でも、いまは優れたライブラリ(部品集のようなもの)があって、テンプレートを作れば数行のコードで生成できる。

Claude Codeに渡すプロンプト(指示文)の例はこうだ。

Next.js(ウェブサイトを作る枠組み)で、請求書PDFを生成する関数を書いてほしい。入力は取引先名、請求書番号、発行日、明細の配列、消費税率。出力は1枚のPDFで、上部に自分の屋号とロゴ、中央に取引先名と請求書番号、下に明細表と合計金額、右下に振込先を入れる。日本語フォントを埋め込んで文字化けしないようにしてほしい。ライブラリはpdfmakeかreact-pdfを推奨する。

これだけ伝えれば、Claude Codeは動くコードを書いてくれる。出てきたコードを自分で理解する必要はない。動かしてみて、思った通りにならない部分をまた日本語で指示すればいい。「合計金額の下に源泉徴収額の行も入れて」とか「請求書番号は2026-04-001のような形式で自動採番して」とか、日本語で会話しながら仕上げていく。

この作業は、慣れれば3時間で初版が動く。最初の1回だけ時間がかかるが、これは毎月3時間取られていたのが最後の3時間になる、という投資だと思ってほしい。

ステップ3 インボイス制度の簡易対応

2023年10月から始まったインボイス制度(適格請求書等保存方式)は、請求書を発行する側に新しい記載義務を課した。といっても、自作のシステムで対応するのは案外簡単で、PDFテンプレートに以下の項目を差し込むだけでいい。

・適格請求書発行事業者の登録番号(T+13桁の数字) ・税率ごとに区分した合計金額 ・税率ごとの消費税額 ・取引年月日 ・取引内容(軽減税率対象の場合はその旨)

自分が免税事業者である場合、登録番号を持たない選択をすることもできる。その場合はこの項目は不要だが、取引先から登録番号を求められたときの説明文をメールテンプレートに入れておくと、問い合わせ対応の時間が減る。

Claude Codeには「インボイス制度に準拠した請求書フォーマットにしたい。登録番号はこれこれ。税率区分ごとの小計と消費税額を自動計算して表示してほしい」と伝えればいい。制度の細かい要件を覚えていなくても、AIが知っている。

ステップ4 送付先メールのテンプレ化

PDFを作ったあと、それを送るメール本文を毎回ゼロから書いていては意味がない。テンプレートを用意しておく。

テンプレートは3パターンもあれば足りる。

  1. 月次請求の定型文(いつもの取引先向け)
  2. 初回請求の丁寧版(新規の取引先向け)
  3. 支払いリマインド(期日が近づいた時用)

それぞれの雛形をSupabaseに保存しておき、取引先を選んだときに自動で本文が組み立てられるようにする。取引先名と担当者名、請求額、振込期日は、マスターから自動で差し込まれる。最後に一度だけ目視チェックして、自分のメーラーで送信するか、送信まで自動化するかは好みで決めればいい。

私は完全自動送信はおすすめしない。月に一度、人の目を通す10秒のコストは、誤送信事故の保険料として安い。

ステップ5 会計ソフト連携は最後でいい

発行した請求書を会計ソフトに転記する作業も、最終的には自動化したくなる。freeeやマネーフォワードにはAPI(外部サービスと繋ぐ窓口)があり、請求書データを直接流し込める。

ただし、これは最後でいい。まずはPDF発行までを自作で回してみて、月末の3時間が本当に10分になるかを確かめる。会計連携は、最初の月に手動で転記してみて、それでも面倒だと感じたら次の月に組み込めばいい。いきなり全部自動化しようとすると、どこかで詰まって何もリリースできずに終わる。

よくある失敗・落とし穴

自作システムを組むとき、つまずきやすいポイントがいくつかある。先に知っておくと避けられる。

一度に全部作ろうとする

最初から「定期請求の自動化」「入金消込」「督促メール自動送信」「インボイス要件の完全対応」を全部組み込もうとすると、間違いなく挫折する。最初のバージョンは、取引先1社ぶんの請求書を手動入力してPDFを出すだけでいい。それが動いてから、2件目、3件目と広げていく。私が知っているある個人事業主は、最初の週末に取引先1社ぶんだけ動かし、翌週にもう1社、その翌週に自動採番を追加した。3週間で全取引先に展開できたが、最初から全部作ろうとしていたら、たぶんいまも着手できていない。

PDFの体裁に沼る

PDF生成を始めると、ロゴの位置、フォントサイズ、罫線の太さ、印鑑の入れ方に無限に時間を使ってしまう人がいる。取引先はそこまで見ていない。必要な情報が漏れなく載っていれば、体裁は70点で十分だ。100点にしたくなったら、毎月10分になってから磨けばいい。

バックアップを軽視する

自作システムの怖いところは、自分で守らないと誰も守ってくれない点だ。Supabaseは自動でバックアップを取ってくれるが、無料プランでは復元期間が短い。月次で、取引先マスターと請求書控えをCSV(表形式のデータファイル)にエクスポートして、クラウドストレージに保存する習慣をつけてほしい。これを怠ると、何かあったときに過去の請求書が消える。会計士に提出する書類が再現できなくなると、税務上の大問題になる。

請求書番号の重複

自作で一番やりがちなのが、請求書番号の採番ミスだ。2026-04-001と2026-04-001が二つ発行されてしまうと、取引先の経理部から問い合わせが来る。番号はデータベース側で一意制約(同じ番号が二つ入らない仕組み)を必ずかけておく。Claude Codeに「請求書番号は重複しないように採番したい」と伝えれば、適切な方法を提案してくれる。

税率の端数処理

消費税の計算で、小数点以下を切り捨てるか四捨五入するかは、実は法律で厳密に決まっていない。ただし、同じ取引先に対しては一貫したルールで処理しないと、月によって1円ずれるような事態になる。最初に決めた方法を、コードの中にコメント(注釈)として書き残しておく。半年後の自分はルールを覚えていない。

明日からやる3つのこと

ここまで読んで、やってみようと思えたなら、明日からの3ステップは次の通りだ。

  1. 現状の請求書発行フローを紙に書き出し、どこに何分使っているか計測する。3時間の内訳を見ると、自動化すべき工程が自然に見えてくる。
  2. Supabaseに無料アカウントを作り、取引先マスターのテーブルを一つだけ作る。まだ取引先情報を入れなくていい。器だけ用意する。
  3. Claude Codeに、この記事のステップ2で紹介したプロンプトを貼り付けて、請求書PDFを一枚だけ生成してみる。自分の名前と適当な金額で、体裁を確かめる。

この3ステップだけなら、合計2時間あれば終わる。そこから先は、毎月少しずつ磨いていけばいい。

月3時間の単純作業が月10分になると、年間で34時間が浮く。この34時間を、新しい事業の仕込みに使うか、家族と過ごす時間に充てるか、それとも単に休むか。その選択肢を取り戻すために、一度だけ半日を投資してほしい。請求書発行は、あなたの事業の本質ではない。本質ではない作業に、毎月半日を差し出す必要はない。