Subscriptions allow you to charge a customer on a recurring basis.
Related guide: Creating subscriptions
Attributes
- idstring
Unique identifier for the object.
- automatic_
taxobject Automatic tax settings for this subscription.
- currencyenum
Three-letter ISO currency code, in lowercase. Must be a supported currency.
- customerstringExpandable
ID of the customer who owns the subscription.
- customer_
accountnullable string ID of the account representing the customer who owns the subscription.
- default_
payment_ methodnullable stringExpandable ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over
default_. If neither are set, invoices will use the customer’s invoice_settings.default_payment_method or default_source.source - descriptionnullable string
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.
- itemsobject
List of subscription items, each with an attached price.
- latest_
invoicenullable stringExpandable The most recent invoice this subscription has generated over its lifecycle (for example, when it cycles or is updated).
- metadataobject
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_
setup_ intentnullable stringExpandable 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_
updatenullable object If specified, pending updates that will be applied to the subscription once the
latest_has been paid.invoice - statusenum
Possible values are
incomplete,incomplete_,expired trialing,active,past_,due canceled,unpaid, orpaused.For
collection_a subscription moves intomethod=charge_ automatically incompleteif 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_. This is a terminal status, the open invoice will be voided and no further invoices will be generated.expired 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_, it becomesmethod=charge_ automatically past_when 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 becomedue canceledorunpaid(depending on your subscriptions settings).If subscription
collection_it becomesmethod=send_ invoice past_when its invoice is not paid by the due date, anddue canceledorunpaidif 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.
More attributes
- objectstring
- applicationnullable stringExpandableConnect only
- application_
fee_ percentnullable floatConnect only - billing_
cycle_ anchortimestamp - billing_
cycle_ anchor_ confignullable object - billing_
modeobject - billing_
schedulesarray of objects - billing_
thresholdsnullable object - cancel_
atnullable timestamp - cancel_
at_ period_ endboolean - canceled_
atnullable timestamp - cancellation_
detailsnullable object - collection_
methodenum - createdtimestamp
- days_
until_ duenullable integer - default_
sourcenullable stringExpandable - default_
tax_ ratesnullable array of objects - discountsarray of stringsExpandable
- ended_
atnullable timestamp - invoice_
settingsobject - livemodeboolean
- managed_
paymentsnullable object - next_
pending_ invoice_ item_ invoicenullable timestamp - on_
behalf_ ofnullable stringExpandableConnect only - pause_
collectionnullable object - payment_
settingsnullable object - pending_
invoice_ item_ intervalnullable object - presentment_
detailsnullable object - schedulenullable stringExpandable
- start_
datetimestamp - test_
clocknullable stringExpandable - transfer_
datanullable objectConnect only - trial_
endnullable timestamp - trial_
settingsnullable object - trial_
startnullable timestamp
{ "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}Creates a new subscription on an existing customer. Each customer can have up to 500 active or scheduled subscriptions.
When you create a subscription with collection_, the first invoice is finalized as part of the request. The payment_ parameter determines the exact behavior of the initial payment.
To start subscriptions where the first invoice always begins in a draft status, use subscription schedules instead. Schedules provide the flexibility to model more complex billing configurations that change over time.
Parameters
- automatic_
taxobject Automatic tax settings for this subscription.
- currencyenum
Three-letter ISO currency code, in lowercase. Must be a supported currency.
- customerstring
The identifier of the customer to subscribe.
- customer_
accountstring The identifier of the account representing the customer to subscribe.
- default_
payment_ methodstring ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over
default_. If neither are set, invoices will use the customer’s invoice_settings.default_payment_method or default_source.source - descriptionstring
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.
- itemsarray of objectsRequired
A list of up to 20 subscription items, each with an attached price.
- metadataobject
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. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to
metadata. - payment_
behaviorenum Controls how Stripe handles the first invoice when payment is required and
collection_. Subscriptions withmethod=charge_ automatically collection_are automatically activated regardless of the first Invoice status.method=send_ invoice Possible enum valuesallow_incomplete This is the default behavior since 2019-03-14. If payment fails, the Subscription is created with
status=incomplete, otherwisestatus=active. This behavior allows you to manage scenarios where additional customer actions are needed to pay the Invoice. For example, SCA regulations might require 3DS authentication to complete payment. See the SCA Migration Guide for Billing to learn more.default_incomplete When the first invoice requires payment, creates a Subscription with
status=incompletewithout attempting payment, otherwisestatus=active. You must request explicit confirmation of the Invoice’s PaymentIntent to activate the subscription. The resulting Invoice has auto_advance=false, so Stripe doesn’t automatically attempt payment, retry payment, or finalize the subscription.error_if_ incomplete If payment fails, return an HTTP
402status code and don’t create the subscription. This behavior doesn’t support payments that require user action, such as 3DS authentication, because it returns an error instead of creating a PaymentIntent withstatus=requires_. This behavior was the default for API versions before 2019-03-14.action pending_if_ incomplete This behavior is exclusive to Subscription updates and cannot be used for creation.
More parameters
- add_
invoice_ itemsarray of objects - application_
fee_ percentfloatConnect only - backdate_
start_ datetimestamp - billing_
cycle_ anchortimestamp - billing_
cycle_ anchor_ configobject - billing_
modeobject - billing_
schedulesarray of objects - billing_
thresholdsobject - cancel_
attimestamp | enum - cancel_
at_ period_ endboolean - collection_
methodenum - days_
until_ dueinteger - default_
sourcestring - default_
tax_ ratesarray of strings - discountsarray of objects
- invoice_
settingsobject - off_
sessionboolean - on_
behalf_ ofstring - payment_
settingsobject - pending_
invoice_ item_ intervalobject - proration_
behaviorenum - transfer_
dataobjectConnect only - trial_
endstring | timestamp - trial_
from_ planboolean - trial_
period_ daysinteger - trial_
settingsobject
Returns
The newly created Subscription object, if the call succeeded. If the attempted charge fails, the subscription is created in an incomplete status.
curl https://api.stripe.com/v1/subscriptions \ -u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \ -d customer={{CUSTOMER_ID}} \ -d "items[0][price]={{PRICE_ID}}"{ "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}