Skip to main content
Recurring & Auto-Charge Subscriptions Payment for Odoo — Tokenized auto-charge engine for Odoo subscriptions, memberships, an — 1/1Illustrative preview

Tokenized 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

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
Failed-charge retry hook (dunning) — configurable retry schedule with exponential backoff, driven by an ir.cron automated action, before a subscription is flagged past-due
Automated renewal charging via ir.cron — a scheduled action scans due subscriptions, generates the renewal invoice, and captures payment server-side, no manual batch run
Off-session / merchant-initiated charge flag set correctly on each capture so acquirers don't decline auto-charges as suspicious card-not-present attempts
PCI-scope reduction — only the acquirer's token is stored in your Odoo DB (never the raw card number), keeping the database out of cardholder-data scope
Billing-team activity + notifications — on a hard failure the engine raises a mail.activity and emails the account manager so involuntary churn is caught, not lost
Customer self-service — end users can view active mandates, update/replace their saved payment method, and cancel from the Odoo portal (website_sale / portal views)
Idempotent capture logic — a payment reference guard prevents double-charging if a cron run overlaps or an invoice is re-processed
Full accounting integration — captured payments reconcile against the invoice via account.payment, so your journals, aging, and reporting stay accurate
Security via ir.model.access.csv + record rules — mandate and token records are scoped so only the owning customer and authorized billing users can read them
Multi-currency and multi-company aware — charges honor the subscription's currency and the correct company's acquirer credentials
XML-RPC / JSON-RPC hooks — optional external endpoints so an upstream app or your website can trigger/inspect mandates programmatically
Configurable retry-then-suspend policy — after N failed attempts the subscription auto-suspends or downgrades per the rule you choose, keeping churn handling consistent

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 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

CriterionECOSIRECustom BuildCompetitorOdoo Native
Off-session auto-charge on saved token at renewalCore capability — merchant-initiated capture via ir.cron, no customer actionBuildable but you engineer token vaulting, off-session flags, and cron yourselfVaries; many marketplace apps only email a payment linkPartial support
Built and installed for you on Odoo 17/18/19Yes — scoped, built, staged, and deployed by ECOSIREOnly if you have in-house Odoo developers to build and maintain itSelf-install binary; you configure and troubleshoot aloneIncluded
Proration on mid-cycle plan changeProrated credit/charge computed on the resulting account.moveMust be designed and tested from scratchInconsistent across apps; often manual credit notesPartial support
Mandate / recurring consent capture + QWeb documentRecorded (amount, cadence, timestamp) with an audit-ready QWeb mandateYou design the data model and reportRarely includedNot included
Failed-charge retry / dunning engineConfigurable retry-then-suspend with backoff + billing-team activityYou build the retry scheduler and state machineBasic or fixed retries in some appsNot included
Multi-gateway tokenizationGateway-agnostic on payment.token; acquirers wired for your regionEach acquirer integrated by handUsually locked to one or two providersPartial support
Source code ownership + right to modifyFull source handed over — read the ORM, adjust a compute, extend fieldsYou own it (you also built it)Often obfuscated/locked marketplace binaryIncluded
Ongoing support + version-compatibility checkPost-go-live support window + minor-version compatibility checkYou maintain it in perpetuityTicket queue; upgrades may cost extra or lagPartial 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.

Request a quote

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

Request a Quotation

Tell us about your Recurring & Auto-Charge Subscriptions Payment requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.