Skip to Content
Backend Payment Stripe
Shadail Technology
Odoo Solutions & Digital Transformation
Compatible with
Community
Enterprise
Odoo 19 • Accounting / Payment Providers • OPL-1

Backend Payment Stripe

PCI-compliant Stripe card and ACH token management for the Odoo 19 backend — collect credit cards via Stripe Elements and bank accounts via SetupIntents without raw payment data ever touching the Odoo server.

📦 Version 19.0.1.0.0 🏢 Shadail Technology 💻 Odoo 19 🔒 PCI DSS Compliant 🔒 OPL-1 License ✅ Community & Enterprise
📋
Key Features
PCI-compliant Stripe token management for the Odoo 19 backend — cards and ACH bank accounts via Stripe.js and SetupIntents.

🛡️ PCI DSS Compliance — Raw card data never touches the Odoo server

Cards are collected via Stripe Elements (hosted iFrame). ACH details are tokenised via stripe.confirmUsBankAccountSetup on Stripe's servers. Odoo only receives a PaymentMethod ID — never raw card numbers or account data.

💳

PCI-Compliant Card Collection

Cards collected exclusively via Stripe Elements iFrame. A PaymentMethod ID is returned to Odoo after confirmation — raw card numbers never reach Odoo.

🏦

ACH Bank Account Support

US bank accounts tokenised via stripe.confirmUsBankAccountSetup. Supports instant verification (test) and micro-deposit verification (production).

📊

Stripe Customer Management

Create and update Stripe Customer objects (cus_xxx) directly from the Partner form. Customer ID stored and reused for all tokens on that partner.

🔄

SetupIntent Flow

Uses off_session SetupIntents for recurring backend-initiated charges — the industry-standard approach for saving payment methods without a checkout.

📝

Rich Token Metadata

Cards: brand, last4, expiry month/year. ACH: bank name, account last4, routing number, verification status and URL.

🗑️

Full Token Lifecycle

View, set as default, verify ACH tokens, soft-delete in Odoo, or hard-detach from Stripe — all from the partner's Stripe tab.

🧩

Payment Wizard Integration

Auto-detects Stripe when processing payments. Shows card/ACH toggle and inline token collection in the payment wizard from any business document.

Micro-Deposit Verification

Automatic instant verification in Stripe test mode. In production, generates a Stripe-hosted verification URL for the customer to confirm micro-deposits.

Token Types

💳 Credit / Debit Card

  • Collected via Stripe Elements iFrame
  • SetupIntent with usage: off_session
  • Immediately usable — no verification needed
  • Stores: brand, last4, expiry month/year

🏦 ACH Bank Account

  • Collected via Stripe.js ACH form
  • SetupIntent with us_bank_account
  • Instant (test) or micro-deposit (prod) verification
  • Stores: bank name, last4, routing number, status
⚙️
Admin Setup Guide
Configure the Stripe integration in Odoo 19 from scratch.
📌
Prerequisites: shd_backend_payment_core and Odoo's built-in payment_stripe must be installed before this module.
  1. Install Dependencies

    Ensure these modules are installed first:

    • shd_backend_payment_core — Shadail Technology Backend Payment Core
    • payment_stripe — Odoo's built-in Stripe provider
    • account — Accounting module
  2. Configure Stripe Payment Provider

    Stripe Configuration screen
    Configure the stripe payment provider.

    Go to Accounting → Configuration → Payment Providers → Stripe.

    • Enter your Publishable Key and Secret Key from your Stripe dashboard.
    • Set state to Test for sandbox testing or Enabled for live.
    • Ensure Allow Saving Payment Methods is enabled.
  3. Install This Module

    Go to Apps, search for SHD Backend Payment Stripe, and click Install.

  4. Create Stripe Customers for Partners

    Stripe Customer Creation screen
    Stripe customer creation from partner form view.

    Open any customer partner record. Go to the Stripe tab. Click Create Stripe Customer. The cus_xxx ID is saved on the partner automatically.

  5. Add Payment Tokens

    On the Stripe tab, click Add Card Token to open the Stripe Elements card dialog, or Add Bank Account to open the ACH collection form.

💡
Test mode: Use Stripe test card 4242 4242 4242 4242 (any future expiry, any CVC) to test card token creation. For ACH testing, use routing 110000000 and account 000123456789.
🔑
Card & ACH Token Guide
Managing Stripe tokens on partner records and processing payments with saved methods.

Stripe Tab on the Partner Form

SectionAvailable Actions
Stripe CustomerCreate Stripe Customer · Update Customer (pushes name/email/phone)
Credit Card TokensView saved cards (brand, last4, expiry) · Add Card Token · Set Default · Soft-delete · Hard-detach from Stripe
ACH Bank Account TokensView saved accounts (bank, last4, status) · Add Bank Account · Verify ACH · Set Default · Soft-delete · Hard-detach

Adding a Credit Card Token

  1. Create Stripe Customer First

    Ensure the partner has a Stripe Customer ID (cus_xxx). Click Create Stripe Customer on the Stripe tab if not yet created.

  2. Click Add Card Token

    A Stripe Elements dialog opens — the card input field is a Stripe-hosted iFrame. Enter card number, expiry, and CVC directly into the Stripe form.

  3. Confirm

    Odoo calls Stripe's SetupIntent API to confirm and save the card. A payment.token record is created automatically with brand, last4, and expiry metadata.

Adding an ACH Bank Account Token

  1. Click Add Bank Account

    Opens the ACH collection dialog. Enter bank routing number, account number, and account holder name.

  2. Stripe Tokenises the Details

    stripe.confirmUsBankAccountSetup is called — bank details are sent directly to Stripe's servers and tokenised. Only a PaymentMethod ID is returned to Odoo.

  3. Verification

    In test mode, verification happens automatically. In production, the token is saved with status Pending and a Stripe-hosted verification URL is stored for the customer to complete micro-deposit verification.

ACH Verification Status

✅ Verified

Token is ready to use for payments. Micro-deposit verification completed (or auto-verified in test mode).

⏳ Pending

Awaiting micro-deposit verification. Customer must visit the Stripe-hosted URL to confirm the two small deposits. Click Verify in Odoo to re-attempt automatic verification.

Token Management Actions

ActionEffect
Set as DefaultMarks is_default = True on the token — shown first in payment wizard dropdowns
Soft DeleteArchives the token in Odoo (active = False). Does NOT detach from Stripe — token can be re-activated if needed.
Detach from StripeCalls Stripe's /payment_methods/{id}/detach API AND archives in Odoo. Permanently removes the payment method from Stripe.
Verify ACHAttempts to verify a pending ACH token via SetupIntent API. Updates status to Verified if successful.
🛡️
PCI DSS & Technical Reference
Security architecture and token field reference for developers and compliance teams.

PCI DSS Compliance Architecture

Token TypeCollection MethodData Flow
Credit CardStripe Elements (hosted iFrame)Card data → Stripe servers → PaymentMethod ID returned to Odoo. Raw card numbers never reach Odoo.
ACH Bank Accountstripe.confirmUsBankAccountSetupBank details → Stripe SetupIntent → PaymentMethod ID returned. Routing/account numbers never stored in Odoo.
🔒
SAQ-A Eligible: Because all payment data collection happens in Stripe-hosted iFrames and Stripe.js, this integration qualifies for the simplest PCI DSS Self-Assessment Questionnaire (SAQ-A) scope.

Module Dependencies

📖
Depends on: shd_backend_payment_core, payment_stripe, account  |  License: OPL-1

Need Help Configuring Stripe on Odoo?

Our Odoo payment integration specialists at Shadail Technology can set up, test, and customise your Stripe integration.

Contact Us

Download the App From Here


Download App