Subscription Change Error: "Charges original charge refundable subtotal in cents must be greater than or equal to 0 Please correct the following issues: Invoice base Charges original charge refundable subtotal in cents must be greater than or equal to 0"

The subscription change behavior that is observed with the error returned as, "Charges original charge refundable subtotal in cents must be greater than or equal to 0 Please correct the following issues: Invoice base Charges original charge refundable subtotal in cents must be greater than or equal to 0" is due to the fact that the next bill date of the subscription was modified prior to the request being made to move from the old to the new subscription plan. Here's an outline of the behavior:

  • The old subscription’s next bill date was modified.
  • Immediately, after there is an attempt to move the old lower priced subscription to an upgraded more expensive subscription plan.
  • We will see the error, “Charges original charge refundable subtotal in cents must be greater than or equal to 0 Please correct the following issues: Invoice base Charges original charge refundable subtotal in cents must be greater than or equal to 0”, if the timing of the change is set to take effect immediately. This is due to the postponement of the old subscription's next bill date and the attempt to move to the upgraded new subscription plan where the system is attempting to prorate the charge but is unable to because of the change in bill date that was made.

The recommended options to follow in this case are as follows.

  • Upgrade the subscription from the old plan to the new plan and set the timing to take effect immediately which will result in prorated charges/credits being applied based on the time spent on the prior subscription and the move to the new subscription. Then, adjust the next bill date, if needed.
  • Upgrade the subscription from the old plan to the new plan and set the timing to take effect at the next bill date. Then, adjust the next bill date as needed.
  • Move the subscription from the old plan to the new plan but set the timing to take effect either at the next bill date or term end.
  • Completely terminate the old subscription where you can issue a partial refund if needed then, apply the new subscription to the account.

Additionally, if the end goal is to give your customer X amount of billing cycles for free in return for not cancelling their subscription you can consider the following options as well.

  • If you would like to grant your customer an additional month free for example, you can change the next bill date to accommodate for that or you can apply a coupon that would discount the next renewal completely.
  • Then, you can set that subscription to cancel at the next bill_date so that your customer is no longer billed for that subscription.
  • Once that is completed, you can apply the new upgraded subscription to the account but set it with a future start date where it would start once the old subscription is canceled/expires when it comes to renew at the next bill date.
  • With this method you are still giving your customers a month free for the existing plan as promised by changing the renewal date then, setting it to cancel. Then, when the future start date plan begins they would be upgraded and on the new plan.

    The only thing to think about in this case is if your customer's payment attempt for the new plan declines. Therefore, you may want to consider listening for the failed_payment_notification as well as, the new_dunning_event_notification webhook if you are not already making use of webhooks. In listening for these webhooks, you can query the API for additional account details and if needed based on the setup on your side prevent your customers access for the upgraded plan.

    Also, this should trigger the Payment Declined/Invoice Past Due email notifications, if enabled, which are associated with your Dunning Management Settings to encourage your customers to update their billing information as needed. You can see these Email Templates under the Configuration tab on the left-hand side of your user interface. You can also include this parameter {{transaction_decline_details}} in the email template to indicate to your customers exactly why the payment decline and how they can resolve it. Otherwise, if the payment goes through your customer is upgraded on the future start date indicated for the new subscription.

    More about Dunning Management here: https://docs.recurly.com/docs/dunning-management
    More about our email templates here: https://docs.recurly.com/docs/email-templates