Skip to main content

Changing the price for existing members

What happens when you change the price of a recurring membership.

Changing the price of a recurring membership is one of the most sensitive things you'll deal with at your studio. It touches your clients' money and the terms they signed up under. This article walks you through your options and what each one means.

What changes and what stays the same

The confirmation dialog described below appears only for a variant that has active members. If no one has the variant yet, Zenamu simply saves the change without asking. And because the billing interval (and the currency) is locked in the form for a variant with active members and can't be changed, in practice the dialog is triggered only by a price change.

When you edit the price of a variant that has active members, Zenamu shows you a confirmation dialog with two buttons plus Cancel change:

  1. Keep existing on the original price — the recommended default (the dialog heads this option "Keep existing subscribers on the original price (recommended)").

  2. Apply to all existing — under the heading "Or: apply to all existing subscribers at once"; flagged as a warning, so use it only once you've agreed it with your clients.

In the "keep on the original price" section, the dialog also points to two manual paths (described below under Option 3) for handling individual clients:

  • Switching the variant — the client does it themselves from their account, or you do it from the admin.

  • Cancel and buy again — you cancel their existing membership and the client buys the new variant.

This manual path isn't a button in the dialog, just an explanatory note — you handle it outside the dialog.

Option 1 — Keep existing on the original price (recommended)

What it means:

  • Existing members keep the original price. Their membership keeps renewing at the old price.

  • New purchases from the moment you save the change go through at the new price.

  • Under the hood: Stripe gets a new price for new clients, while the existing price is preserved for existing members.

When to choose it:

  • Almost always. Existing clients bought their membership from you at a specific price — that's an agreement, and it shouldn't suddenly change on them.

  • When you only want to raise the price for new clients (the typical case as your costs go up).

  • When you have loyal clients and don't want to risk their trust.

What to tell existing clients:

  • Nothing, really. Existing clients won't notice the change — they keep paying the same amount.

  • If an existing client later browses your public offer and sees the new price, you can explain that their original price is locked in as a reward for being with you longer.

If you want to raise the price for one specific client:

  • Agree it with them and ask them to go to their account, click Switch plan, and pick the new (more expensive) variant. Stripe will prorate the difference.

  • Or cancel their existing membership at the end of the period (from the admin) and ask them to buy the new variant.

Option 2 — Apply the new price to all existing members at once

What it means:

  • Every active member is charged the new price at their next renewal.

  • Zenamu creates a new price in Stripe and applies it to every existing membership on that variant.

  • Important: the next renewal date doesn't change. The new price applies at the next renewal, not immediately, so no one pays twice or gets an out-of-cycle bill.

When to choose it:

  • Only after agreeing it with your clients and getting their consent in writing (email, contract).

  • Recommended approach: announce the change to clients 30 days in advance and give them the chance to cancel if they don't agree.

  • When you have legal grounds for the increase (for example, inflation above 10% and a contractual right to adjust the price).

Warning: Changing the price quietly, without your clients' knowledge, damages trust and can have legal consequences. EU law (consumer protection and payment rules) treats a silent change to a recurring payment as an unauthorized charge. We strongly recommend you always announce the change to clients in advance.

What Zenamu does behind the scenes:

  1. Saves the variant's new price to the database.

  2. Creates a new price in Stripe (the old one stays — only existing memberships still reference it).

  3. For each active client, updates their membership in Stripe so that:

    • There's no immediate charge for the difference.

    • The next renewal date stays the same — the new price applies only at the next regular renewal.

  4. When it's done, Zenamu shows the result: "The variant was saved, but Stripe didn't update all existing subscribers ({{updated}} updated, {{failed}} failed). Check the logs and retry, or migrate the failed members manually." (If everything goes through, you'll just see a simple "Changes saved" confirmation.) The count of updated members also includes clients who had a variant switch scheduled to this target variant — Zenamu rewrites the stored price for them in Stripe too, so their next renewal runs at the new price.

What if a transfer fails:

The bulk transfer runs only for memberships in the Active or Awaiting start state. Clients in the Paused, Unpaid, Waiting for payment, Cancelled, and Expired states aren't processed at all (Zenamu excludes them from the migration up front).

The exception is clients who have a variant switch scheduled to this exact target variant (this applies even in the Unpaid state): for them too, Zenamu updates the stored price in Stripe, so the next renewal or any catch-up payment runs at the new price. We mentioned this group above: they count toward the number of updated members.

For clients that Zenamu does include in the bulk transfer, Stripe may still reject the update:

  • The client's Stripe subscription is in a different currency than the new price — Stripe won't allow it.

  • The client's Stripe subscription is already cancelled — typically if someone cancelled it manually, directly in the Stripe Dashboard.

  • A membership with no active Stripe items — a rare case after a manual edit in the Stripe Dashboard.

  • A brief outage or network error reaching Stripe.

Zenamu marks any such case as failed, and the message shows the count as "X updated, Y failed." In the client's detail you'll see they're still on the old price. From there you can:

  • Agree a manual transfer with them — either by switching the variant, or by cancelling and having them buy again.

  • Leave it be — the client pays the old price, and the situation resolves itself gradually through manual actions.

  • Run the bulk transfer again later — if the reason for the failure was temporary (a Stripe outage), running it again may succeed.

Option 3 — Manually transferring specific clients

When you want to move only some clients to the new price (for example, "a higher price for corporate clients, the same price for students"), use one of these approaches:

a) Switch the client to a new variant

  1. Create a new variant with the new price (don't change the old one).

  2. Agree it with the client.

  3. The client goes to their account and clicks Switch plan, then picks the new variant.

  4. Stripe automatically prorates the difference, and the top-up is charged to the client right away.

More in the article Changing a membership variant.

b) Cancel and buy again

  1. Agree it with the client.

  2. The client cancels their current membership (at the end of the period).

  3. Once the period ends, the client buys the new variant at the new price.

This approach makes sense when:

  • You want a clean billing cycle (the new variant starts exactly on the purchase day).

  • You're changing the currency (switching the variant can't do that).

What happens in Stripe under the hood

To make this clearer — here's what always happens in Stripe:

  • For each membership type, Stripe has a "product" (for example, "Yoga Studio — Monthly membership"). Zenamu creates it on the first purchase, and the same one is reused from then on.

  • For each price, Stripe has a separate record. When you change a variant's price, a new price is created in Stripe. The old price stays — existing members remain tied to it.

This ensures that:

  • Existing client memberships in Stripe stay on their original (old) price.

  • New purchases automatically use the new price.

  • In the Stripe Dashboard you can see the history of every price, with timestamps.

For the technically curious: Internally, Zenamu remembers which Stripe price a variant should use. When you change the price, that reference is rewritten to the new price, but the Stripe product stays. The old price stays in Stripe too (Zenamu doesn't delete it or mark it as archived) — Zenamu simply stops using it for new purchases. Existing memberships keep referencing it directly in Stripe.

Syncing the name in the Stripe Dashboard takes a moment: If you also change the name of a variant or group, the name in Stripe updates in the background (typically within a few seconds of saving). So for a short while after saving, you may still see the old name in the Stripe Dashboard — that's not an error, just a delay. If the name fails to sync to Stripe (for example, a brief outage), the membership itself keeps working fine — only the Stripe Dashboard may keep the old name until the next edit syncs it again.

Special cases

Changing the currency

Important — if a variant has active members, you CAN'T change the currency.

When you save a currency change on a variant that has at least one member in a live state (Active, Awaiting start, Paused, Waiting for payment, Unpaid), Zenamu shows an error:

"Cannot change the currency on a variant with active subscribers. Create a new variant in the target currency instead."

Stripe can't change the currency within a single subscription. Just as with a billing-period change, Zenamu prevents it while you're saving the edit, so you can't accidentally break the billing cycle for your existing clients.

How to target a new market or currency:

  1. Create a new variant in the target currency (for example, the original variant in EUR, the new one in USD).

  2. For new purchases in that currency, clients see the variant in their currency.

  3. Existing clients stay in the variant's original currency. Because Zenamu won't allow a currency change at all on a variant with live members (see above), there's no way to end up with a variant that has members in two different currencies.

  4. The only way to move a specific client to a different currency is to cancel their existing membership and buy again in the new currency.

That's why, in a bulk transfer, the client's currency and the new price always match. If a client's currency didn't match for some reason (for example, after a manual subscription edit directly in the Stripe Dashboard), Stripe would reject the update, and Zenamu would count it among the failures (Y failed).

Changing the billing interval (from monthly to yearly, etc.)

Important — if a variant has active members, you CAN'T change the interval.

When you save a change to the billing interval (or its multiplier) on a variant that has at least one member in a live state (Active, Awaiting start, Paused, Waiting for payment, Unpaid), Zenamu shows an error:

"You can't change the billing interval on a variant with active subscribers. To change the billing interval, archive the variant or create a new one."

The reason: changing the interval mid-cycle would cause unpredictable behaviour in Stripe (a mix of the original cycle and the new length). A cleaner path is this:

  1. Create a new variant with the new interval (for example, yearly instead of monthly).

  2. Agree it with your clients and move them over to the new variant gradually — either let them switch themselves, or switch them from the admin.

  3. Archive the old variant so new clients can't choose it.

Changing the interval on a variant with no active members (for example, a freshly created one that nobody has bought yet) is allowed — Zenamu simply saves the change.

Lowering the price (a discount)

Lowering the price for existing members (via a bulk transfer) is safer for the client than raising it, because the client pays less, not more. Even so, we recommend letting your clients know by email, so they're aware that a lower payment will start coming out.

Discounts and credit balance

A bulk price reduction creates no credit balance. The client simply starts paying the lower price from the next regular renewal — the next renewal date stays the same, only the amount goes down. No instant credit, no special invoice, no extra accounting documents.

What happens with inactive variants

  • Hidden from the public — new clients can't see it, and it doesn't affect existing members.

  • Archived — similar to hiding it, but in the admin it's clearly marked as inactive (greyed out in the list). Existing members keep running on it.

  • Deleting a group — Zenamu won't let you delete an entire group (and all its variants) while any variant has active members. There is no delete for individual variants — only archiving.

Frequently asked questions

I changed the price by mistake. Can I undo it? Yes. Open the variant edit again, set the price back to its original value, and save with the Keep existing on the original price option. This creates a new price in Stripe for new clients, while existing members stay on the original price. If you've already run a bulk transfer in the meantime, you can run it again — back to the original price.

I ran a bulk transfer, but a client tells me they were charged the wrong amount. Most likely, time passed between when you saved and the client's next payment, and Stripe correctly charged the new price. Check the Orders section in the client's detail — you'll see the exact amount and date. The client may not have expected the new price to apply right at the next renewal.

A client says they didn't get an email about the new price. Zenamu doesn't send any email automatically when you change the price. You have to inform clients yourself, in advance. If a client doesn't agree to the change, you can offer to keep the old price for them: create a new variant with the old price and switch the client to it. We don't recommend a manual change directly in the Stripe Dashboard — it could cause a mismatch between Stripe and Zenamu, which the system then reports as a problem.

Can I raise the price for only some clients? Yes — using a manual transfer (Option 3). But you can't do it for "5 out of 50" with a single button in Zenamu.

What if I change the price right as a client is buying? In the short window between a client starting a purchase and completing it, there can be an overlap: the client might see the old price while Stripe charges the new one. In practice this is very unlikely (a client completes the purchase within seconds), and Zenamu has internal safeguards to prevent it. If it does happen, the client pays the amount shown in the payment dialog.

More articles

Did this answer your question?