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.
- createdType: stringFormat: date-timerequired
Time at which the schedule was created.
- currentType: integer
_phase _index requiredZero-based index of the currently active phase.
- customerType: stringrequired
ID of the customer this schedule belongs to.
- endType: string · ScheduleEndBehaviorenum
_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
values- R
E L E A S E - C
A N C E L - N
O N E
- idType: stringrequired
Unique identifier for the subscription schedule (ULID).
- livemodeType: booleanrequired
Whether this schedule exists in live mode (
true) or test mode (false). - phasesType: array object[] · SchedulePhases 1…20required
Ordered 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.
- itemsType: array · SchedulePhaseItems 1…required
Items 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. - startType: stringFormat: date-time
_date requiredWhen this phase begins.
- billingType: string | null
_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
- collectionType: stringenum
_method How to collect payment during this phase.
send_invoiceis (coming soon).values- charge
_automatically - send
_invoice
- endType: string | nullFormat: date-time
_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. - metadataType: object | null
Arbitrary key-value pairs for this phase.
- onType: string | null
_behalf _of Account ID for connected account scenarios.
- phaseType: integer
_index Zero-based index. Auto-assigned from array position if omitted.
- trialType: string | nullFormat: date-time
_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. - trialType: object · TrialSettings
_settings Controls what happens when a trial period ends.
- startType: stringFormat: date-time
_date requiredDerived from
phases[0].start_date. When the workflow begins watching. - statusType: string · SubscriptionScheduleStatusenumrequired
Current 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
values- N
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
- updatedType: stringFormat: date-time
_at requiredTime at which the schedule was last updated.
- accountType: string
Merchant account ID.
- applicationType: string | null
Application ID if created via a connected application.
- billingType: object | null
_mode coming soon — Reserved for future billing mode configuration. Currently accepted and stored but has no effect on billing behavior.
- propertyType: anything
Name
- canceledType: string | nullFormat: date-time
_at If the schedule was canceled, the date of cancellation.
- completedType: string | nullFormat: date-time
_at If the schedule completed (all phases ended), the completion date.
- currentType: object | null
_phase Summary snapshot of the currently active phase (id, phase_index, start_date, end_at).
- propertyType: anything
Name
- customerType: string | null
_account Customer account ID for connected account scenarios.
- defaultType: object · ScheduleDefaultSettings
_settings Default settings applied to the subscription created by this schedule.
- billingType: object | null · BillingCycleAnchorConfig
_cycle _anchor _config Advanced billing cycle configuration. Allows precise control over when billing cycles occur. All fields are optional integers with specific ranges.
- collectionType: string | nullenum
_method How to collect payment. Defaults to
charge_automatically.send_invoiceis (coming soon).values- charge
_automatically - send
_invoice
- defaultType: string | null
_payment _method Payment method ID used when the schedule activates and creates the subscription.
- metadataType: object | null
Set of key-value pairs attached to the schedule.
- propertyType: anything
Name
- nextType: string | nullFormat: date-time
_action _at When the workflow will next fire (next phase transition or schedule end).
- releasedType: string | nullFormat: date-time
_at If the schedule was released, the date of release.
- releasedType: string | null
_subscription ID of the subscription that was released from this schedule.
- subscriptionType: string | null
ID of the subscription created when the schedule was activated. Null until the first phase is applied.

