指南

如何建立發票應用程式

發票應用程式會記錄一份客戶列表,讓你建立附有項目同稅項嘅發票,為每張發票編配一個獨一無二嘅編號,製作一份 PDF 或者客戶可以打開嘅連結,並追蹤有冇付款。第一版係一個直接嘅數據庫應用程式,你可以用 AI 喺一兩個下午內建立。真正決定成敗嘅細節包括編號、稅項、鎖定嘅發票同付款狀態;呢啲就係玩具同可以寄俾客戶嘅工具之間嘅分別。

先決定你需要邊種發票工具

「發票應用程式」涵蓋幾種唔同嘅嘢。開始之前先揀一種:

種類使用者有咩唔同
個人發票生成器自由工作者一個業務、快速製作 PDF、一份簡單嘅付款人列表
商業發票工具小型團隊多個用戶、共用客戶列表、報表
大型應用程式入面嘅發票功能你嘅客戶或員工根據你已經記錄嘅工作、預約或工時自動生成發票
俾其他人使用嘅發票產品多間業務每個帳戶只可以睇到自己嘅數據,即係 SaaS

第三種係自己建立最有價值嘅情況:如果你已經記錄工作或工時,由嗰啲數據直接生成發票,就唔使重新打字。第四種則係完整嘅 SaaS MVP,當中仲要處理帳戶同收費嘅問題。

數據模型

四張資料表已經可以涵蓋大部分需要:

  • 業務設定:你嘅名稱、地址、稅務或增值稅號碼、標誌、銀行資料、預設付款期限、預設稅率、貨幣,以及下一個發票編號。
  • 客戶:名稱、公司、電郵、賬單地址、如有需要其稅務號碼,以及預設條款。
  • 發票:編號、客戶、開立日期、到期日、狀態、貨幣、備註,以及總額(小計、稅項、總計)。
  • 發票項目:發票、描述、數量、單價、稅率,以及項目總額。

如果客戶分期付款或者用多種方式付款,就加入一張付款資料表:發票、日期、金額、付款方式、參考編號。

最重要嘅規則

除非你明確提出,否則 AI 生成工具通常唔會自動做對以下嘅部分:

  1. 連續而且獨一無二嘅編號。 好多稅務制度都要求發票編號獨一無二並且連續。應該喺發票正式開立時,而唔係建立草稿時,由伺服器生成編號,咁被放棄嘅草稿就唔會造成空隙。
  2. 鎖定已發送嘅發票。 發票發送之後,如果可以悄悄修改,就會出問題。只容許修改草稿;已發送嘅發票,就要作廢並重新開立,或者開立貸項通知書。
  3. 快照客戶資料。 如果客戶明年更改地址,去年嘅發票都應該顯示舊地址。開立發票時,要將客戶資料複製到發票上。
  4. 金額以最小貨幣單位整數儲存。 將金額以仙(或便士)儲存,而唔係小數,咁總額就唔會因為四捨五入而偏差。稅項要按稅務機關要求嘅方式進位,按項目或按發票計算。
  5. 狀態要貼近現實。 草稿、已發送、已付款、部分付款、逾期、已作廢。「逾期」應該由到期日自動計出,而唔係手動設定。

PDF 定發票頁面?

客戶通常期望收到 PDF,但網頁比較容易保持同步。大部分發票工具兩樣都提供:

  • 可分享嘅發票頁面,附一個難以猜中嘅連結,讓客戶唔使登入都可以睇同付款。
  • PDF 下載,由同一份數據生成,並附上你嘅標誌同資料。

要求列印友好嘅版面,並檢查 PDF 喺紙張尺寸(A4 或 US Letter)上嘅效果。項目較多嘅發票,應該可以乾淨地跨頁顯示。

網上收款

對好多業務來講,喺發票上顯示銀行資料已經足夠。如果你想接受信用卡付款,就要連接付款服務商:

  • Stripe Checkout 或付款連結,金額即係發票金額。客戶喺發票頁面撳「立即付款」。
  • Webhook:服務商透過 webhook 通知你嘅應用程式付款成功,然後應用程式將發票標記為已付款。唔好只因為客戶返回成功頁面就標記為已付款,因為唔付款都可以去到嗰個頁面。參閱如何為應用程式加入付款功能。
  • 先用測試模式。 喺整個流程運作正常之前,用服務商嘅測試金鑰同測試卡。

值得一提:截至 2026 年 9 月,Stripe 亦提供自家嘅發票產品,附有代管發票頁面。如果你只需要發送發票同收款,單靠嗰個可能已經足夠。

提醒

自動發出「你嘅發票即將到期」電郵,係最受重視嘅功能之一,但亦係最容易做錯嘅功能之一。你需要:

  • 一個電郵服務商(Resend、Postmark、SendGrid 等);參閱如何從應用程式發送電郵。
  • 一個按排程運行、用來搵逾期發票嘅機制。已發布嘅網頁應用程式喺閒置時可能會休眠,唔會自己醒過嚟,所以要問清楚建立工具會點樣觸發檢查,例如由外部排程服務定時呼叫應用程式中嘅一個端點。
  • 一份已發送提醒嘅紀錄,免得同一封電郵發送兩次。

先由手動嘅「發送提醒」按鈕開始,之後再自動化。

一個有效嘅首個提示詞

為我嘅網頁設計業務建立一個發票應用程式。我會登入,管理客戶(名稱、公司、電郵、賬單地址、增值稅號碼)。我可以建立附項目(描述、數量、單價)嘅發票,每個項目都有增值稅率,並即時睇到小計、增值稅同總額。發票編號係連續嘅(INV-0001、INV-0002),於我將發票標記為已發送時分配;草稿仍然可以編輯,已發送嘅發票則會鎖定。每張發票都有狀態(草稿、已發送、已付款、逾期)同到期日;逾期由到期日計出。每張發票都會有一個私人可分享連結,以及一個附有我嘅標誌同銀行資料嘅 PDF 下載。儀表板顯示未收總額同逾期總額。金額以便士儲存。只使用英鎊。所有資料儲存喺資料庫。

建立步驟

  1. 先做設定同客戶。 先令業務資料同客戶列表運作正常,因為每張發票都要依賴佢哋。
  2. 發票編輯器。 項目、稅項同總額。用一啲麻煩嘅數字測試,例如 3 × £33.33 加 20% 增值稅,然後用計數機核對總額。
  3. 編號同鎖定。 開立三張發票,刪除一張草稿,再開立另一張。編號應該保持連續,冇空隙、冇重複。
  4. 發票頁面同 PDF。 喺私人視窗打開分享連結。列印 PDF。
  5. 付款。 加入測試模式嘅 Stripe,用測試卡付款一張發票,確認 webhook 將其標記為已付款。
  6. 安全檢查。 登出,然後嘗試透過更改網址中嘅 ID 打開另一位客戶嘅發票。只有私人連結應該可以運作,而且唔可以顯示其他發票。我哋嘅安全清單有更多可以測試嘅項目。
  7. 匯出。 加入發票同付款嘅 CSV 匯出功能,俾你嘅會計師使用。

常見錯誤

  • 金錢使用浮點數。 0.1 加 0.2 唔等於 0.3,呢個係真實應用程式中真實存在嘅 bug。要儲存整數嘅最小單位。
  • 已發送嘅發票仍可以編輯。 客戶收到發票之後再改動,會引致爭議同會計問題。
  • 草稿階段已經分配編號。 會造成空隙同混亂。
  • 可以猜中嘅發票連結。 /invoice/42 會令人想試吓 /invoice/43。要用長而隨機嘅權杖。
  • 假設只有一套稅務規則。 稅率、反向徵稅同所需措辭,會因國家同客戶類型而異。請問會計師,唔好由 AI 去估。
  • 冇備份。 發票係你可能需要保存多年嘅紀錄。要定期匯出,如果方案允許,亦可以將程式碼保存喺 GitHub。

成本同工具

組件用途備註
應用程式生成工具/主機/資料庫建立同運行應用程式喺 Mythex,一個積分餘額涵蓋以上所有項目,參閱定價
付款服務商信用卡付款每筆交易收取費用;請查閱服務商喺你所在國家嘅最新收費
電郵服務商發送發票同提醒好多服務商喺低用量時有免費方案
網域專業嘅發票連結可選,每年收費

幾時用現成嘅發票軟件更好

當發票係你自己工作流程嘅一部分、你想要一個完全貼合你收費方式嘅工具,或者你要喺已經擁有嘅應用程式上加入發票功能時,就自己建立。以下情況就應該選用成熟嘅會計或發票軟件:

  • 你需要喺同一個地方處理簿記、銀行資料同步、開支追蹤同報稅。
  • 你所在國家要求以指定格式或透過認可渠道進行電子發票。
  • 你寧願讓會計師使用佢哋已經熟悉嘅工具。

一個常見嘅折衷做法:自己建立專屬於你嘅部分(工作、工時,以及客戶入口,讓客戶睇到自己嘅發票),然後將數字匯出去你嘅會計軟件。小型企業自建與購買軟件會逐步講解呢個決定。

用 Mythex 建立

喺 Mythex,你可以喺聊天中描述發票應用程式,並喺即時預覽中睇住佢成形。應用程式需要時會加入資料庫,並將 API 金鑰(例如你嘅 Stripe 密鑰)保存喺專案機密入面,然後將應用程式發布到一個即時可用嘅網址。文件中嘅 Stripe 配方展示咗自備金鑰嘅設定方法。如果想由一個已經描述咗基本功能嘅提示詞開始,可以試吓發票生成器或自由工作者發票範本。

常見問題

發票應用程式需要咩功能?

客戶列表、附項目、稅項同總額嘅發票、獨一無二而且連續嘅發票編號、PDF 或者可以分享嘅發票頁面,以及每張發票嘅狀態(草稿、已發送、已付款、逾期)。網上付款同提醒係最有用、最值得優先加入嘅功能。

我嘅發票應用程式可以接受信用卡付款嗎?

可以,透過 Stripe 等付款服務商即可。應用程式會為發票金額建立付款連結或結賬頁面,並由服務商發出嘅 webhook 喺付款成功時將發票標記為已付款。

用自己建立嘅發票應用程式合法嗎?

一般嚟講係可以嘅,但發票嘅法律內容要求因地區而異,例如賣方資料、稅務號碼、日期、稅項細分;部分國家更要求以指定格式進行電子發票。依賴之前,請先向會計師查明適用於你嘅規定。

我應該自己建立發票應用程式,定係用會計軟件?

如果你需要簿記、報稅或銀行對賬,就用會計軟件。如果發票需要配合你自己嘅工作流程(工作項目、工時紀錄、專案),或者你想要一個冇按座位收費嘅簡單工具,就自己建立。

Mythex · Pricing · 用 AI 建造任何嘢 · 網站及應用程式範本 · Mythex 比較 · AI 應用程式開發詞彙表 · 免費 AI 應用程式開發工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(台灣)