$ 58.22
In-App Purchases| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Subscriptions (sale_subscription)
• Sales (sale_management) • Discuss (mail) • Invoicing (account) |
| Lines of code | 225 |
| Technical Name |
sale_subscription_suspended_periods |
| License | OPL-1 |
| Website | https://www.nexterp.ro |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Subscriptions (sale_subscription)
• Sales (sale_management) • Discuss (mail) • Invoicing (account) |
| Lines of code | 225 |
| Technical Name |
sale_subscription_suspended_periods |
| License | OPL-1 |
| Website | https://www.nexterp.ro |
| Versions | 18.0 19.0 |
Sale Subscription Suspended Periods
You can define multiple periods where the subscription is suspended, meaning it will not invoice the period days defined in the suspended ones.
Overview
When a customer goes on holiday, pauses a service or needs a billing break, the recurring invoice still has to be generated — but it should not charge the suspended days. This module adds a Suspended Periods tab on every subscription where dated intervals can be declared, and the invoicing engine then deducts the overlap between each interval and the invoiced period automatically.
For every suspended period that intersects the period being
invoiced, a negative line is appended to the invoice with the
pro-rata amount (days_suspended / days_invoiced * price_unit),
keeping the original recurring line untouched. The line description
spells out the suspension start and end dates so the customer can
match the credit against the cause.
Suspensions that extend beyond the current invoice period are not lost: the remaining suspended days are carried over and deducted from the following invoice, until the suspended period is fully consumed.
Built & supported by NextERP Romania
Romanian Odoo specialists, here for the long run — from implementation to localization and day-to-day production support.
What we do
Odoo Solutions
From quick-start rollouts to multi-company deployments and custom modules built for your processes.
Romanian Localization
SAF-T (D406), e-Factura, e-Transport, D300 / D390 / D394, ANAF integration, full chart of accounts and fiscal positions.
Our Services
Implementation, customization, migration, integration, support and consultancy — Romanian-speaking, SLA-backed.
Features
- Dated suspension intervals — a new
sale.subscription.suspended.periodmodel stores Start, End and Suspension Reason per subscription, exposed as a Suspended Periods notebook tab on the subscription form. - Overlap validation — periods are validated on save: end must be after start, and overlapping periods on the same subscription raise a clear error so suspensions stay clean.
- Pro-rata credit line — at invoice generation, every period
that overlaps the invoiced window adds a negative line with
quantity = -original_quantityand a unit price scaled bydays_suspended / days_invoiced, leaving the recurring line at full price for traceability. - Carry-over across invoices — when a suspension extends past the current invoice period, the remaining days are deducted from the next invoice automatically, until the suspended interval is fully applied.
- Human-readable description — the credit line label includes the subscription name, the original line name and the Suspended period: start to end range formatted in the partner language.
- Self-healing cron —
is_invoice_cronflags left over from an interrupted run are reset before the next recurring-invoice cron, so a previously skipped subscription is picked up again.
Configuration
There is no global switch — suspended periods are declared directly on the subscriptions that need them.
- As a Sales Manager, open Subscriptions → Subscriptions and select the subscription you want to pause for a given interval.
- Open the Suspended Periods tab (visible only when
is_subscriptionis true). - Click Add a line and fill in:
- Start — first suspended day (required).
- End — last suspended day (optional; leave empty for an open-ended suspension that will keep deducting days until you close it).
- Suspension Reason — free text used for traceability (holiday, service pause, dispute, ...).
- Save. Validation prevents overlapping periods on the same subscription and end dates earlier than start dates, so the data stays consistent.
Suspended periods take effect immediately: the next recurring invoice generated for this subscription — either manually from the Generate Invoice action or by the scheduled cron — applies the pro-rata credit based on the overlap between the suspended interval and the invoiced period.
To remove a suspension, simply delete the line. Already-issued credit lines on previous invoices are not affected; only future invoices will stop deducting from that interval.
To install this module, you need to:
- update the module list
- search for "Sale Subscription Suspended Periods" in your addons
- install the module
How it works
Once a suspended period is declared on a subscription, the recurring invoice flow handles the rest. Here is a worked example for a Monthly plan with a suspension that straddles two invoices.
-
Declare the suspended interval on the subscription's Suspended Periods tab. The example below adds a single period that covers part of May and part of June.

-
The next recurring invoice is generated as usual — for the period 24 May – 23 June. The invoice contains the standard recurring line at full price, followed by a negative line carrying the pro-rata credit for the suspended days that fall inside this invoice window. The credit line label spells out the exact suspension dates.

-
The portion of the suspension that did not fit inside the first invoice (here, 24 June – 30 June) is automatically carried into the next invoice. When the following recurring run produces the 24 June – 23 July invoice, it deducts the remaining suspended days the same way.

The recurring line itself is never altered, so reporting on
subscription revenue stays clean — the suspension is always visible
as a separate, signed line. The same logic applies to grouped
invoices (when sale_subscription_group_invoice is installed), to
multiple parallel suspended periods on the same subscription, and
to open-ended suspensions (no end date) which keep deducting until
they are closed manually.
Versions
19.0.1.0.0 (2026-05-25)
- Changelog tracking starts at this release.
Discover the NextERP suite
Other modules from the same publisher, built to work together.
NextERP Romania
Odoo implementation, customization, Romanian localization and long-term support since 2018.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.



Please log in to comment on this module