Skip to main content
Cashfree Payments for Odoo — A build-to-order Cashfree payment acquirer for Odoo that adds UPI, cards, netbanking and wallet  — 1/1Illustrative preview

A build-to-order Cashfree payment acquirer for Odoo that adds UPI,

cards, netbanking and wallet checkout with signature-verified webhooks and refunds.

ECOSIRE builds, installs and supports it for your Odoo 17, 18 or 19 instance.

What is Cashfree Payments for Odoo?

A build-to-order Cashfree payment acquirer for Odoo that adds UPI, cards, netbanking and wallet checkout with signature-verified webhooks and refunds. ECOSIRE builds, installs and supports it for your Odoo 17, 18 or 19 instance. 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

New `payment.provider` with `code = 'cashfree'`, sandbox/production state toggle, and `app_id`/`secret_key` stored on the provider record (never hardcoded)
Seamless checkout via the Cashfree JS/Drop-in SDK rendered through an OWL/QWeb payment form, plus a redirect (hosted-page) flow you can switch between
Server-side Cashfree `orders` call on payment to create the order for the Odoo transaction reference and INR amount, returning the `payment_session_id`
UPI (collect + intent), cards, netbanking and wallets exposed as selectable Cashfree payment methods
HMAC-SHA256 webhook verification of `x-webhook-signature` over the raw request body and timestamp, in constant time, before any transaction is set to `done`
Idempotent webhook and return-route handling so duplicate or replayed Cashfree callbacks never double-confirm or double-refund a transaction
`payment.transaction` extended for the create/verify handshake with correct state mapping (`draft`/`pending`/`authorized`/`done`/`cancel`/`error`)
Refund and Cashfree instant-refund support wired to Odoo credit notes and the customer portal, calling the `refunds` endpoint and reconciling the returned refund status
INR localization: amount rounding to paise, currency guard rejecting non-INR transactions, and correct decimal handling for Cashfree's expected order amount format
`ir.model.access.csv` plus record rules restricting acquirer credentials and transaction editing to accounting/system users; API secrets excluded from portal exposure
`website_sale` integration so eCommerce checkout, the sale order and the resulting invoice reconcile automatically on payment confirmation
Structured logging of every Cashfree request/response and webhook (secrets redacted) for auditability and dispute investigation
Version-matched build for Odoo 17.0, 18.0 or 19.0 on Community or Enterprise, respecting each version's `payment` framework API
XML-RPC/JSON-RPC compatible so external/headless order sources can create and read Cashfree transactions via the standard Odoo API

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

Indian merchants running Odoo eCommerce, invoicing or a customer portal quickly hit a wall: Odoo core ships payment acquirers for Stripe, PayPal, Razorpay, Mollie and a handful of others, but there is no Cashfree provider out of the box. If Cashfree is your settlement and payout rail, you are stuck either pushing customers to a hosted Cashfree link outside Odoo (breaking the automatic invoice-and-order reconciliation Odoo is built for) or hand-patching the payment module — which the next odoo/enterprise upgrade will silently overwrite. Neither path gives you signature-verified webhooks, INR-correct amounts, or a payment transaction that reliably confirms the sale order.

ECOSIRE builds a proper Cashfree payment provider as a self-contained module that plugs into Odoo's native payment framework. We add a new payment.provider record with code = 'cashfree', extend payment.transaction for the create-order and verify handshake, and register both a seamless (JS/Drop-in) and a server-to-server redirect checkout flow so you can pick the UX that fits your storefront. The module declares its __manifest__.py with a clean dependency on payment (and website_sale where you sell online), ships its provider form view and QWeb payment-form template in XML/OWL, and locks everything down with ir.model.access.csv plus record rules so only accounting and system users touch credentials. Sandbox and production app_id/secret_key live in the provider record with the state toggle, exactly like every core acquirer — no hardcoded keys.

Technically, the checkout works the way Cashfree's PG API expects. On payment, Odoo calls orders to create a Cashfree order for the transaction reference and amount in INR, then hands the payment_session_id to the Cashfree JS SDK (seamless) or redirects to the hosted page. The return route and, critically, the asynchronous webhook are both handled: we verify the Cashfree webhook using the HMAC-SHA256 signature (x-webhook-signature over the raw body + timestamp) computed with your secret, in constant time, before we ever mark a transaction done. That means a spoofed callback cannot confirm an unpaid order. UPI, cards, netbanking and wallets are all surfaced as available methods; refunds and Cashfree instant refunds are wired to Odoo's refund flow so a credit note or a portal-initiated refund calls the Cashfree refunds endpoint and reconciles the returned status back onto the transaction.

Because this is honest build-to-order work and not an app-store download, we build against your exact Odoo version (17.0, 18.0 or 19.0) and edition (Community or Enterprise — the payment framework differs subtly between them and between versions, which is precisely why a generic listing breaks). You get the module tested end-to-end in Cashfree sandbox on a staging copy of your database before anything touches production. Everything is exposed through Odoo's ORM and the standard XML-RPC/JSON-RPC API, so headless storefronts and external order sources can trigger and read Cashfree transactions the same way they read any Odoo payment.

Delivery is typically one working week from confirmed scope. It starts with a short scoping call to pin down your Odoo version and edition, whether you need seamless, redirect or both, which payment methods to enable, your refund and payout requirements, and your sandbox credentials. From there we build, run UAT on staging, then install and go live on your production instance with a documented rollback and a post-go-live support window.

What you get

  • Installable, version-matched module source code (the `cashfree_payment` addon) built for your exact Odoo 17.0/18.0/19.0 and edition
  • Installation and configuration on your instance: provider record, credentials, enabled methods, and the Cashfree webhook endpoint registered in your Cashfree dashboard
  • Technical documentation: module architecture, models/fields, webhook flow, security model, and configuration reference
  • End-user guide plus a live training session for your finance/ops team covering checkout, refunds and reconciliation
  • UAT on a staging copy of your database in Cashfree sandbox, with a documented go-live and rollback plan
  • Post-go-live support window for defect fixes and configuration adjustments
  • Private Git repository handover with full commit history and tagged release
  • Configuration checklist covering sandbox-to-production credential swap and webhook signature secret rotation

Who this is for

Indian D2C brand on Odoo eCommerce

Runs `website_sale` and needs UPI-first checkout with cards, netbanking and wallets, where every paid order auto-reconciles to its Odoo invoice instead of being confirmed by hand from a hosted Cashfree link.

SaaS/subscription merchant settling on Cashfree

Collects recurring INR payments and needs reliable signature-verified webhooks and instant refunds tied to Odoo's subscription and credit-note flow so revenue state in Odoo always matches Cashfree.

Finance/accounting lead

Owns reconciliation and disputes; needs INR-correct amounts, audit-grade transaction logs, and refunds that flow through Odoo credit notes rather than being processed separately in the Cashfree portal.

Odoo integrator / IT manager

Wants a clean addon that respects the native `payment` framework, ships with `ir.model.access.csv` and record rules, survives Enterprise upgrades, and exposes transactions over XML-RPC/JSON-RPC for other systems.

How Cashfree Payments for Odoo Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Cashfree support in OdooPurpose-built acquirer on the native payment frameworkPossible, but you design and maintain it yourselfMay exist but often unmaintained per versionNot available — no Cashfree provider in core
Odoo version/edition fitBuilt for your exact 17/18/19 + Community/EnterpriseWhatever your team targetsUsually one version; breaks on upgradeN/A — feature absent
Webhook signature verificationConstant-time HMAC-SHA256 before confirmOnly if you build it correctlyVaries; sometimes skipped or weakN/A
Checkout flowsSeamless SDK and redirect, your choiceWhatever you scope and codeOften redirect-onlyN/A
Refunds in OdooCredit-note + instant refund via `refunds` APIBuild and reconcile yourselfFrequently manual in Cashfree portalN/A
INR handlingPaise rounding + non-INR currency guardYour responsibilityInconsistentN/A
Testing before go-liveSandbox UAT on staging + rollback planDepends on your processNone — install at your own riskN/A
Ownership and supportFull source, Git handover, support windowYou own it and all its upkeepVendor-locked; support variesN/A

Frequently Asked Questions about Cashfree Payments

How long does delivery take?

This is a build-to-order module, not an instant download. Typical delivery is one working week from confirmed scope. The clock starts once we've agreed on your Odoo version and edition, the checkout flow(s) you need, payment methods, refund requirements, and you've provided Cashfree sandbox credentials. We build, run UAT on staging, then install on production.

Do you support Odoo 17, 18 and 19, Community and Enterprise?

Yes. We build against your exact version (17.0, 18.0 or 19.0) and edition. This matters because Odoo's `payment` framework changes between versions and differs subtly between Community and Enterprise — building for your specific target is exactly why a generic app-store listing tends to break on upgrade.

How are Cashfree webhooks secured?

Every webhook is verified with HMAC-SHA256 over the raw request body and timestamp against the `x-webhook-signature` header, compared in constant time using your secret, before a transaction is ever marked paid. A spoofed or replayed callback cannot confirm an unpaid order, and duplicate webhooks are handled idempotently.

Does it handle refunds, including instant refunds?

Yes. Refunds are wired into Odoo's native flow — an Odoo credit note or a portal-initiated refund calls Cashfree's `refunds` endpoint, and the returned refund status is reconciled back onto the payment transaction. Cashfree instant refunds are supported where enabled on your account.

What about ongoing support and updates?

Every build includes a post-go-live support window for defect fixes and configuration adjustments. Because you receive the full source and Git repository, you own the code outright. Beyond the included window we offer optional support and version-migration retainers — for example carrying the module forward to a future Odoo release.

Which payment methods are enabled?

UPI (collect and intent), cards, netbanking and wallets are all supported as Cashfree methods and can be enabled or disabled per your requirements. We only handle INR transactions and add a currency guard so non-INR orders don't reach Cashfree.

Can external systems trigger or read Cashfree payments?

Yes. The module is built on standard Odoo models, so `payment.transaction` records and the provider are fully accessible through Odoo's XML-RPC/JSON-RPC API. Headless storefronts or external order sources can create and read Cashfree transactions the same way they interact with any Odoo payment.

Request a quote

Cashfree Payments

A build-to-order Cashfree payment acquirer for Odoo that adds UPI, cards, netbanking and wallet checkout with signature-verified webhooks and refunds. ECOSIRE builds, installs and supports it for your Odoo 17, 18 or 19 instance.

  • New `payment.provider` with `code = 'cashfree'`, sandbox/production state toggle, and `app_id`/`secret_key` stored on the provider record (never hardcoded)
  • Seamless checkout via the Cashfree JS/Drop-in SDK rendered through an OWL/QWeb payment form, plus a redirect (hosted-page) flow you can switch between
  • Server-side Cashfree `orders` call on payment to create the order for the Odoo transaction reference and INR amount, returning the `payment_session_id`
  • UPI (collect + intent), cards, netbanking and wallets exposed as selectable Cashfree payment methods

Request a Quotation

Tell us about your Cashfree Payments 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.