# Delete a subscription item Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription. ## Returns An subscription item object with a deleted flag upon success. Otherwise, this call raises [an error](https://docs.stripe.com/api/errors.md), such as if the subscription item has already been deleted. ## Parameters - `clear_usage` (boolean, optional) Delete all usage for the given subscription item. Allowed only when the current plan’s `usage_type` is `metered`. - `payment_behavior` (enum, optional) Controls how Stripe handles payment when a subscription update requires payment and `collection_method=charge_automatically`. Possible enum values: - `allow_incomplete` This is the default behavior since [2019-03-14](changelog/2019-03-14/subscriptions-successfully-created-first-payment-fails). Transition the subscription to `status=past_due` if payment fails. If you have payment retries configured, Stripe automatically retries the payment. If the payment requires action, you receive an `invoice.payment_action_required` webhook and must manage additional user actions. For example, SCA regulations might require 3DS authentication to complete payment. See the [SCA Migration Guide](https://docs.stripe.com/docs/billing/migration/strong-customer-authentication.md) for Billing to learn more. - `default_incomplete` When payment is required, transition the subscription to `status=past_due` without attempting payment. You must request explicit confirmation of the Invoice’s PaymentIntent. The resulting Invoice has [auto_advance=false](https://docs.stripe.com/docs/api/invoices/object.md#invoice_object-auto_advance), so Stripe doesn’t automatically attempt payment, retry payment, or finalize the subscription. - `error_if_incomplete` If payment fails, return an HTTP `402` status code and don’t update 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 with `status=requires_action`. This behavior was the default for API versions before [2019-03-14](changelog/2019-03-14/subscriptions-successfully-created-first-payment-fails). - `pending_if_incomplete` If payment fails, Stripe creates a [pending update](https://docs.stripe.com/docs/billing/subscriptions/pending-updates.md), which applies only if the payment eventually succeeds. This behavior doesn’t support all [attributes and payment methods](https://docs.stripe.com/docs/billing/pending-updates-reference.md#supported-attributes). This option is the simplest way to ensure the customer completes payment before Stripe applies the update. - `proration_behavior` (enum, optional) Determines how to handle [prorations](https://docs.stripe.com/docs/billing/subscriptions/prorations.md) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item’s `quantity` changes. The default value is `create_prorations`. Possible enum values: - `always_invoice` Always invoice immediately for prorations. - `create_prorations` Will cause proration invoice items to be created when applicable. These proration items will only be invoiced immediately under [certain conditions](https://docs.stripe.com/docs/subscriptions/upgrading-downgrading.md#immediate-payment). - `none` Disable creating prorations in this request. - `proration_date` (timestamp, optional) If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply the same proration that was previewed with the [upcoming invoice](https://docs.stripe.com/api/invoices/create_preview.md) endpoint. ## Request ```node const stripe = require('stripe')('<>'); const deleted = await stripe.subscriptionItems.del('{{SUBSCRIPTION_ITEM_ID}}'); ``` ### Response ```json { "id": "si_NcLYdDxLHxlFo7", "object": "subscription_item", "deleted": true } ```