Cart

← All guides

Subscriptions module · User guide

Create subscriptions for Bexio customers and bill them recurrently

The Subscriptions module manages recurring contracts for your Bexio customers and bills them automatically: maintenance contracts, licences, support retainers — anything that produces the same invoice in a fixed rhythm.

It builds on the Bexio module: articles and contacts come from there. And it deliberately does not talk to Bexio itself — more on that shortly.

Monthly to yearly rhythm per contract
Gapless no period missing, none overlapping
Pro rata mid-period changes are billed proportionally
One sign-off nothing reaches Bexio without a human

Creating a subscription

You find the list under Subscriptions in the navigation; the module's settings sit under Manage → Bexio → Subscriptions.

A contract needs a title, a Bexio customer, a start date, a rhythm — monthly, quarterly or yearly — and at least one line.

A line is an article from the Bexio module with a quantity and a price. One thing matters here: the line is a snapshot, not a live reference. If the article changes in Bexio, the contract does not change with it. A contract whose prices move behind your back would be no contract.

You also set who is responsible. That is the responsibility, not the author — whoever created the contract stays beside it in the history.

How the periods are calculated

Two rules, from which everything else follows:

  • Every period start is calculated from the contract start, never from the previous period. Otherwise every month-end rounding error accumulates, and after two years no date is right any more.
  • The period end is the start of the following period minus one day and is never determined independently. That makes the periods gapless and without overlap by construction.

At the end of a month it looks like this. Contract start 31 January, monthly:

PeriodRangeWhy
First31 Jan – 27 FebThe following period starts on 28 Feb, because there is no 31 February
Second28 Feb – 30 MarThe following period starts on 31 Mar, the anchor day is back
Third31 Mar – 29 Apr

So the anchor day is not lost just because one month is shorter. That is exactly what would have happened when counting on from period to period.

Proportional billing

Two cases need a partial period, and both are calculated the same way:

A line change mid-periodFive more licences from 1 April: the old line is closed off, a new one opened from 1 April, and the increase charged for the remaining days.
A shortened final periodA cancelled contract ends mid-period and is billed only for the actual days.

The denominator is always the nominal length of the period, not the shortened one. A yearly subscription ending after 90 days costs 90 of 365 days proportionally — not 90 of 90. Otherwise cancelling would be free.

Calculation uses real calendar days and not 30/360. That way partial ranges add up exactly to a full period, in a leap year too.

For individual lines the proportional calculation can be switched off and set to «always full» — for services your own supplier also charges you in full.

The invoice text

Every line has a multi-line invoice text, and that text is a template: {placeholders} are replaced with the values of the actual period when billing. So the invoice reads «Maintenance 01.01.2027 – 31.03.2027» and not the same meaningless sentence every quarter.

A preview shows you what it becomes before you bill. And the order of the lines can be set by dragging — it is the order on the invoice.

The overview list

The search covers the title, the Bexio customer including their customer number and, if set, the FreeScout customer. Plus a filter by state.

Which columns you want to see you set in the three-dot menu; the choice is remembered for you. On offer are customer, responsibility, start, rhythm, next period, billing date, notice, amount, lines and state.

The amount is the net amount of the next period — the figure you want when you look at the list.

Billing

Here sits the module's most important decision: it sends nothing to Bexio itself. A billing run creates an invoice in the Activities module with the state «open». It is pushed to Bexio there, with the existing Send to Bexio button.

That way there is exactly one path to Bexio — the Bexio module's — and exactly one place where a human signs off. A module that puts real invoices to a customer unattended is a bad idea, however well it calculates.

Three things trigger a run:

  • The daily run at 06:00 bills what is due.
  • The Bill now button on the subscription bills the next open period, even before its date.
  • A line change in a period already billed puts the correction out immediately as its own invoice.

A contract several periods behind catches up one period per run. That is deliberate: otherwise a flood of invoices would appear at once that nobody can check any more.

When a run fails

A failed run reports itself through a bell of its own in the navigation, visible only to administrators and only when something is pending.

Only what fails unattended raises a notification:

TriggerBell
Daily run: period failedyes
Daily run: corrections failedyes
Line change: correction not issuedyes — it stays open and would otherwise be forgotten
The «Bill now» buttonno — the error is on screen directly

As long as an unread notice about the same period is pending, no second one is created. Without that de-duplication, a permanently failing contract would extend the bell every day, and it would soon be ignored.

Once billing succeeded, the old warnings for that contract are cleared away.

Worth knowing

Cancelled does not mean ended

A cancelled contract runs to the end of its term and is billed until then — the last period proportionally if need be. «Cancelled» is an announcement, not an off switch.

The start date is locked after the first billing

It cannot be moved afterwards. All period boundaries derive from it; a later change would call every invoice already issued into question.

The tax rate comes from the article

It is resolved from the Bexio module's article when billing and not stored on the contract. That way the rate that is correct at the time of billing always applies.

The Bexio and Activities modules are required

Articles and contacts come from the Bexio module, and the invoices created live in the Activities module. Without those two the Subscriptions module cannot work.

Not getting anywhere with this? Support

Good to know

Frequent questions

Everything you should know about our modules, licences, updates and support before you buy.

Why does my purchased FreeScout module show an expiry date?

With your purchase you get the module plus twelve months of support, security updates and new features. The expiry date shown refers to those included services — not to your right to use the module at all.

What happens when my licence expires?

The module you have installed keeps working. Once the licence has expired, though, no new security or feature updates arrive and the included support can no longer be used.

You decide for yourself whether to renew the licence or to keep using the installed module without further updates, at your own responsibility.

Others promise lifetime updates. Why don’t you?

Technologies, security requirements and dependencies keep changing. What works reliably today can be outdated or unsupported tomorrow. Good software therefore needs continuous care, testing and development.

Rather than tie you to a permanent subscription, we leave you the choice: renew your licence, or keep using the installed module without further updates, at your own responsibility.

Do I need your LaStore module?

No, but the LaStore module connects your FreeScout instance with the modules you bought, and it brings several advantages:

  • installation with one click
  • automatic detection of available updates
  • easy updating right inside FreeScout
  • verification of the package signature
  • protection against module packages altered or tampered with unnoticed

Our modules do not use the normal update process, because it is not secure. The LaStore module verifies each of our modules before updating. An attacker therefore cannot deliver forged, dangerous updates. Without this module the verification is up to you, and it is a manual process.

without LaStorewith LaStore, autopilot offwith LaStore, autopilot on
learns about new versionsnoyes, dailyyes, daily
installsby hand from the portalat the press of a buttonovernight, without you
verifiedby you, via shasum -a 256yesyes
Do I really get the complete source code?

Yes. Our modules are provided under the AGPL-3.0 licence. The module as delivered contains the complete source code, which you can inspect and adapt within the terms of that licence.

On how many FreeScout instances may I use the module?

One licence covers one active FreeScout instance. Two free server moves are included on top of that.

If an old server is no longer in use, the system releases its activation automatically after 90 days. An instance that is unreachable or already deleted is therefore not counted against your licence for good.

Can I return a module I bought?

You have a 14-day right of return. It ends as soon as you activate the module — not already when the licence key is delivered to you.

So activate the module only once you have finally decided to use it. For consumers in the EEA, the statutory provisions on the right of withdrawal for digital content apply in addition.

Who issues my invoice?

Payment is handled by Paddle. Paddle acts as Merchant of Record and therefore as the seller. That is why Paddle appears as the issuer of the invoice, and possibly also as the payee on your card or bank statement.

Does a module need other FreeScout modules?

That depends on the product. Some modules work entirely on their own and offer additional features when other modules are present. Others have hard dependencies.

The slot finder, for example, strictly needs the Calendar module, because the available appointments are worked out from the calendars kept there.

Required and optional dependencies are stated on each product page.

What can I do if something doesn’t work?

We test our modules carefully. Even so, a feature may not behave as expected in a particular environment.

Every module comes with a detailed guide. If that does not get you any further, you can open a support ticket. Describe the problem briefly and the steps you have already taken — we are glad to help.

Pay securely, worldwideYour payment is handled securely by Paddle. You can pay from anywhere in the world, comfortably in your own currency — proper invoicing included.
Open, auditable, adaptableThanks to AGPL-3.0 you get the complete source code. You can audit the software, adapt it yourself and keep running it independently.
Two server moves includedYour FreeScout instance is moving? You can transfer your licence to a new server up to twice, free of charge, and keep using the module there.
Install once, stay current by itselfWith our LaStore module for FreeScout you install what you bought with a single click. Available updates are checked and installed automatically.

Play video

Playing establishes a connection to YouTube.

View image