Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Payment Providers
  3. Stripe Processing Fee Extension v 19.0
  4. Sales Conditions FAQ

Stripe Processing Fee Extension

by Shadail Technology https://www.shadailtech.com
Odoo

$ 30.20

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • eCommerce (website_sale)
• Discuss (mail)
• Invoicing (account)
• Website (website)
Lines of code 560
Technical Name fees_extension_stripe
LicenseLGPL-3
Websitehttps://www.shadailtech.com
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • eCommerce (website_sale)
• Discuss (mail)
• Invoicing (account)
• Website (website)
Lines of code 560
Technical Name fees_extension_stripe
LicenseLGPL-3
Websitehttps://www.shadailtech.com
icon

Odoo 19 · Accounting / Payment Providers

Stripe Processing Fee Extension

Shadail Technology

Auto-calculate, display & reconcile Stripe card processing fees on the Odoo payment portal in real time.

Auto-calculate, display & reconcile Stripe card processing fees on the Odoo payment portal in real time.

✔ Real-time fee shown instantly on payment portal ✔ Configurable rate — set your own % & fixed amount
✔ Dedicated order line for clean accounting ✔ Card-only trigger — bank transfers remain fee-free
✔ Idempotency safe — no duplicate fee lines on retries ✔ Webhook integration — fee auto-created on confirmation
✅  Community
Supported
✅  Enterprise
Supported
✅  Odoo.sh
Supported
❌  Online (SaaS)
Not Supported
📦 v19.0.1.0.0🏢 Shadail Technology🔒 LGPL-3💳 Stripe📂 Accounting / Payment
Who Can Use It?

💳 eCommerce Businesses — Pass Stripe card processing fees transparently to customers on the website checkout page.

📊 Finance & Accounting Teams — Get a clean, dedicated order line for processing fees that flows automatically into invoices and accounting reports.

🛒 B2B & B2C Sellers — Recover Stripe fees from customers who pay by card while keeping bank-transfer and ACH options free of charge.

⚙️ Odoo Administrators — Configure the fee rate in minutes directly from the Stripe payment provider form — no code changes or custom roles needed.

🔧 Developers & Integrators — Leverage a clean OWL + Python implementation with no monkey-patching and idempotency built in for safe cron retries.

Why Choose This Extension?

⚡ 100% Transparent — Customers see the exact fee before confirming — order subtotal, processing fee, and total charged — no surprises at checkout.

🎯 Clean Accounting — The fee lands as a dedicated product line on the sale order and flows into the invoice, reportable via a separate income account.

🚀 Zero Configuration Overhead — One screen to set the rate, one auto-created fee product, no new security groups — up and running in under five minutes.

🛡️ Idempotency Safe — Duplicate fee lines are prevented even when Odoo's payment cron retries a transaction multiple times.

🔗 Webhook-Powered Reconciliation — The fee order line is created on Stripe payment confirmation via webhook — no manual reconciliation needed.

Stripe Processing Fee Extension — How It Works

When a customer reaches the payment step and selects a card method, the fee breakdown block appears automatically below the order summary. The fee is calculated in real time using the formula:

💡
Fee Formula: Fee = (Order Total × Fee %) + Fixed Fee
For Stripe's standard US rate: (total × 0.029) + 0.30

After successful payment, the Stripe webhook fires and Odoo creates the fee as a dedicated order line on the confirmed sale order — using the auto-created Processing Fee product — and it flows into the invoice automatically.

If the customer switches to bank transfer or ACH at any point, the fee panel disappears and no fee line is created. This makes the experience completely transparent and fair.

💳 Example Payment Summary — Card Payment
Order Subtotal $100.00
Stripe Processing Fee 2.9% + $0.30 $3.20
Total Charged $103.20
🏦 Example — Bank Transfer (No Fee)
Order Subtotal $100.00
Processing Fee $0.00
Total Charged $100.00
Highlights of STRIPE PROCESSING FEE EXTENSION
⚡

Real-Time Fee Calculation

⚙️

Configurable Rate

🧾

Separate Line Item

💳

Card-Only Trigger

🛡️

Idempotency Safe

🔗

Webhook Integration

📋

Portal Transparency

💾

Saved Card Support

🔓

No Custom Roles

💰

Auto Fee Reconciliation

Key Features

Recover Stripe Card Fees Transparently — Zero Manual Work

The Stripe Processing Fee Extension wires into Odoo's existing Stripe payment provider and website checkout pipeline. One configuration screen, one auto-created fee product, and a Stripe webhook that writes the fee line back to the sale order automatically after payment — all without any new security groups, custom cron jobs, or code changes.

Real-Time Fee Calculation Fee is computed and displayed instantly on the payment portal the moment the customer selects a card payment method, using the formula (total × fee%) + fixed_fee.
Configurable Rate Set your own percentage (e.g. 2.9%) and fixed amount (e.g. $0.30) per payment provider directly in Accounting → Configuration → Payment Providers → Stripe — no code change required.
Dedicated Fee Order Line The fee appears as a separate product line on the confirmed sale order and linked invoice, keeping accounting clean and auditable with its own income account.
Card-Only Trigger The fee panel is shown only when a card payment method is selected. Bank transfers and ACH payments remain fee-free, and the fee block disappears automatically when switching methods.
Idempotency Safe Duplicate fee lines are prevented even if Odoo's payment cron retries a transaction multiple times, ensuring no duplicate charges appear on the sale order.
Webhook Integration The fee order line is auto-created on payment confirmation via the Stripe payment_intent.succeeded webhook using a safe sudo pattern — no manual reconciliation needed.
Portal Fee Breakdown Full fee breakdown — Order Subtotal, Processing Fee (with rate badge), and Total Charged — is shown to customers before they confirm payment. Complete transparency with no surprises.
Saved Card Support Fee breakdown also appears correctly when customers pay with a saved card on file in the Odoo customer portal.
No Custom Roles Uses existing Accounting Manager access for configuration — no new security groups, custom roles, or access rights CSV entries are required.
Auto Fee Product A Processing Fee product is created automatically during installation and linked to the Stripe provider. The income account can be customised on the product form for separate revenue tracking.
Setup Guide, Payment Flow & Technical Reference
  • ⚙️ Step-by-Step Setup
  • 🔄 Payment Flow
Step-by-Step Setup Guide

Follow these steps from installation through live fee collection.

  1. Install the Module

    Go to Apps → Search "Stripe Processing Fee Extension" → Install. The module adds fee-related fields to the Stripe payment provider configuration.

    💡
    Prerequisites: The module requires payment_stripe sale website_sale. The Stripe payment provider must be configured and active before the fee extension will work. A Processing Fee product is created automatically during installation.
  2. Configure the Processing Fee Rate

    Go to Accounting → Configuration → Payment Providers → Stripe. In the Processing Fee section, set the following fields:

    SettingDescription
    Fee PercentageThe variable part of the fee as a percentage of the order total. Default: 2.9%.
    Fixed FeeA flat amount added to every card transaction regardless of order size. Default: $0.30.
    Fee ProductThe Odoo product used as the order line for the fee. Created automatically during installation.
    💡
    Fee formula: Fee = (Order Total × Fee %) + Fixed Fee
    For Stripe's standard US rate: (total × 0.029) + 0.30
  3. Verify the Stripe Webhook is Active

    The fee order line is created when Stripe confirms payment via webhook. Ensure your Stripe webhook is properly configured in Odoo:

    • Go to Accounting → Configuration → Payment Providers → Stripe → Webhook.
    • Confirm the webhook URL is registered in your Stripe Dashboard under Developers → Webhooks.
    • Ensure the payment_intent.succeeded event is enabled.
    ⚠️
    Important: Without an active webhook, the fee line will not be added to the sale order after payment. The fee will still be collected by Stripe but will not be visible in Odoo.
  4. Customer Checkout Experience

    When a customer reaches the payment step and selects a card method:

    • The fee breakdown block appears automatically below the order summary.
    • It shows: Order Subtotal, Processing Fee (with the rate), and Total Charged.
    • The amounts update in real time if the customer switches between payment methods.
    • If the customer selects bank transfer or ACH, the fee block hides and no fee is charged.
    ✅
    Saved cards on file in the Odoo portal also trigger the fee breakdown correctly — no additional configuration needed.
  5. Review the Fee on the Sale Order

    After successful payment, open the confirmed sale order in Sales → Orders → Orders. The fee appears as a dedicated order line with the Processing Fee product. It is included in the invoice automatically when the order is invoiced.

    📊
    Accounting tip: The fee product uses a dedicated income account (configured on the fee product form) so you can report on processing fee revenue separately in Odoo's accounting reports.
Payment Flow

How the fee moves from the portal through to the sale order and invoice.

End-to-End Fee Flow
🛒 Customer Checkout
Selects card payment on portal
⚡ Fee Displayed
Breakdown shown in real time
✅ Payment Confirmed
Stripe webhook fires
🔗 Webhook Received
payment_intent.succeeded
🧾 Fee Line Added
SOL created on sale order

If the customer switches back to a bank-transfer method the fee panel disappears and no fee line is created. Switching back to card will show the fee again before confirmation.

Detailed Flow Notes
StepWhat HappensWhere
Card method selected JavaScript reads the current order total, applies (total × fee%) + fixed_fee, and renders the breakdown block below the payment summary. Website payment portal (browser)
Method switched If the customer selects a non-card method, the fee block is hidden immediately and the displayed total reverts to the original order subtotal. Website payment portal (browser)
Payment confirmed Customer confirms and Stripe processes the payment (including the fee amount) via the payment form. Stripe infrastructure
Webhook received Stripe sends payment_intent.succeeded to the Odoo webhook endpoint. Odoo's payment controller processes the event. Odoo payment controller
Fee line created The module's webhook handler locates the linked sale order, checks idempotency (no existing fee line), and creates the processing fee order line using a sudo pattern. Odoo server (Python)
Invoice propagation When the sale order is invoiced, the fee order line flows into the invoice automatically as a standard Odoo order line, posted to the fee product's income account. Odoo accounting
💡
Idempotency check: Before creating the fee line, the handler checks whether a fee line with the same product already exists on the sale order. This prevents duplicate lines if the webhook fires more than once or if Odoo's payment cron retries.
Technical Reference

Dependencies, data models, extensions, and configuration field reference for developers and integrators.

Module Dependencies
RequirementDetails
Odoo Version19.0 (Community or Enterprise)
Required Odoo modules payment_stripe sale website_sale
Stripe accountAn active Stripe account with the Odoo webhook configured (payment_intent.succeeded event enabled).
Python packagesNo additional packages required beyond standard Odoo dependencies.
Browser supportModern browsers with JavaScript ES6+ (Chrome 80+, Firefox 75+, Safari 13+, Edge 80+)
Data Models & Extensions
Model / ViewChange
payment.providerAdds stripe_fee_percentage, stripe_fee_fixed, and stripe_fee_product_id fields with a Processing Fee section on the provider form.
sale.orderAdds a helper method to locate or create the processing fee order line, with idempotency check built in.
Website payment form templateInjects the real-time fee breakdown block (subtotal, fee, total) below the order summary whenever a card method is active.
Website sale templateExtends the checkout page to surface the fee breakdown when a card method is selected, and hides it for non-card methods.
Stripe webhook controllerExtended to call the fee-line creation method on the sale order after payment_intent.succeeded is received.
Configuration Field Reference
FieldLocationDescription
stripe_fee_percentagePayment Provider formVariable fee as a decimal percentage (e.g., 2.9 for 2.9%).
stripe_fee_fixedPayment Provider formFixed fee added to every card transaction (e.g., 0.30 for $0.30).
stripe_fee_product_idPayment Provider formThe product used for the fee order line. Defaults to the auto-created Processing Fee product.
Fee product income accountProduct form (Accounting tab)The account used to post processing fee revenue. Set to a dedicated income account for separate fee reporting.
📓
No new security groups: This module does not add any new security groups or access rights entries. Configuration is restricted to users with the existing Accounting Manager role, which already has access to the Payment Providers configuration menu.
💡
Fee product customisation: The auto-created Processing Fee product can be edited like any other Odoo product. Set a dedicated income account on its Accounting tab to track processing fee revenue separately in financial reports.
Need Help, Custom Rates, or Multi-Provider Support?

This module is ready to use out of the box for Stripe card fee pass-through. If you need custom fee structures (tiered rates, per-country rates, multi-provider fee rules), additional payment provider support, or integration with your accounting workflow, our team at Shadail Technology is here to help with a tailored paid setup.

Note: This module integrates with standard Odoo 19 Stripe payment provider and website sale modules. For custom payment provider extensions or advanced fee logic, please contact our team.

Contact Us info@shadailtech.com +91 79773 52693
Important Note

This module has been tested with Odoo 19 standard payment_stripe, sale, and website_sale modules on Ubuntu OS.

We strongly recommend:

  • Installing it first on your testing or staging database with Stripe in test mode.
  • Verifying the fee appears correctly on the checkout page and on the confirmed sale order.
  • Confirming the Stripe webhook is active and the payment_intent.succeeded event is enabled.
  • Only then deploying it on your production environment.
⚠️
Legal notice: Passing processing fees to customers may be restricted or regulated in certain regions (e.g. some US states, EU countries). Please verify that your fee pass-through policy complies with applicable local regulations and Stripe's terms of service before enabling this module in production.
Shadail Technology

Odoo Solutions & Digital Transformation

© 2026 Shadail Technology
LGPL-3 License • Odoo 19

Get in Touch
💬 Contact Us ✉️ info@shadailtech.com 📞 +91 79773 52693
Address

Office no. 602, Raj Oaks, MTNL Rd,
Gokul Village, Mira Road East,
Mira Bhayandar, MH 401107

www.shadailtech.com

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with