- Home
- Apps
- SaaS Tools
- Recurring & Auto-Charge Subscriptions Payment for Odoo
Illustrative previewTokenized auto-charge engine for Odoo subscriptions, memberships, and rentals
— saved-card renewals, proration, and retries. Built to order.
What is Recurring & Auto-Charge Subscriptions Payment for Odoo?
Tokenized auto-charge engine for Odoo subscriptions, memberships, and rentals — saved-card renewals, proration, and retries. Built to order. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Odoo's core subscription and rental flows can generate a recurring invoice on schedule — but out of the box they still lean on your customer to log in and pay each renewal manually. For a membership club, a SaaS product, or an equipment-rental business, that manual step is exactly where revenue leaks: expired sessions, forgotten emails, and involuntary churn.
ECOSIRE builds a tokenized auto-charge engine that closes that gap. Instead of emailing a payment link, the module vaults a payment method the first time a customer subscribes (capturing the card/gateway token, never the raw PAN — your Odoo database stays out of PCI scope), records the recurring mandate and consent, and then charges that saved token automatically on every renewal date. The renewal invoice is generated, the payment is captured server-side through your existing Odoo payment provider, and the customer receives a paid invoice — with no login and no clicks.
This is a build-to-order engagement, not an apps.odoo.com download. We write a proper custom module (__manifest__.py, models/ extending sale.subscription / sale.order / account.move, security/ir.model.access.csv plus record rules, views/ in XML and OWL, and a QWeb mandate/receipt report), wire it to your specific payment acquirers, install it on your Odoo 17, 18, or 19 instance, and support it. Every scheduled charge runs through an ir.cron automated action; failed charges fire a retry hook (dunning) and a mail.activity for your billing team so nothing silently drops off.
The engine is gateway-agnostic by design: it uses Odoo's payment.token abstraction so the same auto-charge logic works across Stripe, and any tokenizing acquirer we integrate for your region. Plan changes are handled properly — upgrade, downgrade, or mid-cycle switches compute prorated credits and charges against the remaining period, exactly as your finance team would expect on the resulting account.move.
You get the source code, a documented configuration, admin and end-user training, and a support window. Because it's your own module and not a locked marketplace binary, you keep full control — read the ORM, adjust a compute, add a field — and we keep it running.
What you get
- Complete custom Odoo module source (Python models, XML/OWL views, security rules, QWeb reports) compatible with your Odoo 17, 18, or 19 edition — yours to keep and modify
- Payment-gateway integration configured for your specific acquirer(s), including token vaulting and off-session capture credentials wired into payment.provider
- Installed and validated on your instance (staging first, then production) with the ir.cron scheduled charge job enabled and tested end-to-end
- Configuration documentation — retry policy, proration rules, mandate template, cron cadence, and gateway setup written up for your team
- Admin + end-user training session (recorded) covering mandate management, dunning, plan changes, and reading the auto-charge logs
- Support and bug-fix window after go-live, plus a compatibility check when you upgrade your Odoo minor version within the window
- QWeb mandate/consent document and paid-invoice receipt templates, brandable to your company
- Test scenarios and a UAT checklist (successful renewal, failed charge + retry, upgrade proration, cancellation) you can re-run after any change
Who this is for
Membership & association operators
Clubs, gyms, professional bodies, and communities running dues on Odoo who need annual or monthly memberships to renew silently on a saved card — with clean lapse/dunning handling when a card expires — instead of chasing members to log in and pay.
SaaS and subscription-product businesses
Software and digital-service teams billing recurring plans in Odoo who need reliable off-session renewals, mid-cycle upgrade/downgrade proration, and a retry-then-suspend dunning flow to cut involuntary churn.
Equipment & asset rental companies
Rental operators using Odoo's rental/subscription flows who want ongoing rental periods auto-charged to a vaulted payment method, with mandates on file and automatic retries so long-term hires keep billing without manual invoicing.
How Recurring & Auto-Charge Subscriptions Payment for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Off-session auto-charge on saved token at renewal | Core capability — merchant-initiated capture via ir.cron, no customer action | Buildable but you engineer token vaulting, off-session flags, and cron yourself | Varies; many marketplace apps only email a payment link | Partial support |
| Built and installed for you on Odoo 17/18/19 | Yes — scoped, built, staged, and deployed by ECOSIRE | Only if you have in-house Odoo developers to build and maintain it | Self-install binary; you configure and troubleshoot alone | Included |
| Proration on mid-cycle plan change | Prorated credit/charge computed on the resulting account.move | Must be designed and tested from scratch | Inconsistent across apps; often manual credit notes | Partial support |
| Mandate / recurring consent capture + QWeb document | Recorded (amount, cadence, timestamp) with an audit-ready QWeb mandate | You design the data model and report | Rarely included | Not included |
| Failed-charge retry / dunning engine | Configurable retry-then-suspend with backoff + billing-team activity | You build the retry scheduler and state machine | Basic or fixed retries in some apps | Not included |
| Multi-gateway tokenization | Gateway-agnostic on payment.token; acquirers wired for your region | Each acquirer integrated by hand | Usually locked to one or two providers | Partial support |
| Source code ownership + right to modify | Full source handed over — read the ORM, adjust a compute, extend fields | You own it (you also built it) | Often obfuscated/locked marketplace binary | Included |
| Ongoing support + version-compatibility check | Post-go-live support window + minor-version compatibility check | You maintain it in perpetuity | Ticket queue; upgrades may cost extra or lag | Partial support |
Frequently Asked Questions about Recurring & Auto-Charge Subscriptions Payment
How long until it's live, and what's the process?
This is a build-to-order module, not an instant download. Typical delivery is one working week depending on how many payment gateways and plan-change rules you need. The flow is: a short scoping call to confirm your Odoo version, edition (Community or Enterprise), acquirers, and dunning policy; then we build the module, install it on your staging instance for UAT, and after your sign-off deploy to production with the ir.cron charge job enabled.
What ongoing support and updates do I get?
Every engagement includes a post-go-live support window for bug fixes and questions, plus a compatibility check if you apply an Odoo minor-version update during that window. Because we hand over the full source, your team can also maintain and extend it directly. Extended support and version-upgrade retainers (for example moving the module from Odoo 17 to 18 or 19) are available on request.
Is this the same as Odoo's built-in Subscriptions app?
No. Odoo core (and the Enterprise Subscriptions app) can generate recurring invoices and send payment links, but the reliable off-session, merchant-initiated auto-charge on a vaulted token — with proper proration, mandate capture, and a configurable retry/dunning engine — is what this module adds on top. We build against your existing subscription/sale/account models rather than replacing them.
Is storing customer cards PCI-compliant?
Yes, because we never store raw card numbers. The module uses Odoo's payment.token abstraction: the acquirer (e.g. Stripe) vaults the card and returns a token, and only that token lives in your Odoo database. That keeps your Odoo instance out of cardholder-data (PCI-DSS) scope. We also capture and store the recurring mandate/consent record for audit and dispute defense.
Which gateways and Odoo versions are supported?
The engine is built on Odoo's gateway-agnostic payment.provider / payment.token layer, so it works with any tokenizing acquirer we integrate for your region — Stripe is the most common. It supports Odoo 17, 18, and 19, on both Community and Enterprise (a few features that depend on Enterprise-only apps are flagged during scoping). Tell us your acquirer and version on the scoping call and we confirm fit before you commit.
What happens when a renewal charge fails?
The failed-charge retry hook kicks in: the module re-attempts on a schedule you define (with backoff), keeping the subscription active during the grace period. If all retries fail, it applies your chosen policy — auto-suspend, downgrade, or flag past-due — raises a mail.activity for your billing team, and notifies the account owner, so an expired card becomes a handled event rather than silent churn.
Related Modules

Quotation Revision History for Odoo
A build-to-order Odoo module that captures a complete, versioned revision history for every quotation — snapshotting each change to lines, pricing, and terms so your team can see exactly what changed, when, and by whom. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 instance.

Quote & Proposal Document Designer
A drag-and-drop, branded proposal builder for Odoo Sales that assembles winning, on-brand quote documents from reusable content blocks. ECOSIRE designs, builds, and supports it to your exact template library after a scoping call.

Redsys & Bizum Payment Gateway for Odoo (Spain)
A build-to-order Odoo payment provider that connects your store and invoicing to the Redsys bank network for Spanish card payments and Bizum mobile transfers. ECOSIRE builds, installs, and supports it across Odoo 17, 18, and 19.

Referral 'Refer & Earn' Program
Build-to-order Odoo module: shareable referral codes with automatic wallet, coupon or points rewards for referrer and referee.
Recurring & Auto-Charge Subscriptions Payment
Tokenized auto-charge engine for Odoo subscriptions, memberships, and rentals — saved-card renewals, proration, and retries. Built to order.
- Saved-token auto-charge on renewal — vaults a payment.token on first subscription, then captures automatically on each recurring date with zero customer interaction
- Multi-gateway tokenization built on Odoo's payment.token / payment.provider abstraction, so the same auto-charge logic spans Stripe and other tokenizing acquirers we wire for your region
- Proration and plan-change billing — upgrades, downgrades, and mid-cycle switches compute prorated credits/charges against the remaining period on the resulting account.move
- Mandate and consent capture — records recurring-payment authorization (amount, cadence, start date, IP/timestamp) and generates a QWeb mandate document for audit and dispute defense