Search code examples
phprecurly

Preventing Prorated changes in Recurly


I am setting up Recurly for our monthly subscriptions. Due to legal restrictions, we cannot prorate refunds or credits. Its "all or nothing". So all subscriptions start on the 1st of every month and refunds always for the whole month (even if they cancel on the 30th day).

On the flip side, if they want to upgrade (or downgrade) mid-month they have to pay (or get credited) the FULL monthly difference. How can I turn off prorated features in Recurly? Or alternatively how can I specify amounts for credits/billing via the API?

I am developing in PHP using the PHP API and hosted pages for new purchases.


Solution

  • Prorating is done automatically whenever a subscription change is issued with a timeframe of "immediately". This functionality cannot be bypassed, however there may be some workarounds:

    So all subscriptions start on the 1st of every month

    One question here - must the subscription always start on the 1st of the month or just renew? If it's the former, do you need to wait for the 1st of the month for the subscription to start, or do you want it activated immediately?

    • Starting on the first of the month: pass the starts_at parameter in the API (note, you cannot then note use the hosted pages for signup, since they do not support this parameter)
    • Renewing on the first of the month: After the subscription starts, use the postpone API call to adjust the next renewal date to the 1st.

    and refunds always for the whole month (even if they cancel on the 30th day). In this case, you'll always want to issue a FULL refund, or just specify the full subscription price when issuing a refund.

    On the flip side, if they want to upgrade (or downgrade) mid-month they have to pay (or get credited) the FULL monthly difference. How can I turn off prorated features in Recurly? Or alternatively how can I specify amounts for credits/billing via the API?

    • If the changes need to take effect immediately you would need to terminate the existing subscription (issue any refunds if you want) and then resubscribe the customer at their new terms. Once again you'd need to use the postpone API call if you wish to align their bill cycle date with the first of the month
    • If the changes can take place at renewal issue a subscription change to occur at renewal. It will wait until the 1st of the month and then bill the full price of the new plan.