Skip to main content
iVentureTeam
Odoo Implementation

Odoo Canada EFT Payments: CPA-005 vs 80-Byte Files, Setup and Tests

Odoo Canada EFT payments explained: CPA-005 vs 80-byte files, which banks take which format, setup in Odoo 19 and 20, and how to test before go-live.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
November 13, 202613 min read1 view
Odoo Canada EFT Payments: CPA-005 vs 80-Byte Files, Setup and Tests cover

Most Canadian finance teams learn about EFT file formats the hard way: the bank portal rejects the first upload. Odoo covers one format natively, and the rest is a question for our Odoo customization services team or your own developers.

Related service: Odoo implementation services — fixed-scope implementations with a named senior team.

This guide is for controllers, AP leads and Odoo project owners in Canada who want vendor payments to leave Odoo as one clean bank file. If you still need the tax side, start with our guide to Odoo GST, HST and PST setup in Canada.

What are Canadian EFT payments in Odoo?

Canadian EFT payments in Odoo are vendor payments grouped into a batch and exported as one bank file that you upload to your banking portal. Odoo does not push money to the bank itself; the file does that job.

Odoo's Canada page describes EFT as the primary system used by businesses to automate payroll, pay suppliers and collect recurring payments. In daily use it replaces cheque runs and one-by-one online transfers.

You register payments on vendor bills, group them into a batch payment, and validate it. Odoo then attaches a text file. Our guide on how Odoo Accounting works covers the journals behind it.

CPA-005 vs 80-byte: what is the difference between the EFT file formats?

Canadian EFT file formats: CPA-005 or 80-byte: which file does Odoo send?

CPA-005 is the national standard file with 1,464-character records, while an 80-byte EFT file is a bank-defined layout with one 80-character line per record. Both carry the same business data: who gets paid, how much, and on which date.

Payments Canada's Standard 005 sets the CPA-005 rules. Each record has a 24-character header plus six payment segments of 240 characters, so up to six payments sit on one line. A header record opens the file and a control-total record closes it.

The 80-byte format is not one published national standard. TD, for example, names its import format "TD 80 Byte EFT", and a file built for one bank may not load at another.

FactorCPA-005 (1,464-byte)80-byte EFT
Who defines itPayments Canada, Standard 005Each bank, in its own layout document
Record length1,464 characters per record80 characters per line
Payments per recordUp to six segments of 240 charactersUsually one payment detail per line
Odoo supportNative module, CPA005 PaymentsNo native module; custom or third-party export
PortabilitySame core standard across banksTied to one bank's layout
Typical triggerBank accepts standard 005 uploadsBank portal only imports its own 80-byte file

Which Canadian banks accept CPA-005 or 80-byte files?

Bank support differs by bank and by the cash management service you signed, so the bank's own file specification is the only safe answer.

BankWhat its public material showsWhat to ask the bank
RBCA CPA-005 credit file specification for ACH Direct Deposits, built on 1,464-character recordsClient number, processing centre code, test file rules
TDWeb Business Banking imports "TD 80 Byte EFT" files and refuses files over 10,000 KBThe TD 80-byte field definitions and originator setup
ScotiabankAn EFT Payments Reference Guide (January 2026) covering file upload, with formats left to its help centreAccepted file layouts and cut-off times
Other banks and credit unionsVaries by institution and serviceWhich layout, which IDs, and how test files are flagged

Ask before any Odoo work starts: which layout does our agreement accept, which IDs go in the file, and how do we submit a test file? The answers decide whether you need configuration only or a custom export.

Does Odoo support CPA-005 in Odoo 19 and Odoo 20?

Odoo supports CPA-005 natively through the CPA005 Payments module (l10n_ca_payment_cpa005), and the documented steps are the same in Odoo 19 and Odoo 20. We compared both versions of the Canada page and found no change in the EFT section.

In an Odoo forum tutorial, an Odoo staff member notes that CPA005 is available from version 17.2. So Odoo 18 databases have it too.

Three limits are worth knowing before you promise anything to finance:

  • Outgoing only in the docs: the documented workflow pays vendor bills. Collecting customer payments by pre-authorized debit is not described, so confirm it before you plan on it.
  • Enterprise feature: the module builds on Odoo batch payments, and neither module is in the Community code base.
  • No 80-byte option: the Odoo 20 Canada localization page lists CPA005 as the only EFT file.

Payroll is a separate question: the Canada page documents CPA005 for vendor bills only, and third-party payroll EFT modules for Odoo 19 are listed on the Odoo Apps Store. Our Odoo payroll setup guide explains how to check localization depth.

How do you set up Odoo Canada EFT payments with CPA005?

You set up Odoo Canada EFT payments in four places: the app list, the company record, the bank journal and each vendor's bank account. Collect the bank's IDs first, because Odoo cannot guess them.

  1. Install the modules: install the Canadian localization, then the CPA005 Payments module, and enable Batch Payments in the Accounting settings.
  2. Company record: set the country to Canada and fill in "Short Name used in Canadian EFT", limited to 15 characters. Odoo notes that most banks want it in uppercase.
  3. Bank journal: enter your account number and bank, then confirm the Canadian EFT payment method appears under Outgoing Payments.
  4. CPA configuration: enter the 5-digit Destination Data Center, the 10-digit Originator ID and the next File Creation Number, a sequence from 1 to 9,999.
  5. Vendors: add and validate each vendor's bank account on the contact's Accounting tab.

Validating bank accounts needs a specific access right in the Accounting section. The forum tutorial also warns that some banks combine the data center ID with routing details, so copy the values from the bank's setup letter.

How do you pay vendor bills by EFT in Odoo?

You pay vendor bills by EFT in Odoo by registering payments with the Canadian EFT method, adding a transaction code, and validating a batch payment. The CPA005 file then appears in the batch's chatter for download.

  1. Register payments on the vendor bills and select the Canadian EFT payment method.
  2. Open Accounting, Vendors, Payments and set the EFT/CPA transaction code on each payment.
  3. Select the payments in the list view and click Create Batch.
  4. Check the date and the File Creation Number before you validate, as changes are harder afterwards.
  5. Validate, download the TXT file from the chatter and import it into your banking portal.

Transaction codes are three-digit codes from Payments Canada that tell the receiving bank what the payment is, such as a supplier payment or a payroll deposit. A batch is not limited to one vendor, so one file can carry the whole payment run.

Odoo's documentation says that after you import the file, payment processing may take up to 48 hours. Build that into due dates.

What if your bank only takes an 80-byte EFT file from Odoo?

If your bank only takes an 80-byte file, standard Odoo cannot produce it, so you need a different bank service, a third-party module or a custom export. Start with the option that needs no code.

OptionWhen it fitsWatch out for
Ask the bank for CPA-005 uploadYour bank offers it on another service tierExtra bank fees or a new agreement
Third-party 80-byte moduleA maintained module matches your bank and Odoo versionVersion support, upgrade cost, vendor lock-in
Custom payment methodYour bank's layout is unusual or you need approvals built inNeeds Odoo.sh or on-premise hosting
Manual re-keyingVery low payment volumeTyping errors and no audit link to bills

Hosting decides what is possible. Odoo states that Odoo Online is incompatible with custom modules and Apps Store modules. A custom 80-byte export therefore needs Odoo.sh or on-premise hosting, which sit on the Custom plan.

That changes the license line. On the Odoo pricing page, the US price billed yearly is US$31.10 per user a month for Standard and US$61.00 for Custom. Our comparison of Odoo Online, Odoo.sh and on-premise hosting covers the trade-offs.

A well-built custom format adds a payment method on the bank journal and reuses the batch payment screen. For a quick number on your scope, try our Odoo project estimate tool.

How do you test an Odoo EFT file before going into production?

Test an Odoo EFT file in three passes: a structure check on a test database, a bank test file, and one small real batch. Skipping a pass usually means a rejected file on the first real payment day.

  • Structure: open the TXT file and confirm line length, header values, record count and the control total against the batch total in Odoo.
  • Bank test flag: ask how test files are marked. RBC's CPA-005 specification, for example, expects the value TEST in the file creation number field.
  • Names: include vendors with long names and accented characters, since name fields are short (30 characters for a payee name in Standard 005).
  • Sequence: generate two files in a row and confirm the File Creation Number moves up by one each time.
  • Penny batch: pay two or three friendly vendors a small real amount and confirm receipt before the full run.
  • Reconciliation: check that the single bank statement line matches the whole batch in Odoo.

Keep duties split as well, with different people entering bills, validating bank accounts and approving the batch, as our guide to Odoo internal controls and approvals explains.

Write these as test cases with a sign-off. Our guide to Odoo UAT scenarios and sign-off has a format you can reuse for payment files.

Why do banks reject Odoo CPA005 files?

Banks reject Odoo CPA005 files mostly because of wrong IDs, a repeated file number or characters that break the fixed record length. Almost every cause is data or setup, not a bug in the file logic.

Rejection causeWhy it happensFix
Accented charactersEach accent can count as two bytes, pushing a line past 1,464Clean names in Odoo, or strip accents in the file
File Creation NumberThe standard expects the number to rise by one per fileNever reuse a number; reset only with the bank
Originator or data center IDValues typed from memory or an old agreementCopy both from the bank's setup letter
Short name formatLowercase or over 15 charactersUse uppercase and keep it short
Vendor bank detailsMissing or unvalidated account on the contactValidate accounts before the payment run

The accent problem is documented for Quebec users. A note in the Odoo forum tutorial says accented contact or company names can push lines over the bank's 1,464-byte limit, and the suggested workaround was to edit the TXT file before upload.

Hand-editing a payment file is a control risk, so normalize names at export instead. Gaps like this are common, as our post on what Odoo localization modules cover and miss explains.

Which industries gain most from Odoo Canadian bank payment files?

Any Canadian business with a weekly or monthly vendor payment run gains from an Odoo bank payment file, and volume decides how fast it pays back.

IndustryPain or cost driverOdoo approachHow iVentureTeam helps
Wholesale and distributionHundreds of supplier bills each monthBatch payments by due date, one file per runSet up EFT, payment terms and approval steps
ManufacturingMixed CAD and USD suppliersSeparate journals and files per currencyConfigure journals and test each bank file
Construction and tradesSubcontractor payments with holdbacksPartial payments grouped in one batchMap holdback rules to payment batches

How iVentureTeam helps with Odoo Canada EFT payments

Need an 80-byte export? Estimate it first

iVentureTeam sets up Odoo Canada EFT payments end to end, from the bank's file specification to the first accepted production file. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.

  • Format check: we read your bank's specification and confirm whether native CPA005 fits or an 80-byte export is needed.
  • Configuration: company short name, journal IDs, vendor bank accounts, transaction codes and batch payment settings.
  • Custom formats: bank-specific payment methods and file writers, built as upgrade-safe modules.
  • Bank testing: test files, penny batches and rejection fixes, with a signed test record for finance.
  • Wider rollout: the same team handles tax, reconciliation and reporting through our Odoo implementation services.

Odoo payment customization case study: five gateway connectors

When Odoo does not speak the format your payment partner requires, a packaged module is the fix, and this project shows the pattern. The client group was a set of eCommerce brands selling into the US, Europe and Latin America.

Their contracts were with five gateways that Odoo had no native connector for. Workarounds such as offline invoicing broke the order flow and left payments unreconciled in Odoo.

We built one connector per gateway on Odoo's standard payment framework, so each behaves like a native provider, with test and production credentials set from a configuration screen.

The work took 8 weeks and covered 5 gateways across 3 Odoo versions. A bank file format follows the same logic: build it once as a module, configure it per company. Read the payment gateway integration case study.

The bottom line on Odoo Canada EFT payments

Odoo handles Canadian EFT well when your bank accepts CPA-005, and it needs a modest customization when the bank insists on an 80-byte file. The format question should be settled before design, not at cutover.

Get the bank's file specification first, then configure, then test in three passes. Teams that do it in that order usually see their first production file accepted without drama.

Ready to send your first Odoo EFT file to the bank?

Request an EFT readiness review

Share your bank's file specification and we will tell you what Odoo covers and what needs building. Request an Odoo Canada EFT readiness review, call +91-90235-15208, or email business@iventureteam.com.

Frequently Asked Questions

Does Odoo support EFT payments in Canada?

+

Odoo supports Canadian EFT through the CPA005 Payments module. It creates a CPA005 text file from a validated vendor batch payment, which you upload to your bank's portal. The steps are the same in Odoo 19 and Odoo 20.

What is a CPA-005 file?

+

CPA-005 is the Payments Canada standard file for batched electronic funds transfers. Each record is 1,464 characters long and can hold up to six payments. Banks use it to process credits such as supplier payments and payroll.

What is the difference between CPA-005 and an 80-byte EFT file?

+

CPA-005 is a national standard with 1,464-character records. An 80-byte file uses 80-character lines in a layout defined by the bank, such as the TD 80 Byte EFT format. Your bank's portal decides which one you must send.

Can Odoo generate an 80-byte EFT file?

+

Not with standard modules. The Canadian localization documents CPA005 as its only EFT file. An 80-byte file needs a third-party module or a custom payment method, which cannot be installed on Odoo Online.

Which Odoo versions include CPA005 payments?

+

An Odoo staff tutorial on the Odoo forum states CPA005 is available from version 17.2. It is documented for Odoo 18, Odoo 19 and Odoo 20. It relies on batch payments, an Odoo Enterprise feature.

Why did my bank reject the CPA005 file from Odoo?

+

Common causes are a wrong originator ID or data center, a reused file creation number, a lowercase or long short name, and accented characters that break the 1,464-byte line. Check each one against the bank's specification.

How long does a Canadian EFT payment take after upload?

+

Odoo's documentation says payment processing may take up to 48 hours after you import the file into your banking system. Your bank's cut-off times also apply, so confirm them and plan due dates around them.

Can Odoo collect customer payments by pre-authorized debit in Canada?

+

Odoo's Canada documentation describes the CPA005 flow for paying vendor bills only. Pre-authorized debit collection is not in the documented workflow, so confirm the behavior on a test database or plan a customization.

Free written answer from a certified consultant

Getting Odoo Accounting set up right?

We map your accounting, tax and reporting in Odoo and show what to set up first, and what to watch.

Free, with no obligation. A senior consultant replies within 12 business hours.

We use cookies to improve your experience

Essential cookies make the site work; with your permission we also use analytics to improve it. See our cookie policy.