メインコンテンツにスキップ
ZetLinker Logo
AI開発

見積書・請求書の自動作成をNext.js×AIで内製する実務設計【2026年版】

Conclusion

見積書・請求書は「AIが下書き→人が金額を確定→PDFを自動出力」の3段構成で内製可能。まず発行頻度の高い帳票1つ、数週間規模のMVPから始めるのが現実的です。

見積書・請求書はNext.js+Firebase+AIの「下書き生成→人が確定→PDF出力」構成で内製できます。数週間規模のMVP設計、費用感、導入手順、インボイス対応の考え方、失敗例と回避策まで現場責任者向けに整理しました。

14分で読めます
Next.jsNext.jsAI駆動開発中小企業受発注FirebaseFirebase

見積書や請求書の作成は、「すでにあるデータをフォーマットに書き写す」作業が本質です。転記を人の手でやっている限り、単価ミスも宛名間違いも確認の手間もなくなりません。本記事では、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つの工程になります。

  1. 案件内容の把握(打ち合わせメモ・メールのやり取り)
  2. 明細の組み立て(載せる品目・数量の洗い出し)
  3. 金額の確定(単価・値引き・税率の判断)
  4. 帳票への転記とレイアウト調整
  5. 送付・控えの保存・入金確認

このうちAIが効くのは、2の「明細の組み立て」の下書きと、案件概要文の作成です。打ち合わせメモから「見積書に載せるべき品目の候補」を洗い出す作業は、大規模言語モデルの得意領域です。逆に、3の金額の確定をAIに任せるべきではありません。単価はマスタから引き当て、金額計算はコードで行い、値引きの判断は人が下す——計算をAIの生成に混ぜないことが、金額を扱う帳票システムでもっとも重要な設計判断です。4の転記はシステム化そのもので解消し、5は送付記録と入金ステータスの管理に置き換えます。

この「AIは下書きまで、確定は人」という構成は、問い合わせ一次返信のAI自動化設計で紹介した考え方と同じ思想です。金額が載る帳票では、この線引きをさらに厳格に運用する必要があります。

ここで一度お知らせ

15分のカジュアル相談

事例・要件未定でもOK/営業はしません/所要時間15分

カジュアルに相談する

Next.jsでどう設計するか?最小構成の3レイヤー

「案件・顧客マスタ(Firestore)」「AI下書き(Route Handler)」「PDF生成」の3レイヤーで、最小構成は完結します。

見積書・請求書自動生成の5ステップ構成図。Firestoreの案件・顧客データを起点に、AIが明細候補と概要文を下書きし、人が単価と金額を確定し、テンプレートからPDFを生成し、送付と入金ステータス管理につながる流れを示す

データモデル:見積書→請求書の変換を最初から設計する

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. データモデル設計とマスタ整備(1〜2週間):Excelに散らばった顧客情報・単価表をFirestoreの顧客・品目マスタへ移す
  3. 見積書PDF出力のMVP実装(1〜2週間):まず見積書1帳票に絞り、マスタからPDFが出力されるまでの動線を作る
  4. AI下書きと請求書変換の追加(1〜2週間):案件メモからの明細候補生成と、見積→請求の変換を実装する
  5. 社内テストと運用ルールの整備(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日

Share this article

要件整理から始める無料相談

1時間/準備不要/見積もりまでご案内します

無料相談を申し込む

次に読む記事

ALL ARTICLES →

プライバシーポリシー

株式会社ゼットリンカー(以下、「当社」といいます。)は、お客様の個人情報の重要性を認識し、 その保護の徹底を図るため、以下のプライバシーポリシー(以下、「本ポリシー」といいます。)を定めます。

1. 個人情報の定義

本ポリシーにおいて「個人情報」とは、生存する個人に関する情報であって、 当該情報に含まれる氏名、生年月日その他の記述等により特定の個人を識別することができるもの、 及び他の情報と容易に照合することができ、それにより特定の個人を識別することができることとなるものを指します。

2. 個人情報の収集

当社は、お客様が当社のサービスをご利用になる際、お客様の個人情報を収集することがあります。収集する個人情報は以下の通りです:

  • 氏名
  • メールアドレス
  • 電話番号
  • 会社名・組織名
  • 住所
  • その他当社が定める入力フォームにお客様が入力する情報

3. 個人情報の利用目的

当社は、お客様からご提供いただいた個人情報を、以下の目的で利用します:

  • お客様への連絡やサービスの提供
  • お客様からのお問い合わせへの対応
  • 当社サービスの改善や新サービスの開発
  • メールマガジンの配信(お客様の同意がある場合)
  • 契約や法令等に基づく権利の行使や義務の履行
  • その他、上記利用目的に付随する目的

4. 個人情報の第三者提供

当社は、以下の場合を除き、お客様の同意なく個人情報を第三者に提供することはありません:

  • 法令に基づく場合
  • 人の生命、身体または財産の保護のために必要がある場合であって、本人の同意を得ることが困難である場合
  • 公衆衛生の向上または児童の健全な育成の推進のために特に必要がある場合
  • 国の機関もしくは地方公共団体またはその委託を受けた者が法令の定める事務を遂行することに対して協力する必要がある場合

5. 個人情報の管理

当社は、お客様の個人情報を正確かつ最新の状態に保ち、個人情報への不正アクセス、 個人情報の紛失、破損、改ざん及び漏洩などを防止するため、 セキュリティシステムの維持・管理体制の整備等の必要な措置を講じ、安全対策を実施し個人情報の厳重な管理を行います。

6. 個人情報の開示・訂正・削除

お客様は、当社に対してご自身の個人情報の開示を求めることができます。 また、開示の結果、個人情報の内容が事実でないことが判明した場合には、 速やかに訂正または削除に応じます。

7. 導入事例の公開について

当社は、お客様から依頼いただいたプロジェクトを導入事例として記事にさせていただく場合があります。導入事例として公開する場合は、以下の点に配慮いたします:

  • 機密情報や個人情報は公開いたしません
  • 社名を公開する場合は、公開内容について事前にお客様に確認いただきます
  • 社名を非公開とする場合でも、お客様のご要望に応じて公開内容を確認いただくことが可能です

8. Cookie(クッキー)の使用について

当社のウェブサイトでは、お客様により良いサービスを提供するため、Cookie を使用することがあります。 Cookie により個人を識別できる情報を収集することはありません。 お客様はブラウザの設定により Cookie の受信を拒否することができます。

9. SSL(Secure Socket Layer)について

当社のウェブサイトはSSLに対応しており、ウェブブラウザとウェブサーバーとの通信を暗号化しています。 お客様が入力する個人情報は自動的に暗号化されて送受信されるため、 万が一、第三者が傍受した場合でも内容を解読することは困難です。

10. プライバシーポリシーの変更

当社は、必要に応じて、本ポリシーの内容を変更することがあります。 変更後のプライバシーポリシーについては、当社ウェブサイトに掲載したときから効力を生じるものとします。

11. お問い合わせ

本ポリシーに関するお問い合わせは、以下の窓口までお願いいたします。

株式会社ゼットリンカー

〒160-0023

東京都新宿区西新宿3丁目3番13号西新宿水間ビル2F

代表取締役: 金原隆利

お問い合わせ先: info@zetlinker.com

制定日:2024年1月1日

最終改訂日:2026/7/15

利用規約

この利用規約(以下、「本規約」といいます。)は、株式会社ゼットリンカー(以下、「当社」といいます。)が 提供するウェブサイトおよびサービス(以下、「本サービス」といいます。)の利用条件を定めるものです。 お客様は、本規約に同意した上で、本サービスをご利用ください。

第1条(適用)

1. 本規約は、お客様と当社との間の本サービスの利用に関わる一切の関係に適用されるものとします。

2. 当社は本サービスに関し、本規約のほか、ご利用にあたってのルール等、各種の定め(以下、「個別規定」といいます。)を することがあります。これら個別規定はその名称のいかんに関わらず、本規約の一部を構成するものとします。

3. 本規約の規定と個別規定の規定が異なる場合は、個別規定において特段の定めなき限り、個別規定の規定が優先されるものとします。

第2条(定義)

本規約において使用する以下の用語は、各々以下に定める意味を有するものとします。

  • 「利用契約」とは、本規約を契約条件として当社とお客様との間で締結される、本サービスの利用契約
  • 「知的財産権」とは、著作権、特許権、実用新案権、意匠権、商標権その他の知的財産権(それらの権利を取得し、またはそれらの権利につき登録等を出願する権利を含みます。)
  • 「投稿データ」とは、お客様が本サービスを利用して投稿その他送信するコンテンツ(文章、画像、動画その他のデータを含みますがこれらに限りません。)

第3条(本サービスの提供)

1. お客様は、本規約に同意の上、当社の定める方法によって利用登録を申請し、当社がこれを承認することによって、本サービスを利用することができるようになります。

2. 当社は、お客様に以下のいずれかの事由があると判断した場合、利用登録の申請を承認しないことがあり、その理由については一切の開示義務を負わないものとします。

  • 利用登録の申請に際して虚偽の事項を届け出た場合
  • 本規約に違反したことがある者からの申請である場合
  • その他、当社が利用登録を相当でないと判断した場合

第4条(ユーザーIDおよびパスワードの管理)

1. お客様は、自己の責任において、本サービスのユーザーIDおよびパスワードを適切に管理するものとします。

2. お客様は、いかなる場合にも、ユーザーIDおよびパスワードを第三者に譲渡または貸与し、もしくは第三者と共用することはできません。

3. 当社は、ユーザーIDとパスワードの組み合わせが登録情報と一致してログインされた場合には、そのユーザーIDを登録しているお客様自身による利用とみなします。

第5条(禁止事項)

お客様は、本サービスの利用にあたり、以下の行為をしてはなりません。

  • 法令または公序良俗に違反する行為
  • 犯罪行為に関連する行為
  • 本サービスの内容等、本サービスに含まれる著作権、商標権ほか知的財産権を侵害する行為
  • 当社、ほかのお客様、またはその他第三者のサーバーまたはネットワークの機能を破壊したり、妨害したりする行為
  • 本サービスによって得られた情報を商業的に利用する行為
  • 当社のサービスの運営を妨害するおそれのある行為
  • 不正アクセスをし、またはこれを試みる行為
  • 他のお客様に関する個人情報等を収集または蓄積する行為
  • 不正な目的を持って本サービスを利用する行為
  • 本サービスの他のお客様またはその他の第三者に不利益、損害、不快感を与える行為
  • 他のお客様に成りすます行為
  • 当社が許諾しない本サービス上での宣伝、広告、勧誘、または営業行為
  • 面識のない異性との出会いを目的とした行為
  • 当社のサービスに関連して、反社会的勢力に対して直接または間接に利益を供与する行為
  • その他、当社が不適切と判断する行為

制定日:2024年1月1日

最終改訂日:2026/7/15