The Subscription object
Attributes
id(string) Unique identifier for the object.object(string) String representing the object’s type. Objects of the same type share the same value.application(string, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) ID of the Connect Application that created the subscription.application_fee_percent(float, nullable) A 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.automatic_tax(object) Automatic tax settings for this subscription.automatic_tax.disabled_reason(enum, nullable) If Stripe disabled automatic tax, this enum describes why. Possible enum values:requires_location_inputsStripe’s systems automatically turned off Tax for this subscription when finalizing one of its invoices with a missing or incomplete location for your customer.
automatic_tax.enabled(boolean) Whether Stripe automatically computes tax on this subscription.automatic_tax.liability(object, nullable) The 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.automatic_tax.liability.account(string, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) The connected account being referenced whentypeisaccount.automatic_tax.liability.type(enum) Type of the account referenced. Possible enum values:accountIndicates that the account being referenced is a connected account which is different from the account making the API request but related to it.selfIndicates that the account being referenced is the account making the API request.
billing_cycle_anchor(timestamp) The reference point that aligns future billing cycle dates. It sets the day of week forweekintervals, the day of month formonthandyearintervals, and the month of year foryearintervals. The timestamp is in UTC format.billing_cycle_anchor_config(object, nullable) The fixed values used to calculate thebilling_cycle_anchor.billing_cycle_anchor_config.day_of_month(integer) The day of the month of the billing_cycle_anchor.billing_cycle_anchor_config.hour(integer, nullable) The hour of the day of the billing_cycle_anchor.billing_cycle_anchor_config.minute(integer, nullable) The minute of the hour of the billing_cycle_anchor.billing_cycle_anchor_config.month(integer, nullable) The month to start full cycle billing periods.billing_cycle_anchor_config.second(integer, nullable) The second of the minute of the billing_cycle_anchor.
billing_mode(object) Controls how prorations and invoices for subscriptions are calculated and orchestrated.billing_mode.flexible(object, nullable) Configure behavior for flexible billing modebilling_mode.flexible.proration_discounts(enum) Controls how invoices and invoice items display proration amounts and discount amounts. Possible enum values:includedAmounts are net of discounts, and discount amounts are zero.itemizedAmounts are gross of discounts, and discount amounts are accurate.
billing_mode.type(enum) Controls how prorations and invoices for subscriptions are calculated and orchestrated. Possible enum values:classicCalculations for subscriptions and invoices are based on legacy defaults.flexibleSupports more flexible calculation and orchestration options for subscriptions and invoices.
billing_mode.updated_at(timestamp, nullable) Details on when the current billing_mode was adopted.
billing_thresholds(object, nullable) Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing periodbilling_thresholds.amount_gte(integer, nullable) Monetary threshold that triggers the subscription to create an invoicebilling_thresholds.reset_billing_cycle_anchor(boolean, nullable) Indicates if thebilling_cycle_anchorshould be reset when a threshold is reached. If true,billing_cycle_anchorwill be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not betrueif the subscription contains items with plans that haveaggregate_usage=last_ever.
cancel_at(timestamp, nullable) A date in the future at which the subscription will automatically get canceledcancel_at_period_end(boolean) Whether this subscription will (ifstatus=active) or did (ifstatus=canceled) cancel at the end of the current billing period.canceled_at(timestamp, nullable) If the subscription has been canceled, the date of that cancellation. If the subscription was canceled withcancel_at_period_end,canceled_atwill reflect the time of the most recent update request, not the end of the subscription period when the subscription is automatically moved to a canceled state.cancellation_details(object, nullable) Details about why this subscription was cancelledcancellation_details.comment(string, nullable) Additional comments about why the user canceled the subscription, if the subscription was canceled explicitly by the user.cancellation_details.feedback(enum, nullable) The customer submitted reason for why they canceled, if the subscription was canceled explicitly by the user. Possible enum values:customer_serviceCustomer service was less than expectedlow_qualityQuality was less than expectedmissing_featuresSome features are missingotherOther reasonswitched_serviceI’m switching to a different servicetoo_complexEase of use was less than expectedtoo_expensiveIt’s too expensiveunusedI don’t use the service enough
cancellation_details.reason(enum, nullable) Why this subscription was canceled. Possible enum values:canceled_by_retention_policyCanceled because our retention policy automatically expires subscriptions withlivemode: false.cancellation_requestedCanceled explicitly through the API or Dashboard.payment_disputedCanceled automatically after a dispute was opened, according to your billing settings.payment_failedCanceled automatically after payment failure, according to your billing settings.
collection_method(enum) Eithercharge_automatically, orsend_invoice. When charging automatically, Stripe will attempt to pay this subscription at the end of the 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 asactive. Possible enum values:charge_automaticallysend_invoice
created(timestamp) Time at which the object was created. Measured in seconds since the Unix epoch.currency(enum) Three-letter ISO currency code, in lowercase. Must be a supported currency.customer(string, expandable (can be expanded into an object with theexpandrequest parameter)) ID of the customer who owns the subscription.customer_account(string, nullable) ID of the account representing the customer who owns the subscription.days_until_due(integer, nullable) Number of days a customer has to pay invoices generated by this subscription. This value will benullfor subscriptions wherecollection_method=charge_automatically.default_payment_method(string, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence overdefault_source. If neither are set, invoices will use the customer’s invoice_settings.default_payment_method or default_source.default_source(string, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. Ifdefault_payment_methodis also set,default_payment_methodwill take precedence. If neither are set, invoices will use the customer’s invoice_settings.default_payment_method or default_source.default_tax_rates(array of objects, nullable) The tax rates that will apply to any subscription item that does not havetax_ratesset. Invoices created will have theirdefault_tax_ratespopulated from the subscription.default_tax_rates.id(string) Unique identifier for the object.default_tax_rates.object(string) String representing the object’s type. Objects of the same type share the same value.default_tax_rates.active(boolean) Defaults totrue. When set tofalse, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.default_tax_rates.country(string, nullable) Two-letter country code (ISO 3166-1 alpha-2).default_tax_rates.created(timestamp) Time at which the object was created. Measured in seconds since the Unix epoch.default_tax_rates.description(string, nullable) An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.default_tax_rates.display_name(string) The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page.default_tax_rates.effective_percentage(float, nullable) Actual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage reflects the rate actually used to calculate tax based on the product’s taxability and whether the user is registered to collect taxes in the corresponding jurisdiction.default_tax_rates.flat_amount(object, nullable) The amount of the tax rate when therate_typeisflat_amount. Tax rates withrate_typepercentagecan vary based on the transaction, resulting in this field beingnull. This field exposes the amount and currency of the flat tax rate.default_tax_rates.flat_amount.amount(integer) Amount of the tax when therate_typeisflat_amount. This positive integer represents how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).default_tax_rates.flat_amount.currency(string) Three-letter ISO currency code, in lowercase.
default_tax_rates.inclusive(boolean) This specifies if the tax rate is inclusive or exclusive.default_tax_rates.jurisdiction(string, nullable) The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.default_tax_rates.jurisdiction_level(enum, nullable) The level of the jurisdiction that imposes this tax rate. Will benullfor manually defined tax rates. Possible enum values:citycountrycountydistrictmultiplestate
default_tax_rates.livemode(boolean) If the object exists in live mode, the value istrue. If the object exists in test mode, the value isfalse.default_tax_rates.metadata(object, nullable) Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.default_tax_rates.percentage(float) Tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions.default_tax_rates.rate_type(enum, nullable) Indicates the type of tax rate applied to the taxable amount. This value can benullwhen no tax applies to the location. This field is only present for TaxRates created by Stripe Tax. Possible enum values:flat_amountA fixed amount applied as tax, regardless of the taxable amount, such as a retail delivery fee.percentageA tax rate expressed as a percentage of the taxable amount, such as the sales tax rate in California.
default_tax_rates.state(string, nullable) ISO 3166-2 subdivision code, without country prefix. For example, “NY” for New York, United States.default_tax_rates.tax_type(enum, nullable) The high-level tax type, such asvatorsales_tax. Possible enum values:admissions_taxAdmissions Taxamusement_taxAmusement Taxattendance_taxAttendance Taxcommunications_taxCommunications Taxentertainment_taxEntertainment Taxgross_receipts_taxGross Receipts TaxgstGoods and Services Taxhospitality_taxHospitality TaxhstHarmonized Sales TaxigstIntegrated Goods and Services TaxjctJapanese Consumption Taxlease_taxChicago Lease Taxluxury_taxLuxury TaxpstProvincial Sales TaxqstQuebec Sales Taxresort_taxResort Taxretail_delivery_feeRetail Delivery FeerstRetail Sales Taxsales_taxSales Taxservice_taxService Taxtourism_taxTourism TaxvatValue-Added Tax
description(string, nullable) The subscription’s 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.The maximum length is 500 characters.
discounts(array of strings, expandable (can be expanded into an object with theexpandrequest parameter)) The discounts applied to the subscription. Subscription item discounts are applied before subscription discounts. Useexpand[]=discountsto expand each discount.ended_at(timestamp, nullable) If the subscription has ended, the date the subscription ended.invoice_settings(object) All invoices will be billed using the specified settings.invoice_settings.account_tax_ids(array of strings, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) The account tax IDs associated with the subscription. Will be set on invoices generated by the subscription.invoice_settings.issuer(object) The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.invoice_settings.issuer.account(string, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) The connected account being referenced whentypeisaccount.invoice_settings.issuer.type(enum) Type of the account referenced. Possible enum values:accountIndicates that the account being referenced is a connected account which is different from the account making the API request but related to it.selfIndicates that the account being referenced is the account making the API request.
items(object) List of subscription items, each with an attached price.items.object(string) String representing the object’s type. Objects of the same type share the same value. Always has the valuelist.items.data(array of objects) Details about each object.items.data.id(string) Unique identifier for the object.items.data.object(string) String representing the object’s type. Objects of the same type share the same value.items.data.billing_thresholds(object, nullable) Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing perioditems.data.billing_thresholds.usage_gte(integer, nullable) Usage threshold that triggers the subscription to create an invoice
items.data.created(integer) Time at which the object was created. Measured in seconds since the Unix epoch.items.data.current_period_end(timestamp) The end time of this subscription item’s current billing period.items.data.current_period_start(timestamp) The start time of this subscription item’s current billing period.items.data.discounts(array of strings, expandable (can be expanded into an object with theexpandrequest parameter)) The discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Useexpand[]=discountsto expand each discount.items.data.metadata(object) Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.items.data.price(object) The price the customer is subscribed to.items.data.price.id(string) Unique identifier for the object.items.data.price.object(string) String representing the object’s type. Objects of the same type share the same value.items.data.price.active(boolean) Whether the price can be used for new purchases.items.data.price.billing_scheme(enum) Describes how to compute the price per period. Eitherper_unitortiered.per_unitindicates that the fixed amount (specified inunit_amountorunit_amount_decimal) will be charged per unit inquantity(for prices withusage_type=licensed), or per unit of total usage (for prices withusage_type=metered).tieredindicates that the unit pricing will be computed using a tiering strategy as defined using thetiersandtiers_modeattributes. Possible enum values:per_unittiered
items.data.price.created(timestamp) Time at which the object was created. Measured in seconds since the Unix epoch.items.data.price.currency(enum) Three-letter ISO currency code, in lowercase. Must be a supported currency.items.data.price.currency_options(object, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) Prices defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency.items.data.price.currency_options.<currency>.custom_unit_amount(object, nullable) When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.items.data.price.currency_options.<currency>.custom_unit_amount.maximum(integer, nullable) The maximum unit amount the customer can specify for this item.items.data.price.currency_options.<currency>.custom_unit_amount.minimum(integer, nullable) The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount.items.data.price.currency_options.<currency>.custom_unit_amount.preset(integer, nullable) The starting unit amount which can be updated by the customer.
items.data.price.currency_options.<currency>.tax_behavior(enum, nullable) Only required if a default tax behavior) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One ofinclusive,exclusive, orunspecified. Once specified as eitherinclusiveorexclusive, it cannot be changed. Possible enum values:exclusiveinclusiveunspecified
items.data.price.currency_options.<currency>.tiers(array of objects, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) Each element represents a pricing tier. This parameter requiresbilling_schemeto be set totiered. See also the documentation forbilling_scheme.items.data.price.currency_options.<currency>.tiers.flat_amount(integer, nullable) Price for the entire tier.items.data.price.currency_options.<currency>.tiers.flat_amount_decimal(decimal string, nullable) Same asflat_amount, but contains a decimal value with at most 12 decimal places.items.data.price.currency_options.<currency>.tiers.unit_amount(integer, nullable) Per unit price for units relevant to the tier.items.data.price.currency_options.<currency>.tiers.unit_amount_decimal(decimal string, nullable) Same asunit_amount, but contains a decimal value with at most 12 decimal places.items.data.price.currency_options.<currency>.tiers.up_to(integer, nullable) Up to and including to this quantity will be contained in the tier.
items.data.price.currency_options.<currency>.unit_amount(integer, nullable) The unit amount in the smallest currency unit to be charged, represented as a whole integer if possible. Only set ifbilling_scheme=per_unit.items.data.price.currency_options.<currency>.unit_amount_decimal(decimal string, nullable) The unit amount in the smallest currency unit to be charged, represented as a decimal string with at most 12 decimal places. Only set ifbilling_scheme=per_unit.
items.data.price.custom_unit_amount(object, nullable) When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.items.data.price.custom_unit_amount.maximum(integer, nullable) The maximum unit amount the customer can specify for this item.items.data.price.custom_unit_amount.minimum(integer, nullable) The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount.items.data.price.custom_unit_amount.preset(integer, nullable) The starting unit amount which can be updated by the customer.
items.data.price.livemode(boolean) If the object exists in live mode, the value istrue. If the object exists in test mode, the value isfalse.items.data.price.lookup_key(string, nullable) A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.items.data.price.metadata(object) Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.items.data.price.nickname(string, nullable) A brief description of the price, hidden from customers.items.data.price.product(string, expandable (can be expanded into an object with theexpandrequest parameter)) The ID of the product this price is associated with.items.data.price.recurring(object, nullable) The recurring components of a price such asintervalandusage_type.items.data.price.recurring.interval(enum) The frequency at which a subscription is billed. One ofday,week,monthoryear.items.data.price.recurring.interval_count(integer) The number of intervals (specified in theintervalattribute) between subscription billings. For example,interval=monthandinterval_count=3bills every 3 months.items.data.price.recurring.meter(string, nullable) The meter tracking the usage of a metered priceitems.data.price.recurring.usage_type(enum) Configures how the quantity per period should be determined. Can be eithermeteredorlicensed.licensedautomatically bills thequantityset when adding it to a subscription.meteredaggregates the total usage based on usage records. Defaults tolicensed.
items.data.price.tax_behavior(enum, nullable) Only required if a default tax behavior) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One ofinclusive,exclusive, orunspecified. Once specified as eitherinclusiveorexclusive, it cannot be changed. Possible enum values:exclusiveinclusiveunspecified
items.data.price.tiers(array of objects, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) Each element represents a pricing tier. This parameter requiresbilling_schemeto be set totiered. See also the documentation forbilling_scheme.items.data.price.tiers.flat_amount(integer, nullable) Price for the entire tier.items.data.price.tiers.flat_amount_decimal(decimal string, nullable) Same asflat_amount, but contains a decimal value with at most 12 decimal places.items.data.price.tiers.unit_amount(integer, nullable) Per unit price for units relevant to the tier.items.data.price.tiers.unit_amount_decimal(decimal string, nullable) Same asunit_amount, but contains a decimal value with at most 12 decimal places.items.data.price.tiers.up_to(integer, nullable) Up to and including to this quantity will be contained in the tier.
items.data.price.tiers_mode(enum, nullable) Defines if the tiering price should begraduatedorvolumebased. Involume-based tiering, the maximum quantity within a period determines the per unit price. Ingraduatedtiering, pricing can change as the quantity grows. Possible enum values:graduatedvolume
items.data.price.transform_quantity(object, nullable) Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined withtiers.items.data.price.transform_quantity.divide_by(integer) Divide usage by this number.items.data.price.transform_quantity.round(enum) After division, either round the resultupordown.
items.data.price.type(enum) One ofone_timeorrecurringdepending on whether the price is for a one-time purchase or a recurring (subscription) purchase. Possible enum values:one_timerecurring
items.data.price.unit_amount(integer, nullable) The unit amount in the smallest currency unit to be charged, represented as a whole integer if possible. Only set ifbilling_scheme=per_unit.items.data.price.unit_amount_decimal(decimal string, nullable) The unit amount in the smallest currency unit to be charged, represented as a decimal string with at most 12 decimal places. Only set ifbilling_scheme=per_unit.
items.data.quantity(integer, nullable) The quantity of the plan to which the customer should be subscribed.items.data.subscription(string) Thesubscriptionthissubscription_itembelongs to.items.data.tax_rates(array of objects, nullable) The tax rates which apply to thissubscription_item. When set, thedefault_tax_rateson the subscription do not apply to thissubscription_item.items.data.tax_rates.id(string) Unique identifier for the object.items.data.tax_rates.object(string) String representing the object’s type. Objects of the same type share the same value.items.data.tax_rates.active(boolean) Defaults totrue. When set tofalse, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.items.data.tax_rates.country(string, nullable) Two-letter country code (ISO 3166-1 alpha-2).items.data.tax_rates.created(timestamp) Time at which the object was created. Measured in seconds since the Unix epoch.items.data.tax_rates.description(string, nullable) An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.items.data.tax_rates.display_name(string) The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page.items.data.tax_rates.effective_percentage(float, nullable) Actual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage reflects the rate actually used to calculate tax based on the product’s taxability and whether the user is registered to collect taxes in the corresponding jurisdiction.items.data.tax_rates.flat_amount(object, nullable) The amount of the tax rate when therate_typeisflat_amount. Tax rates withrate_typepercentagecan vary based on the transaction, resulting in this field beingnull. This field exposes the amount and currency of the flat tax rate.items.data.tax_rates.flat_amount.amount(integer) Amount of the tax when therate_typeisflat_amount. This positive integer represents how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).items.data.tax_rates.flat_amount.currency(string) Three-letter ISO currency code, in lowercase.
items.data.tax_rates.inclusive(boolean) This specifies if the tax rate is inclusive or exclusive.items.data.tax_rates.jurisdiction(string, nullable) The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.items.data.tax_rates.jurisdiction_level(enum, nullable) The level of the jurisdiction that imposes this tax rate. Will benullfor manually defined tax rates. Possible enum values:citycountrycountydistrictmultiplestate
items.data.tax_rates.livemode(boolean) If the object exists in live mode, the value istrue. If the object exists in test mode, the value isfalse.items.data.tax_rates.metadata(object, nullable) Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.items.data.tax_rates.percentage(float) Tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions.items.data.tax_rates.rate_type(enum, nullable) Indicates the type of tax rate applied to the taxable amount. This value can benullwhen no tax applies to the location. This field is only present for TaxRates created by Stripe Tax. Possible enum values:flat_amountA fixed amount applied as tax, regardless of the taxable amount, such as a retail delivery fee.percentageA tax rate expressed as a percentage of the taxable amount, such as the sales tax rate in California.
items.data.tax_rates.state(string, nullable) ISO 3166-2 subdivision code, without country prefix. For example, “NY” for New York, United States.items.data.tax_rates.tax_type(enum, nullable) The high-level tax type, such asvatorsales_tax. Possible enum values:admissions_taxAdmissions Taxamusement_taxAmusement Taxattendance_taxAttendance Taxcommunications_taxCommunications Taxentertainment_taxEntertainment Taxgross_receipts_taxGross Receipts TaxgstGoods and Services Taxhospitality_taxHospitality TaxhstHarmonized Sales TaxigstIntegrated Goods and Services TaxjctJapanese Consumption Taxlease_taxChicago Lease Taxluxury_taxLuxury TaxpstProvincial Sales TaxqstQuebec Sales Taxresort_taxResort Taxretail_delivery_feeRetail Delivery FeerstRetail Sales Taxsales_taxSales Taxservice_taxService Taxtourism_taxTourism TaxvatValue-Added Tax
items.has_more(boolean) True if this list has another page of items after this one that can be fetched.items.url(string) The URL where this list can be accessed.
latest_invoice(string, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) The most recent invoice this subscription has generated over its lifecycle (for example, when it cycles or is updated).livemode(boolean) If the object exists in live mode, the value istrue. If the object exists in test mode, the value isfalse.managed_payments(object, nullable) Settings for Managed Payments for this Subscription and resulting Invoices and PaymentIntents.managed_payments.enabled(boolean) Indicates whether Managed Payments is enabled for this Subscription and resulting Invoices and PaymentIntents.
metadata(object) Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.next_pending_invoice_item_invoice(timestamp, nullable) Specifies the approximate timestamp on which any pending invoice items will be billed according to the schedule provided atpending_invoice_item_interval.on_behalf_of(string, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) The account (if any) the charge was made on behalf of for charges associated with this subscription. See the Connect documentation for details.pause_collection(object, nullable) If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated topaused. Learn more about pausing collection.pause_collection.behavior(enum) The payment collection behavior for this subscription while paused. Possible enum values:keep_as_draftKeep all invoices asdraftwhile collection is paused.mark_uncollectibleMark all invoices asuncollectiblewhile collection is paused.voidVoid all invoices while collection is paused.
pause_collection.resumes_at(timestamp, nullable) The time after which the subscription will resume collecting payments.
payment_settings(object, nullable) Payment settings passed on to invoices created by the subscription.payment_settings.payment_method_options(object, nullable) Payment-method-specific configuration to provide to invoices created by the subscription.payment_settings.payment_method_options.acss_debit(object, nullable) This sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to invoices created by the subscription.payment_settings.payment_method_options.acss_debit.mandate_options(object, nullable) Additional fields for Mandate creationpayment_settings.payment_method_options.acss_debit.mandate_options.transaction_type(enum, nullable) Transaction type of the mandate. Possible enum values:businessTransactions are made for business reasonspersonalTransactions are made for personal reasons
payment_settings.payment_method_options.acss_debit.verification_method(enum, nullable) Bank account verification method. The default value isautomatic. Possible enum values:automaticInstant verification with fallback to microdeposits.instantInstant verification.microdepositsVerification using microdeposits.
payment_settings.payment_method_options.bancontact(object, nullable) This sub-hash contains details about the Bancontact payment method options to pass to invoices created by the subscription.payment_settings.payment_method_options.bancontact.preferred_language(enum) Preferred language of the Bancontact authorization page that the customer is redirected to. Possible enum values:deGermanenEnglishfrFrenchnlDutch
payment_settings.payment_method_options.card(object, nullable) This sub-hash contains details about the Card payment method options to pass to invoices created by the subscription.payment_settings.payment_method_options.card.mandate_options(object, nullable) Configuration options for setting up an eMandate for cards issued in India.payment_settings.payment_method_options.card.mandate_options.amount(integer, nullable) Amount to be charged for future payments, specified in the presentment currency.payment_settings.payment_method_options.card.mandate_options.amount_type(enum, nullable) One offixedormaximum. Iffixed, theamountparam refers to the exact amount to be charged in future payments. Ifmaximum, the amount charged can be up to the value passed for theamountparam. Possible enum values:fixedIffixed, theamountparam refers to the exact amount to be charged in future payments.maximumIfmaximum, the amount charged can be up to the value passed for theamountparam.
payment_settings.payment_method_options.card.mandate_options.description(string, nullable) A description of the mandate or subscription that is meant to be displayed to the customer.The maximum length is 200 characters.
payment_settings.payment_method_options.card.network(enum, nullable) Selected network to process this Subscription on. Depends on the available networks of the card attached to the Subscription. Can be only set confirm-time. Possible enum values:amexcartes_bancairesdinersdiscovereftpos_augirocardinteracjcblinkmastercardunionpayunknownvisa
payment_settings.payment_method_options.card.request_three_d_secure(enum, nullable) We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and other requirements. However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on manually requesting 3D Secure for more information on how this configuration interacts with Radar and our SCA Engine. Possible enum values:anyUseanyto manually request 3DS with a preference for africtionlessflow, increasing the likelihood of the authentication being completed without any additional input from the customer. 3DS will always be attempted if it is supported for the card, but Stripe can’t guarantee your preference because the issuer determines the ultimate authentication flow. To learn more about 3DS flows, read our guide.automatic(Default) Our SCA Engine automatically prompts your customers for authentication based on risk level and other requirements.challengeUsechallengeto request 3DS with a preference for achallengeflow, where the customer must respond to a prompt for active authentication. Stripe can’t guarantee your preference because the issuer determines the ultimate authentication flow. To learn more about 3DS flows, read our guide.
payment_settings.payment_method_options.customer_balance(object, nullable) This sub-hash contains details about the Bank transfer payment method options to pass to invoices created by the subscription.payment_settings.payment_method_options.customer_balance.bank_transfer(object, nullable) Configuration for the bank transfer funding type, if thefunding_typeis set tobank_transfer.payment_settings.payment_method_options.customer_balance.bank_transfer.eu_bank_transfer(object, nullable) Configuration for eu_bank_transfer funding type.payment_settings.payment_method_options.customer_balance.bank_transfer.eu_bank_transfer.country(enum) The desired country code of the bank account information. Permitted values include:DE,FR,IE, orNL. Possible enum values:BEDEESFRIENL
payment_settings.payment_method_options.customer_balance.bank_transfer.type(enum, nullable) The bank transfer type that can be used for funding. Permitted values include:eu_bank_transfer,gb_bank_transfer,jp_bank_transfer,mx_bank_transfer, orus_bank_transfer.
payment_settings.payment_method_options.customer_balance.funding_type(enum, nullable) The funding method type to be used when there are not enough funds in the customer balance. Permitted values include:bank_transfer. Possible enum values:bank_transfer
payment_settings.payment_method_options.konbini(object, nullable) This sub-hash contains details about the Konbini payment method options to pass to invoices created by the subscription.payment_settings.payment_method_options.payto(object, nullable) This sub-hash contains details about the PayTo payment method options to pass to invoices created by the subscription.payment_settings.payment_method_options.payto.mandate_options(object, nullable) Additional fields for Mandate creation.payment_settings.payment_method_options.payto.mandate_options.amount(integer, nullable) The maximum amount that can be collected in a single invoice. If you don’t specify a maximum, then there is no limit.payment_settings.payment_method_options.payto.mandate_options.amount_type(enum, nullable) Onlymaximumis supported. Possible enum values:fixedThe amount is the exact amount that will be charged.maximumThe amount is the maximum amount that can be charged.
payment_settings.payment_method_options.payto.mandate_options.purpose(enum, nullable) The purpose for which payments are made. Has a default value based on your merchant category code. Possible enum values:dependant_supportTransactions are made for dependant support reasonsgovernmentTransactions are made for government reasonsloanTransactions are made for loan reasonsmortgageTransactions are made for mortgage reasonsotherTransactions are made for other reasonspensionTransactions are made for pension reasonspersonalTransactions are made for personal reasonsretailTransactions are made for retail reasonssalaryTransactions are made for salary reasonstaxTransactions are made for tax reasonsutilityTransactions are made for utility reasons
payment_settings.payment_method_options.pix(object, nullable) This sub-hash contains details about the Pix payment method options to pass to invoices created by the subscription.payment_settings.payment_method_options.pix.expires_after_seconds(integer, nullable) The number of seconds (between 10 and 1209600) after which Pix payment will expire. Defaults to 86400 seconds.payment_settings.payment_method_options.pix.mandate_options(object, nullable) Configuration options for setting up a mandatepayment_settings.payment_method_options.pix.mandate_options.amount(integer, nullable) Amount to be charged for future payments.payment_settings.payment_method_options.pix.mandate_options.amount_includes_iof(enum, nullable) Determines if the amount includes the IOF tax. Possible enum values:alwaysThe IOF tax is included in the amount.neverThe IOF tax is not included in the amount.
payment_settings.payment_method_options.pix.mandate_options.end_date(string, nullable) Date when the mandate expires and no further payments will be charged, inYYYY-MM-DD.payment_settings.payment_method_options.pix.mandate_options.payment_schedule(enum, nullable) Schedule at which the future payments will be charged. Possible enum values:halfyearlyThe future payments will be charged half-yearly.monthlyThe future payments will be charged monthly.quarterlyThe future payments will be charged quarterly.weeklyThe future payments will be charged weekly.yearlyThe future payments will be charged yearly.
payment_settings.payment_method_options.sepa_debit(object, nullable) This sub-hash contains details about the SEPA Direct Debit payment method options to pass to invoices created by the subscription.payment_settings.payment_method_options.upi(object, nullable) This sub-hash contains details about the UPI payment method options to pass to invoices created by the subscription.payment_settings.payment_method_options.upi.mandate_options(object, nullable) Configuration options for setting up an eMandatepayment_settings.payment_method_options.upi.mandate_options.amount(integer, nullable) Amount to be charged for future payments.payment_settings.payment_method_options.upi.mandate_options.amount_type(enum, nullable) One offixedormaximum. Iffixed, theamountparam refers to the exact amount to be charged in future payments. Ifmaximum, the amount charged can be up to the value passed for theamountparam. Possible enum values:fixedIffixed, theamountparam refers to the exact amount to be charged in future payments.maximumIfmaximum, the amount charged can be up to the value passed for theamountparam.
payment_settings.payment_method_options.upi.mandate_options.description(string, nullable) A description of the mandate or subscription that is meant to be displayed to the customer.The maximum length is 20 characters.
payment_settings.payment_method_options.upi.mandate_options.end_date(timestamp, nullable) End date of the mandate or subscription.
payment_settings.payment_method_options.us_bank_account(object, nullable) This sub-hash contains details about the ACH direct debit payment method options to pass to invoices created by the subscription.payment_settings.payment_method_options.us_bank_account.financial_connections(object, nullable) Additional fields for Financial Connections Session creationpayment_settings.payment_method_options.us_bank_account.financial_connections.filters(object, nullable) Filter the list of accounts that are allowed to be linked.payment_settings.payment_method_options.us_bank_account.financial_connections.filters.account_subcategories(array of enums, nullable) The account subcategories to use to filter for possible accounts to link. Valid subcategories arecheckingandsavings. Possible enum values:checkingBank account subcategory is checkingsavingsBank account subcategory is savings
payment_settings.payment_method_options.us_bank_account.financial_connections.permissions(array of enums, nullable) The list of permissions to request. Thepayment_methodpermission must be included. Possible enum values:balancesAllows accessing balance data from the account.ownershipAllows accessing ownership data from the account.payment_methodAllows the creation of a payment method from the account.transactionsAllows accessing transactions data from the account.
payment_settings.payment_method_options.us_bank_account.financial_connections.prefetch(array of enums, nullable) Data features requested to be retrieved upon account creation. Possible enum values:balancesRequests to prefetch balance data on accounts collected in this session.ownershipRequests to prefetch ownership data on accounts collected in this session.transactionsRequests to prefetch transaction data on accounts collected in this session.
payment_settings.payment_method_options.us_bank_account.verification_method(enum, nullable) Bank account verification method. The default value isautomatic. Possible enum values:automaticInstant verification with fallback to microdeposits.instantInstant verification only.microdepositsVerification using microdeposits. Cannot be used with Stripe Checkout, Hosted Invoices, or Payment Element.
payment_settings.payment_method_types(array of enums, nullable) The list of payment method types to provide to every invoice created by the subscription. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice’s default payment method, the subscription’s default payment method, the customer’s default payment method, and your invoice template settings. Possible enum values:ach_debitACHacss_debitCanadian pre-authorized debitaffirmAffirmIf set, the Subscription
collection_methodmust besend_invoice.amazon_payAmazon Payau_becs_debitBECS Direct Debitbacs_debitBacs Direct DebitbancontactBancontactIf set, the Subscription
collection_methodmust besend_invoice.boletoBoletocardCardcashappCash App PaycryptoCryptoIf set, the Subscription
collection_methodmust besend_invoice.customCustomcustomer_balanceBank transferIf set, the Subscription
collection_methodmust besend_invoice.epsEPSIf set, the Subscription
collection_methodmust besend_invoice.fpxFPXIf set, the Subscription
collection_methodmust besend_invoice.giropaygiropayIf set, the Subscription
collection_methodmust besend_invoice.grabpayGrabPayIf set, the Subscription
collection_methodmust besend_invoice.idealiDEALIf set, the Subscription
collection_methodmust besend_invoice.kakao_payKakao PayklarnaKlarnaIf set, the Subscription
collection_methodmust besend_invoice.konbiniKonbiniIf set, the Subscription
collection_methodmust besend_invoice.kr_cardKorean cardlinkLinkmultibancoMultibancoIf set, the Subscription
collection_methodmust besend_invoice.naver_payNaver Paynz_bank_accountNZ BECS Direct Debitp24Przelewy24If set, the Subscription
collection_methodmust besend_invoice.pay_by_bankPay By BankIf set, the Subscription
collection_methodmust besend_invoice.paycoPAYCOIf set, the Subscription
collection_methodmust besend_invoice.paynowPayNowIf set, the Subscription
collection_methodmust besend_invoice.paypalPayPalpaytoPayTopixPixpromptpayPromptPayIf set, the Subscription
collection_methodmust besend_invoice.revolut_payRevolut Paysepa_debitSEPA Direct DebitsofortSOFORTIf set, the Subscription
collection_methodmust besend_invoice.twintTwintupiUPIus_bank_accountACH direct debitwechat_payWeChat PayIf set, the Subscription
collection_methodmust besend_invoice.
payment_settings.save_default_payment_method(enum, nullable) Configure whether Stripe updatessubscription.default_payment_methodwhen payment succeeds. Defaults tooff. Possible enum values:offStripe never setssubscription.default_payment_method.on_subscriptionStripe setssubscription.default_payment_methodwhen a subscription payment succeeds.
pending_invoice_item_interval(object, nullable) Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling Create an invoice for the given subscription at the specified interval.pending_invoice_item_interval.interval(enum) Specifies invoicing frequency. Eitherday,week,monthoryear. Possible enum values:daymonthweekyear
pending_invoice_item_interval.interval_count(integer) The number of intervals between invoices. For example,interval=monthandinterval_count=3bills every 3 months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks).
pending_setup_intent(string, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) You can use this SetupIntent to collect user authentication when creating a subscription without immediate payment or updating a subscription’s payment method, allowing you to optimize for off-session payments. Learn more in the SCA Migration Guide.pending_update(object, nullable) If specified, pending updates that will be applied to the subscription once thelatest_invoicehas been paid.pending_update.billing_cycle_anchor(timestamp, nullable) If the update is applied, determines the date of the first full invoice, and, for plans withmonthoryearintervals, the day of the month for subsequent invoices. The timestamp is in UTC format.pending_update.expires_at(timestamp) The point after which the changes reflected by this update will be discarded and no longer applied.pending_update.metadata(object, nullable) Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.pending_update.subscription_items(array of objects, nullable) List of subscription items, each with an attached plan, that will be set if the update is applied.pending_update.subscription_items.id(string) Unique identifier for the object.pending_update.subscription_items.object(string) String representing the object’s type. Objects of the same type share the same value.pending_update.subscription_items.billing_thresholds(object, nullable) Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing periodpending_update.subscription_items.billing_thresholds.usage_gte(integer, nullable) Usage threshold that triggers the subscription to create an invoice
pending_update.subscription_items.created(integer) Time at which the object was created. Measured in seconds since the Unix epoch.pending_update.subscription_items.current_period_end(timestamp) The end time of this subscription item’s current billing period.pending_update.subscription_items.current_period_start(timestamp) The start time of this subscription item’s current billing period.pending_update.subscription_items.discounts(array of strings, expandable (can be expanded into an object with theexpandrequest parameter)) The discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Useexpand[]=discountsto expand each discount.pending_update.subscription_items.metadata(object) Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.pending_update.subscription_items.price(object) The price the customer is subscribed to.pending_update.subscription_items.price.id(string) Unique identifier for the object.pending_update.subscription_items.price.object(string) String representing the object’s type. Objects of the same type share the same value.pending_update.subscription_items.price.active(boolean) Whether the price can be used for new purchases.pending_update.subscription_items.price.billing_scheme(enum) Describes how to compute the price per period. Eitherper_unitortiered.per_unitindicates that the fixed amount (specified inunit_amountorunit_amount_decimal) will be charged per unit inquantity(for prices withusage_type=licensed), or per unit of total usage (for prices withusage_type=metered).tieredindicates that the unit pricing will be computed using a tiering strategy as defined using thetiersandtiers_modeattributes. Possible enum values:per_unittiered
pending_update.subscription_items.price.created(timestamp) Time at which the object was created. Measured in seconds since the Unix epoch.pending_update.subscription_items.price.currency(enum) Three-letter ISO currency code, in lowercase. Must be a supported currency.pending_update.subscription_items.price.currency_options(object, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) Prices defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency.pending_update.subscription_items.price.currency_options.<currency>.custom_unit_amount(object, nullable) When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.pending_update.subscription_items.price.currency_options.<currency>.custom_unit_amount.maximum(integer, nullable) The maximum unit amount the customer can specify for this item.pending_update.subscription_items.price.currency_options.<currency>.custom_unit_amount.minimum(integer, nullable) The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount.pending_update.subscription_items.price.currency_options.<currency>.custom_unit_amount.preset(integer, nullable) The starting unit amount which can be updated by the customer.
pending_update.subscription_items.price.currency_options.<currency>.tax_behavior(enum, nullable) Only required if a default tax behavior) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One ofinclusive,exclusive, orunspecified. Once specified as eitherinclusiveorexclusive, it cannot be changed. Possible enum values:exclusiveinclusiveunspecified
pending_update.subscription_items.price.currency_options.<currency>.tiers(array of objects, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) Each element represents a pricing tier. This parameter requiresbilling_schemeto be set totiered. See also the documentation forbilling_scheme.pending_update.subscription_items.price.currency_options.<currency>.tiers.flat_amount(integer, nullable) Price for the entire tier.pending_update.subscription_items.price.currency_options.<currency>.tiers.flat_amount_decimal(decimal string, nullable) Same asflat_amount, but contains a decimal value with at most 12 decimal places.pending_update.subscription_items.price.currency_options.<currency>.tiers.unit_amount(integer, nullable) Per unit price for units relevant to the tier.pending_update.subscription_items.price.currency_options.<currency>.tiers.unit_amount_decimal(decimal string, nullable) Same asunit_amount, but contains a decimal value with at most 12 decimal places.pending_update.subscription_items.price.currency_options.<currency>.tiers.up_to(integer, nullable) Up to and including to this quantity will be contained in the tier.
pending_update.subscription_items.price.currency_options.<currency>.unit_amount(integer, nullable) The unit amount in the smallest currency unit to be charged, represented as a whole integer if possible. Only set ifbilling_scheme=per_unit.pending_update.subscription_items.price.currency_options.<currency>.unit_amount_decimal(decimal string, nullable) The unit amount in the smallest currency unit to be charged, represented as a decimal string with at most 12 decimal places. Only set ifbilling_scheme=per_unit.
pending_update.subscription_items.price.custom_unit_amount(object, nullable) When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.pending_update.subscription_items.price.custom_unit_amount.maximum(integer, nullable) The maximum unit amount the customer can specify for this item.pending_update.subscription_items.price.custom_unit_amount.minimum(integer, nullable) The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount.pending_update.subscription_items.price.custom_unit_amount.preset(integer, nullable) The starting unit amount which can be updated by the customer.
pending_update.subscription_items.price.livemode(boolean) If the object exists in live mode, the value istrue. If the object exists in test mode, the value isfalse.pending_update.subscription_items.price.lookup_key(string, nullable) A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.pending_update.subscription_items.price.metadata(object) Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.pending_update.subscription_items.price.nickname(string, nullable) A brief description of the price, hidden from customers.pending_update.subscription_items.price.product(string, expandable (can be expanded into an object with theexpandrequest parameter)) The ID of the product this price is associated with.pending_update.subscription_items.price.recurring(object, nullable) The recurring components of a price such asintervalandusage_type.pending_update.subscription_items.price.recurring.interval(enum) The frequency at which a subscription is billed. One ofday,week,monthoryear.pending_update.subscription_items.price.recurring.interval_count(integer) The number of intervals (specified in theintervalattribute) between subscription billings. For example,interval=monthandinterval_count=3bills every 3 months.pending_update.subscription_items.price.recurring.meter(string, nullable) The meter tracking the usage of a metered pricepending_update.subscription_items.price.recurring.usage_type(enum) Configures how the quantity per period should be determined. Can be eithermeteredorlicensed.licensedautomatically bills thequantityset when adding it to a subscription.meteredaggregates the total usage based on usage records. Defaults tolicensed.
pending_update.subscription_items.price.tax_behavior(enum, nullable) Only required if a default tax behavior) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One ofinclusive,exclusive, orunspecified. Once specified as eitherinclusiveorexclusive, it cannot be changed. Possible enum values:exclusiveinclusiveunspecified
pending_update.subscription_items.price.tiers(array of objects, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) Each element represents a pricing tier. This parameter requiresbilling_schemeto be set totiered. See also the documentation forbilling_scheme.pending_update.subscription_items.price.tiers.flat_amount(integer, nullable) Price for the entire tier.pending_update.subscription_items.price.tiers.flat_amount_decimal(decimal string, nullable) Same asflat_amount, but contains a decimal value with at most 12 decimal places.pending_update.subscription_items.price.tiers.unit_amount(integer, nullable) Per unit price for units relevant to the tier.pending_update.subscription_items.price.tiers.unit_amount_decimal(decimal string, nullable) Same asunit_amount, but contains a decimal value with at most 12 decimal places.pending_update.subscription_items.price.tiers.up_to(integer, nullable) Up to and including to this quantity will be contained in the tier.
pending_update.subscription_items.price.tiers_mode(enum, nullable) Defines if the tiering price should begraduatedorvolumebased. Involume-based tiering, the maximum quantity within a period determines the per unit price. Ingraduatedtiering, pricing can change as the quantity grows. Possible enum values:graduatedvolume
pending_update.subscription_items.price.transform_quantity(object, nullable) Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined withtiers.pending_update.subscription_items.price.transform_quantity.divide_by(integer) Divide usage by this number.pending_update.subscription_items.price.transform_quantity.round(enum) After division, either round the resultupordown.
pending_update.subscription_items.price.type(enum) One ofone_timeorrecurringdepending on whether the price is for a one-time purchase or a recurring (subscription) purchase. Possible enum values:one_timerecurring
pending_update.subscription_items.price.unit_amount(integer, nullable) The unit amount in the smallest currency unit to be charged, represented as a whole integer if possible. Only set ifbilling_scheme=per_unit.pending_update.subscription_items.price.unit_amount_decimal(decimal string, nullable) The unit amount in the smallest currency unit to be charged, represented as a decimal string with at most 12 decimal places. Only set ifbilling_scheme=per_unit.
pending_update.subscription_items.quantity(integer, nullable) The quantity of the plan to which the customer should be subscribed.pending_update.subscription_items.subscription(string) Thesubscriptionthissubscription_itembelongs to.pending_update.subscription_items.tax_rates(array of objects, nullable) The tax rates which apply to thissubscription_item. When set, thedefault_tax_rateson the subscription do not apply to thissubscription_item.pending_update.subscription_items.tax_rates.id(string) Unique identifier for the object.pending_update.subscription_items.tax_rates.object(string) String representing the object’s type. Objects of the same type share the same value.pending_update.subscription_items.tax_rates.active(boolean) Defaults totrue. When set tofalse, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.pending_update.subscription_items.tax_rates.country(string, nullable) Two-letter country code (ISO 3166-1 alpha-2).pending_update.subscription_items.tax_rates.created(timestamp) Time at which the object was created. Measured in seconds since the Unix epoch.pending_update.subscription_items.tax_rates.description(string, nullable) An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.pending_update.subscription_items.tax_rates.display_name(string) The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page.pending_update.subscription_items.tax_rates.effective_percentage(float, nullable) Actual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage reflects the rate actually used to calculate tax based on the product’s taxability and whether the user is registered to collect taxes in the corresponding jurisdiction.pending_update.subscription_items.tax_rates.flat_amount(object, nullable) The amount of the tax rate when therate_typeisflat_amount. Tax rates withrate_typepercentagecan vary based on the transaction, resulting in this field beingnull. This field exposes the amount and currency of the flat tax rate.pending_update.subscription_items.tax_rates.flat_amount.amount(integer) Amount of the tax when therate_typeisflat_amount. This positive integer represents how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).pending_update.subscription_items.tax_rates.flat_amount.currency(string) Three-letter ISO currency code, in lowercase.
pending_update.subscription_items.tax_rates.inclusive(boolean) This specifies if the tax rate is inclusive or exclusive.pending_update.subscription_items.tax_rates.jurisdiction(string, nullable) The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.pending_update.subscription_items.tax_rates.jurisdiction_level(enum, nullable) The level of the jurisdiction that imposes this tax rate. Will benullfor manually defined tax rates. Possible enum values:citycountrycountydistrictmultiplestate
pending_update.subscription_items.tax_rates.livemode(boolean) If the object exists in live mode, the value istrue. If the object exists in test mode, the value isfalse.pending_update.subscription_items.tax_rates.metadata(object, nullable) Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.pending_update.subscription_items.tax_rates.percentage(float) Tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions.pending_update.subscription_items.tax_rates.rate_type(enum, nullable) Indicates the type of tax rate applied to the taxable amount. This value can benullwhen no tax applies to the location. This field is only present for TaxRates created by Stripe Tax. Possible enum values:flat_amountA fixed amount applied as tax, regardless of the taxable amount, such as a retail delivery fee.percentageA tax rate expressed as a percentage of the taxable amount, such as the sales tax rate in California.
pending_update.subscription_items.tax_rates.state(string, nullable) ISO 3166-2 subdivision code, without country prefix. For example, “NY” for New York, United States.pending_update.subscription_items.tax_rates.tax_type(enum, nullable) The high-level tax type, such asvatorsales_tax. Possible enum values:admissions_taxAdmissions Taxamusement_taxAmusement Taxattendance_taxAttendance Taxcommunications_taxCommunications Taxentertainment_taxEntertainment Taxgross_receipts_taxGross Receipts TaxgstGoods and Services Taxhospitality_taxHospitality TaxhstHarmonized Sales TaxigstIntegrated Goods and Services TaxjctJapanese Consumption Taxlease_taxChicago Lease Taxluxury_taxLuxury TaxpstProvincial Sales TaxqstQuebec Sales Taxresort_taxResort Taxretail_delivery_feeRetail Delivery FeerstRetail Sales Taxsales_taxSales Taxservice_taxService Taxtourism_taxTourism TaxvatValue-Added Tax
pending_update.trial_end(timestamp, nullable) Unix timestamp representing the end of the trial period the customer will get before being charged for the first time, if the update is applied.pending_update.trial_from_plan(boolean, nullable) Indicates if a plan’strial_period_daysshould be applied to the subscription. Settingtrial_endper subscription is preferred, and this defaults tofalse. Setting this flag totruetogether withtrial_endis not allowed. See Using trial periods on subscriptions to learn more.
presentment_details(object, nullable) A hash containing information about the currency presented to the customer.presentment_details.presentment_currency(string) Currency used for customer payments.
schedule(string, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) The schedule attached to the subscriptionstart_date(timestamp) Date when the subscription was first created. The date might differ from thecreateddate due to backdating.status(enum) Possible values areincomplete,incomplete_expired,trialing,active,past_due,canceled,unpaid, orpaused.For
collection_method=charge_automaticallya subscription moves intoincompleteif the initial payment attempt fails. A subscription in this status can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into anactivestatus. If the first invoice is not paid within 23 hours, the subscription transitions toincomplete_expired. This is a terminal status, the open invoice will be voided and no further invoices will be generated.A subscription that is currently in a trial period is
trialingand moves toactivewhen the trial period is over.A subscription can only enter a
pausedstatus when a trial ends without a payment method. Apausedsubscription doesn’t generate invoices and can be resumed after your customer adds their payment method. Thepausedstatus is different from pausing collection, which still generates invoices and leaves the subscription’s status unchanged.If subscription
collection_method=charge_automatically, it becomespast_duewhen payment is required but cannot be paid (due to failed payment or awaiting additional user actions). Once Stripe has exhausted all payment retry attempts, the subscription will becomecanceledorunpaid(depending on your subscriptions settings).If subscription
collection_method=send_invoiceit becomespast_duewhen its invoice is not paid by the due date, andcanceledorunpaidif it is still not paid by an additional deadline after that. Note that when a subscription has a status ofunpaid, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices.test_clock(string, nullable, expandable (can be expanded into an object with theexpandrequest parameter)) ID of the test clock this subscription belongs to.transfer_data(object, nullable) The account (if any) the 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.amount_percent(float, nullable) A 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 destination account. By default, the entire amount is transferred to the destination.transfer_data.destination(string, expandable (can be expanded into an object with theexpandrequest parameter)) The account where funds from the payment will be transferred to upon payment success.
trial_end(timestamp, nullable) If the subscription has a trial, the end of that trial.trial_settings(object, nullable) Settings related to subscription trials.trial_settings.end_behavior(object) Defines how the subscription should behave when the user’s trial ends.trial_settings.end_behavior.missing_payment_method(enum) Indicates how the subscription should change when the trial ends if the user did not provide a payment method. Possible enum values:cancelCancel the subscription if a payment method is not attached when the trial ends.create_invoiceCreate an invoice when the trial ends, even if the user did not set up a payment method.pausePause the subscription if a payment method is not attached when the trial ends.
trial_start(timestamp, nullable) If the subscription has a trial, the beginning of that trial.
The Subscription object
json
{
"id": "sub_1MowQVLkdIwHu7ixeRlqHVzs",
"object": "subscription",
"application": null,
"application_fee_percent": null,
"automatic_tax": {
"enabled": false,
"liability": null
},
"billing_cycle_anchor": 1679609767,
"cancel_at": null,
"cancel_at_period_end": false,
"canceled_at": null,
"cancellation_details": {
"comment": null,
"feedback": null,
"reason": null
},
"collection_method": "charge_automatically",
"created": 1679609767,
"currency": "usd",
"customer": "cus_Na6dX7aXxi11N4",
"days_until_due": null,
"default_payment_method": null,
"default_source": null,
"default_tax_rates": [],
"description": null,
"discounts": null,
"ended_at": null,
"invoice_settings": {
"issuer": {
"type": "self"
}
},
"items": {
"object": "list",
"data": [
{
"id": "si_Na6dzxczY5fwHx",
"object": "subscription_item",
"created": 1679609768,
"current_period_end": 1682288167,
"current_period_start": 1679609767,
"metadata": {},
"plan": {
"id": "price_1MowQULkdIwHu7ixraBm864M",
"object": "plan",
"active": true,
"amount": 1000,
"amount_decimal": "1000",
"billing_scheme": "per_unit",
"created": 1679609766,
"currency": "usd",
"discounts": null,
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {},
"nickname": null,
"product": "prod_Na6dGcTsmU0I4R",
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"price": {
"id": "price_1MowQULkdIwHu7ixraBm864M",
"object": "price",
"active": true,
"billing_scheme": "per_unit",
"created": 1679609766,
"currency": "usd",
"custom_unit_amount": null,
"livemode": false,
"lookup_key": null,
"metadata": {},
"nickname": null,
"product": "prod_Na6dGcTsmU0I4R",
"recurring": {
"interval": "month",
"interval_count": 1,
"trial_period_days": null,
"usage_type": "licensed"
},
"tax_behavior": "unspecified",
"tiers_mode": null,
"transform_quantity": null,
"type": "recurring",
"unit_amount": 1000,
"unit_amount_decimal": "1000"
},
"quantity": 1,
"subscription": "sub_1MowQVLkdIwHu7ixeRlqHVzs",
"tax_rates": []
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_1MowQVLkdIwHu7ixeRlqHVzs"
},
"latest_invoice": "in_1MowQWLkdIwHu7ixuzkSPfKd",
"livemode": false,
"metadata": {},
"next_pending_invoice_item_invoice": null,
"on_behalf_of": null,
"pause_collection": null,
"payment_settings": {
"payment_method_options": null,
"payment_method_types": null,
"save_default_payment_method": "off"
},
"pending_invoice_item_interval": null,
"pending_setup_intent": null,
"pending_update": null,
"schedule": null,
"start_date": 1679609767,
"status": "active",
"test_clock": null,
"transfer_data": null,
"trial_end": null,
"trial_settings": {
"end_behavior": {
"missing_payment_method": "create_invoice"
}
},
"trial_start": null
}