Skip to main content
Authorize.Net Gateway for Odoo — A build-to-order Authorize — 1/1Illustrative preview

A build-to-order Authorize.Net payment provider for Odoo that adds Accept.js hosted-field card entry,

CIM customer-profile tokenization, and full auth/capture/refund/void reconciliation.

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

What is Authorize.Net Gateway for Odoo?

A build-to-order Authorize.Net payment provider for Odoo that adds Accept.js hosted-field card entry, CIM customer-profile tokenization, and full auth/capture/refund/void reconciliation. ECOSIRE builds, installs, and supports it for your Odoo 17/18/19 environment. 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

`payment.provider` subclass registered as an Authorize.Net provider with sandbox and production modes toggled per environment
Accept.js hosted fields embedded in the Odoo checkout — card data is tokenized to a payment nonce client-side and never reaches your server or database
CIM customer-profile and payment-profile creation, persisted as Odoo `payment.token` records storing only profile IDs, not card numbers
Full transaction lifecycle: authorize-only, prior-auth capture, full and partial refund, and void of un-settled transactions
Webhook controller that verifies the Authorize.Net signature key (HMAC-SHA512) and reconciles settlement and refund events to Odoo transaction state
USD and CAD support with correct currency-to-processor mapping and minor-unit handling via `_get_supported_currencies`
Saved-card charging for returning customers and back-office agents through stored CIM profiles
Dedicated request/response log model for every Authorize.Net API call, for dispute and audit trails
Security via `ir.model.access.csv` and record rules scoping tokens and transactions to the owning company and partner
API Login ID and Transaction Key stored as encrypted config parameters, never exposed in list/form views or logs
Automated action to flag transactions that never receive a matching webhook within a configurable window
Optional POS and back-office 'charge saved card' action for phone/MOTO orders using CIM profiles
AVS and CVV response codes captured and surfaced on the transaction form for fraud review
Idempotent transaction handling so duplicate webhook deliveries or retries never double-post payments

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

North American merchants who run on Authorize.Net hit a wall in Odoo quickly: the standard payment framework ships connectors for Stripe, Adyen, PayPal and a handful of others, but there is no maintained Authorize.Net provider for Odoo 17/18/19. Teams end up processing cards outside Odoo and re-keying transactions, or bolting on a fragile redirect that never tokenizes the card — which means no saved cards, no subscription-style repeat charges, and manual reconciliation every time a refund is issued. When your acquiring relationship, chargeback history, and CAD/USD settlement all live with Authorize.Net, "just switch to Stripe" is not an answer.

We build a proper payment.provider implementation for Authorize.Net that behaves like a first-class Odoo gateway. Card data is captured through Accept.js hosted fields rendered inside the Odoo checkout, so the raw PAN is exchanged for a one-time payment nonce in the browser and never touches your server or database — keeping you in SAQ A-EP scope rather than handling card data directly. On the server side a new provider model extends payment.provider with _get_supported_currencies, sandbox/production credential fields (API Login ID and Transaction Key stored as Odoo config parameters, not in plain views), and the transaction methods _send_payment_request, _send_refund_request, and a _handle_notification_data hook wired to Authorize.Net webhooks. The payment.token model is backed by CIM (Customer Information Manager): on first successful charge we create a customer profile and payment profile, then store only the resulting profile IDs so returning customers and back-office agents can charge saved cards without re-entering details.

Technically the module is a clean, upgrade-safe addon. The __manifest__.py declares dependencies on payment and account, security is enforced through ir.model.access.csv plus record rules scoping tokens and transactions to the owning company and partner, and all API calls go through the Authorize.Net JSON transaction API with explicit request/response logging to a dedicated model for audit. We support the full transaction lifecycle — authorize-only, prior-auth capture, full and partial refund, and void of an un-settled transaction — surfaced as buttons on the payment transaction form via XML/OWL views. A webhook controller validates the Authorize.Net signature key and reconciles asynchronous settlement and refund events so Odoo's transaction state always matches the gateway, and an optional automated action can flag transactions that never receive a matching webhook. USD/CAD localization covers currency-to-processor mapping and correct minor-unit handling for both currencies.

Because this is build-to-order, nothing ships as a blind download. We start with a short scoping call to confirm your Odoo version and edition (Community or Enterprise), whether you need eCommerce checkout, back-office/POS charging, or subscription repeat-billing, and your sandbox credentials. Typical delivery is one working week from confirmed scope. You receive installable source code targeted at your exact Odoo version, deployment on a staging database for UAT with a documented rollback plan, and a go-live support window. Everything integrates with the standard Odoo APIs — the provider works through the native payment flow and is reachable via XML-RPC/JSON-RPC — so nothing about your existing invoicing, sales, or accounting posture changes.

What you get

  • Installable module source code targeted at your exact Odoo version (17.0, 18.0, or 19.0) and edition
  • Installation and configuration on your environment, including sandbox and production credential setup
  • Technical documentation: provider model, webhook endpoint, CIM token model, and config parameters
  • End-user and admin guide plus a live training session for checkout, refunds, and saved-card charging
  • UAT on a staging database with sandbox credentials, then a documented cutover and rollback plan
  • Post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover with full commit history and tagged release
  • Sandbox test-card matrix and reconciliation runbook for verifying auth/capture/refund/void flows

Who this is for

US/Canada merchant on Authorize.Net

Runs Odoo eCommerce or invoicing but already has an Authorize.Net acquiring relationship and chargeback history they can't move. Needs native card acceptance inside Odoo without switching processors.

Subscription and repeat-billing operator

Charges the same customers on a recurring basis and needs CIM tokenized cards so agents or automations can bill saved profiles without re-collecting card details every cycle.

Finance / controller responsible for reconciliation

Wants every capture, refund, and void reflected automatically in Odoo transaction state via webhooks, with a full API audit log so month-end reconciliation against the Authorize.Net settlement report is clean.

Odoo implementation partner or in-house dev team

Needs a maintained, upgrade-safe provider addon with readable source and a git handover, rather than owning a fragile custom PCI integration built and tested from scratch.

How Authorize.Net Gateway for Odoo Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Authorize.Net support in Odoo 17/18/19Purpose-built provider for your versionPossible but you build and own itRare and often stale for latest versionsNot available in core
Card data handling / PCI scopeAccept.js hosted fields, SAQ A-EPDepends entirely on your buildVaries; some post raw card dataN/A — no Authorize.Net flow
Saved cards / tokenizationCIM customer + payment profilesMust design token model yourselfOften charge-only, no CIMNone
Refund / void / capture in OdooFull lifecycle from the transaction formEach action hand-codedFrequently capture-onlyNone
Webhook reconciliationSignature-verified, auto-reconciledYou implement and secure itOften absent or unsignedNone
USD / CAD localizationMapped with correct minor unitsYour responsibilityInconsistentN/A
Maintenance & source ownershipFull source + git handover + support windowYou own all upkeepVendor-locked, per-version paywallN/A
Audit / dispute loggingDedicated API request/response log modelAdd it yourselfUsually minimal loggingNone

Frequently Asked Questions about Authorize.Net Gateway

How long does delivery take?

This is build-to-order, not an instant download. Typical delivery is one working week from confirmed scope, depending on your Odoo version, edition, and whether you need eCommerce checkout, back-office charging, or subscription repeat-billing. We start with a short scoping call, deliver to a staging database for UAT, then schedule go-live.

Which Odoo versions and editions do you support?

We build for Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. The provider uses the standard `payment` framework, so it works the same on either edition; the only edition-specific differences are around Enterprise-only apps you may want to charge from, which we confirm on the scoping call.

Is card data PCI-safe? Does the PAN touch our server?

No. We use Authorize.Net Accept.js hosted fields, so the raw card number is exchanged for a one-time payment nonce in the customer's browser and is never sent to or stored on your Odoo server. Saved cards are stored as CIM profile IDs only. This keeps you in the lighter SAQ A-EP scope rather than handling card data directly.

Can returning customers and our agents charge saved cards?

Yes. On the first successful charge we create an Authorize.Net CIM customer profile and payment profile and store the profile IDs as an Odoo `payment.token`. Customers can reuse saved cards at checkout, and back-office or POS agents can charge a stored profile for phone/MOTO orders without re-entering card details.

How are refunds, captures, and reconciliation handled?

The transaction form exposes authorize-only, capture, full/partial refund, and void actions. A webhook controller validates the Authorize.Net signature key and reconciles settlement and refund events back to Odoo transaction state, and every API call is logged to a dedicated audit model so your settlement report and Odoo always agree.

What about support and updates after go-live?

Every engagement includes a post-go-live support window for defect fixes and configuration adjustments. Because you receive the full source and a git repo handover, your team can maintain it going forward, and we can quote ongoing support or a version upgrade (for example when you move to a newer Odoo release) separately.

Do you support both USD and CAD?

Yes. The provider maps supported currencies through `_get_supported_currencies` and handles USD and CAD with correct minor-unit amounts. If you sell in additional currencies we confirm which ones your Authorize.Net account is enabled for during scoping.

Request a quote

Authorize.Net Gateway

A build-to-order Authorize.Net payment provider for Odoo that adds Accept.js hosted-field card entry, CIM customer-profile tokenization, and full auth/capture/refund/void reconciliation. ECOSIRE builds, installs, and supports it for your Odoo 17/18/19 environment.

  • `payment.provider` subclass registered as an Authorize.Net provider with sandbox and production modes toggled per environment
  • Accept.js hosted fields embedded in the Odoo checkout — card data is tokenized to a payment nonce client-side and never reaches your server or database
  • CIM customer-profile and payment-profile creation, persisted as Odoo `payment.token` records storing only profile IDs, not card numbers
  • Full transaction lifecycle: authorize-only, prior-auth capture, full and partial refund, and void of un-settled transactions

Request a Quotation

Tell us about your Authorize.Net Gateway 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.