如何建立發票應用程式
發票應用程式會記錄一份客戶列表,讓你建立附有項目同稅項嘅發票,為每張發票編配一個獨一無二嘅編號,製作一份 PDF 或者客戶可以打開嘅連結,並追蹤有冇付款。第一版係一個直接嘅數據庫應用程式,你可以用 AI 喺一兩個下午內建立。真正決定成敗嘅細節包括編號、稅項、鎖定嘅發票同付款狀態;呢啲就係玩具同可以寄俾客戶嘅工具之間嘅分別。
先決定你需要邊種發票工具
「發票應用程式」涵蓋幾種唔同嘅嘢。開始之前先揀一種:
| 種類 | 使用者 | 有咩唔同 |
|---|---|---|
| 個人發票生成器 | 自由工作者 | 一個業務、快速製作 PDF、一份簡單嘅付款人列表 |
| 商業發票工具 | 小型團隊 | 多個用戶、共用客戶列表、報表 |
| 大型應用程式入面嘅發票功能 | 你嘅客戶或員工 | 根據你已經記錄嘅工作、預約或工時自動生成發票 |
| 俾其他人使用嘅發票產品 | 多間業務 | 每個帳戶只可以睇到自己嘅數據,即係 SaaS |
第三種係自己建立最有價值嘅情況:如果你已經記錄工作或工時,由嗰啲數據直接生成發票,就唔使重新打字。第四種則係完整嘅 SaaS MVP,當中仲要處理帳戶同收費嘅問題。
數據模型
四張資料表已經可以涵蓋大部分需要:
- 業務設定:你嘅名稱、地址、稅務或增值稅號碼、標誌、銀行資料、預設付款期限、預設稅率、貨幣,以及下一個發票編號。
- 客戶:名稱、公司、電郵、賬單地址、如有需要其稅務號碼,以及預設條款。
- 發票:編號、客戶、開立日期、到期日、狀態、貨幣、備註,以及總額(小計、稅項、總計)。
- 發票項目:發票、描述、數量、單價、稅率,以及項目總額。
如果客戶分期付款或者用多種方式付款,就加入一張付款資料表:發票、日期、金額、付款方式、參考編號。
最重要嘅規則
除非你明確提出,否則 AI 生成工具通常唔會自動做對以下嘅部分:
- 連續而且獨一無二嘅編號。 好多稅務制度都要求發票編號獨一無二並且連續。應該喺發票正式開立時,而唔係建立草稿時,由伺服器生成編號,咁被放棄嘅草稿就唔會造成空隙。
- 鎖定已發送嘅發票。 發票發送之後,如果可以悄悄修改,就會出問題。只容許修改草稿;已發送嘅發票,就要作廢並重新開立,或者開立貸項通知書。
- 快照客戶資料。 如果客戶明年更改地址,去年嘅發票都應該顯示舊地址。開立發票時,要將客戶資料複製到發票上。
- 金額以最小貨幣單位整數儲存。 將金額以仙(或便士)儲存,而唔係小數,咁總額就唔會因為四捨五入而偏差。稅項要按稅務機關要求嘅方式進位,按項目或按發票計算。
- 狀態要貼近現實。 草稿、已發送、已付款、部分付款、逾期、已作廢。「逾期」應該由到期日自動計出,而唔係手動設定。
PDF 定發票頁面?
客戶通常期望收到 PDF,但網頁比較容易保持同步。大部分發票工具兩樣都提供:
- 可分享嘅發票頁面,附一個難以猜中嘅連結,讓客戶唔使登入都可以睇同付款。
- PDF 下載,由同一份數據生成,並附上你嘅標誌同資料。
要求列印友好嘅版面,並檢查 PDF 喺紙張尺寸(A4 或 US Letter)上嘅效果。項目較多嘅發票,應該可以乾淨地跨頁顯示。
網上收款
對好多業務來講,喺發票上顯示銀行資料已經足夠。如果你想接受信用卡付款,就要連接付款服務商:
- Stripe Checkout 或付款連結,金額即係發票金額。客戶喺發票頁面撳「立即付款」。
- Webhook:服務商透過 webhook 通知你嘅應用程式付款成功,然後應用程式將發票標記為已付款。唔好只因為客戶返回成功頁面就標記為已付款,因為唔付款都可以去到嗰個頁面。參閱如何為應用程式加入付款功能。
- 先用測試模式。 喺整個流程運作正常之前,用服務商嘅測試金鑰同測試卡。
值得一提:截至 2026 年 9 月,Stripe 亦提供自家嘅發票產品,附有代管發票頁面。如果你只需要發送發票同收款,單靠嗰個可能已經足夠。
提醒
自動發出「你嘅發票即將到期」電郵,係最受重視嘅功能之一,但亦係最容易做錯嘅功能之一。你需要:
- 一個電郵服務商(Resend、Postmark、SendGrid 等);參閱如何從應用程式發送電郵。
- 一個按排程運行、用來搵逾期發票嘅機制。已發布嘅網頁應用程式喺閒置時可能會休眠,唔會自己醒過嚟,所以要問清楚建立工具會點樣觸發檢查,例如由外部排程服務定時呼叫應用程式中嘅一個端點。
- 一份已發送提醒嘅紀錄,免得同一封電郵發送兩次。
先由手動嘅「發送提醒」按鈕開始,之後再自動化。
一個有效嘅首個提示詞
為我嘅網頁設計業務建立一個發票應用程式。我會登入,管理客戶(名稱、公司、電郵、賬單地址、增值稅號碼)。我可以建立附項目(描述、數量、單價)嘅發票,每個項目都有增值稅率,並即時睇到小計、增值稅同總額。發票編號係連續嘅(INV-0001、INV-0002),於我將發票標記為已發送時分配;草稿仍然可以編輯,已發送嘅發票則會鎖定。每張發票都有狀態(草稿、已發送、已付款、逾期)同到期日;逾期由到期日計出。每張發票都會有一個私人可分享連結,以及一個附有我嘅標誌同銀行資料嘅 PDF 下載。儀表板顯示未收總額同逾期總額。金額以便士儲存。只使用英鎊。所有資料儲存喺資料庫。
建立步驟
- 先做設定同客戶。 先令業務資料同客戶列表運作正常,因為每張發票都要依賴佢哋。
- 發票編輯器。 項目、稅項同總額。用一啲麻煩嘅數字測試,例如 3 × £33.33 加 20% 增值稅,然後用計數機核對總額。
- 編號同鎖定。 開立三張發票,刪除一張草稿,再開立另一張。編號應該保持連續,冇空隙、冇重複。
- 發票頁面同 PDF。 喺私人視窗打開分享連結。列印 PDF。
- 付款。 加入測試模式嘅 Stripe,用測試卡付款一張發票,確認 webhook 將其標記為已付款。
- 安全檢查。 登出,然後嘗試透過更改網址中嘅 ID 打開另一位客戶嘅發票。只有私人連結應該可以運作,而且唔可以顯示其他發票。我哋嘅安全清單有更多可以測試嘅項目。
- 匯出。 加入發票同付款嘅 CSV 匯出功能,俾你嘅會計師使用。
常見錯誤
- 金錢使用浮點數。 0.1 加 0.2 唔等於 0.3,呢個係真實應用程式中真實存在嘅 bug。要儲存整數嘅最小單位。
- 已發送嘅發票仍可以編輯。 客戶收到發票之後再改動,會引致爭議同會計問題。
- 草稿階段已經分配編號。 會造成空隙同混亂。
- 可以猜中嘅發票連結。
/invoice/42會令人想試吓/invoice/43。要用長而隨機嘅權杖。 - 假設只有一套稅務規則。 稅率、反向徵稅同所需措辭,會因國家同客戶類型而異。請問會計師,唔好由 AI 去估。
- 冇備份。 發票係你可能需要保存多年嘅紀錄。要定期匯出,如果方案允許,亦可以將程式碼保存喺 GitHub。
成本同工具
| 組件 | 用途 | 備註 |
|---|---|---|
| 應用程式生成工具/主機/資料庫 | 建立同運行應用程式 | 喺 Mythex,一個積分餘額涵蓋以上所有項目,參閱定價 |
| 付款服務商 | 信用卡付款 | 每筆交易收取費用;請查閱服務商喺你所在國家嘅最新收費 |
| 電郵服務商 | 發送發票同提醒 | 好多服務商喺低用量時有免費方案 |
| 網域 | 專業嘅發票連結 | 可選,每年收費 |
幾時用現成嘅發票軟件更好
當發票係你自己工作流程嘅一部分、你想要一個完全貼合你收費方式嘅工具,或者你要喺已經擁有嘅應用程式上加入發票功能時,就自己建立。以下情況就應該選用成熟嘅會計或發票軟件:
- 你需要喺同一個地方處理簿記、銀行資料同步、開支追蹤同報稅。
- 你所在國家要求以指定格式或透過認可渠道進行電子發票。
- 你寧願讓會計師使用佢哋已經熟悉嘅工具。
一個常見嘅折衷做法:自己建立專屬於你嘅部分(工作、工時,以及客戶入口,讓客戶睇到自己嘅發票),然後將數字匯出去你嘅會計軟件。小型企業自建與購買軟件會逐步講解呢個決定。
用 Mythex 建立
喺 Mythex,你可以喺聊天中描述發票應用程式,並喺即時預覽中睇住佢成形。應用程式需要時會加入資料庫,並將 API 金鑰(例如你嘅 Stripe 密鑰)保存喺專案機密入面,然後將應用程式發布到一個即時可用嘅網址。文件中嘅 Stripe 配方展示咗自備金鑰嘅設定方法。如果想由一個已經描述咗基本功能嘅提示詞開始,可以試吓發票生成器或自由工作者發票範本。
常見問題
發票應用程式需要咩功能?
客戶列表、附項目、稅項同總額嘅發票、獨一無二而且連續嘅發票編號、PDF 或者可以分享嘅發票頁面,以及每張發票嘅狀態(草稿、已發送、已付款、逾期)。網上付款同提醒係最有用、最值得優先加入嘅功能。
我嘅發票應用程式可以接受信用卡付款嗎?
可以,透過 Stripe 等付款服務商即可。應用程式會為發票金額建立付款連結或結賬頁面,並由服務商發出嘅 webhook 喺付款成功時將發票標記為已付款。
用自己建立嘅發票應用程式合法嗎?
一般嚟講係可以嘅,但發票嘅法律內容要求因地區而異,例如賣方資料、稅務號碼、日期、稅項細分;部分國家更要求以指定格式進行電子發票。依賴之前,請先向會計師查明適用於你嘅規定。
我應該自己建立發票應用程式,定係用會計軟件?
如果你需要簿記、報稅或銀行對賬,就用會計軟件。如果發票需要配合你自己嘅工作流程(工作項目、工時紀錄、專案),或者你想要一個冇按座位收費嘅簡單工具,就自己建立。