SubscriptionSchedule
A subscription schedule manages the lifecycle of a subscription through a series of phases, allowing you to configure billing changes at specific future dates.
- Type: stringFormat: date-time
created requiredTime at which the schedule was created.
- Type: integer
current _phase _index requiredZero-based index of the currently active phase.
- Type: string
customer requiredID of the customer this schedule belongs to.
- Type: string · ScheduleEndBehaviorenum
end _behavior requiredWhat happens when the last phase ends:
RELEASE— schedule becomesRELEASED; the subscription continues billing on its own cadenceCANCEL— the subscription is immediately canceled; schedule becomesCOMPLETEDNONE— no action taken; schedule remains active
valuesR E L E A S E C A N C E L N O N E
- Type: string
id requiredUnique identifier for the subscription schedule (ULID).
- Type: boolean
livemode requiredWhether this schedule exists in live mode (
true) or test mode (false). - Type: array object[] · SchedulePhases 1…20
phases requiredOrdered list of schedule phases. Applied sequentially by the workflow. The first phase's
start_datedetermines when the subscription is created.A single phase in a subscription schedule. Phases are applied sequentially. When a phase is applied, subscription items are updated to match the phase's items.
- Type: array · SchedulePhaseItems 1…
items requiredItems active during a phase. At least one item is required per phase. Items without
recurringare one-time charges (captured at phase creation, excluded from all future billing cycles).For the terminal phase with
end_behavior: CANCEL, repeat the previous phase's items. The subscription is canceled immediately when the last phase is applied, so the repeated items are never charged again. - Type: stringFormat: date-time
start _date requiredWhen this phase begins.
- Type: string | null
billing _cycle _anchor Billing anchor for the subscription created by this phase:
"phase_start"(default) — usestart_dateas the billing anchor"automatic"— inherit the subscription's existing anchor (no change on transition)- ISO 8601 datetime string — use a specific date
- Type: stringenum
collection _method How to collect payment during this phase.
send_invoiceis (coming soon).valuescharge _automatically send _invoice
- Type: string | nullFormat: date-time
end _date When this phase ends. Omit for an open-ended (last) phase. When reached and no further phases exist,
end_behaviordetermines what happens to the subscription. - Type: object | null
metadata Arbitrary key-value pairs for this phase.
- Type: string | null
on _behalf _of Account ID for connected account scenarios.
- Type: integer
phase _index Zero-based index. Auto-assigned from array position if omitted.
- Type: string | nullFormat: date-time
trial _end Trial end date for the subscription created by this phase (Phase 0 only). When set, the subscription starts in
TRIALINGstatus and no charge is taken untiltrial_end. The billing schedulestartAtis set to this date. - Type: object · TrialSettings
trial _settings Controls what happens when a trial period ends.
- Type: stringFormat: date-time
start _date requiredDerived from
phases[0].start_date. When the workflow begins watching. - Type: string · SubscriptionScheduleStatusenum
status requiredCurrent lifecycle state of a subscription schedule:
NOT_STARTED— created but waiting for the first phase start dateACTIVE— currently running; a phase is activeCOMPLETED— all phases have ended (viaend_behavior: CANCEL)CANCELED— manually canceled before completionRELEASED— released from the subscription; billing continues independently
valuesN O T _ S T A R T E D A C T I V E C O M P L E T E D C A N C E L E D R E L E A S E D
- Type: stringFormat: date-time
updated _at requiredTime at which the schedule was last updated.
- Type: string
account Merchant account ID.
- Type: string | null
application Application ID if created via a connected application.
- Type: object | null
billing _mode coming soon — Reserved for future billing mode configuration. Currently accepted and stored but has no effect on billing behavior.
- Type: anything
property Name
- Type: string | nullFormat: date-time
canceled _at If the schedule was canceled, the date of cancellation.
- Type: string | nullFormat: date-time
completed _at If the schedule completed (all phases ended), the completion date.
- Type: object | null
current _phase Summary snapshot of the currently active phase (id, phase_index, start_date, end_at).
- Type: anything
property Name
- Type: string | null
customer _account Customer account ID for connected account scenarios.
- Type: object · ScheduleDefaultSettings
default _settings Default settings applied to the subscription created by this schedule.
- Type: object | null · BillingCycleAnchorConfig
billing _cycle _anchor _config Advanced billing cycle configuration. Allows precise control over when billing cycles occur. All fields are optional integers with specific ranges.
- Type: string | nullenum
collection _method How to collect payment. Defaults to
charge_automatically.send_invoiceis (coming soon).valuescharge _automatically send _invoice
- Type: string | null
default _payment _method Payment method ID used when the schedule activates and creates the subscription.
- Type: object | null
metadata Set of key-value pairs attached to the schedule.
- Type: anything
property Name
- Type: string | nullFormat: date-time
next _action _at When the workflow will next fire (next phase transition or schedule end).
- Type: string | nullFormat: date-time
released _at If the schedule was released, the date of release.
- Type: string | null
released _subscription ID of the subscription that was released from this schedule.
- Type: string | null
subscription ID of the subscription created when the schedule was activated. Null until the first phase is applied.

