Create a Subscription Schedule
Creates a subscription schedule. A workflow starts immediately and waits until
phases[0].start_date, at which point the subscription is created and the first
phase is applied.
Use this endpoint instead of POST /v1/subscriptions when:
- You need a one-time charge (e.g. setup fee) on the first invoice only
- 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
Phase-based trials:
Set trial_end on phases[0] to start the subscription in TRIALING status.
No charge is taken until trial_end elapses. The billing schedule startAt is
set to trial_end, not the phase start_date.
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
- Type: string
customer requiredID of the customer for whom the schedule is created.
- 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: object | null
billing _mode COMING SOON — Reserved for future billing mode configuration. Currently accepted and stored but has no effect on billing behavior.
- Type: object · ScheduleDefaultSettings
default _settings Default settings applied to the subscription created by this schedule.
- Type: string · ScheduleEndBehaviorenum
end _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
valuesR E L E A S E C A N C E L N O N E
- Type: boolean
livemode Whether this schedule is in live mode or test mode.
- Type: object | null
metadata Arbitrary key-value pairs for storing additional information.
- application/json
- application/json
- application/json
- application/json
curl https://api.paypercut.io/v1/subscription-schedules \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"customer": "01HD7M6DRKZ4Q4QEVWJB0RC1S6",
"default_settings": {
"default_payment_method": "pm_xyz"
},
"end_behavior": "RELEASE",
"phases": [
{
"start_date": "2026-03-01T00:00:00Z",
"items": [
{
"price": "price_setup_fee",
"unit_amount": 5000,
"currency": "usd"
},
{
"price": "price_monthly",
"unit_amount": 1000,
"currency": "usd",
"recurring": {
"interval": "monthly",
"interval_count": 1,
"usage_type": "licensed"
}
}
]
},
{
"start_date": "2026-04-01T00:00:00Z",
"items": [
{
"price": "price_monthly",
"unit_amount": 1000,
"currency": "usd",
"recurring": {
"interval": "monthly",
"interval_count": 1,
"usage_type": "licensed"
}
}
]
}
]
}'
{
"id": "01HD7M6DRKZ4Q4QEVWJB0RC1S6",
"account": "01XXXXXXXXXXXXXXXXXXXXXXX",
"customer": "01KJQ34MWYH0TES77RDXA8T8TT",
"status": "NOT_STARTED",
"end_behavior": "RELEASE",
"subscription": null,
"released_subscription": null,
"default_settings": {
"default_payment_method": "pm_xyz",
"collection_method": "charge_automatically",
"billing_cycle_anchor_config": null
},
"metadata": null,
"livemode": false,
"start_date": "2026-03-01T00:00:00Z",
"current_phase_index": 0,
"current_phase": null,
"next_action_at": "2026-03-01T00:00:00Z",
"canceled_at": null,
"completed_at": null,
"released_at": null,
"phases": [
{
"start_date": "2026-03-01T00:00:00Z",
"end_date": "2026-04-01T00:00:00Z",
"phase_index": 0,
"collection_method": "charge_automatically",
"items": [
{
"price": "price_setup_fee",
"unit_amount": 5000,
"currency": "usd"
},
{
"price": "price_monthly",
"unit_amount": 1000,
"currency": "usd",
"recurring": {
"interval": "monthly",
"interval_count": 1,
"usage_type": "licensed"
}
}
]
},
{
"start_date": "2026-04-01T00:00:00Z",
"phase_index": 1,
"collection_method": "charge_automatically",
"items": [
{
"price": "price_monthly",
"unit_amount": 1000,
"currency": "usd",
"recurring": {
"interval": "monthly",
"interval_count": 1,
"usage_type": "licensed"
}
}
]
}
],
"application": null,
"customer_account": null,
"billing_mode": null,
"created": "2026-02-28T12:00:00Z",
"updated_at": "2026-02-28T12:00:00Z"
}
