見積書や請求書の作成は、「すでにあるデータをフォーマットに書き写す」作業が本質です。転記を人の手でやっている限り、単価ミスも宛名間違いも確認の手間もなくなりません。本記事では、Next.js + Firebase + AIで帳票作成を内製する実務設計を、2026年7月時点の情報で整理します。
先に結論です。
- 見積書・請求書は「AIが下書き→人が金額を確定→システムがPDF出力」の3段構成で内製でき、最小MVPは数週間規模から着手できます
- 金額計算とインボイスの記載事項はコードとテンプレートで担保し、AIには概要文と明細候補の下書きだけを任せるのが安全な線引きです
- 見積書→請求書の変換を最初から設計しておくと、受注後の転記作業そのものがなくなります
こんな状況ではありませんか?
- Excelのひな形をコピーして案件ごとに書き換えており、単価や宛名の転記ミスが毎月のように見つかる
- 見積書・請求書・入金の記録が別々のファイルに散らばり、締め日前に突き合わせの残業が発生している
- クラウド請求書SaaSも検討したが、段階値引きやオプション明細など自社の見積り構成に合わず、結局Excelに戻ってしまった
この記事で分かること
- 見積書・請求書づくりのどこをシステムとAIに寄せ、どこを人に残すべきか
- Next.js 16 + Firebase + AIでの最小構成(データモデル・AI下書き・PDF生成)の作り方
- 費用感と導入手順の目安、つまずきやすい失敗パターンと回避策
営業事務や経理を兼ねながら、部門の見積書・請求書づくりを回している現場責任者の方へ——既製SaaSに乗り切れなかった帳票業務をNext.jsで内製する場合の設計を、順に整理します。
なぜ見積書・請求書をNext.jsで作り直す価値があるのか?
帳票作成の本質は「同じデータの転記」であり、転記を人がやっている限り、ミスと確認の工数が構造的に残り続けるためです。
見積書に書いた品目・数量・金額は、受注後に請求書へほぼそのまま書き写されます。顧客の宛名や振込先も毎回同じです。つまり帳票作成にかかる時間の大半は、「すでにどこかにあるデータを、別のフォーマットに写している時間」です。Excelのひな形運用では、この転記が人の目と手に依存するため、単価の桁違い・税率の選び間違い・古いテンプレートの使い回しといったミスがゼロになりません。ミスを防ぐためのダブルチェックも、突き詰めれば転記が生んでいる二次的なコストです。
制度面の変化も見直しのきっかけになります。適格請求書(インボイス)には登録番号・適用税率・税率ごとに区分した消費税額などの記載が求められますが、加えて、免税事業者からの仕入れに係る経過措置は2026年9月30日で80%控除の期間が終わり、同年10月1日からは70%控除に切り替わります(令和8年度税制改正で「80%→70%→50%→30%」の段階縮小に見直し。出典: freee インボイス制度の経過措置解説)。控除割合が下がるほど、買い手側が適格請求書の有無や記載内容を確認する目は厳しくなっていくと見込まれます。制度改定のたびに複数のひな形ファイルを手で直す運用は、ファイルが増えるほど追従漏れのリスクが膨らみます。記載要件をテンプレートとして一元管理できることは、帳票をシステム化する実務上の大きな利点です。
一方で、既製のクラウド請求書SaaSで足りるケースも当然あります。帳票の様式が一般的で、発行件数も少なく、受注管理と切り離して運用できるなら、既製SaaSが最短の選択肢です。内製が効くのは、「自社特有の明細構成がある」「見積り→受注→請求→入金を1つの流れで管理したい」場合です。この判断軸は、受発注管理をSaaSからフルスクラッチに切り替える判断基準で整理した考え方がそのまま当てはまります。
どこをAIに任せ、どこを人に残すべきか?
「概要文と明細候補の下書き」はAIへ、「単価・値引き・金額の確定」は人とコードへ、という線引きが基本です。
見積書・請求書づくりを分解すると、次の5つの工程になります。
- 案件内容の把握(打ち合わせメモ・メールのやり取り)
- 明細の組み立て(載せる品目・数量の洗い出し)
- 金額の確定(単価・値引き・税率の判断)
- 帳票への転記とレイアウト調整
- 送付・控えの保存・入金確認
このうちAIが効くのは、2の「明細の組み立て」の下書きと、案件概要文の作成です。打ち合わせメモから「見積書に載せるべき品目の候補」を洗い出す作業は、大規模言語モデルの得意領域です。逆に、3の金額の確定をAIに任せるべきではありません。単価はマスタから引き当て、金額計算はコードで行い、値引きの判断は人が下す——計算をAIの生成に混ぜないことが、金額を扱う帳票システムでもっとも重要な設計判断です。4の転記はシステム化そのもので解消し、5は送付記録と入金ステータスの管理に置き換えます。
この「AIは下書きまで、確定は人」という構成は、問い合わせ一次返信のAI自動化設計で紹介した考え方と同じ思想です。金額が載る帳票では、この線引きをさらに厳格に運用する必要があります。
Next.jsでどう設計するか?最小構成の3レイヤー
「案件・顧客マスタ(Firestore)」「AI下書き(Route Handler)」「PDF生成」の3レイヤーで、最小構成は完結します。

データモデル:見積書→請求書の変換を最初から設計する
Firestoreに customers(顧客)・projects(案件)・quotes(見積)・invoices(請求)の4つのコレクションを置き、確定した見積データから請求書レコードを生成する「変換」を最初から用意しておきます。宛名・品目・金額は見積データから引き継がれるため、受注後の転記作業がなくなります。顧客マスタには適格請求書発行事業者の登録番号や支払条件も持たせておき、帳票へ自動反映します。
AI下書き:構造化出力で「候補」だけを作らせる
AIには自由な文章ではなく、スキーマを固定した構造化出力で下書きを作らせます。Vercel AI SDKの generateObject を使うと、Zodスキーマに沿ったJSONだけを受け取れます。
// app/api/quote-draft/route.ts
import { generateObject } from "ai";
import { openai } from "@ai-sdk/openai";
import { z } from "zod";
const draftSchema = z.object({
summary: z.string().describe("見積書に載せる案件概要(2〜3文)"),
lineItems: z
.array(
z.object({
name: z.string().describe("品目名"),
quantity: z.number().describe("数量"),
note: z.string().describe("補足メモ"),
}),
)
.describe("明細行の候補。単価と金額は含めない"),
});
export async function POST(req: Request) {
const { projectMemo } = await req.json();
const { object } = await generateObject({
model: openai("gpt-5.6-luna"),
schema: draftSchema,
prompt: `次の案件メモから、見積書の概要文と明細行の候補を作成してください。\n\n${projectMemo}`,
});
// 単価はFirestoreの品目マスタから引き当て、金額はサーバー側で計算する
return Response.json(object);
}
ポイントは、スキーマに単価・金額のフィールドを持たせていないことです。AIが返すのは品目名・数量・補足の「候補」までで、単価はマスタから、合計金額と消費税額はサーバー側のコードで計算します。モデルには、2026年7月9日に公開されたGPT-5.6のうち低コストティアの gpt-5.6-luna を指定しています(出典: OpenAI公式発表)。公開されている料金(入力100万トークンあたり約1ドル)から概算すると、下書き1件あたりのAPIコストは1円未満〜数円程度に収まる計算で、帳票の下書きのような短い生成にはLunaで十分です。ティアごとの性能差と使い分けは、GPT-5.6のSol/Terra/Luna別の実装ポイントで詳しく整理しています。
PDF生成:手法は実質3択
最小構成では、ブラウザ不要でRoute Handler内で完結する @react-pdf/renderer が第一候補です。
2026年7月時点の主な選択肢を比較します。
| 手法 | 向いているケース | 注意点 |
|---|
| @react-pdf/renderer | ボタンを押してすぐダウンロードさせる同期的な生成。サーバーレスと相性が良い | 独自レイアウトエンジンのため、Webページ用のCSSはそのまま使えない |
| HTML + ヘッドレスブラウザ(Puppeteer等) | 既存のWebページのデザインをそのままPDF化したい場合 | ブラウザ起動が必要で動作が重く、サーバーレス環境での運用に工夫が要る |
| 帳票生成SaaSのAPI | 帳票の種類が多く、レイアウト編集を非エンジニアに任せたい場合 | 月額費用が固定でかかり、外部依存が1つ増える |
見積書・請求書のような定型レイアウトであれば、@react-pdf/rendererでテンプレートをコンポーネントとして実装し、確定データを流し込む構成が扱いやすい選択です。適格請求書の記載事項(登録番号・適用税率・税率ごとの消費税額)はこのテンプレート側に固定で組み込み、AIの生成物とは切り離して担保します。
なお、見積書のURLを社外の顧客と共有する場合は、閲覧できる相手の制御が必要です。Firebase Authenticationでの認証設計は、Next.js 16 + Firebase Authenticationの会員制サイト構築事例の構成がそのまま流用できます。請求書から決済まで進めたい場合は、Stripeの決済リンクを請求書レコードに紐付けると、入金ステータスの管理まで同じ管理画面に載せられます。
いくらで作れるか?費用感の目安
最小構成なら初期開発は数週間規模の開発サイクル、月々の運用コストは無料枠〜数千円程度が目安です。
2026年7月時点の考え方を整理します。
| 項目 | 内容 | 目安 |
|---|
| 初期開発 | マスタ設計・帳票テンプレート・AI下書き・見積→請求変換 | 数週間の開発サイクル |
| AI APIコスト | 下書き生成1件ごとの従量課金 | 月の発行件数 × 数円程度 |
| ホスティング | Vercel + Firebase | 小規模なら無料枠〜月数千円 |
| 保守 | 税率・様式変更時のテンプレート修正 | 都度数時間程度 |
クラウド請求書SaaSは1ユーザーあたり月額数千円前後からのプランが多く、発行件数が少なければSaaSのほうが総コストで有利です。内製の費用対効果が出るのは、受注管理との一体化や独自の明細構成など、「SaaSに合わせて自社の業務を曲げるコスト」のほうが大きい場合です。
導入手順と期間の目安
帳票の棚卸しから社内テストまで5ステップ、合計1〜2ヶ月程度が現実的な目安です。
- 帳票の棚卸しとひな形整理(1週間程度):現行の見積書・請求書のパターンを集め、明細構成と記載項目を洗い出す
- データモデル設計とマスタ整備(1〜2週間):Excelに散らばった顧客情報・単価表をFirestoreの顧客・品目マスタへ移す
- 見積書PDF出力のMVP実装(1〜2週間):まず見積書1帳票に絞り、マスタからPDFが出力されるまでの動線を作る
- AI下書きと請求書変換の追加(1〜2週間):案件メモからの明細候補生成と、見積→請求の変換を実装する
- 社内テストと運用ルールの整備(1週間程度):実案件のデータで検証し、確定前の確認手順と権限を決める
最初から請求書・納品書・領収書まで広げず、発行頻度がもっとも高い帳票1つでMVPを動かすのが、手戻りの少ない順序です。
失敗しやすいパターンと回避策
- AIに金額計算まで任せてしまう:もっともらしく誤った合計金額が生成されるリスクがあります。単価はマスタ、計算はコード、AIは品目候補と文面のみ、と役割を固定する
- インボイスの記載事項をAI生成に混ぜる:登録番号や税率区分の記載漏れは取引先の税務処理に影響します。記載要件はPDFテンプレート側に固定で組み込む
- 見積書と請求書を別々に作って転記が残る:内製したのに転記ミスが残る典型例です。見積データから請求書を生成する変換を最初から設計する
- 全帳票を一度に対象にしてスコープが膨らむ:検証が追いつかず、いつまでも本番投入できなくなります。まず1帳票からの段階導入にする
- 送付の自動化を先に作ってしまう:帳票の誤送付は信用問題に直結します。送付は必ず人の確認操作を挟み、自動化は保存・ステータス管理から進める
AI駆動開発で何が変わるか?
帳票アプリは入出力の仕様を明文化しやすく、Claude CodeなどのAIコーディング支援で実装を進めやすい領域です。
見積書・請求書は、「入力(案件データ)と出力(PDFのレイアウト)の仕様を紙の上で説明できる」アプリケーションです。仕様を文書化してからAIに実装させる進め方と相性が良く、私たちの開発でも、PDFテンプレートの調整やFirestoreのクエリといった実装部分はClaude Codeに任せ、明細構成・値引きルール・記載要件の定義という業務側の判断に人の時間を使う分担で進めています。どこまでをAIエージェントに任せ、どこからを人が判断するかという全体の設計は、Next.js × AIエージェントで業務を自動化する実務ガイドで扱った整理がこの領域にもそのまま適用できます。
ゼットリンカーでの進め方
私たちが受託で関わった小規模プロジェクトの範囲では、まず現行の見積書・請求書のExcelひな形を全て見せていただき、明細構成のパターンを洗い出すところから始めています。そのうえで発行頻度の高い帳票1つに絞ってMVPを作り、数週間の短いサイクルで実データを流しながら、単価マスタの持ち方と確定フローを調整していく進め方です。開発の流れと料金の考え方はサービス紹介の料金セクションにまとめています。
よくある質問
Q. クラウド請求書SaaSではなく内製を選ぶ基準はありますか?
帳票の様式が一般的で発行件数が少なければ、既製SaaSが総コストで有利です。段階値引きやオプション明細など自社特有の明細構成がある場合や、見積り→受注→請求→入金を1つの流れで管理したい場合は、内製の費用対効果が出やすくなります。
Q. インボイス制度への対応はどうやって担保しますか?
登録番号・適用税率・税率ごとの消費税額といった記載事項は、PDFテンプレート側に固定で組み込み、AIの生成物とは切り離して担保します。テンプレートを一元管理しておけば、制度や様式の変更時も修正箇所が1ヶ所で済みます。
Q. AIに金額の計算を任せても大丈夫ですか?
任せるべきではありません。AIが返すのは品目名・数量・補足といった「候補」までにとどめ、単価はマスタから引き当て、合計金額と消費税額はサーバー側のコードで計算する構成にします。構造化出力のスキーマから単価・金額フィールドを外しておくのが実装上のポイントです。
Q. どれくらいの期間と費用で作れますか?
発行頻度の高い帳票1つに絞った最小構成であれば、帳票の棚卸しから社内テストまで合計1〜2ヶ月程度、数週間規模の開発サイクルが目安です。運用コストはホスティングが無料枠〜月数千円程度、AI下書きのAPIコストは発行件数×数円程度に収まる計算です。
Q. 見積書だけ、請求書だけといった部分的な導入はできますか?
できます。むしろ発行頻度のもっとも高い帳票1つから始めることをおすすめします。データモデルの段階で見積→請求の変換を見込んで設計しておけば、後から請求書や他の帳票を追加しても転記作業は発生しません。
まとめ
- 見積書・請求書の内製は「AIが下書き、人が確定、システムがPDF出力」の3段構成から始めるのが現実的です。
- 金額計算とインボイスの記載事項はコードとテンプレートで担保し、AIには候補の下書きだけを任せてください。
- まず発行頻度の高い帳票1つに絞り、数週間規模のMVPで実データの検証から始めましょう。
自社の帳票業務のどこから手を付けるか整理したい方には、15分のカジュアル相談(事例・要件未定でもOK/営業はしません)をご用意しています。ひな形が手元にあり要件の輪郭が見えている方は、要件整理から始める無料相談(1時間・準備不要)からご相談ください。
※本記事に記載したAIモデルの仕様・料金および制度の内容は、2026年7月時点の公開情報に基づく整理です。導入・実装の判断にあたっては、必ず公式情報で最新の内容をご確認ください。
本記事は Next.js 16.x 時点の情報です
最終更新:2026年7月15日