The direct answer
Coupons and promotion codes are account-scoped Stripe objects and are not moved unchanged by Customer Data Copy. Destination coupons must be recreated or mapped with equivalent percent or amount, currency, duration, and redemption semantics. Promotion-code history and customer-facing codes require separate review.
Reviewed July 24, 2026 by the MoveMRR product team.
Migration behavior: Stripe Coupons and Promotion Codes
MoveMRR can recreate and map coupon dependencies used by subscriptions. The migration must preserve the discount that applies to the future subscription, while recognizing that destination object IDs and historical redemption records differ.
What the readiness review must verify
Compatibility is established from the actual Stripe objects, not from a page title. The project should surface every missing mapping, unsupported field, ambiguous state, and destination prerequisite before the live run.
- Discount type, amount or percentage, currency, duration, and end date match.
- Mapped coupon belongs to the destination account and is valid for the destination price.
- Promotion codes and customer-facing redemption behavior are documented separately.
- The dry run shows every subscription whose discount cannot be resolved.
The primary failure mode to control
A missing or semantically different coupon changes the customer’s price. Matching only a coupon name is unsafe because amount, currency, duration, and restrictions can differ.
Stripe Coupons and Promotion Codes: source-to-destination checks
| Check | Required evidence | If it fails |
|---|---|---|
| Coupon value | Percent or amount and currency match | Correct mapping before live run |
| Duration | Once, repeating, or forever behavior matches | Manual commercial review |
| Redemption history | Retention requirement documented | Preserve source reporting separately |
| Promotion code | Future redemption path intentionally rebuilt or retired | Do not imply it transferred |
A controlled workflow
- 1
Verify the first prerequisite
Discount type, amount or percentage, currency, duration, and end date match.
- 2
Verify the second prerequisite
Mapped coupon belongs to the destination account and is valid for the destination price.
- 3
Test representative examples
Use sandbox data that includes the difficult records, not only the happy path.
- 4
Control the primary failure mode
A missing or semantically different coupon changes the customer’s price. Matching only a coupon name is unsafe because amount, currency, duration, and restrictions can differ.
- 5
Reconcile after creation
Compare destination behavior with the approved source-state and monitor the next event.
Limits to verify before migration
- Historical coupon and promotion-code redemptions are not recreated as identical history.
- Archived or invalid destination coupons cannot be applied.
- Promotion-code availability for future signups is an application and marketing decision.
- Tax treatment of discounts can differ and must be verified.
Frequently asked questions
Do Stripe coupons transfer with customers?
No. Coupons are account-scoped catalog objects and need destination recreation or mapping.
Can a forever discount remain forever?
Yes when an equivalent valid destination coupon is mapped and the destination subscription is created with the intended discount.
Are promotion-code redemptions copied?
Do not assume so. Historical redemption data and future code behavior need separate retention and rebuild decisions.