Platform Admin
Promo Codes
Create, monitor and disable discount codes used by Medusa subscription checkout.
Open Promo Codes
- 1Sign in with an authorized Medusa platform-admin account.
- 2Open /dashboard/admin/promo-codes.
- 3Review the summary counters before creating or changing a code.
Create a promo code
- 1Enter the Code.
- 2Choose Percentage or Fixed USD amount.
- 3Enter the Discount value. Percentage discounts can be configured up to 100%.
- 4Optionally set an Expiry date.
- 5Choose the package scope: Basic + Advanced, Basic only or Advanced only.
- 6Choose the billing scope: Monthly + Yearly, Monthly only or Yearly only.
- 7Optionally set Max total uses. Leave it empty for an unlimited global count.
- 8Set Uses per user.
- 9Click Create Promo Code.
100% discount behavior
A 100% percentage promo produces a final checkout amount of zero. The free activation still uses a server-created, order-bound reference and a promo reservation, but no USDC transfer is required. Checkout presents the action as Activate Free rather than asking the customer to send a zero-value transaction.
100% is still audited
The free path remains tied to the validated promo reservation and subscription order so global and per-user usage limits continue to apply.
Usage counters
- Redeemed: completed promo uses.
- Reserved: currently held checkout reservations that have not yet completed or expired.
- Remaining: remaining global uses when the code has a Max total uses limit.
- Active codes: codes that can still be applied to new eligible checkouts.
Disable a code
- 1Find the code under the existing promo-code list.
- 2Disable the code.
- 3Confirm its state changes to disabled.
Disable instead of deleting history
A disabled code remains available for operational history but is rejected for new checkout validation.
If the promo list cannot refresh
A technical load error should be treated separately from an authorization error. The Promo Codes page is designed to preserve the administration view and expose a retry path for technical refresh failures rather than presenting every backend error as lost platform-admin access.