Skip to content

Stripe: Subscription schedules schemas

29 Stripe schemas with complete fields and constraints.

← Subscription schedules operations · All schemas

Cancel a schedule — response body

FieldTypePresenceDescription and constraints
$objectRootA subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes.

Related guide: [Subscription schedules](https://docs.stripe.com/billing/subscriptions/subscription-schedules)
applicationJSONOptional
application (anyOf 1)JSONAlternativeID of the Connect Application that created the schedule.
application (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
application (anyOf 1) (anyOf 2)ModelAlternativeExpand PostApplicationFeesIdRefund — response body — application / object: application
application (anyOf 1) (anyOf 3)ModelAlternativeExpand Accept a quote — response body — application / value / deleted: True, object: application
application (anyOf 2)nullAlternative
billing_modeModelRequired within parentExpand Cancel a schedule — response body — billing mode
canceled_atJSONOptional
canceled_at (anyOf 1)JSONAlternative
canceled_at (anyOf 1) (anyOf 1)integerAlternativeTime at which the subscription schedule was canceled. Measured in seconds since the Unix epoch.
Format: unix-time
canceled_at (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
canceled_at (anyOf 2)nullAlternative
completed_atJSONOptional
completed_at (anyOf 1)JSONAlternative
completed_at (anyOf 1) (anyOf 1)integerAlternativeTime at which the subscription schedule was completed. Measured in seconds since the Unix epoch.
Format: unix-time
completed_at (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
completed_at (anyOf 2)nullAlternative
createdJSONRequired within parent
created (anyOf 1)integerAlternativeTime at which the object was created. Measured in seconds since the Unix epoch.
Format: unix-time
created (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
current_phaseJSONOptional
current_phase (anyOf 1)JSONAlternativeObject representing the start and end dates for the current phase of the subscription schedule, if it is `active`.
current_phase (anyOf 1) (anyOf 1)ModelAlternativeExpand Cancel a schedule — response body — current phase value end date, start date
current_phase (anyOf 2)nullAlternative
customerJSONRequired within parentID of the customer who owns the subscription schedule.
customer (anyOf 1)stringAlternativeMaximum length: 5000
customer (anyOf 2)ModelAlternativeExpand Create a customer — response body
customer (anyOf 3)ModelAlternativeExpand Delete a customer — response body
customer_accountJSONOptional
customer_account (anyOf 1)stringAlternativeID of the account who owns the subscription schedule.
Maximum length: 5000
customer_account (anyOf 2)nullAlternative
default_settingsModelRequired within parentExpand Cancel a schedule — response body — default settings
end_behaviorstringRequired within parentBehavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription.
Known values: cancel, none, release, renew
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
livemodebooleanRequired within parentIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
metadataJSONOptional
metadata (anyOf 1)objectAlternativeSet of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
Additional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keysMaximum length: 500
metadata (anyOf 2)nullAlternative
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: subscription_schedule
pause_schedulesarrayOptionalThe pause schedules for this subscription schedule.
pause_schedules[]ModelEach itemExpand Cancel a schedule — response body — pause schedules item
phasesarrayRequired within parentConfiguration for the subscription schedule's phases.
phases[]ModelEach itemExpand Cancel a schedule — response body — phases item
released_atJSONOptional
released_at (anyOf 1)JSONAlternative
released_at (anyOf 1) (anyOf 1)integerAlternativeTime at which the subscription schedule was released. Measured in seconds since the Unix epoch.
Format: unix-time
released_at (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
released_at (anyOf 2)nullAlternative
released_subscriptionJSONOptional
released_subscription (anyOf 1)stringAlternativeID of the subscription once managed by the subscription schedule (if it is released).
Maximum length: 5000
released_subscription (anyOf 2)nullAlternative
statusstringRequired within parentThe present status of the subscription schedule. Possible values are `not_started`, `active`, `completed`, `released`, and `canceled`. You can read more about the different states in our [behavior guide](https://docs.stripe.com/billing/subscriptions/subscription-schedules).
Known values: active, canceled, completed, not_started, released
subscriptionJSONOptional
subscription (anyOf 1)JSONAlternativeID of the subscription managed by the subscription schedule.
subscription (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
subscription (anyOf 1) (anyOf 2)ModelAlternativeExpand Pause a subscription — response body
subscription (anyOf 2)nullAlternative
test_clockJSONOptional
test_clock (anyOf 1)JSONAlternativeID of the test clock this subscription schedule belongs to.
test_clock (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
test_clock (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a test clock — response body
test_clock (anyOf 2)nullAlternative

Referenced models: PostApplicationFeesIdRefund — response body — application / object: application, Create a customer — response body, Accept a quote — response body — application / value / deleted: True, object: application, Delete a customer — response body, Pause a subscription — response body, Cancel a schedule — response body — current phase value end date, start date, Cancel a schedule — response body — phases item, Cancel a schedule — response body — default settings, Cancel a schedule — response body — pause schedules item, Cancel a schedule — response body — billing mode, Create a test clock — response body

Cancel a schedule — response body — billing mode

FieldTypePresenceDescription and constraints
$objectRootThe billing mode of the subscription.
flexibleJSONOptional
flexible (anyOf 1)JSONAlternativeConfigure behavior for flexible billing mode
flexible (anyOf 1) (anyOf 1)ModelAlternativeExpand Accept a quote — response body — subscription data billing mode flexible
flexible (anyOf 2)nullAlternative
typestringRequired within parentControls how prorations and invoices for subscriptions are calculated and orchestrated.
Known values: classic, flexible
updated_atJSONOptional
updated_at (anyOf 1)integerAlternativeDetails on when the current billing_mode was adopted.
Format: unix-time
updated_at (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Referenced models: Accept a quote — response body — subscription data billing mode flexible

Cancel a schedule — response body — current phase value end date, start date

FieldTypePresenceDescription and constraints
$objectRoot
end_dateJSONRequired within parent
end_date (anyOf 1)integerAlternativeThe end of this phase of the subscription schedule.
Format: unix-time
end_date (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
start_dateJSONRequired within parent
start_date (anyOf 1)integerAlternativeThe start of this phase of the subscription schedule.
Format: unix-time
start_date (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Cancel a schedule — response body — default settings

FieldTypePresenceDescription and constraints
$objectRoot
application_fee_percentJSONOptional
application_fee_percent (anyOf 1)JSONAlternative
application_fee_percent (anyOf 1) (anyOf 1)numberAlternativeA non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account during this phase of the schedule.
application_fee_percent (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
application_fee_percent (anyOf 2)nullAlternative
automatic_taxModelOptionalExpand Cancel a schedule — response body — default settings automatic tax
billing_cycle_anchorstringRequired within parentPossible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://docs.stripe.com/billing/subscriptions/billing-cycle).
Known values: automatic, phase_start
billing_thresholdsJSONOptional
billing_thresholds (anyOf 1)JSONAlternativeDefine thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
billing_thresholds (anyOf 1) (anyOf 1)ModelAlternativeExpand Pause a subscription — response body — billing thresholds value amount gte, reset billing cycle anchor
billing_thresholds (anyOf 2)nullAlternative
collection_methodJSONOptional
collection_method (anyOf 1)stringAlternativeEither `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`.
Known values: charge_automatically, send_invoice
collection_method (anyOf 2)nullAlternative
default_payment_methodJSONOptional
default_payment_method (anyOf 1)JSONAlternativeID of the default payment method for the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
default_payment_method (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
default_payment_method (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a Payment Method — response body
default_payment_method (anyOf 2)nullAlternative
descriptionJSONOptional
description (anyOf 1)stringAlternativeSubscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
Maximum length: 5000
description (anyOf 2)nullAlternative
invoice_settingsModelRequired within parentExpand Cancel a schedule — response body — default settings invoice settings
on_behalf_ofJSONOptional
on_behalf_of (anyOf 1)JSONAlternativeThe account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details.
on_behalf_of (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
on_behalf_of (anyOf 1) (anyOf 2)ModelAlternativeExpand Create an account — response body
on_behalf_of (anyOf 2)nullAlternative
transfer_dataJSONOptional
transfer_data (anyOf 1)JSONAlternativeThe account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.
transfer_data (anyOf 1) (anyOf 1)ModelAlternativeExpand Pause a subscription — response body — transfer data value amount percent, destination
transfer_data (anyOf 2)nullAlternative

Referenced models: Create an account — response body, Cancel a schedule — response body — default settings invoice settings, Create a Payment Method — response body, Cancel a schedule — response body — default settings automatic tax, Pause a subscription — response body — billing thresholds value amount gte, reset billing cycle anchor, Pause a subscription — response body — transfer data value amount percent, destination

Cancel a schedule — response body — default settings automatic tax

FieldTypePresenceDescription and constraints
$objectRoot
disabled_reasonJSONOptional
disabled_reason (anyOf 1)stringAlternativeIf Stripe disabled automatic tax, this enum describes why.
Known values: requires_location_inputs
disabled_reason (anyOf 2)nullAlternative
enabledbooleanRequired within parentWhether Stripe automatically computes tax on invoices created during this phase.
liabilityJSONOptional
liability (anyOf 1)JSONAlternativeThe account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.
liability (anyOf 1) (anyOf 1)ModelAlternativeExpand Pay an invoice — response body — issuer
liability (anyOf 2)nullAlternative

Referenced models: Pay an invoice — response body — issuer

Cancel a schedule — response body — default settings invoice settings

FieldTypePresenceDescription and constraints
$objectRoot
account_tax_idsJSONOptional
account_tax_ids (anyOf 1)arrayAlternativeThe account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
account_tax_ids (anyOf 1)[]JSONEach item
account_tax_ids (anyOf 1)[] (anyOf 1)stringAlternativeMaximum length: 5000
account_tax_ids (anyOf 1)[] (anyOf 2)ModelAlternativeExpand Create a tax ID — response body
account_tax_ids (anyOf 1)[] (anyOf 3)ModelAlternativeExpand Delete a tax ID — response body
account_tax_ids (anyOf 2)nullAlternative
custom_fieldsJSONOptional
custom_fields (anyOf 1)arrayAlternativeA list of up to 4 custom fields to be displayed on the invoice.
custom_fields (anyOf 1)[]ModelEach itemExpand Pay an invoice — response body — custom fields Custom fields displayed on the invoice item
custom_fields (anyOf 2)nullAlternative
days_until_dueJSONOptional
days_until_due (anyOf 1)JSONAlternative
days_until_due (anyOf 1) (anyOf 1)integerAlternativeNumber of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`.
days_until_due (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
days_until_due (anyOf 2)nullAlternative
descriptionJSONOptional
description (anyOf 1)stringAlternativeAn arbitrary string attached to the object. Often useful for displaying to users.
Maximum length: 5000
description (anyOf 2)nullAlternative
footerJSONOptional
footer (anyOf 1)stringAlternativeFooter to be displayed on the invoice.
Maximum length: 5000
footer (anyOf 2)nullAlternative
issuerModelRequired within parentExpand Pay an invoice — response body — issuer

Referenced models: Pay an invoice — response body — issuer, Delete a tax ID — response body, Pay an invoice — response body — custom fields Custom fields displayed on the invoice item, Create a tax ID — response body

Cancel a schedule — response body — pause schedules item

FieldTypePresenceDescription and constraints
$objectRoot
keystringRequired within parentA unique identifier for this pause schedule.
Maximum length: 5000
pauseModelRequired within parentExpand Cancel a schedule — response body — pause schedules item pause
resumeJSONOptional
resume (anyOf 1)JSONAlternativeDetails about when and how the subscription resumes.
resume (anyOf 1) (anyOf 1)ModelAlternativeExpand Cancel a schedule — response body — pause schedules item resume value resume at, settings, status
resume (anyOf 2)nullAlternative

Referenced models: Cancel a schedule — response body — pause schedules item pause, Cancel a schedule — response body — pause schedules item resume value resume at, settings, status

Cancel a schedule — response body — pause schedules item pause

FieldTypePresenceDescription and constraints
$objectRoot
pause_atJSONRequired within parent
pause_at (anyOf 1)integerAlternativeTime at which the subscription pauses.
Format: unix-time
pause_at (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
settingsJSONOptional
settings (anyOf 1)JSONAlternativeSettings controlling billing behavior during the pause.
settings (anyOf 1) (anyOf 1)ModelAlternativeExpand Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription
settings (anyOf 2)nullAlternative
statusModelRequired within parentExpand Cancel a schedule — response body — pause schedules item pause status

Referenced models: Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription, Cancel a schedule — response body — pause schedules item pause status

Cancel a schedule — response body — pause schedules item pause status

FieldTypePresenceDescription and constraints
$objectRoot
errorModelOptionalExpand Cancel a schedule — response body — pause schedules item pause status error
typestringRequired within parentThe lifecycle state of the pause operation.
Known values: error, scheduled, succeeded

Referenced models: Cancel a schedule — response body — pause schedules item pause status error

Cancel a schedule — response body — pause schedules item pause status error

FieldTypePresenceDescription and constraints
$objectRoot
codestringOptionalA machine-readable error code.
Maximum length: 5000
messagestringRequired within parentA description of the error.
Maximum length: 5000

Cancel a schedule — response body — pause schedules item resume value resume at, settings, status

FieldTypePresenceDescription and constraints
$objectRoot
resume_atJSONRequired within parent
resume_at (anyOf 1)integerAlternativeTime at which the subscription resumes.
Format: unix-time
resume_at (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
settingsModelRequired within parentExpand Cancel a schedule — response body — pause schedules item resume value resume at, settings, status settings
statusModelRequired within parentExpand Cancel a schedule — response body — pause schedules item resume value resume at, settings, status status

Referenced models: Cancel a schedule — response body — pause schedules item resume value resume at, settings, status settings, Cancel a schedule — response body — pause schedules item resume value resume at, settings, status status

Cancel a schedule — response body — pause schedules item resume value resume at, settings, status settings

FieldTypePresenceDescription and constraints
$objectRoot
billing_cycle_anchorstringRequired within parentThe billing cycle anchor that applies when the subscription is resumed.
Known values: resume_at, unchanged
payment_behaviorstringRequired within parentControls whether Stripe attempts payment on the resumption invoice and how that affects the subscription's status.
Known values: resume_on_payment_attempt, resume_on_payment_success
proration_behaviorstringRequired within parentDetermines how to handle prorations resulting from the billing_cycle_anchor change on resume.
Known values: always_invoice, create_prorations, none

Cancel a schedule — response body — pause schedules item resume value resume at, settings, status status

FieldTypePresenceDescription and constraints
$objectRoot
errorModelOptionalExpand Cancel a schedule — response body — pause schedules item pause status error
typestringRequired within parentThe lifecycle state of the resume operation.
Known values: error, pending, requires_action, scheduled, succeeded

Referenced models: Cancel a schedule — response body — pause schedules item pause status error

Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription

FieldTypePresenceDescription and constraints
$objectRoot
bill_forModelRequired within parentExpand Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription bill for
invoicing_behaviorstringRequired within parentDetermines how to handle debits and credits when pausing.
Known values: invoice, pending_invoice_item
typestringRequired within parentThe type of pause settings.
Known values: subscription

Referenced models: Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription bill for

Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription bill for

FieldTypePresenceDescription and constraints
$objectRoot
outstanding_usage_throughModelRequired within parentExpand Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription bill for outstanding usage through
unused_time_fromModelRequired within parentExpand Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription bill for unused time from

Referenced models: Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription bill for outstanding usage through, Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription bill for unused time from

Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription bill for outstanding usage through

FieldTypePresenceDescription and constraints
$objectRoot
typestringRequired within parentThe type of outstanding usage billing behavior.
Known values: none, pause_at

Cancel a schedule — response body — pause_schedules / item / pause / settings / value / invoicing_behavior: invoice, pending invoice item, type: subscription bill for unused time from

FieldTypePresenceDescription and constraints
$objectRoot
typestringRequired within parentThe type of unused time credit behavior.
Known values: item_current_period_start, none, pause_at

Cancel a schedule — response body — phases item

FieldTypePresenceDescription and constraints
$objectRootA phase describes the plans, coupon, and trialing status of a subscription for a predefined time period.
add_invoice_itemsarrayRequired within parentA list of prices and quantities that will generate invoice items appended to the next invoice for this phase.
add_invoice_items[]ModelEach itemExpand Cancel a schedule — response body — phases item add invoice items item
application_fee_percentJSONOptional
application_fee_percent (anyOf 1)JSONAlternative
application_fee_percent (anyOf 1) (anyOf 1)numberAlternativeA non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account during this phase of the schedule.
application_fee_percent (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
application_fee_percent (anyOf 2)nullAlternative
automatic_taxModelOptionalExpand Cancel a schedule — response body — default settings automatic tax
billing_cycle_anchorJSONOptional
billing_cycle_anchor (anyOf 1)stringAlternativePossible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://docs.stripe.com/billing/subscriptions/billing-cycle).
Known values: automatic, phase_start
billing_cycle_anchor (anyOf 2)nullAlternative
billing_thresholdsJSONOptional
billing_thresholds (anyOf 1)JSONAlternativeDefine thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
billing_thresholds (anyOf 1) (anyOf 1)ModelAlternativeExpand Pause a subscription — response body — billing thresholds value amount gte, reset billing cycle anchor
billing_thresholds (anyOf 2)nullAlternative
collection_methodJSONOptional
collection_method (anyOf 1)stringAlternativeEither `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`.
Known values: charge_automatically, send_invoice
collection_method (anyOf 2)nullAlternative
currencystringRequired within parentThree-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
Format: currency
default_payment_methodJSONOptional
default_payment_method (anyOf 1)JSONAlternativeID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
default_payment_method (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
default_payment_method (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a Payment Method — response body
default_payment_method (anyOf 2)nullAlternative
default_tax_ratesJSONOptional
default_tax_rates (anyOf 1)arrayAlternativeThe default tax rates to apply to the subscription during this phase of the subscription schedule.
default_tax_rates (anyOf 1)[]ModelEach itemExpand Create a tax rate — response body
default_tax_rates (anyOf 2)nullAlternative
descriptionJSONOptional
description (anyOf 1)stringAlternativeSubscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
Maximum length: 5000
description (anyOf 2)nullAlternative
discountsarrayRequired within parentThe stackable discounts that will be applied to the subscription on this phase. Subscription item discounts are applied before subscription discounts.
discounts[]ModelEach itemExpand Cancel a schedule — response body — phases item discounts item
end_dateJSONRequired within parent
end_date (anyOf 1)integerAlternativeThe end of this phase of the subscription schedule.
Format: unix-time
end_date (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
invoice_settingsJSONOptional
invoice_settings (anyOf 1)JSONAlternativeThe invoice settings applicable during this phase.
invoice_settings (anyOf 1) (anyOf 1)ModelAlternativeExpand Cancel a schedule — response body — phases item invoice settings The invoice settings applicable during this phase account tax ids, custom fields, days until due, description, footer, issuer
invoice_settings (anyOf 2)nullAlternative
itemsarrayRequired within parentSubscription items to configure the subscription to during this phase of the subscription schedule.
items[]ModelEach itemExpand Cancel a schedule — response body — phases item items item
metadataJSONOptional
metadata (anyOf 1)objectAlternativeSet of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered. Updating the underlying subscription's `metadata` directly will not affect the current phase's `metadata`.
Additional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keysMaximum length: 500
metadata (anyOf 2)nullAlternative
on_behalf_ofJSONOptional
on_behalf_of (anyOf 1)JSONAlternativeThe account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details.
on_behalf_of (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
on_behalf_of (anyOf 1) (anyOf 2)ModelAlternativeExpand Create an account — response body
on_behalf_of (anyOf 2)nullAlternative
proration_behaviorstringRequired within parentWhen transitioning phases, controls how prorations are handled (if any). Possible values are `create_prorations`, `none`, and `always_invoice`.
Known values: always_invoice, create_prorations, none
start_dateJSONRequired within parent
start_date (anyOf 1)integerAlternativeThe start of this phase of the subscription schedule.
Format: unix-time
start_date (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
transfer_dataJSONOptional
transfer_data (anyOf 1)JSONAlternativeThe account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.
transfer_data (anyOf 1) (anyOf 1)ModelAlternativeExpand Pause a subscription — response body — transfer data value amount percent, destination
transfer_data (anyOf 2)nullAlternative
trialbooleanOptionalIf set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
trial_endJSONOptional
trial_end (anyOf 1)JSONAlternative
trial_end (anyOf 1) (anyOf 1)integerAlternativeWhen the trial ends within the phase.
Format: unix-time
trial_end (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
trial_end (anyOf 2)nullAlternative

Referenced models: Create an account — response body, Cancel a schedule — response body — phases item discounts item, Cancel a schedule — response body — phases item invoice settings The invoice settings applicable during this phase account tax ids, custom fields, days until due, description, footer, issuer, Create a Payment Method — response body, Cancel a schedule — response body — default settings automatic tax, Pause a subscription — response body — billing thresholds value amount gte, reset billing cycle anchor, Cancel a schedule — response body — phases item add invoice items item, Cancel a schedule — response body — phases item items item, Pause a subscription — response body — transfer data value amount percent, destination, Create a tax rate — response body

Cancel a schedule — response body — phases item add invoice items item

FieldTypePresenceDescription and constraints
$objectRootAn Add Invoice Item describes the prices and quantities that will be added as pending invoice items when entering a phase.
discountableJSONOptional
discountable (anyOf 1)booleanAlternativeControls whether discounts apply to this invoice item. Defaults to true if no value is provided.
discountable (anyOf 2)nullAlternative
discountsarrayRequired within parentThe stackable discounts that will be applied to the item.
discounts[]ModelEach itemExpand Cancel a schedule — response body — phases item discounts item
metadataJSONOptional
metadata (anyOf 1)objectAlternativeSet of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
Additional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keysMaximum length: 500
metadata (anyOf 2)nullAlternative
periodModelRequired within parentExpand Cancel a schedule — response body — phases item add invoice items item period
priceJSONRequired within parentID of the price used to generate the invoice item.
price (anyOf 1)stringAlternativeMaximum length: 5000
price (anyOf 2)ModelAlternativeExpand Create a price — response body
price (anyOf 3)ModelAlternativeExpand Create a trial offer — response body — price / deleted: True, object: price
quantityJSONOptional
quantity (anyOf 1)JSONAlternative
quantity (anyOf 1) (anyOf 1)integerAlternativeThe quantity of the invoice item.
quantity (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
quantity (anyOf 2)nullAlternative
tax_ratesJSONOptional
tax_rates (anyOf 1)arrayAlternativeThe tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
tax_rates (anyOf 1)[]ModelEach itemExpand Create a tax rate — response body
tax_rates (anyOf 2)nullAlternative

Referenced models: Create a trial offer — response body — price / deleted: True, object: price, Cancel a schedule — response body — phases item discounts item, Create a price — response body, Cancel a schedule — response body — phases item add invoice items item period, Create a tax rate — response body

Cancel a schedule — response body — phases item add invoice items item period

FieldTypePresenceDescription and constraints
$objectRoot
endModelRequired within parentExpand Cancel a schedule — response body — phases item add invoice items item period end
startModelRequired within parentExpand Cancel a schedule — response body — phases item add invoice items item period start

Referenced models: Cancel a schedule — response body — phases item add invoice items item period end, Cancel a schedule — response body — phases item add invoice items item period start

Cancel a schedule — response body — phases item add invoice items item period end

FieldTypePresenceDescription and constraints
$objectRoot
timestampJSONOptional
timestamp (anyOf 1)integerAlternativeA precise Unix timestamp for the end of the invoice item period. Must be greater than or equal to `period.start`.
Format: unix-time
timestamp (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
typestringRequired within parentSelect how to calculate the end of the invoice item period.
Known values: min_item_period_end, phase_end, timestamp

Cancel a schedule — response body — phases item add invoice items item period start

FieldTypePresenceDescription and constraints
$objectRoot
timestampJSONOptional
timestamp (anyOf 1)integerAlternativeA precise Unix timestamp for the start of the invoice item period. Must be less than or equal to `period.end`.
Format: unix-time
timestamp (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
typestringRequired within parentSelect how to calculate the start of the invoice item period.
Known values: max_item_period_start, phase_start, timestamp

Cancel a schedule — response body — phases item discounts item

FieldTypePresenceDescription and constraints
$objectRoot
couponJSONOptional
coupon (anyOf 1)JSONAlternativeID of the coupon to create a new discount for.
coupon (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
coupon (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a coupon — response body
coupon (anyOf 2)nullAlternative
discountJSONOptional
discount (anyOf 1)JSONAlternativeID of an existing discount on the object (or one of its ancestors) to reuse.
discount (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
discount (anyOf 1) (anyOf 2)ModelAlternativeExpand Get Customers Customer Discount — response body
discount (anyOf 2)nullAlternative
promotion_codeJSONOptional
promotion_code (anyOf 1)JSONAlternativeID of the promotion code to create a new discount for.
promotion_code (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
promotion_code (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a promotion code — response body
promotion_code (anyOf 2)nullAlternative

Referenced models: Create a coupon — response body, Get Customers Customer Discount — response body, Create a promotion code — response body

Cancel a schedule — response body — phases item invoice settings The invoice settings applicable during this phase account tax ids, custom fields, days until due, description, footer, issuer

FieldTypePresenceDescription and constraints
$objectRoot
account_tax_idsJSONOptional
account_tax_ids (anyOf 1)arrayAlternativeThe account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule.
account_tax_ids (anyOf 1)[]JSONEach item
account_tax_ids (anyOf 1)[] (anyOf 1)stringAlternativeMaximum length: 5000
account_tax_ids (anyOf 1)[] (anyOf 2)ModelAlternativeExpand Create a tax ID — response body
account_tax_ids (anyOf 1)[] (anyOf 3)ModelAlternativeExpand Delete a tax ID — response body
account_tax_ids (anyOf 2)nullAlternative
custom_fieldsJSONOptional
custom_fields (anyOf 1)arrayAlternativeA list of up to 4 custom fields to be displayed on the invoice.
custom_fields (anyOf 1)[]ModelEach itemExpand Pay an invoice — response body — custom fields Custom fields displayed on the invoice item
custom_fields (anyOf 2)nullAlternative
days_until_dueJSONOptional
days_until_due (anyOf 1)JSONAlternative
days_until_due (anyOf 1) (anyOf 1)integerAlternativeNumber of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`.
days_until_due (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
days_until_due (anyOf 2)nullAlternative
descriptionJSONOptional
description (anyOf 1)stringAlternativeAn arbitrary string attached to the object. Often useful for displaying to users.
Maximum length: 5000
description (anyOf 2)nullAlternative
footerJSONOptional
footer (anyOf 1)stringAlternativeFooter to be displayed on the invoice.
Maximum length: 5000
footer (anyOf 2)nullAlternative
issuerJSONOptional
issuer (anyOf 1)JSONAlternativeThe connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
issuer (anyOf 1) (anyOf 1)ModelAlternativeExpand Pay an invoice — response body — issuer
issuer (anyOf 2)nullAlternative

Referenced models: Pay an invoice — response body — issuer, Delete a tax ID — response body, Pay an invoice — response body — custom fields Custom fields displayed on the invoice item, Create a tax ID — response body

Cancel a schedule — response body — phases item items item

FieldTypePresenceDescription and constraints
$objectRootA phase item describes the price and quantity of a phase.
billing_thresholdsJSONOptional
billing_thresholds (anyOf 1)JSONAlternativeDefine thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period
billing_thresholds (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a subscription item — response body — billing thresholds value usage gte
billing_thresholds (anyOf 2)nullAlternative
discountsarrayRequired within parentThe discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount.
discounts[]ModelEach itemExpand Cancel a schedule — response body — phases item discounts item
metadataJSONOptional
metadata (anyOf 1)objectAlternativeSet of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an item. Metadata on this item will update the underlying subscription item's `metadata` when the phase is entered.
Additional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keysMaximum length: 500
metadata (anyOf 2)nullAlternative
priceJSONRequired within parentID of the price to which the customer should be subscribed.
price (anyOf 1)stringAlternativeMaximum length: 5000
price (anyOf 2)ModelAlternativeExpand Create a price — response body
price (anyOf 3)ModelAlternativeExpand Create a trial offer — response body — price / deleted: True, object: price
quantityJSONOptional
quantity (anyOf 1)integerAlternativeQuantity of the plan to which the customer should be subscribed.
quantity (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
tax_ratesJSONOptional
tax_rates (anyOf 1)arrayAlternativeThe tax rates which apply to this `phase_item`. When set, the `default_tax_rates` on the phase do not apply to this `phase_item`.
tax_rates (anyOf 1)[]ModelEach itemExpand Create a tax rate — response body
tax_rates (anyOf 2)nullAlternative

Referenced models: Create a trial offer — response body — price / deleted: True, object: price, Cancel a schedule — response body — phases item discounts item, Create a price — response body, Create a subscription item — response body — billing thresholds value usage gte, Create a tax rate — response body

Create a schedule — request body — body default settings

FieldTypePresenceDescription and constraints
$objectRootObject representing the subscription schedule's default settings.
application_fee_percentnumberOptional
automatic_taxobjectOptional
automatic_tax.enabledbooleanRequired within parent
automatic_tax.liabilityobjectOptional
automatic_tax.liability.accountstringOptional
automatic_tax.liability.typestringRequired within parentOne of: account, self
billing_cycle_anchorstringOptionalOne of: automatic, phase_start
billing_thresholdsJSONOptional
billing_thresholds (anyOf 1)objectAlternative
billing_thresholds (anyOf 1).amount_gteintegerOptional
billing_thresholds (anyOf 1).reset_billing_cycle_anchorbooleanOptional
billing_thresholds (anyOf 2)stringAlternativeOne of:
collection_methodstringOptionalOne of: charge_automatically, send_invoice
default_payment_methodstringOptionalMaximum length: 5000
descriptionJSONOptional
description (anyOf 1)stringAlternativeMaximum length: 500
description (anyOf 2)stringAlternativeOne of:
invoice_settingsModelOptionalExpand Create a schedule — request body — body default settings invoice settings
on_behalf_ofJSONOptional
on_behalf_of (anyOf 1)stringAlternative
on_behalf_of (anyOf 2)stringAlternativeOne of:
transfer_dataJSONOptional
transfer_data (anyOf 1)objectAlternative
transfer_data (anyOf 1).amount_percentnumberOptional
transfer_data (anyOf 1).destinationstringRequired within parent
transfer_data (anyOf 2)stringAlternativeOne of:

Referenced models: Create a schedule — request body — body default settings invoice settings

Create a schedule — request body — body default settings invoice settings

FieldTypePresenceDescription and constraints
$objectRoot
account_tax_idsJSONOptional
account_tax_ids (anyOf 1)arrayAlternative
account_tax_ids (anyOf 1)[]stringEach itemMaximum length: 5000
account_tax_ids (anyOf 2)stringAlternativeOne of:
custom_fieldsJSONOptional
custom_fields (anyOf 1)arrayAlternative
custom_fields (anyOf 1)[]objectEach item
custom_fields (anyOf 1)[].namestringRequired within parentMaximum length: 40
custom_fields (anyOf 1)[].valuestringRequired within parentMaximum length: 140
custom_fields (anyOf 2)stringAlternativeOne of:
days_until_dueintegerOptional
descriptionJSONOptional
description (anyOf 1)stringAlternativeMaximum length: 1500
description (anyOf 2)stringAlternativeOne of:
footerJSONOptional
footer (anyOf 1)stringAlternativeMaximum length: 5000
footer (anyOf 2)stringAlternativeOne of:
issuerobjectOptional
issuer.accountstringOptional
issuer.typestringRequired within parentOne of: account, self

Create a schedule — request body — body phases item add invoice items item

FieldTypePresenceDescription and constraints
$objectRoot
discountablebooleanOptional
discountsarrayOptional
discounts[]objectEach item
discounts[].couponstringOptionalMaximum length: 5000
discounts[].discountstringOptionalMaximum length: 5000
discounts[].promotion_codestringOptionalMaximum length: 5000
metadataobjectOptionalAdditional keys: see wildcard field
metadata.*stringAdditional keys
periodobjectOptional
period.endobjectRequired within parent
period.end.timestampintegerOptionalFormat: unix-time
period.end.typestringRequired within parentOne of: min_item_period_end, phase_end, timestamp
period.startobjectRequired within parent
period.start.timestampintegerOptionalFormat: unix-time
period.start.typestringRequired within parentOne of: max_item_period_start, phase_start, timestamp
pricestringOptionalMaximum length: 5000
price_dataobjectOptional
price_data.currencystringRequired within parentFormat: currency
price_data.productstringRequired within parentMaximum length: 5000
price_data.tax_behaviorstringOptionalOne of: exclusive, inclusive, unspecified
price_data.unit_amountintegerOptional
price_data.unit_amount_decimalstringOptionalFormat: decimal
quantityintegerOptional
tax_ratesJSONOptional
tax_rates (anyOf 1)arrayAlternative
tax_rates (anyOf 1)[]stringEach itemMaximum length: 5000
tax_rates (anyOf 2)stringAlternativeOne of:

Create a schedule — request body — body phases item items item

FieldTypePresenceDescription and constraints
$objectRoot
billing_thresholdsJSONOptional
billing_thresholds (anyOf 1)objectAlternative
billing_thresholds (anyOf 1).usage_gteintegerRequired within parent
billing_thresholds (anyOf 2)stringAlternativeOne of:
discountsJSONOptional
discounts (anyOf 1)arrayAlternative
discounts (anyOf 1)[]objectEach item
discounts (anyOf 1)[].couponstringOptionalMaximum length: 5000
discounts (anyOf 1)[].discountstringOptionalMaximum length: 5000
discounts (anyOf 1)[].promotion_codestringOptionalMaximum length: 5000
discounts (anyOf 2)stringAlternativeOne of:
metadataobjectOptionalAdditional keys: see wildcard field
metadata.*stringAdditional keys
pricestringOptionalMaximum length: 5000
price_dataModelOptionalExpand Update a subscription — request body — body items item price data
quantityintegerOptional
tax_ratesJSONOptional
tax_rates (anyOf 1)arrayAlternative
tax_rates (anyOf 1)[]stringEach itemMaximum length: 5000
tax_rates (anyOf 2)stringAlternativeOne of:

Referenced models: Update a subscription — request body — body items item price data

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.