Skip to content

Stripe: Billing portal schemas

26 Stripe schemas with complete fields and constraints.

← Billing portal operations · All schemas

Create a portal configuration — response body

FieldTypePresenceDescription and constraints
$objectRootA portal configuration describes the functionality and behavior you embed in a portal session. Related guide: [Configure the customer portal](/customer-management/configure-portal).
activebooleanRequired within parentWhether the configuration is active and can be used to create portal sessions.
applicationJSONOptional
application (anyOf 1)JSONAlternativeID of the Connect Application that created the configuration.
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
business_profileModelRequired within parentExpand Create a portal configuration — response body — business profile
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]+)?$
default_return_urlJSONOptional
default_return_url (anyOf 1)stringAlternativeThe default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overridden](https://docs.stripe.com/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session.
Maximum length: 5000
default_return_url (anyOf 2)nullAlternative
featuresModelRequired within parentExpand Create a portal configuration — response body — features
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
is_defaultbooleanRequired within parentWhether the configuration is the default. If `true`, this configuration can be managed in the Dashboard and portal sessions will use this configuration unless it is overriden when creating the session.
livemodebooleanRequired within parentIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
login_pageModelRequired within parentExpand Create a portal configuration — response body — login page
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
nameJSONOptional
name (anyOf 1)stringAlternativeThe name of the configuration.
Maximum length: 5000
name (anyOf 2)nullAlternative
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: billing_portal.configuration
updatedJSONRequired within parent
updated (anyOf 1)integerAlternativeTime at which the object was last updated. Measured in seconds since the Unix epoch.
Format: unix-time
updated (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Referenced models: PostApplicationFeesIdRefund — response body — application / object: application, Accept a quote — response body — application / value / deleted: True, object: application, Create a portal configuration — response body — business profile, Create a portal configuration — response body — features, Create a portal configuration — response body — login page

Create a portal configuration — response body — business profile

FieldTypePresenceDescription and constraints
$objectRoot
headlineJSONOptional
headline (anyOf 1)stringAlternativeThe messaging shown to customers in the portal.
Maximum length: 5000
headline (anyOf 2)nullAlternative
privacy_policy_urlJSONOptional
privacy_policy_url (anyOf 1)stringAlternativeA link to the business’s publicly available privacy policy.
Maximum length: 5000
privacy_policy_url (anyOf 2)nullAlternative
terms_of_service_urlJSONOptional
terms_of_service_url (anyOf 1)stringAlternativeA link to the business’s publicly available terms of service.
Maximum length: 5000
terms_of_service_url (anyOf 2)nullAlternative

Create a portal configuration — response body — features

FieldTypePresenceDescription and constraints
$objectRoot
customer_updateModelRequired within parentExpand Create a portal configuration — response body — features customer update
invoice_historyModelRequired within parentExpand Create a portal configuration — response body — features invoice history
payment_method_updateModelRequired within parentExpand Create a portal configuration — response body — features payment method update
subscription_cancelModelRequired within parentExpand Create a portal configuration — response body — features subscription cancel
subscription_updateModelRequired within parentExpand Create a portal configuration — response body — features subscription update

Referenced models: Create a portal configuration — response body — features customer update, Create a portal configuration — response body — features invoice history, Create a portal configuration — response body — features payment method update, Create a portal configuration — response body — features subscription cancel, Create a portal configuration — response body — features subscription update

Create a portal configuration — response body — features customer update

FieldTypePresenceDescription and constraints
$objectRoot
allowed_updatesarrayRequired within parentThe types of customer updates that are supported. When empty, customers are not updateable.
allowed_updates[]stringEach itemKnown values: address, email, name, phone, shipping, tax_id
enabledbooleanRequired within parentWhether the feature is enabled.

Create a portal configuration — response body — features invoice history

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentWhether the feature is enabled.

Create a portal configuration — response body — features payment method update

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentWhether the feature is enabled.
payment_method_configurationJSONOptional
payment_method_configuration (anyOf 1)stringAlternativeThe [Payment Method Configuration](/api/payment_method_configurations) to use for this portal session. When specified, customers will be able to update their payment method to one of the options specified by the payment method configuration. If not set, the default payment method configuration is used.
Maximum length: 5000
payment_method_configuration (anyOf 2)nullAlternative

Create a portal configuration — response body — features subscription cancel

FieldTypePresenceDescription and constraints
$objectRoot
cancellation_reasonModelRequired within parentExpand Create a portal configuration — response body — features subscription cancel cancellation reason
enabledbooleanRequired within parentWhether the feature is enabled.
modestringRequired within parentWhether to cancel subscriptions immediately or at the end of the billing period.
Known values: at_period_end, immediately
proration_behaviorstringRequired within parentWhether to create prorations when canceling subscriptions. Possible values are `none` and `create_prorations`.
Known values: always_invoice, create_prorations, none

Referenced models: Create a portal configuration — response body — features subscription cancel cancellation reason

Create a portal configuration — response body — features subscription cancel cancellation reason

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentWhether the feature is enabled.
feedback_optionsJSONOptional
feedback_options (anyOf 1)arrayAlternativeThe IDs of custom feedback options configured for this cancellation reason.
feedback_options (anyOf 1)[]JSONEach item
feedback_options (anyOf 1)[] (anyOf 1)stringAlternativeMaximum length: 5000
feedback_options (anyOf 1)[] (anyOf 2)ModelAlternativeExpand Create a feedback option — response body
feedback_options (anyOf 2)nullAlternative
optionsarrayRequired within parentWhich cancellation reasons will be given as options to the customer.
options[]stringEach itemKnown values: customer_service, low_quality, missing_features, other, switched_service, too_complex, too_expensive, unused

Referenced models: Create a feedback option — response body

Create a portal configuration — response body — features subscription update

FieldTypePresenceDescription and constraints
$objectRoot
billing_cycle_anchorJSONOptional
billing_cycle_anchor (anyOf 1)stringAlternativeDetermines the value to use for the billing cycle anchor on subscription updates. Valid values are `now` or `unchanged`, and the default value is `unchanged`. Setting the value to `now` resets the subscription's billing cycle anchor to the current time (in UTC). For more information, see the billing cycle [documentation](https://docs.stripe.com/billing/subscriptions/billing-cycle).
Known values: now, unchanged
billing_cycle_anchor (anyOf 2)nullAlternative
default_allowed_updatesarrayRequired within parentThe types of subscription updates that are supported for items listed in the `products` attribute. When empty, subscriptions are not updateable.
default_allowed_updates[]stringEach itemKnown values: price, promotion_code, quantity
enabledbooleanRequired within parentWhether the feature is enabled.
productsJSONOptional
products (anyOf 1)arrayAlternativeThe list of up to 10 products that support subscription updates.
products (anyOf 1)[]ModelEach itemExpand Create a portal configuration — response body — features subscription update products array item
products (anyOf 2)nullAlternative
proration_behaviorstringRequired within parentDetermines how to handle prorations resulting from subscription updates. Valid values are `none`, `create_prorations`, and `always_invoice`. Defaults to a value of `none` if you don't set it during creation.
Known values: always_invoice, create_prorations, none
schedule_at_period_endModelRequired within parentExpand Create a portal configuration — response body — features subscription update schedule at period end
trial_update_behaviorstringRequired within parentDetermines how handle updates to trialing subscriptions. Valid values are `end_trial` and `continue_trial`. Defaults to a value of `end_trial` if you don't set it during creation.
Known values: continue_trial, end_trial

Referenced models: Create a portal configuration — response body — features subscription update schedule at period end, Create a portal configuration — response body — features subscription update products array item

Create a portal configuration — response body — features subscription update products array item

FieldTypePresenceDescription and constraints
$objectRoot
adjustable_quantityModelRequired within parentExpand Create a portal configuration — response body — features subscription update products array item adjustable quantity
pricesarrayRequired within parentThe list of price IDs which, when subscribed to, a subscription can be updated.
prices[]stringEach itemMaximum length: 5000
productstringRequired within parentThe product ID.
Maximum length: 5000

Referenced models: Create a portal configuration — response body — features subscription update products array item adjustable quantity

Create a portal configuration — response body — features subscription update products array item adjustable quantity

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentIf true, the quantity can be adjusted to any non-negative integer.
maximumJSONOptional
maximum (anyOf 1)JSONAlternative
maximum (anyOf 1) (anyOf 1)integerAlternativeThe maximum quantity that can be set for the product.
maximum (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
maximum (anyOf 2)nullAlternative
minimumJSONRequired within parent
minimum (anyOf 1)integerAlternativeThe minimum quantity that can be set for the product.
minimum (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Create a portal configuration — response body — features subscription update schedule at period end

FieldTypePresenceDescription and constraints
$objectRoot
conditionsarrayRequired within parentList of conditions. When any condition is true, an update will be scheduled at the end of the current period.
conditions[]ModelEach itemExpand Create a portal configuration — response body — features subscription update schedule at period end conditions item

Referenced models: Create a portal configuration — response body — features subscription update schedule at period end conditions item

Create a portal configuration — response body — features subscription update schedule at period end conditions item

FieldTypePresenceDescription and constraints
$objectRoot
typestringRequired within parentThe type of condition.
Known values: decreasing_item_amount, shortening_interval

Create a portal configuration — response body — login page

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentIf `true`, a shareable `url` will be generated that will take your customers to a hosted login page for the customer portal.

If `false`, the previously generated `url`, if any, will be deactivated.
urlJSONOptional
url (anyOf 1)stringAlternativeA shareable URL to the hosted portal login page. Your customers will be able to log in with their [email](https://docs.stripe.com/api/customers/object#customer_object-email) and receive a link to their customer portal.
Maximum length: 5000
url (anyOf 2)nullAlternative

Create a portal session — response body

FieldTypePresenceDescription and constraints
$objectRootThe Billing customer portal is a Stripe-hosted UI for subscription and
billing management.

A portal configuration describes the functionality and features that you
want to provide to your customers through the portal.

A portal session describes the instantiation of the customer portal for
a particular customer. By visiting the session's URL, the customer
can manage their subscriptions and billing details. For security reasons,
sessions are short-lived and will expire if the customer does not visit the URL.
Create sessions on-demand when customers intend to manage their subscriptions
and billing details.

Related guide: [Customer management](/customer-management)
configurationJSONRequired within parentThe configuration used by this session, describing the features available.
configuration (anyOf 1)stringAlternativeMaximum length: 5000
configuration (anyOf 2)ModelAlternativeExpand Create a portal configuration — response body
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]+)?$
customerstringRequired within parentThe ID of the customer for this session.
Maximum length: 5000
customer_accountJSONOptional
customer_account (anyOf 1)stringAlternativeThe ID of the account for this session.
Maximum length: 5000
customer_account (anyOf 2)nullAlternative
flowJSONOptional
flow (anyOf 1)JSONAlternativeInformation about a specific flow for the customer to go through. See the [docs](https://docs.stripe.com/customer-management/portal-deep-links) to learn more about using customer portal deep links and flows.
flow (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type
flow (anyOf 2)nullAlternative
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`.
localeJSONOptional
locale (anyOf 1)stringAlternativeThe IETF language tag of the locale Customer Portal is displayed in. If blank or auto, the customer’s `preferred_locales` or browser’s locale is used.
Known values: auto, bg, cs, da, de, el, en, en-AU, en-CA, en-GB, en-IE, en-IN, en-NZ, en-SG, es, es-419, et, fi, fil, fr, fr-CA, hr, hu, id, it, ja, ko, lt, lv, ms, mt, nb, nl, pl, pt, pt-BR, ro, ru, sk, sl, sv, th, tr, vi, zh, zh-HK, zh-TW
locale (anyOf 2)nullAlternative
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: billing_portal.session
on_behalf_ofJSONOptional
on_behalf_of (anyOf 1)stringAlternativeThe account for which the session was created on behalf of. When specified, only subscriptions and invoices with this `on_behalf_of` account appear in the portal. For more information, see the [docs](https://docs.stripe.com/connect/separate-charges-and-transfers#settlement-merchant). Use the [Accounts API](https://docs.stripe.com/api/accounts/object#account_object-settings-branding) to modify the `on_behalf_of` account's branding settings, which the portal displays.
Maximum length: 5000
on_behalf_of (anyOf 2)nullAlternative
return_urlJSONOptional
return_url (anyOf 1)stringAlternativeThe URL to redirect customers to when they click on the portal's link to return to your website.
Maximum length: 5000
return_url (anyOf 2)nullAlternative
urlstringRequired within parentThe short-lived URL of the session that gives customers access to the customer portal.
Maximum length: 5000

Referenced models: Create a portal configuration — response body, Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type

Create a portal session — response body — flow / value / after_completion, customer_update, subscription_cancel, subscription_update, subscription_update_confirm, type / subscription_cancel / Configuration when `flow.type=subscription_cancel` / retention, subscription / retention / value / type: coupon offer

FieldTypePresenceDescription and constraints
$objectRoot
coupon_offerJSONOptional
coupon_offer (anyOf 1)JSONAlternativeConfiguration when `retention.type=coupon_offer`.
coupon_offer (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a portal session — response body — flow / value / after_completion, customer_update, subscription_cancel, subscription_update, subscription_update_confirm, type / subscription_cancel / Configuration when `flow.type=subscription_cancel` / retention, subscription / retention / value / type: coupon offer coupon offer Configuration when `retention type=coupon offer` coupon
coupon_offer (anyOf 2)nullAlternative
typestringRequired within parentType of retention strategy that will be used.
Known values: coupon_offer

Referenced models: Create a portal session — response body — flow / value / after_completion, customer_update, subscription_cancel, subscription_update, subscription_update_confirm, type / subscription_cancel / Configuration when `flow.type=subscription_cancel` / retention, subscription / retention / value / type: coupon offer coupon offer Configuration when `retention type=coupon offer` coupon

Create a portal session — response body — flow / value / after_completion, customer_update, subscription_cancel, subscription_update, subscription_update_confirm, type / subscription_cancel / Configuration when `flow.type=subscription_cancel` / retention, subscription / retention / value / type: coupon offer coupon offer Configuration when `retention type=coupon offer` coupon

FieldTypePresenceDescription and constraints
$objectRoot
couponstringRequired within parentThe ID of the coupon to be offered.
Maximum length: 5000

Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type

FieldTypePresenceDescription and constraints
$objectRoot
after_completionModelRequired within parentExpand Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type after completion
customer_updateJSONOptional
customer_update (anyOf 1)JSONAlternativeConfiguration when `flow.type=customer_update`.
customer_update (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a Payment Method — response body — zip
customer_update (anyOf 2)nullAlternative
subscription_cancelJSONOptional
subscription_cancel (anyOf 1)JSONAlternativeConfiguration when `flow.type=subscription_cancel`.
subscription_cancel (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription cancel Configuration when `flow type=subscription cancel` retention, subscription
subscription_cancel (anyOf 2)nullAlternative
subscription_updateJSONOptional
subscription_update (anyOf 1)JSONAlternativeConfiguration when `flow.type=subscription_update`.
subscription_update (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update Configuration when `flow type=subscription update` subscription
subscription_update (anyOf 2)nullAlternative
subscription_update_confirmJSONOptional
subscription_update_confirm (anyOf 1)JSONAlternativeConfiguration when `flow.type=subscription_update_confirm`.
subscription_update_confirm (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update confirm value discounts, items, subscription
subscription_update_confirm (anyOf 2)nullAlternative
typestringRequired within parentType of flow that the customer will go through.
Known values: customer_update, payment_method_update, subscription_cancel, subscription_update, subscription_update_confirm

Referenced models: Create a Payment Method — response body — zip, Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type after completion, Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription cancel Configuration when `flow type=subscription cancel` retention, subscription, Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update Configuration when `flow type=subscription update` subscription, Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update confirm value discounts, items, subscription

Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type after completion

FieldTypePresenceDescription and constraints
$objectRoot
hosted_confirmationJSONOptional
hosted_confirmation (anyOf 1)JSONAlternativeConfiguration when `after_completion.type=hosted_confirmation`.
hosted_confirmation (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type after completion hosted confirmation value custom message
hosted_confirmation (anyOf 2)nullAlternative
redirectJSONOptional
redirect (anyOf 1)JSONAlternativeConfiguration when `after_completion.type=redirect`.
redirect (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type after completion redirect value return url
redirect (anyOf 2)nullAlternative
typestringRequired within parentThe specified type of behavior after the flow is completed.
Known values: hosted_confirmation, portal_homepage, redirect

Referenced models: Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type after completion hosted confirmation value custom message, Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type after completion redirect value return url

Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type after completion hosted confirmation value custom message

FieldTypePresenceDescription and constraints
$objectRoot
custom_messageJSONOptional
custom_message (anyOf 1)stringAlternativeA custom message to display to the customer after the flow is completed.
Maximum length: 5000
custom_message (anyOf 2)nullAlternative

Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type after completion redirect value return url

FieldTypePresenceDescription and constraints
$objectRoot
return_urlstringRequired within parentThe URL the customer will be redirected to after the flow is completed.
Maximum length: 5000

Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription cancel Configuration when `flow type=subscription cancel` retention, subscription

FieldTypePresenceDescription and constraints
$objectRoot
retentionJSONOptional
retention (anyOf 1)JSONAlternativeSpecify a retention strategy to be used in the cancellation flow.
retention (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a portal session — response body — flow / value / after_completion, customer_update, subscription_cancel, subscription_update, subscription_update_confirm, type / subscription_cancel / Configuration when `flow.type=subscription_cancel` / retention, subscription / retention / value / type: coupon offer
retention (anyOf 2)nullAlternative
subscriptionstringRequired within parentThe ID of the subscription to be canceled.
Maximum length: 5000

Referenced models: Create a portal session — response body — flow / value / after_completion, customer_update, subscription_cancel, subscription_update, subscription_update_confirm, type / subscription_cancel / Configuration when `flow.type=subscription_cancel` / retention, subscription / retention / value / type: coupon offer

Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update Configuration when `flow type=subscription update` subscription

FieldTypePresenceDescription and constraints
$objectRoot
subscriptionstringRequired within parentThe ID of the subscription to be updated.
Maximum length: 5000

Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update confirm value discounts, items, subscription

FieldTypePresenceDescription and constraints
$objectRoot
discountsJSONOptional
discounts (anyOf 1)arrayAlternativeThe coupon or promotion code to apply to this subscription update.
discounts (anyOf 1)[]ModelEach itemExpand Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update confirm value discounts, items, subscription discounts array item
discounts (anyOf 2)nullAlternative
itemsarrayRequired within parentThe [subscription item](https://docs.stripe.com/api/subscription_items) to be updated through this flow. Currently, only up to one may be specified and subscriptions with multiple items are not updatable.
items[]ModelEach itemExpand Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update confirm value discounts, items, subscription items item
subscriptionstringRequired within parentThe ID of the subscription to be updated.
Maximum length: 5000

Referenced models: Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update confirm value discounts, items, subscription discounts array item, Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update confirm value discounts, items, subscription items item

Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update confirm value discounts, items, subscription discounts array item

FieldTypePresenceDescription and constraints
$objectRoot
couponJSONOptional
coupon (anyOf 1)stringAlternativeThe ID of the coupon to apply to this subscription update.
Maximum length: 5000
coupon (anyOf 2)nullAlternative
promotion_codeJSONOptional
promotion_code (anyOf 1)stringAlternativeThe ID of a promotion code to apply to this subscription update.
Maximum length: 5000
promotion_code (anyOf 2)nullAlternative

Create a portal session — response body — flow value after completion, customer update, subscription cancel, subscription update, subscription update confirm, type subscription update confirm value discounts, items, subscription items item

FieldTypePresenceDescription and constraints
$objectRoot
idJSONOptional
id (anyOf 1)stringAlternativeThe ID of the [subscription item](https://docs.stripe.com/api/subscriptions/object#subscription_object-items-data-id) to be updated.
Maximum length: 5000
id (anyOf 2)nullAlternative
priceJSONOptional
price (anyOf 1)stringAlternativeThe price the customer should subscribe to through this flow. The price must also be included in the configuration's [`features.subscription_update.products`](https://docs.stripe.com/api/customer_portal/configuration#portal_configuration_object-features-subscription_update-products).
Maximum length: 5000
price (anyOf 2)nullAlternative
quantityJSONOptional
quantity (anyOf 1)integerAlternative[Quantity](https://docs.stripe.com/subscriptions/quantities) for this item that the customer should subscribe to through this flow.
quantity (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

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.