所有文章
Deep dive閱讀時間 9 分鐘

Apple 按月付款、承諾 12 個月的訂閱,一次退款可能終止整年,也可能只退一個月

Apple 按月付款、承諾 12 個月的訂閱把退款分成兩種情況。退還過去某個月,扣款照常繼續。退還當前月份,承諾期立即終止。本文說明每種情況如何送達你的伺服器、造成多少損失,以及該向 Apple 傳送什麼。

一本被撕掉一個月的年曆掛在牆上,旁邊是一支智慧型手機,表示按月付款、承諾 12 個月的訂閱發生退款

重點摘要

  • 在 Apple 按月付款、承諾 12 個月的訂閱中,對過去某個計費週期的退款只會撤銷該月的交易,客戶仍維持訂閱,扣款按排程進行。
  • 當 Apple 退還按月付款、承諾 12 個月訂閱的當前計費週期時,承諾期立即終止,剩餘的月付款項不會再扣款。
  • 客戶取消 12 個月承諾方案時,取消的是承諾期的續訂,而不是剩餘付款。Apple 會繼續每月扣款,並在第 12 個週期結束後才傳送 EXPIRED。
  • 帳單寬限期(Billing Grace Period)不適用於按月付款、承諾 12 個月的訂閱。Apple 要求開發者在收到 DID_FAIL_TO_RENEW 時撤銷存取權,並在收到子類型為 BILLING_RECOVERY 的 DID_RENEW 時恢復。
  • 如果 Apple 在 90 天內無法追回 12 個月承諾方案中某筆失敗的月付款項,承諾期即告終止,撤銷即成定局。
  • 承諾方案上的退款申請會觸發 CONSUMPTION_REQUEST,Apple 要求你在 12 小時內提供該計費週期的使用資料和退款偏好。
  • 從 12 個月承諾方案升級到更高等級會立即終止承諾期,客戶可能獲得當前週期未使用部分的按比例退款。

在 Apple 按月付款、承諾 12 個月的訂閱上,一筆核准的退款可能只收回一次付款,也可能取消當年剩下的所有付款。結果取決於一個多數伺服器程式碼從不檢查的細節:被退款的月份是不是當前月份。Apple 的文件寫得很清楚。對過去計費週期的退款不影響承諾期。對當前週期的退款會讓承諾期立即終止。如果兩種情況一視同仁,你不是切斷一位仍在付款的客戶,就是繼續服務一位已經不付款的客戶。

Apple 的 12 個月承諾方案如何計費

Apple 於 2026 年 4 月推出這個選項。它不是新的產品類型。你在 App Store Connect 中為現有的一年期自動續訂型訂閱加入按月計費方案,產品 ID 維持不變。客戶每月付款,承諾共付 12 次,最後一次付款完成後,承諾期會自動續訂為新的 12 個月,除非客戶事先取消。

規則Apple 文件的說明
銷售範圍美國和新加坡以外的所有店面
裝置與 SDKOS 26.4 或以上版本,不含 watchOS,且 App 須以 26.5 SDK 或以上版本建置
價格限制12 個月總價不得低於一次付清的年費價格,也不得超過其 1.5 倍
前提條件必須先在某個國家或地區提供一次付清的年費方案,才能在當地提供按月計費
在資料中的呈現billingPlanType 為 MONTHLY,commitmentInfo 包含 billingPeriodNumber、totalBillingPeriods、commitmentExpiresDate 和 commitmentPrice
如果你移除這個選項現有客戶在承諾期結束時不再續訂,新客戶無法再選擇

每個計費週期都會產生一筆獨立的交易,並授予一個月的存取權。正是這個細節決定了退款的運作方式。Apple 退款的對象是交易,而在承諾方案中,每個月都是一筆獨立的交易。

退款對 12 個月承諾期的影響

Apple 關於承諾期生命週期的指南把退款分成兩種情況。差別在於退款對應的是哪個計費週期。

退款對應承諾期會怎樣在哪裡看到你的伺服器該怎麼做
過去的某個計費週期繼續,不受影響。扣款按排程進行該週期交易上的 revocationDate只撤銷該筆交易。維持訂閱有效
當前計費週期立即終止最新交易上的 revocationDate終止存取。之後不會再有付款
升級到更高等級立即終止,新方案開始DID_CHANGE_RENEWAL_PREF,子類型 UPGRADE切換權益。之後可能有未使用週期的按比例退款

第二個月的退款會取消整年剩餘的部分嗎?

不會,只要第二個月已經過去。假設客戶正處於第五個月,Apple 退還了他第二個月的付款。Apple 會撤銷第二個月的交易,客戶仍維持訂閱。第六個月到第十二個月的扣款照常進行。Apple 在這一點上說得很明確:檢查受影響交易上的 revocationDate,但不要把它解讀為承諾期遭到取消。

退款何時會終止承諾期

如果退款對應的是當前計費週期,承諾期會立即終止。訊號是最新交易上出現 revocationDate。它的存在代表當前週期已被撤銷,之後不會再有付款,因此存取權也隨之結束。

升級也可能帶來退款

Apple 指出,客戶不只在主動申請後可能獲得退款,變更方案後也可能獲得退款。從承諾方案升級到更高等級的訂閱會立即生效。承諾期終止,新方案開始,客戶可能獲得承諾期當前週期未使用部分的按比例退款。降級則相反,要等 12 個月承諾期完成後才生效。

取消不等於退款

在 12 個月承諾方案上點選「取消」的客戶並沒有停止付款。Apple 說明,他們取消的是承諾期的續訂,而不是當前期限內的剩餘付款。你的伺服器會收到以下內容。

  • Apple 傳送 DID_CHANGE_RENEWAL_STATUS,子類型為 AUTO_RENEW_DISABLED。
  • 承諾期的自動續訂狀態變為 0,因此期限結束時承諾期不會續訂。
  • 訂閱續訂資訊中的 willAutoRenew 仍顯示為 1,因為按月扣款仍在繼續。
  • 剩餘每個月仍會收到 DID_RENEW 通知。EXPIRED 在第 12 個週期之後才會送達,那時存取權才結束。

Apple 要求開發者在執行一般的取消邏輯之前,先檢查計費方案類型。如果是 MONTHLY,不要撤銷任何東西。剩餘的每個計費週期都要照常履行。

有一個地區性例外。App Store Connect Help 指出,取消的客戶會持續付款直到承諾期結束,但某些地區除外,並連結到 Apple 關於在德國、以色列、南非和土耳其取消訂閱的頁面。在這四個國家,客戶有權隨時取消訂閱並立即生效,同時獲得按比例退款。

付款失敗會立即終止存取

承諾方案拿掉了你在其他地方可能依賴的一張安全網。帳單寬限期(Billing Grace Period)不適用。當某次月度續訂失敗時,Apple 要求你在訂閱處於帳單重試期間撤銷存取權,並且只有在付款追回後才恢復。

通知它告訴你什麼該怎麼做
DID_FAIL_TO_RENEWisInBillingRetryPeriod 為 true立即撤銷存取權
DID_RENEW,子類型 BILLING_RECOVERYcommitmentExpiresDate 會調整,以反映追回日期恢復存取權,並儲存新的結束日期
EXPIRED,子類型 BILLING_RETRYApple 未能在 90 天內追回付款承諾期已結束。你先前的撤銷即成定局

付款追回後,從最新交易讀取 commitmentExpiresDate。它不會與原本的結束日期相同,之後的每次續訂都會依照調整後的排程進行。

深夜,一位開發者坐在筆電前,在伺服器儀表板上查看訂閱通知,鍵盤旁放著一支智慧型手機

承諾方案的退款讓你損失多少

以下用範例價格算一筆帳。假設你的一次付清年費方案價格為 €59.99,按月承諾選項為 €6.99,12 個月合計 €83.88。這在 Apple 規定的一次付清價格 1.5 倍上限之內。

情境(客戶處於第 4 個月)被退還的付款損失的未來付款損失的承諾總價值
Apple 退還第 2 個月€6.99無。第 5 至 12 個月照常扣款€6.99
Apple 退還第 4 個月,即當前週期€6.99€55.92,八筆付款不會再扣款€62.91
客戶取消,沒有退款無無。第 5 至 12 個月照常扣款€0
德國客戶取消第 4 個月的按比例部分€55.92最多 €62.91

以上都是客戶支付的價格。你實際損失的是每筆付款中你的那一份。在訂閱者付費服務的第一年,Apple 支付訂閱價格的 70%(扣除適用稅金),之後或對於 App Store 小型企業計畫的成員,則支付 85%。

退款只是帳單的一半。一個月的存取並不是零成本。如果你的 App 執行 AI 生成、呼叫付費的第三方 API 或儲存客戶檔案,那麼在被退款的那個月裡,運算、呼叫和儲存的費用都是你付的。過去月份的退款會把付款退回去,這些成本則留給你承擔。當前月份的退款同樣如此,還會把當年剩餘的收入從你的預測中抹去。

如何回應承諾方案的 CONSUMPTION_REQUEST

這是你唯一能表達意見的環節。當客戶對承諾方案申請退款時,Apple 會向你的 App Store Server Notifications V2 端點傳送 CONSUMPTION_REQUEST。你透過 Send Consumption Information 回應,Apple 要求你在 12 小時內回覆。回覆內容包含該計費週期的使用資料和你的退款偏好,而不是針對整個承諾期。

  • 只有在客戶同意時才傳送資料。Apple 的文件指出,若沒有取得同意,你根本不應回應該請求。
  • 不要填寫 consumptionPercentage。對自動續訂型訂閱傳送此欄位時,API 會回傳 ConsumptionPercentageAutoRenewableSubscriptionError。
  • 依據該月的使用情況決定退款偏好。在有爭議的月份裡執行了 300 次付費生成的客戶,留下了真實成本的紀錄。從未開啟過 App 的客戶則沒有。
  • 看清請求對應的是哪個週期。針對當前週期的請求一旦獲 Apple 核准,承諾期就會終止。針對過去週期的請求則不會。

你的伺服器需要處理的事項

  • 在每筆交易和每則續訂通知上讀取 billingPlanType。MONTHLY 代表適用承諾期規則。
  • 依據交易的 expirationDate 授予存取權。Apple 指出,commitmentInfo 中的到期日是用來顯示進度,而不是用來判斷存取權。
  • 收到退款時,先檢查最新交易是否帶有 revocationDate,再決定是否終止訂閱。
  • 收到取消時,保留存取權,直到第 12 個週期之後收到 EXPIRED。
  • 收到 DID_FAIL_TO_RENEW 時,立即撤銷。不要等待一個不會到來的寬限期。
  • 每次 BILLING_RECOVERY 之後,重新儲存 commitmentExpiresDate。

App Store 的每一筆退款都由 Apple 決定,因此 CONSUMPTION_REQUEST 是你把使用資料呈現在 Apple 面前的唯一機會。RefundHalt 會在 12 小時的期限內自動回應這些請求,並記錄每筆退款對應的計費週期,讓過去月份的退款永遠不會被誤判為流失了一位訂閱者。

常見問題解答

Apple 退還按月付款、承諾 12 個月訂閱中的一筆付款時,會發生什麼事?
取決於計費週期。對過去週期的退款只撤銷該月的交易,承諾期繼續,扣款按排程進行。對當前週期的退款會立即終止承諾期,剩餘付款不會再扣款。
客戶可以提前取消 Apple 按月付款、承諾 12 個月的訂閱嗎?
可以取消,但取消只是讓承諾期不再續訂,並不會停止剩餘付款。扣款會持續完整的 12 個週期,存取權也隨之持續。App Store Connect Help 提到某些地區有例外,Apple 的支援頁面說明,德國、以色列、南非和土耳其的客戶可以取消並立即生效,同時獲得按比例退款。
帳單寬限期(Billing Grace Period)適用於 12 個月承諾方案嗎?
不適用。Apple 表示帳單寬限期不適用於按月付款、承諾 12 個月的訂閱。收到 DID_FAIL_TO_RENEW 時撤銷存取權,收到子類型為 BILLING_RECOVERY 的 DID_RENEW 時恢復,並把 90 天後送達、子類型為 BILLING_RETRY 的 EXPIRED 視為定局。
12 個月承諾方案會收到 CONSUMPTION_REQUEST 嗎?
會。承諾方案上的退款申請會向你的 App Store Server Notifications V2 端點傳送 CONSUMPTION_REQUEST。請在 12 小時內回覆該計費週期的使用資料和你的退款偏好,前提是客戶已同意與 Apple 分享資料。
按月付款、承諾 12 個月的訂閱在美國可以使用嗎?
不行。Apple 在美國和新加坡以外的所有 App Store 店面提供此選項,需要 OS 26.4 或以上版本(不含 watchOS),且 App 須以 26.5 SDK 或以上版本建置。

資料來源與延伸閱讀

RefundHalt

App Store 與 Google Play 的退款自動駕駛

繼續閱讀

下一筆退款申請已經在路上。

讀完另一封關於未能抗辯退款的客服郵件所需的時間,就足夠您設定好 RefundHalt。