訂閱制收費系統指南:方案設計、定期扣款、失敗重試、升降級按比例計費與退訂發票
「我們想把產品改成訂閱制,每個月自動扣款就好。」這句話常常是一個專案的開頭,也常常是低估的開始。上線後很快就會遇到:客人的信用卡過期了怎麼辦?扣款失敗要不要馬上停權?月中從基本方案升級到進階方案,這個月該收多少?客人退訂了,剩下的天數要不要退?發票要開給誰、開多少?訂閱制收費系統真正的工作量,幾乎都在這些「例外」裡。
訂閱制的好處是收入穩定、可預期,客戶關係也比一次性銷售長久。但這份穩定建立在一套可靠的計費機制上:每一筆扣款都要正確、每一次狀態改變都要留下紀錄、每一張發票都要對得上實際收到的錢。
以下依序說明方案與計費週期怎麼設計、定期扣款怎麼運作、扣款失敗如何重試與催繳、升降級與按比例計費的規則、退訂與退款的處理、電子發票開立,最後提供一份開發前的規則決策表。
先把訂閱的核心概念分清楚
訂閱系統裡有幾個概念經常被混在一起,開發前要先分開:
- 方案(plan):你賣的是什麼,包含哪些功能或權益,以及計費週期。
- 訂閱(subscription):某位客人訂了某個方案,從什麼時候開始、目前是什麼狀態、下次什麼時候續訂。
- 付款方式:綁定的信用卡或其他付款管道,屬於客人,不屬於訂閱。
- 帳單(invoice/bill):每一期應收的明細,包含方案費用、加購、折扣與調整。
- 付款紀錄:實際向金流商請款的結果,成功或失敗、失敗原因。
- 發票:依實際收款開立的電子發票。
最常見的設計錯誤,是把這些全部塞進一張「訂單」表裡。結果每次續訂都複製一張訂單、扣款失敗只能改訂單狀態、升級時不知道該改哪一筆。把訂閱、帳單、付款分開,後面所有複雜情境才處理得來。
方案設計:系統要能承受未來的改變
方案設計本身是商業決策,但它的結構會直接決定系統的複雜度。常見的計費模式有:
- 固定費率:每期固定一個價格,最單純。
- 依數量計費:依使用人數、帳號數、據點數計費,數量變動時要調整費用。
- 依用量計費:依實際使用量在期末結算,例如發送的訊息數、儲存空間。
- 基本費加超量:方案內含一定額度,超過的部分另外計費。
- 加購項目:在主方案之外另外購買的功能或服務。
系統設計上有幾個原則:
方案要有版本。方案內容與價格遲早會調整,但已經訂閱舊方案的客人,通常要依原條件繼續或給予過渡期。如果直接修改方案資料,舊客人的帳單就會跟著變。正確做法是新增一個方案版本,讓既有訂閱繼續指向原版本,新客人用新版本。
計費週期與帳單日要先決定。所有客人統一在每月固定一天出帳,還是依各自的訂閱開始日出帳?前者對帳方便,但新客人第一期需要按比例計算;後者對客人直覺,但每天都有人要扣款。兩種都可行,重點是一開始就決定並一致執行。
試用期是訂閱的一個狀態,不是另一種產品。試用結束時要自動轉為付費、要求綁卡,或是自動到期,這幾種行為都要先定義。
定期扣款怎麼運作
台灣常見的做法是透過金流商的信用卡定期扣款或卡片代碼(token)功能:第一次付款時客人輸入卡號,金流商保存卡片資料並回傳一個代碼,之後由你的系統在每期帳單日用代碼請款。你的系統不應該自己保存完整卡號,這牽涉到嚴格的資料安全要求,交給金流商處理是最安全的做法。
一次定期扣款的流程大致是:
- 排程在帳單日找出應續訂的訂閱。
- 依方案與期間內的異動產生帳單。
- 用綁定的付款方式向金流商請款。
- 接收金流商回傳的結果(同步回應或非同步通知)。
- 成功則延長訂閱期間、開立發票;失敗則進入重試與催繳流程。
這個流程中最需要注意的是冪等性:同一期帳單絕對不能被扣兩次。排程可能重跑、金流商的通知可能重送、網路可能逾時後重試。系統要以帳單為單位確認「這期是否已經成功請款」,並在請款前鎖定,避免並行處理造成重複扣款。金流串接的細節與注意事項,可參考台灣金流串接指南。
另外,金流商的定期定額功能有兩種用法:一種是由金流商依約定週期自動扣款,再通知你結果;另一種是金流商只保存卡片,何時扣、扣多少由你的系統決定。前者簡單,但升降級與按比例計費時彈性有限;後者彈性大,但扣款排程與重試邏輯要自己負責。
扣款失敗:重試、催繳與寬限期
扣款失敗是訂閱制的日常,原因包括卡片過期、額度不足、銀行風控拒絕、卡片掛失等。處理得好,大部分失敗都能救回來;處理得不好,客人會在不知情的狀況下被停權,然後直接流失。
一套合理的失敗處理機制包含:
分辨失敗原因。有些失敗重試可能會成功(例如額度暫時不足),有些重試也沒用(例如卡片已掛失),應該直接請客人更新付款方式。金流商回傳的錯誤代碼要納入判斷。
排定重試時程。在一段期間內分幾次重試,間隔逐步拉長,而不是當天連續扣好幾次。重試次數與間隔應該做成可以調整的設定。
同步通知客人。第一次失敗就通知,說明原因並提供更新付款方式的連結;連結要能直接進入更新卡片的頁面,不要讓客人先登入再找半天。
設定寬限期。重試期間客人通常仍可正常使用,寬限期結束仍未成功,才進入暫停或降級狀態。寬限期長短是商業決策,系統要能設定。
恢復要自動。客人更新卡片後,系統應該立即補扣未付的帳單,成功後自動恢復服務,不需要客服手動處理。
訂閱狀態因此至少會有:試用中、正常、付款逾期(寬限期內)、已暫停、已取消、已到期。每一個狀態下客人能用什麼功能、能不能升降級,都要寫清楚。
升降級與按比例計費
客人在期間中途改方案,是訂閱系統最容易算錯的地方。這裡用一個情境說明:設想一位客人訂了月繳的基本方案,在帳期過了一半時升級為進階方案。
升級的常見做法:
- 立即生效並按比例補差額:剩下半個月改用進階方案,系統計算「剩餘天數的進階方案費用」減去「剩餘天數的基本方案費用」,當下向客人請款差額;下一期起以進階方案全額收費。
- 立即生效、差額併入下期帳單:功能馬上升級,差額在下次帳單一起收。
- 下期才生效:最簡單,但客人想立即使用新功能時體驗較差。
降級的常見做法:
- 下期才生效:最常見,本期已付的進階方案繼續用到期末,下期起改收基本方案。這樣避免了退款與功能突然消失的問題。
- 立即生效並轉為抵用額度:剩餘天數的差額不退現金,轉成下期帳單的折抵。
按比例計費(proration)時要先定好規則:
- 以「天」計還是以「秒」計?以天計時,當天升級算哪一天?
- 每個月天數不同時,比例怎麼算?
- 計算出來的金額小數點怎麼處理?
- 同一期內多次升降級時,是否逐次計算?
這些規則沒有標準答案,但必須在開發前決定,寫進規格,並在帳單明細上讓客人看得懂。一張只寫「調整金額」而沒有說明的帳單,幾乎一定會引來客服詢問。
依數量計費的方案(例如依帳號數)也適用同樣的邏輯:期中增加人數時按比例補收,減少人數時通常下期才生效。
退訂、退款與電子發票
退訂的設計重點:
- 到期取消與立即取消要分開:多數訂閱的退訂是「本期用完不再續訂」,客人在到期前仍可使用;立即取消則牽涉到是否退款。
- 取消要容易:客人能在帳號頁面自行取消,不必聯絡客服。取消時可以詢問原因,但不應設置刻意的障礙。
- 保留資料一段時間:取消後資料保留多久、到期後客人還能不能匯出,要事先說明。
- 重新訂閱:取消後再回來,是延續原訂閱還是開新訂閱,歷史紀錄要能連在一起。
退款:退款政策是商業與法規問題,系統只負責執行。要注意的是退款必須透過原付款管道處理、要能部分退款,而且退款紀錄要與原始扣款、發票對應。消費者保護相關規範依商品與服務型態可能有不同要求,建議依個案諮詢專業人士。
電子發票:每一次成功扣款都要開立發票,開立時機通常在請款成功之後。要處理的情境包括:
- 客人是個人還是公司(統一編號)、載具或捐贈。
- 按比例補收的差額,是開立一張獨立發票還是與下期合併。
- 退款時要作廢或開立折讓,依發票開立的時間點而定。
- 客人在期中修改發票資訊,從哪一期開始適用。
發票與訂閱帳單的對應關係一定要清楚,否則月底財務對帳會非常痛苦。串接方式可參考台灣電子發票串接指南。
開發前的規則決策表
以下這張表列出訂閱系統開發前一定要決定的規則,可以直接印出來和團隊逐項討論,每一列都填上你的決定:
| 決策項目 | 可選做法 | 你的決定 |
|---|---|---|
| 帳單日 | 統一固定日/依訂閱開始日 | |
| 計費週期 | 月繳/年繳/兩者都有 | |
| 試用結束 | 自動轉付費/要求綁卡/自動到期 | |
| 扣款方式 | 金流商自動扣/自家系統排程請款 | |
| 扣款失敗重試 | 重試幾次、間隔多久 | |
| 寬限期 | 期間內可否使用、多長 | |
| 寬限期後 | 暫停/降級為免費/取消 | |
| 升級生效 | 立即補差額/立即併下期/下期生效 | |
| 降級生效 | 下期生效/立即轉抵用額度 | |
| 按比例單位 | 以天/以更細的時間單位,小數處理方式 | |
| 退訂 | 到期取消/立即取消,是否退款 | |
| 資料保留 | 取消後保留多久、可否匯出 | |
| 補差額發票 | 獨立開立/併入下期 | |
| 方案調價 | 舊客人保留原條件/過渡期後調整 |
這張表填完,系統規格就完成了一大半。整理成正式文件的方式可以參考軟體需求怎麼寫。
後台與報表:營運需要看到什麼
訂閱系統的後台不只是查訂單,營運團隊需要的是:
- 單一客戶的完整時間軸:何時訂閱、升降級、扣款成功與失敗、通知寄送、取消,客服一眼就能回答客人的疑問。
- 待處理清單:付款逾期中的訂閱、即將到期的試用、卡片即將過期的客人。
- 手動調整工具:給予折抵、延長期間、手動補扣,且每一次手動操作都要留下操作者與原因。
- 營運指標:新增訂閱、取消、升降級、扣款失敗救回的情況,用來檢討方案與流程。
這些功能與會員資料高度相關,若已經有會員系統,訂閱應該掛在既有會員上,而不是另建一份客戶資料,規劃方式可參考會員系統與 CRM 開發指南。
訂閱制收費系統的難處,不在於會不會寫程式,而在於規則有沒有被完整想過。每一條沒有在開發前決定的規則,都會在上線後變成客訴、對帳差異或手動補救。
方案結構、金流商功能與發票流程,每家業者的組合都不一樣。如果你正打算把產品改成訂閱制,或是現有的定期扣款流程常出狀況,可以和 NETVANA 討論你的訂閱計費規則。我們的軟體服務一律採詢問報價制,會先和你一起把上面的決策表填完,再規劃金流、帳單與發票的串接方式;服務內容可參考軟體服務介紹。
延伸閱讀:信用卡定期扣款與金流商的選擇,先看台灣金流串接指南;每期扣款後的發票開立與折讓,讀台灣電子發票串接指南;訂閱要掛在會員資料上,參考會員系統與 CRM 開發指南;訂閱是 SaaS 產品的一部分時,可讀買現成 SaaS 還是客製開發;要先用最小範圍驗證訂閱模式,看 MVP 開發指南。