# Plans now link to individual products, with several fields moving to the product resource

## What’s new

Each `Plan` object is now linked to a `Product` object with `type=service`. This change moves the `Plan` object `statement_descriptor` and `name` attributes to [Product](https://docs.stripe.com/api.md?api-version=2024-06-20#product_object-statement_descriptor) objects. Additionally, `Plan` objects now have a `nickname` attribute. Creating a plan now requires passing a [product](https://docs.stripe.com/api.md?api-version=2024-06-20#create_plan-product) attribute to `POST /v1/plans`. This can be either an existing product ID or a dictionary of product fields, so that you can continue to create plans without separately creating products.

## Impact

This change introduces a new relationship between `Plan` and `Product` objects, moving certain attributes to the `Product` object and adding a `nickname` to plans. You now need to specify a product when creating plans, either by referencing an existing product or providing product details. This modification enhances the flexibility and organization of subscription-related data, but requires updates to plan creation processes.

## Changes

#### REST API

| Parameters | Change | Resources or endpoints |
| --- | --- | --- |
| `name`, `statement_descriptor` | Removed | [Plan](/api/plans/object?api-version=2024-06-20), [Plan#create](/api/plans/create?api-version=2024-06-20), [Plan#update](/api/plans/update?api-version=2024-06-20) |

#### Ruby

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `name`, `statement_descriptor` | Removed | [Plan](/api/plans/object?api-version=2024-06-20), [PlanCreateParams](/api/plans/create?api-version=2024-06-20), [PlanUpdateParams](/api/plans/update?api-version=2024-06-20) |

#### Python

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `name`, `statement_descriptor` | Removed | [Plan](/api/plans/object?api-version=2024-06-20), [PlanCreateParams](/api/plans/create?api-version=2024-06-20), [PlanModifyParams](/api/plans/update?api-version=2024-06-20) |

#### PHP

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `name`, `statement_descriptor` | Removed | [Plan](/api/plans/object?api-version=2024-06-20), [Plan.create().$params](/api/plans/create?api-version=2024-06-20), [Plan.update().$params](/api/plans/update?api-version=2024-06-20) |

#### Java

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `name`, `statementDescriptor` | Removed | [Plan](/api/plans/object?api-version=2024-06-20), [PlanCreateParams](/api/plans/create?api-version=2024-06-20), [PlanUpdateParams](/api/plans/update?api-version=2024-06-20) |

#### Node.js

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `name`, `statement_descriptor` | Removed | [Plan](/api/plans/object?api-version=2024-06-20), [PlanCreateParams](/api/plans/create?api-version=2024-06-20), [PlanUpdateParams](/api/plans/update?api-version=2024-06-20) |

#### Go

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `Name`, `StatementDescriptor` | Removed | [Plan](/api/plans/object?api-version=2024-06-20), [PlanParams](/api/plans/update?api-version=2024-06-20) |

#### .NET

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `Name`, `StatementDescriptor` | Removed | [Plan](/api/plans/object?api-version=2024-06-20), [PlanCreateOptions](/api/plans/create?api-version=2024-06-20), [PlanUpdateOptions](/api/plans/update?api-version=2024-06-20) |

## Upgrade

#### REST API

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. If you use an SDK, upgrade to the corresponding SDK version for this API version.
   - If you don’t use an SDK, update your [API requests](https://docs.stripe.com/api/versioning.md) to include `Stripe-Version: 2018-02-05`
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Ruby

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your Ruby SDK to the latest version.
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Python

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your Python SDK to the latest version.
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### PHP

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your PHP SDK to the latest version.
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Java

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your Java SDK to the latest version.
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Node.js

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your Node SDK to the latest version.
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Go

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your Go SDK to the latest version.
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### .NET

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your .NET SDK to the latest version.
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).
