# Subscriptions

> Sell products that renew monthly or yearly, billed by Polar, on their own or with WooCommerce Subscriptions.

Polar bills subscriptions on its own schedule. Each payment becomes a renewal order in WooCommerce.

Your token needs the `subscriptions:read`, `subscriptions:write` and `customer_sessions:write` scopes, and the webhook needs the subscription events (see [Webhooks](/docs/payments-via-polar/webhooks/)).

## Without WooCommerce Subscriptions

On a product's **Polar** tab, tick **Renews automatically** and choose every *N* months or years. Variations follow their parent, except one sold once (below). The product syncs to Polar as a recurring product, and Polar charges its price at checkout and at every renewal.

- **The first payment** completes the order like any other, and records the subscription on it.
- **Each renewal** creates a renewal order with the first order's customer, addresses and lines, and records its payment. ZealDen Sell Your Plugins extends the licenses that order sold: same key, same sites.
- **Customers** see "Renews on" and the date, and **Manage subscription**, on their order, and a **Subscriptions** tab in My Account. **Manage subscription** opens Polar's customer portal, where they cancel or change their card.
- **Store managers** get a "Polar subscription" box on the first order: its status, next renewal, renewal orders, and **Cancel at end of period**, **Don't cancel** and **Cancel now** (which asks first).
- A daily check reads each subscription whose period has ended, and catches any renewal the webhook missed.
- **If a renewal payment fails**, Polar tries again, and the first order gets a note saying the subscription is past due.

## Lifetime plans next to yearly ones

On a variable product that renews automatically, tick **Sold once (doesn't renew)** on a variation, next to **Downloadable** and **Virtual**. That variation is a one-time payment with a one-time Polar product of its own, while the other variations keep renewing. With ZealDen Sell Your Plugins, give it a term and updates period that never end.

Ticking or unticking the box on a variation that has already synced gives it a new Polar product, and archives the old one in Polar.

## With WooCommerce Subscriptions

With WooCommerce Subscriptions active, its subscription products are billed by Polar. WooCommerce Subscriptions keeps the subscription, its emails, statuses and renewal orders; Polar charges on its own schedule and tells the store each time.

- Cancelling or reactivating a subscription in WooCommerce changes it in Polar too.
- Customers change their card with **Manage payment in Polar** on their subscription page.
- If a renewal payment fails, the subscription goes on hold until Polar collects it.
- **Renews automatically** is hidden on WooCommerce Subscriptions products; their own period is used.

## Rules at checkout

A cart with subscriptions:

- can hold several, as long as they renew on the same schedule, with one plan of each product at quantity 1 (a second tier of a product already in the cart is refused);
- can't hold anything else that costs money, a lifetime plan included (free add-ons are fine, and renew with it);
- can't use coupons;
- can only be paid with Polar.

Polar can't bill sign-up fees, free trials, subscriptions that end after a set number of payments, or renewals synchronised to a set day. Products with any of these can't be bought through Polar; the cart says why.

## Several subscriptions in one checkout

Polar bills them together as one subscription at their total, each at its own price. For a mix, the plugin uses one private Polar product named after what's in it, such as "Track Them All (5 sites) + Safe Media Offload (1 site)", created once and reused for the same mix at the same total. Each renewal order lists every product, and shares what Polar charged between them in proportion to their prices. ZealDen Sell Your Plugins extends each one's license.

A bundle sold as a subscription, with its products as free items, works alone or next to other subscriptions.

To change what a subscription covers, the customer cancels it and chooses again at renewal, or you do it for them. A refund on one line doesn't lower the next renewal: the order gets a note saying the next renewal still bills its full amount.

## Things to know

- A price change applies to new subscribers. Polar keeps existing subscribers on the price they signed up at.
- If a customer changes plan in Polar's portal, the next renewal order is put on hold with a note and extends nothing, so you can check it.
- Turn WooCommerce taxes off: tax added on top makes the total differ from Polar's price, and the checkout refuses it.
- Checkout refuses a subscription that Polar has no product for yet. Shoppers see "This subscription can't be bought right now. Please try again later." A store manager is told why: the product must be published with a price, or Polar refused it, and the message gives Polar's error.

Checked against Payments via Polar for WooCommerce 1.3.0 on main, 19 October 2026.
