Skip to main content
Payment Surcharge & Convenience Fee for Odoo — Automatically add a per-payment-method surcharge or convenience fee to Odoo or — 1/1Illustrative preview

Automatically add a per-payment-method surcharge or convenience fee to Odoo orders and online checkout,

with tax-aware fee lines, country/threshold caps, and refund-safe handling.

ECOSIRE scopes, builds, installs and supports it for your Odoo 17/18/19.

What is Payment Surcharge & Convenience Fee for Odoo?

Automatically add a per-payment-method surcharge or convenience fee to Odoo orders and online checkout, with tax-aware fee lines, country/threshold caps, and refund-safe handling. ECOSIRE scopes, builds, installs and supports it for your Odoo 17/18/19. 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

Per-`payment.provider` surcharge rules: fixed amount, percentage of order total, or a fixed-plus-percentage blend, configured in the backend
Dedicated `payment.surcharge.rule` model with `@api.depends` compute that recalculates the fee whenever the cart total or selected provider changes
Surcharge written as its own labeled order/invoice line via a configurable service product so it flows into `amount_tax` and `amount_total` correctly
Three tax modes per rule: taxable (VAT/GST applied), tax-inclusive, or tax-exempt — chosen so surcharge tax is handled honestly, not buried
Country and currency scoping through `res.country` / `res.currency`, so surcharges apply only where they are legal for you
Minimum-order thresholds and hard caps (max fixed amount or max percentage) to respect legal ceilings and avoid over-charging
Transparent disclosure on the website checkout payment step via QWeb/OWL templates — fee shown with label and explanation before the customer confirms
Refund-safe handling: surcharge line reverses proportionally on `account.move` credit notes and partial refunds instead of being retained
Backend sale-order, invoice, and (optionally) POS coverage so the same fee logic applies across every sales channel
Access controlled by `ir.model.access.csv` plus record rules; only authorized roles can create or edit surcharge rules
Rule changes chatter-logged on the configuration record for a full audit trail
Exposed through the XML-RPC / JSON-RPC API so external channels and integrations compute identical surcharges
Optional automated action that flags orders where discounts push the effective surcharge past your configured cap
QWeb receipt/invoice report templates updated to itemize the surcharge line clearly for the customer

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

Card processing and gateway fees quietly erode margin on every transaction, and many merchants want to pass those costs to customers where it is legally permitted. Out of the box, Odoo has no concept of a payment-method surcharge: the payment.provider and payment.transaction models charge the cart total as-is, and while you can bolt a manual fee line onto a sale order or invoice, there is no automation that reads which provider the customer selected, computes a fee against the right tax treatment, respects local caps, and shows it transparently before the customer commits to pay. Doing this by hand is error-prone and impossible to enforce consistently across the website shop, backend sales, and POS.

This module adds a first-class surcharge engine to Odoo. We introduce a configuration model (extending res.config.settings plus a dedicated payment.surcharge.rule model) where you define, per payment.provider, a fixed amount, a percentage, or a blended rule. A @api.depends-driven compute recalculates the fee whenever the order total or selected provider changes, then writes a dedicated surcharge line onto the sale.order / account.move using a configurable service product so the amount flows correctly into amount_tax and amount_total. The fee line carries the tax position you choose (taxable, tax-inclusive, or tax-exempt), so VAT/GST is handled honestly rather than being buried. Rules support country and currency scoping via res.country, minimum-order thresholds, and hard caps so the surcharge never exceeds a legal ceiling or a fixed maximum.

Transparency and compliance are built in. On the website checkout (QWeb/OWL templates on the payment step) the fee is disclosed with its own labeled line and a short explanation before the customer confirms — never a hidden charge added after the fact. Access is governed by ir.model.access.csv and record rules so only authorized roles edit surcharge rules, and every rule change is chatter-logged. Refunds are handled safely: when an order is refunded or partially refunded via account.move reversal, the surcharge line is reversed proportionally rather than being silently retained, and credit notes reflect the correct net. The same rule engine is exposed to the XML-RPC/JSON-RPC API so external channels and marketplace integrations compute identical fees, and an optional automated action can flag orders where a manual discount would push the effective surcharge above your configured cap.

Because this is build-to-order, ECOSIRE tailors the rules, tax handling, and checkout wording to your jurisdiction and gateways rather than shipping a generic download. After a short scoping call we confirm the exact provider matrix, legal caps, and tax treatment, then build and test the module against your Odoo 17.0, 18.0, or 19.0 (Community or Enterprise) on a staging database. Typical delivery is one working week from confirmed scope. You receive the installable source, documentation, a training session, and a post-go-live support window — no fabricated demos, just working code installed on your instance.

What you get

  • Installable module source code targeted to your exact Odoo version (17.0, 18.0, or 19.0) and edition
  • Installation and configuration on your environment, including surcharge rules, tax modes, caps, and provider mapping
  • Technical documentation: model/field reference, `__manifest__.py` dependencies, security rules, and API usage notes
  • User guide plus a live training session for your finance and sales-ops team
  • UAT on a staging database with sign-off, plus a documented rollback plan
  • Post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover with full commit history and versioning
  • Version-compatibility notes covering Community vs Enterprise differences relevant to your setup

Who this is for

Card-cost-recovery merchant

A retailer or B2B seller who pays 2-3% in card/gateway fees and wants to legally pass a surcharge to customers per payment method, with the fee disclosed transparently before checkout so it holds up to card-scheme and consumer-protection rules.

Finance controller needing tax-correct fees

A finance lead who cannot accept a fee line that mishandles VAT/GST. They need the surcharge to post into `account.move` with the right tax treatment and to reverse cleanly on refunds and credit notes.

Multi-country / multi-channel operations manager

An ops manager selling across countries and channels (website, backend, POS, API) who needs surcharge rules scoped by country/currency with caps, applied identically everywhere via one rule engine.

Odoo administrator or partner

An in-house admin or implementation partner who wants a maintained, access-controlled module with clear docs and a git handover rather than a fragile studio hack or a generic app that ignores their tax and legal caps.

How Payment Surcharge & Convenience Fee for Odoo Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Per-method fee logicFixed, %, or blended rule per payment providerWhatever you code yourselfOften one flat fee for all methodsNo surcharge concept at all
Tax handling on feeTaxable, inclusive, or exempt mode into account.moveMust be built and tested carefullyFrequently mishandles VAT/GSTManual fee line, no automation
Legal caps & country scopingThresholds, caps, res.country/currency scopingPossible but time-consuming to buildRarely supports caps or country rulesNone
Checkout transparencyLabeled fee line disclosed before pay (QWeb/OWL)Depends on your template workDisclosure varies, sometimes hiddenN/A
Refund handlingProportional reversal on credit notesMust be engineered explicitlyOften retains fee on refundManual correction only
API / channel coverageSame rules via XML-RPC/JSON-RPCExtra integration workUsually website-onlyNo fee to expose
Fit to your jurisdictionScoped to your gateways, tax, and legal capsFully yours but you own all effortGeneric, one-size-fits-allNone
Support & handoverDocs, training, support window, git repoOnly what your team documentsVendor ticket queue, no source insightCommunity forums only

Frequently Asked Questions about Payment Surcharge & Convenience Fee

How long does delivery take?

This is a build-to-order module, not an instant apps.odoo.com download. Typical delivery is one working week from confirmed scope. After a short scoping call we lock the provider matrix, tax treatment, legal caps, and checkout wording, then build and test on your staging database before go-live. Complex multi-country or POS-inclusive builds may run slightly longer, which we confirm before you commit.

What support and updates do I get after go-live?

Every build includes a post-go-live support window for defect fixes and configuration adjustments, plus a git repository handover so you own the code. We can also quote ongoing maintenance and version upgrades — for example migrating the module when you move from Odoo 17.0 to 18.0 or 19.0. Because you hold the source, you are never locked in.

Is passing a card surcharge to customers actually legal?

It depends on your country, card scheme rules, and the payment method. Some regions cap or prohibit surcharges on certain cards while allowing convenience fees or surcharges on others. We build the rules to your legal advice — including country/currency scoping and hard caps — and disclose the fee transparently at checkout, but you remain responsible for confirming what is permitted in your jurisdiction.

Does it handle VAT/GST on the fee correctly?

Yes. Each rule has a tax mode — taxable, tax-inclusive, or tax-exempt — and the surcharge posts as a proper order/invoice line via a configurable service product so it flows into `amount_tax` and `amount_total`. This keeps your `account.move` records and credit notes accurate rather than burying the fee.

What happens on refunds?

The module is refund-safe. When an order is fully or partially refunded through an `account.move` reversal, the surcharge line reverses proportionally rather than being silently kept, so credit notes reflect the correct net amount. We validate this behavior during UAT on your staging database.

Will it work with my Odoo version and edition?

We build and test against your specific Odoo 17.0, 18.0, or 19.0, Community or Enterprise. Some surcharge coverage (for example certain POS or website-payment hooks) differs between editions; we confirm exactly what applies to your setup during scoping and note any Community-vs-Enterprise differences in the handover docs.

Does the surcharge apply through the API and external channels?

Yes. The rule engine is exposed through Odoo's XML-RPC/JSON-RPC API, so orders created by external channels, marketplaces, or custom integrations compute the same surcharge as the website and backend. This prevents mismatches where an integration bypasses the fee.

Request a quote

Payment Surcharge & Convenience Fee

Automatically add a per-payment-method surcharge or convenience fee to Odoo orders and online checkout, with tax-aware fee lines, country/threshold caps, and refund-safe handling. ECOSIRE scopes, builds, installs and supports it for your Odoo 17/18/19.

  • Per-`payment.provider` surcharge rules: fixed amount, percentage of order total, or a fixed-plus-percentage blend, configured in the backend
  • Dedicated `payment.surcharge.rule` model with `@api.depends` compute that recalculates the fee whenever the cart total or selected provider changes
  • Surcharge written as its own labeled order/invoice line via a configurable service product so it flows into `amount_tax` and `amount_total` correctly
  • Three tax modes per rule: taxable (VAT/GST applied), tax-inclusive, or tax-exempt — chosen so surcharge tax is handled honestly, not buried

Request a Quotation

Tell us about your Payment Surcharge & Convenience Fee 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.