# Sell software subscriptions

Create free or paid plans, trials and free-month offers, then manage seats, proration, grace and access.

Language : en
Updated : 2026-09-09
Source : https://app.staging.bookelio.app/docs/en/software-subscriptions

## Prepare the module

To connect your application through the API, read the [technical subscriptions integration guide](/docs/en/subscriptions-api-integration): authentication, request examples, feature checks and connection to Bookelio by URL.

The **Software subscriptions** module in the sales section lets your organization charge for software, including applications outside Bookelio. Your organization must have the module enabled and your role must allow viewing or managing it. The module is not automatically available to every organization.

Prepare billing customers and, for a paid plan, a VAT policy under **Settings → VAT**. Payments reuse the seller’s payment requests and configured payment methods.

## Create an application and its plans

1. Open **Software subscriptions**, then **Create an application**.
2. Enter a name, a stable code and an optional description.
3. Add features with a name and a stable key. Your software uses these keys to check access. Existing keys remain preserved when edited.
4. Choose **Create a plan**, its monthly or yearly interval, its trial duration and its grace period in days. Zero disables either duration; they are independent.
5. Choose **Fixed price — unlimited seats** for an amount independent of seat count, or **Per-seat pricing** for an optional fixed amount plus extra seats above the included quantity. Select the VAT policy. Prices are in euros excluding VAT. A zero fixed amount with no seat price creates a free plan.
6. Select the included features and save. The preview shows a per-period amount for the chosen number of seats.

Fictional example: a fixed amount of €10, two included seats and €3 per additional seat produces €19 excluding VAT per period for five seats. Changes to prices, features and grace periods apply to future cycles; cycles already created keep their original terms.

Another fictional example: an Enterprise plan with a fixed monthly price of €4,000 stays at €4,000 excluding VAT per month whether the customer uses five, fifty or five hundred seats.

## Subscribe a customer and track payments

Click **Create a subscription**, select the customer and plan, then enter the seats and a stable external reference, such as the account ID in your software. Retrying with the same reference finds the existing subscription.

A free plan or trial grants the planned access immediately. A paid cycle creates a payment request: access follows verified full payment or, temporarily, the configured grace period. Renewals automatically create subsequent requests unless a previous cycle remains unpaid; this does not automatically debit a bank account.

Each subscription shows its status, period end and any trial end date. Open **Recent billing cycles** to view amounts, seats and payment requests. A payment request is not an invoice: use the usual [invoicing functions](/docs/en/invoices-and-credit-notes) according to the seller’s configuration.

## Choose when invoices are generated

Under **Settings → Invoicing**, the **Software subscription invoices** card offers two choices: **After full payment — default**, which preserves the historical behaviour, or **When the payment request is created**, which allows an invoice to be issued while still unpaid. The second choice requires configured email and storage services. Wait for confirmation before changing another setting: controls are temporarily disabled while saving.

The choice belongs to the seller organisation and applies only to future paid cycles, including those created after a trial or when resuming a subscription. Existing cycles and requests retain their rule; changing the setting does not create invoices retrospectively. Booking and training automations remain independent. A free or trial cycle without a payment request has no automatic invoice.

With generation on creation, the invoice uses the payment request's creation date as both its issue date and due date: it is due on issue, independently of grace. A generation or delivery error may delay availability; the worker retries without creating a second invoice. Later payment reuses the existing invoice without replacing its PDF/XML; check the payment state on the linked request.

An issued invoice is not a payment and does not grant feature access. Entitlements continue to depend on verified payment or the plan's grace period.

## Configure the grace period

The grace period temporarily preserves a paid cycle's features while payment is awaited. Set between 0 and 365 days in the plan form. The default is zero: no paid access before settlement, as before. Existing plans keep that behaviour until you configure a grace period.

Grace starts at the beginning of each paid cycle, including the first and the cycle after the trial. It never goes beyond the end of the cycle and does not extend the billed period. Fictional example: for a cycle starting on 1 October at 10:00 UTC with seven days of grace, temporary access expires on 8 October at 10:00 UTC. Editing the plan does not change the grace period of a cycle already created.

During grace, the subscription remains awaiting payment (`PAST_DUE`): it is not considered paid, but temporary access remains possible. At expiry, features are blocked without waiting for the next worker run, unless full payment has been verified. Partial payment does not extend grace, and an unpaid cycle prevents further bills from being created. Grace does not trigger an invoice on its own; invoice timing follows the seller setting described above.

A free plan or trial does not need payment grace. Grace does not reactivate a cancelled subscription, and a refund does not reopen grace on a period that was already paid. It is not extra time granted during a billing connection outage either.

## Choose an immediate change and its proration

**Change plan / seats** keeps the next-renewal behaviour by default, without changing the current cycle. You can choose an immediate change to increase or decrease the plan and seats. The billing interval must stay the same: schedule a monthly/yearly switch at renewal. Existing amounts due must be settled and the period must still be running.

Then choose the financial treatment of the remaining time:

- **No financial adjustment**: no extra charge or discount for the current period; the new full price starts at renewal.
- **Charge increases only**: a positive difference is charged proportionally; a decrease produces no discount.
- **Charge increases and carry forward reductions**: a positive difference is charged, while an eligible decrease becomes a commercial discount on future charges for the same subscription.

The calculation uses the exact remaining UTC time and rounds to cents, covering the fixed price and seats. Fictional example: halfway through a period, moving from €100 to €160 excluding VAT produces a €30 supplement excluding VAT. The reverse can produce a €30 discount if the corresponding value was funded. Adding seats to a plan without a per-seat price does not change its price.

History stays intact: a new cycle starts at the change and ends on the original end date; previous invoices are not corrected. A supplement opens a payment request and follows the seller's invoice and grace rules. New entitlements follow its payment or grace: an immediate change does not mean payment has already occurred.

A carried discount is a pre-tax amount reserved for that subscription, deducted from future charges before VAT. It is neither a bank refund nor an accounting credit note against an old invoice. No credit is generated from a trial, free months or a gifted upgrade. Generic refunds for subscriptions that have already been adjusted are blocked pending suitable reconciliation.

During a trial or free offer, an immediate change preserves its end and creates neither a supplement nor credit. Recent cycles let you find adjustments and applied discounts. Read the technical guide for API options and duplicate-safe retries.

## Grant a commercial offer

You can offer, for example, **one free month**, independently of the plan's trial. At creation, choose **Commercial offer → Grant free months**, then enter a label and 1–36 months. For an existing subscription, choose **Grant an offer**. Only one offer may be pending; retrying the same grant does not add months.

The offer starts at the next normally paid cycle: at creation if there is no trial, otherwise after the trial or already issued period. It does not refund the current period, erase an invoice or settle an unpaid bill. On an entirely free plan, it stays pending. Reactivate a cancelled subscription before granting an offer.

Months are calendar months: one free month on an annual plan is still one free month, not a year. When the offer ends, monthly or yearly billing resumes from that new date. During the offer, the cycle is active, the planned features are available and no payment request or automatic invoice is created. The offer does not restart a trial. Its label and dates distinguish gifted months from billed periods.

## Change or cancel

Without an immediate option, **Change plan / seats** schedules the next renewal. **Cancel at period end** asks for confirmation and leaves existing payment obligations outstanding. Entitlements remain subject to their validity: scheduling cancellation does not extend grace that expires before the period ends.

For a cancelled subscription, **Reactivate subscription** asks you to confirm the plan and seats, without immediate proration options. Resuming does not provide another trial. A paid period that is still valid is preserved; otherwise a new cycle starts. Previous unpaid payment requests must be settled before resuming.

An inactive application or plan is no longer offered for new subscriptions. Check existing cycles before changing your offers. Technical integration uses the Bookelio API and an organization key with the required permissions.

## View your own Bookelio subscription

**Settings → My Bookelio subscription** remains accessible independently of the sales module, subject to permission to view settings. It shows your plan, seats, trial and payments. Seats follow the organization’s members at the next period.

Commercial offers, complimentary periods and available discounts are also shown read-only. Contact the seller to change them; automatic member synchronisation does not select immediate proration.

If the plan sold for Bookelio includes grace, the same rules apply to your organisation through the billing connection, including when it points to the same instance. No additional local setting is needed.

When a Bookelio connection is configured, the API registers missing features at startup and links non-legacy organisations to accounts on the seller instance. This linking is repeatable and does not replace plans, features or customers already configured by the seller. A billing customer is created only when the required details are complete; otherwise the account remains linked without a billable customer. No subscription, plan or payment is selected automatically. The owner can then explicitly select a plan on this page or ask the seller for help.

Bookelio access plans operate only through the external provider, even when its URL connection points to the same instance. Old local plans, default values and per-feature overrides no longer grant entitlements. A missing subscription or an outage does not reactivate features locally. Synchronisation retries failed links and picks up new non-legacy organisations.

Without an external provider, a non-legacy organisation receives no features. If no plan is offered or a payment link is missing, contact your Bookelio administrator. When payment is required, open the outstanding request to restore access after verified settlement. The [technical guide](/docs/en/subscriptions-api-integration#connect-bookelio-to-a-billing-instance-by-url) details the permissions and deployment required for this connection.

A **legacy organisation** is an exception explicitly granted by a superadministrator, for example for Bookelio itself or a custom-development contract. It receives all globally active features without depending on a provider. Your role's permissions remain required. The page shows this exemption without a plan selector; an owner cannot activate it themselves. No organisation is marked legacy automatically.

Switching to legacy does not cancel an existing seller subscription, its future cycles or outstanding debt. Have the seller handle that situation explicitly. Removing the exception restores provider checks; legacy accounts and seats are excluded from automatic synchronisation while the exception remains active.

### Choose your plan as the owner

Only a member with the built-in `owner` role in the active organisation can select a plan from **My Bookelio subscription**. Other roles with settings access retain the read-only view without being able to commit to this subscription. The role is checked again on the server: an API key or a non-owner administration role does not replace that right.

Under **Choose a plan**, review the active plans offered by the provider. Amounts excluding VAT, billing interval, features, trial and seats come from the seller and member count; you cannot enter your own price or quantity. If needed, use **Complete billing details**, save the business details, then return and click **Refresh plans**. An already linked customer is reused without changing their details.

Click **Choose this plan**, read **Confirm the plan selection**, then confirm. The plan applies immediately. For a first subscription, the free-plan or trial rules apply. For a current subscription with the same billing interval, only the additional cost for the remaining time is charged pro rata; a reduction creates no refund. A trial or complimentary period keeps its end date. For a cancelled subscription, **Reactivate subscription** applies the plan now without another trial; a previous unpaid amount may block resumption.

If you switch from monthly to yearly or back, a new period starts now. The remaining value excluding VAT of already funded service is deducted from the new amount; any excess is neither carried forward nor refunded. An ongoing trial or complimentary period keeps its free end.

If an amount is due, the page shows the request to settle with **Pay now**, which opens the seller's payment page. Confirming the plan neither debits a card nor proves settlement: paid access follows verified payment or any configured grace period. A request already awaiting payment remains available after reloading the page. If the link is missing, contact your Bookelio administrator.

You can apply the current plan again to refresh its features, including when an older free cycle does not yet include the plan's modules. The **Current plan** and **Scheduled change** badges distinguish the current plan from an older deferred choice; applying a plan now replaces that deferred choice and removes an already scheduled cancellation. If you switch organisations before confirming, reload the page: a choice intended for another organisation is refused.

Promotions and complimentary months remain managed by the seller. Viewing plans creates no customer or subscription. Without a billing connection, this choice is unavailable. It is also unavailable for a legacy organisation, which uses its explicit exemption rather than a local plan.
