For the complete documentation index, see llms.txt. This page is also available as Markdown.

Dynamic discounts

Overview

Dynamic discounts change how promotional prices behave on subscription renewals.

By using a dynamic discount, 2Checkout stores the discount itself (a percentage or a fixed amount) on the subscription and re-applies it to the product's current catalog price at each covered renewal. The discounted price follows your catalog, and every renewal order shows the promotion name and the discount that was applied.

Availability

Choosing the promotion model

When you create or edit a promotion that applies to renewal charges, set the Dynamic discount option:

  • Yes — the discount is stored on the subscription and recalculated against the product's catalog price at the moment of each covered renewal. Discount applies to the product catalog price at the moment of renewal.

  • No — the discounted price is calculated once, when the promotion applies, and that fixed price is charged for all covered renewals. Later catalog price changes have no effect. This is exactly how all promotions behaved before dynamic discounts were introduced.

Use dynamic discounts to apply promotions to your evolving catalog. However, if your integration or accounting relies on fixed renewal prices, applying dynamic discounts is not recommended.

Use cases

Dynamic discount follows a price increase

A product has a catalog price of $100. A dynamic promotion gives 50% off for 2 renewal charges. The first renewal charges $50. You then raise the catalog price to $200. The second renewal charges $100 (50% of the current price). After the two covered charges, renewals return to the full catalog price.

Non-dynamic discount keeps the original price

Same setup, but with Dynamic discount = No. The discounted price is calculated once: $50. Both covered renewals charge $50, regardless of the catalog price change. After they are used up, renewals return to the catalog price.

Fixed-amount dynamic discount

A dynamic promotion gives $30 off a product priced at $100: renewals charge $70. If the catalog price rises to $120, the next covered renewal charges $90.

Discount lifecycle rules

  • One active discount at a time. A subscription carries at most one active renewal discount. A newer qualifying discount (for example, a churn prevention or auto-renewal enrollment offer) replaces the active one; discounts are never combined, and no additional discount can be entered in a renewal cart while one is active.

  • Discounts are consumed in sequence. When a retention campaign discount replaces an existing promotion discount, the campaign's charges are used first; when they end, the previous promotion is reapplied automatically for whatever charges it had left.

  • Precedence at renewal. The subscription's active discount always wins over product-level promotions.

  • The price you notify is the price you charge. For automatic renewals, once the renewal notification email is sent, the communicated price is honored even if the catalog price changes before the renewal. A manual renewal started by the shopper reflects the current calculated price.

  • When a limited charge count runs out. A discount configured for N renewal charges stops after they are consumed and renewals return to the catalog price — unless the promotion is set to auto-apply and an eligible promotion still exists, in which case the currently eligible discount is applied instead.

  • Upgrades. After an upgrade, the active discount carries over to the new product, and future renewals are calculated against the upgraded product's catalog price.

  • Trials. If a promotion applies to a trial, the shopper is informed of the conversion price up front. A conversion the shopper completes manually is charged with the discount applied; an automatic conversion charges the price the shopper was notified of, and the discount applies starting with the first renewal after conversion.

  • Cumulative promotions apply when the order is placed; the renewal price of a subscription is governed by its single active renewal discount.

Dynamic discounts and custom prices

A custom price you set on a subscription (in the Control Panel, by API, or at import) remains a fixed price by design — the dynamic system does not recalculate it.

  • If a qualifying promotion with renewal coverage applies to a subscription that has a custom price (and the promotion is not restricted to catalog-priced subscriptions), the discount is calculated against the catalog price. The custom price is set aside and restored when the discount ends.

  • A subscription cannot hold an active renewal discount and an active custom price at the same time: setting a custom price deactivates the discount, and applying a discount deactivates the custom price.

  • Subscriptions imported with a renewal price keep that fixed price; subscriptions imported without one are eligible for your promotions from the first renewal.

Where you can see an active discount

  • Subscription details (Control Panel) — an Active license discount line shows the source promotion, the discount, the number of covered charges, and whether it is dynamic.

  • Order details — each trial conversion or renewal order the discount applies to shows a per-line Discount row with the promotion name and the amount. Dynamic discounts are displayed on every renewal they apply to.

  • Shopping cart and MyAccount — shoppers see the discounted renewal amount; renewal reminder emails carry the discounted price.

  • API — getNextRenewalPrice returns the recalculated discounted price, with reasonText set to Subscription discount - [promotion name]. Promotion create/retrieve/update calls accept and return an optional dynamic parameter (default: not dynamic, preserving backward compatibility).

  • IPN — order notifications include the per-line discount and promotion fields.

Last updated

Was this helpful?