Chargify stores several dates associated with each subscription:
- Trial Expires At: Timestamp for when the trial period (if any) ended
Activated At: (
activated_at) Timestamp relating to the start of the current (recurring) period
- Paid Through Date: Timestamp related to the end of the current recurring billing period in which the subscription is paid.
Next Retry At: (
next_assessment_at) Timestamp that indicates when capture of payment will be tried or retried. For active subscriptions, this value will usually be the same as the Current Period Start Date. However, these dates will diverge if a renewal payment fails and must be retried. In that case, the Current Period End Date will advance to the end of the next period (time doesn’t stop because a payment was missed) but the Next Assessment Date will be scheduled for the auto-retry time (i.e. 24 hours in the future, in some cases)
Next Billing: (
current_period_ends_at) Timestamp relating to the end of the current (recurring) period (i.e. when the next regularly scheduled attempted charge will occur)
You can change the next billing date and time of a Subscription by clicking the “Change Billing Date” button next to the billing date.
After clicking the button, you will have the opportunity to enter a new billing date and time.
This will set both the Current Period End Date and the Next Assessment Date to the specified date. If the subscription is trialing, it will also set the Trial End Date date to extend or shorten the trial period.
When in live mode, in addition to being able to change the date/time to any future time, you can change the billing time up to 2 hours in the past. When setting the time in the past, the payment will be added to the next batch of processing.
Payments are batch processed approximately every 20 minutes. The next billing date represents the scheduled date/time, and the payment itself will be processed by your gateway within 20 minutes of the scheduled next billing date.
Chargify also supports Calendar Billing for subscriptions, when the subscription’s product meets the following criteria:
- The product period must be 1 month
- The product cannot have a trial
- The product cannot have an expiration
If the product meets those criteria, then you may start using Calendar Billing in two different ways:
- Through a Public Signup Page, by choosing the ‘Calendar Billing’ option. for details).
- Through the Chargify API, by specifying a Calendar Billing day via the snap_day attribute when creating the subscription (see API: Subscriptions for details).
A valid Calendar Billing day (or
snap_day) can be any number between 1 and 28, or end. When the Calendar Billing day is specified, the subscription will renew at 12:00 PM in the time zone for your site, on the specified day. If end is given as the snap day, the subscription will renew on the last day of each month, at 12:00 PM in the site’s time zone.
Subscriptions created with Calendar Billing enabled have three options for how the charge will be handled at signup:
- Prorated: The default. The prorated product price will be charged immediately.
- Immediate: The full product price will be charged immediately.
- Delayed: The full product price will be charged with the first scheduled renewal.
A Prorated Charge at Signup: For the prorated charge, the amount charged depends on the date and time of the signup relative to the Calendar Billing day (or
snap_day) specified. The rule is that any signup that occurs within 24 hours before 12:00 PM on the
snap_day will be treated as a “full period signup”, and the subscription will be charged for a month’s worth of product and component usage. In addition, the subscription’s
current_period_ends_at will be the
snap_day of the next month. In all other cases, the subscription will be charged a prorated amount at signup for the period from the signup date to the next
snap_day, and the
current_period_ends_at will be the upcoming
snap_day. The table below explains the possible scenarios:
|snap_day||Signup Date||Charge at Signup||current_period_ends_at|
|15||June 2, 3:00 PM||Pro-rated amount from 6/2 to 6/15||June 15, 12:00 PM|
|15||June 14, 3:00 PM||Full amount from 6/14 to 7/15||July 15, 12:00 PM|
|15||June 15, 12:01 PM||Pro-rated amount from 6/15 to 7/15||July 15, 12:00 PM|
|end||June 2, 3:00 PM||Pro-rated amount from 6/2 to 6/30||June 30, 12:00 PM|
|end||June 29, 3:00 PM||Full amount from 6/29 to 7/31||July 31, 12:00 PM|
|end||June 30, 12:01 PM||Pro-rated amount from 6/30 to 7/31||July 31, 12:00 PM|
If a subscriber signs up via a Public Signup Page that has enabled calendar billing, the snap day cannot be changed via the Merchant UI. To change the snap day, this change may only be requested via the API.
When Calendar Billing is not in use, for signups at the end of the month, the billing date will shift back a day or two as it passes through shorter months, and will eventually land on the 28th.
For example, a signup on October 31 will renew on November 30, December 30, January 30, February 28, March 28, and on the 28th thereafter.
If your time zone observes Daylight Savings Time, you may notice that your subscription renewal times seem to shift by one hour twice a year as you “spring forward” and “fall back”.
Chargify stores the dates internally in UTC (Universal Coordinated Time) which does not observe Daylight Savings Time.
If you would like your subscriptions to renew at a certain time regardless of whether Daylight Savings Time is in effect, you would need to modify the next billing date/time for all of your monthly subscriptions twice a year when the time changes, and also take into account what the offset should be at the next renewal each time you modify the next billing date/time on a subscription.
In addition, we recommend that you avoid setting the billing time near midnight on the first or last day of the month. In this situation, the time change may cause the renewal to cross the day boundary, resulting in the subscription being billed twice in the same calendar month, or seeming to skip a month.