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. Accounting
  3. Bank Feed: Plaid (US/CA/UK/EU) v 18.0
  4. Sales Conditions FAQ

Bank Feed: Plaid (US/CA/UK/EU)

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 18.0 Third Party 5
Download for v 18.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Versions 16.0 17.0 18.0 19.0
  • Description
  • Manifest
ERP Heritage · Accounting Suite
ERP Heritage Accounting Suite

Bank Feed: Plaid

Live bank transaction import from Plaid for US, Canada, UK, and European accounts with automatic statement line creation and idempotent reconciliation.

Free · LGPL-3Idempotent on Plaid IDNo IAP chargesv18.0.1.0.0
Live transaction sync
Automatic paging
Sign convention flip
Idempotent imports
Standard library HTTP

Why this module

Bank Feed: Plaid

NO COST

Bring Your Own Keys

Supply your own Plaid credentials (client id, secret, access token, account id); no IAP charges, no API tax, only your Plaid subscription cost.

IDEMPOTENT

Safe Repeated Runs

Recognizes Plaid transaction ids and skips duplicates on re-fetch. Reconciliation workflows can run daily without creating phantom transactions.

STANDARD LIB

Minimal Dependencies

Pure Python HTTP; no heavy SDKs to maintain. Credentials stay in your deployment; credentials never transmitted except to Plaid.

Day in the life

Banking team automates daily imports

Configure a connector profile once with Plaid credentials and account id. Scheduled jobs fetch new transactions every 2 hours into the linked bank journal. Duplicate-safe on Plaid id. A human reviews the statement in Odoo, matches entries, and posts.

Edge cases

The cases most modules quietly ignore.

In the shipped code today, each one a place where a cheaper module silently does the wrong thing.

Pagination

Plaid returns transactions in pages with a cursor. Code iterates until has_more is false, collecting all rows. Guards against infinite loops with a page limit of 50.

Account Filter

Plaid may return rows from other accounts in the same sync result. Code filters by account_id to import only the intended account.

Sign Flip

Plaid: positive amount = money out. Connector negates to Odoo convention (negative = debit). Both tests and the code explicitly document this mapping.

Date Window

Filters transactions to the requested since_date and until_date window. Rows outside the window are discarded silently to avoid stale imports.

Missing Data

Skips rows missing transaction_id, posted date, or amount. Returns None instead of erroring to tolerate partial API responses.

Currency Fallback

Uses row iso_currency_code if present, falls back to unofficial_currency_code or profile default (USD) if not.

What is inside

Built to do the job, end to end.

  • connectors/plaid_live.py. PlaidLiveConnector class extending LiveBankConnector. authenticate() validates credentials and selects Plaid host by environment. fetch_transactions() paginates /transactions/sync, filters by account and date window, negates amounts.
  • tests/test_plaid_live.py. test_sign_flip_and_filters() validates amount negation across two-page Plaid response. test_registered_over_stub() confirms live connector overrides stub. test_missing_credentials_raises() tests error path for incomplete config.
  • _map_transaction(). Static method converting Plaid row to BankTransaction. Filters by account_id, date range. Negates raw_amount (Plaid positive=out to Odoo negative=debit). Sets provider_reference to transaction_id for idempotency.
  • _credentials() and _HOSTS. Validates required fields (client_id, secret, access_token, account_id). Selects endpoint from sandbox/development/production enum. Raises ConnectorError if validation fails.

Honest about the edges

What this does not do, so nothing surprises you.

  • Requires Plaid subscription and a Live mode item (not Link-only). Customer must obtain client_id, secret, access_token, and account_id themselves.
  • Depends on eh_account_bank_statement_import parent module; the parent framework handles scheduling, journal binding, and statement creation. This module is a connector only.
  • Supports US, Canada, UK, and EU Plaid regions. Other geographies must check Plaid's API availability.
  • Does not parse merchant category codes or transaction type fields; imports only basic amount, date, name, merchant_name, and pending status.
  • Polling interval, retry logic, and error notification are managed by the parent framework, not the connector.
Search

Plaid bank integration, automatic bank statement import, live bank feed, transaction sync Odoo, Plaid connector, BYO Plaid credentials, idempotent import, multi-region banking, account reconciliation, US Canada UK EU banking, no IAP bank feed, open source bank connector

More from ERP Heritage

Modules teams pair with this one.

Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.

USD 99
Ireland - Payroll ROS

Real-time PAYE Modernisation for Irish payroll

USD 199
Project Gantt Pro

PMO grade upgrade for the Project Gantt planner

USD 9
Employment Hero Australia

The Australia country pack for the ERP Heritage Employment Hero integration

USD 19
Employment Hero Documents

Sync certifications, qualifications and employee document metadata from the Employment Hero people platform into...

USD 19
Employment Hero Leave

Sync Employment Hero leave categories, leave requests and leave balances into the standard Odoo Time Off app, wit...

USD 50
Hijri Date Everywhere

Show the Hijri (Umm al-Qura) date alongside Gregorian dates across Odoo 18

ERP Heritage

v18.0.1.0.0 · LGPL-3 · Odoo 18 Community

Developed by Odoo Implementation Australia • LinkedIn

Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Invoicing (account)
• Discuss (mail)
Community Apps Dependencies Show
• Bank Statement Import
• Accounting Suite Base
Lines of code 6282
Technical Name eh_account_bank_statement_import_plaid
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/

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, please use the developer contact information. They can usually be found in the description.
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