# Promotion Codes now reference Coupons using a polymorphic field for promotions ## What’s new Moves the top-level `coupon` field on [Promotion Codes](https://docs.stripe.com/api/promotion_codes/object.md?api-version=2025-09-30.clover) to [promotion.coupon](https://docs.stripe.com/api/promotion_codes/object.md?api-version=2025-09-30.clover#promotion_code_object-promotion-coupon), as part of a new [promotion](https://docs.stripe.com/api/promotion_codes/object.md?api-version=2025-09-30.clover#promotion_code_object-promotion) hash which is polymorphic. ## Why is this a breaking change? You should now reference [Coupons](https://docs.stripe.com/api/coupons/object.md?api-version=2025-09-30.clover) from [Promotion Codes](https://docs.stripe.com/api/promotion_codes/object.md?api-version=2025-09-30.clover) using the new [promotion.coupon](https://docs.stripe.com/api/promotion_codes/object.md?api-version=2025-09-30.clover#promotion_code_object-promotion-coupon) parameter, and specify the [promotion.type](https://docs.stripe.com/api/promotion_codes/object.md?api-version=2025-09-30.clover#promotion_code_object-promotion-type) parameter as `coupon`. When you retrieve Promotion Codes, they don’t auto-expand the [promotion.coupon field](https://docs.stripe.com/api/promotion_codes/object.md?api-version=2025-09-30.clover#promotion_code_object-promotion-coupon). ## Impact As we expand the list of supported promotion code types, you’ll be able to reference specific types when identifying Promotion Codes. ## Changes #### REST API | Parameters | Change | Resources or endpoints | | ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `promotion` | Added | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCode#create](/api/promotion_codes/create?api-version=2025-09-30.clover) | | `coupon` | Removed | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCode#create](/api/promotion_codes/create?api-version=2025-09-30.clover) | #### Ruby | Parameters | Change | Resources or methods | | ----------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `promotion` | Added | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCode::CreateParams](/api/promotion_codes/create?api-version=2025-09-30.clover) | | `coupon` | Removed | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCode::CreateParams](/api/promotion_codes/create?api-version=2025-09-30.clover) | #### Python | Parameters | Change | Resources or methods | | ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `promotion` | Added | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCode.CreateParams](/api/promotion_codes/create?api-version=2025-09-30.clover) | | `coupon` | Removed | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCode.CreateParams](/api/promotion_codes/create?api-version=2025-09-30.clover) | #### PHP | Parameters | Change | Resources or methods | | ----------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `promotion` | Added | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCode.create().$params](/api/promotion_codes/create?api-version=2025-09-30.clover) | | `coupon` | Removed | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCode.create().$params](/api/promotion_codes/create?api-version=2025-09-30.clover) | #### Java | Parameters | Change | Resources or methods | | ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `promotion` | Added | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCodeCreateParams](/api/promotion_codes/create?api-version=2025-09-30.clover) | | `coupon` | Removed | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCodeCreateParams](/api/promotion_codes/create?api-version=2025-09-30.clover) | #### Node.js | Parameters | Change | Resources or methods | | ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `promotion` | Added | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCodeCreateParams](/api/promotion_codes/create?api-version=2025-09-30.clover) | | `coupon` | Removed | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCodeCreateParams](/api/promotion_codes/create?api-version=2025-09-30.clover) | #### Go | Parameters | Change | Resources or methods | | ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `Promotion` | Added | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCodeParams](/api/promotion_codes/create?api-version=2025-09-30.clover) | | `Coupon` | Removed | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCodeParams](/api/promotion_codes/create?api-version=2025-09-30.clover) | #### .NET | Parameters | Change | Resources or methods | | ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Promotion` | Added | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCodeCreateOptions](/api/promotion_codes/create?api-version=2025-09-30.clover) | | `Coupon` | Removed | [PromotionCode](/api/promotion_codes/object?api-version=2025-09-30.clover), [PromotionCodeCreateOptions](/api/promotion_codes/create?api-version=2025-09-30.clover) | ## 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. 1. 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: 2025-09-30.clover` 1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md). 1. [Test your integration](https://docs.stripe.com/testing.md) against the new version. 1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md). 1. 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. 1. Upgrade your Ruby SDK to [v16.0.0](https://github.com/stripe/stripe-ruby/releases/tag/v16.0.0) 1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md). 1. [Test your integration](https://docs.stripe.com/testing.md) against the new version. 1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md). 1. 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. 1. Upgrade your Python SDK to [v13.0.1](https://github.com/stripe/stripe-python/releases/tag/v13.0.1) 1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md). 1. [Test your integration](https://docs.stripe.com/testing.md) against the new version. 1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md). 1. 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. 1. Upgrade your PHP SDK to [v18.0.0](https://github.com/stripe/stripe-php/releases/tag/v18.0.0) 1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md). 1. [Test your integration](https://docs.stripe.com/testing.md) against the new version. 1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md). 1. 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. 1. Upgrade your Java SDK to [v30.0.0](https://github.com/stripe/stripe-java/releases/tag/v30.0.0) 1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md). 1. [Test your integration](https://docs.stripe.com/testing.md) against the new version. 1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md). 1. 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. 1. Upgrade your Node SDK to [v19.1.0](https://github.com/stripe/stripe-node/releases/tag/v19.1.0) 1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md). 1. [Test your integration](https://docs.stripe.com/testing.md) against the new version. 1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md). 1. 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. 1. Upgrade your Go SDK to [v83.0.0](https://github.com/stripe/stripe-go/releases/tag/v83.0.0) 1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md). 1. [Test your integration](https://docs.stripe.com/testing.md) against the new version. 1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md). 1. 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. 1. Upgrade your .NET SDK to [v49.0.0](https://github.com/stripe/stripe-dotnet/releases/tag/v49.0.0) 1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md). 1. [Test your integration](https://docs.stripe.com/testing.md) against the new version. 1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md). 1. 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). ## Related changes - [Removes iterations parameter for subscription schedules](https://docs.stripe.com/changelog/clover/2025-09-30/remove-iterations.md) - [Adds the Discount source property and removes the Discount coupon property](https://docs.stripe.com/changelog/clover/2025-09-30/add-discount-source-property.md) - [Makes flexible billing mode the default for new subscriptions](https://docs.stripe.com/changelog/clover/2025-09-30/billing-mode-default-flexible.md) - [Updates computation of subscription schedule phase end date to consider billing cycle anchor changes](https://docs.stripe.com/changelog/clover/2025-09-30/billing-cycle-anchor-resets-during-phase-computation.md) - [Adds customer portal configuration trial behavior](https://docs.stripe.com/changelog/clover/2025-09-30/customer-portal-trial-behavior.md) - [Adds the ability to itemize proration discount amounts](https://docs.stripe.com/changelog/clover/2025-09-30/itemize-proration-discount-amounts.md)