ABA File Format Specification
A complete field-by-field reference for the Australian Bankers Association (ABA) direct entry file format. Covers all three record types, exact byte positions, common mistakes, and bank-specific requirements.
What is an ABA file?
An ABA file (also called a Cemtex file or Direct Entry file) is a plain-text batch payment format used by Australian banks to process bulk electronic payments. It's named after the Australian Bankers' Association, which defined the standard.
Businesses use ABA files to send payroll, supplier payments, refunds, and any other batch of electronic funds transfers (EFT) to their bank in a single upload rather than entering payments one by one. Most major Australian banks accept ABA files via their business banking portals (e.g. ANZ Internet Banking for Business, CommBiz, NABConnect, Westpac Live).
The format is a fixed-width ASCII text file where every line is exactly 120 characters
long, terminated by a carriage return and line feed (\r\n).
The structure dates back to 1970s mainframe and punch-card conventions — the 120-character
line width is a direct legacy of that era.
File structure
Every ABA file contains exactly three types of records, always in this order:
Descriptive Record
Exactly one per file
Identifies the file: your bank, company name, APCA User ID, and processing date.
Detail Record
One per payment
One line per payment: recipient BSB, account number, name, amount, and your reference.
File Total Record
Exactly one per file
Totals: net amount, credit total, debit total, and count of detail records.
Descriptive Record (Header)
One header per file. This record identifies who is sending the file, what it's for, and when it should be processed. The financial institution code in positions 21–23 must match your bank.
| Position | Length | Field | Format | Notes |
|---|---|---|---|---|
| 1 | 1 | Record type | "0" | Always the character 0 |
| 2–18 | 17 | Blank | Spaces | Reserved — must be spaces |
| 19–20 | 2 | Reel sequence number | "01" | Usually "01"; increment for multi-reel files |
| 21–23 | 3 | Financial institution code | Alpha | Your bank's 3-letter code — e.g. ANZ, WBC, NAB, CBA |
| 24–30 | 7 | Blank | Spaces | Reserved — must be spaces |
| 31–56 | 26 | User preferred specification | Alpha | Your company or user name, left-justified, space-padded |
| 57–62 | 6 | User identification number | Numeric | Your APCA User ID — 6 digits, right-justified, zero-filled |
| 63–74 | 12 | Description of entries | Alpha | e.g. "Payroll" or "Creditors" — left-justified |
| 75–80 | 6 | Date to be processed | DDMMYY | Processing date — not YYYYMMDD |
| 81–84 | 4 | Time to be processed | HHmm | Optional — leave blank if not required |
| 85–120 | 36 | Blank | Spaces | Reserved — must be spaces |
Detail Record (Transaction)
One detail record per payment. There's no hard limit on the number of records per file — most banks accept hundreds or thousands. The amount is always in cents as a zero-padded 10-digit integer.
| Position | Length | Field | Format | Notes |
|---|---|---|---|---|
| 1 | 1 | Record type | "1" | Always the character 1 |
| 2–8 | 7 | BSB of recipient | XXX-XXX | Hyphen at position 5 is mandatory — e.g. 063-000 |
| 9–17 | 9 | Account number | Numeric | Right-justified, blank-filled — up to 9 digits |
| 18 | 1 | Indicator | Space / N / W / X / Y | Space = no withholding. N, W, X, Y indicate different tax withholding scenarios |
| 19–20 | 2 | Transaction code | Numeric | 13 = externally initiated debit, 50 = general credit, 53 = payroll credit, 54 = pension |
| 21–30 | 10 | Amount | Numeric | In CENTS — right-justified, zero-filled. $1,500.00 = 0000150000 |
| 31–62 | 32 | Title of account | Alpha | Recipient account name — left-justified, space-padded. Max 32 chars; uppercase recommended |
| 63–80 | 18 | Lodgement reference | Alpha | Payment reference shown on recipient's statement — left-justified. Max 18 chars |
| 81–87 | 7 | Trace BSB | XXX-XXX | Your (sender's) BSB — hyphen mandatory |
| 88–96 | 9 | Trace account number | Numeric | Your (sender's) account number — right-justified |
| 97–112 | 16 | Name of remitter | Alpha | Your company name as it appears on sender's statement — left-justified |
| 113–120 | 8 | Withholding tax amount | Numeric | Zero-filled if no withholding tax applies |
Transaction codes
Most common — standard EFT payment to a supplier, employee, or individual
Use for payroll payments — may affect how the payment is categorised by the recipient's bank
Used for pension, superannuation, or annuity payments
Direct debit — debits the recipient's account. Requires a direct debit authority.
File Total Record (Footer)
One footer per file, always the last record. The bank uses this to verify the file wasn't corrupted in transit. If the totals don't match the sum of the detail records, the file is rejected. All totals are in cents.
| Position | Length | Field | Format | Notes |
|---|---|---|---|---|
| 1 | 1 | Record type | "7" | Always the character 7 |
| 2–8 | 7 | BSB format filler | "999-999" | Always the literal string 999-999 |
| 9–20 | 12 | Blank | Spaces | Reserved — must be spaces |
| 21–30 | 10 | Net total amount | Numeric | Absolute difference between total credits and total debits, in cents |
| 31–40 | 10 | Credit total amount | Numeric | Sum of all credit transaction amounts, in cents |
| 41–50 | 10 | Debit total amount | Numeric | Sum of all debit transaction amounts, in cents |
| 51–74 | 24 | Blank | Spaces | Reserved — must be spaces |
| 75–80 | 6 | Count of Type 1 records | Numeric | Total number of detail records — right-justified, zero-filled |
| 81–120 | 40 | Blank | Spaces | Reserved — must be spaces |
Example ABA file
Below is a minimal valid ABA file with one payroll payment of $1,500.00. Every line is exactly 120 characters. Spaces are used to pad each field to its required width.
0 01ANZ ACME PTY LTD 000000Payroll 270326
1063-000 12345678 5300000150000JOHN SMITH MARCH PAYROLL 063-000 87654321ACME PTY LTD 00000000
7999-999 0000000150000000000150000000000000000 000001
Common mistakes
These are the errors that cause most ABA file rejections — either at upload time or when the bank processes the file.
Lines are not exactly 120 characters
The ABA format is a fixed-width format inherited from 1970s punch cards. Every line — header, detail, and footer — must be padded to exactly 120 characters. Even one character over or under will cause the file to be rejected.
Amount entered in dollars, not cents
The amount field stores cents as an integer. $1,500.00 must be written as 0000150000 — not 0000001500. This is the most common silent error; the file looks valid but payments are for the wrong amounts.
Wrong date format
The date field uses DDMMYY — not YYYYMMDD, not DD/MM/YYYY. 27 March 2026 is 270326. Submitting a file with the wrong date format can cause the bank to process on the wrong date or reject the file.
BSB without the hyphen
The BSB field is 7 characters wide and always formatted as XXX-XXX. The hyphen at position 4 is part of the format. 063000 is wrong; 063-000 is correct.
Account name over 32 characters
The account name field is exactly 32 characters. Names longer than 32 characters must be truncated, not wrapped. If your software silently truncates mid-word, the name on the recipient's statement may look garbled.
Lodgement reference over 18 characters
The reference field is 18 characters. Anything past character 18 is silently dropped. Keep references short or they'll appear truncated on the recipient's bank statement.
Non-ASCII characters in name fields
ABA files use 7-bit ASCII. Characters like é, ü, —, or ‘ (curly apostrophe) are not valid and will cause encoding errors or rejection. Replace accented characters with their ASCII equivalents and use straight apostrophes.
Missing self-balancing record for Westpac
Westpac and some of its sub-brands (St George, Bank of Melbourne, BankSA) require a self-balancing file. This means adding an extra detail record that debits the same account you're paying from, equal to the total credits. Without it, the file is rejected.
Which banks accept ABA files?
All major Australian banks accept ABA files for bulk payment uploads. Most require you to have a business transaction account and register for their business banking portal first.
| Bank | Institution code | Notes |
|---|---|---|
| ANZ | ANZ | Standard ABA spec. No known quirks. |
| NAB | NAB | Standard ABA spec. Uses your APCA User ID. |
| Commonwealth Bank | CBA | Upload via CommBiz. Standard spec. |
| Westpac | WBC | Often requires a self-balancing file — a debit record equal to the total credits. |
| St George / Bank of Melbourne / BankSA | STG / BOM / BSA | Same file format as Westpac. Institution code varies by brand. |
| Bank of Queensland | BQL | Standard ABA spec. |
| Bendigo Bank | BEN | Standard ABA spec. |
| Suncorp | MET | Contact Suncorp to confirm your APCA User ID before first submission. |
| Macquarie Bank | MBL | Requires a valid APCA User ID — 000000 is not accepted. |
| ING | ING | Standard ABA spec. |
| Bankwest | BWA | Standard ABA spec. |
Institution codes are the 3-letter abbreviations used in the header record (positions 21–23). Always confirm the code with your bank if you're unsure.
Quick rules summary
Every line is exactly 120 characters
Padded with spaces — never shorter or longer
Amounts are in cents
$1,500.00 → 0000150000 (zero-padded, 10 digits)
Date format is DDMMYY
27 March 2026 → 270326 (not 20260327)
BSB includes the hyphen
063-000 not 063000 — always 7 characters
Account name max 32 chars
Truncate if longer — do not wrap to next field
Lodgement reference max 18 chars
Appears on the recipient's statement
ASCII characters only
No accented letters, smart quotes, or em dashes
Footer totals must match detail records
Bank re-calculates and rejects on mismatch
Ready to create your ABA file?
Upload your spreadsheet, map your columns, and download a bank-ready ABA file in under 30 seconds. Your data never leaves your browser.
Create ABA file — freeFree up to 3 rows · No account needed · Data stays in your browser