SubscriptionScheduleCreateRequest
Request body for creating a subscription schedule.
The first phase's start_date determines when the workflow activates and creates the
subscription. If start_date is in the past, the subscription is created immediately.
Use this endpoint (not POST /v1/subscriptions) when:
- You have a one-time charge (e.g. setup fee) on the first invoice
- Billing should stop after N months (
end_behavior: CANCEL) - Prices or items change at a future date
- The subscription start date is in the future
- customerType: stringrequired
ID of the customer for whom the schedule is created.
- 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.
- 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
- 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.
- endType: string · ScheduleEndBehaviorenum
_behavior What 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
- livemodeType: boolean
Whether this schedule is in live mode or test mode.
- metadataType: object | null
Arbitrary key-value pairs for storing additional information.
- propertyType: anything
Name

