CPA-005 — the error correction folded into the debit total
Broken on purpose, and broken the way real generators break: the file reverses a credit with an "E" record, and the trailer counts that reversal as a debit. It is not one. Standard 005 gives the E and F error corrections their OWN pair of totals, separate from the debit and credit pairs — fold them together and the file no longer balances. This is the single most common way a hand-written CPA-005 generator gets rejected.
CPA Standard 005 — Invalid
Broken on purpose, and broken the way real generators break: the file reverses a credit with an "E" record, and the trailer counts that reversal as a debit. It is not one. Standard 005 gives the E and F error corrections their OWN pair of totals, separate from the debit and credit pairs — fold them together and the file no longer balances. This is the single most common way a hand-written CPA-005 generator gets rejected.
What this file shows
Broken on purpose, and broken the way real generators break: the file reverses a credit with an "E" record, and the trailer counts that reversal as a debit. It is not one. Standard 005 gives the E and F error corrections their OWN pair of totals, separate from the debit and credit pairs — fold them together and the file no longer balances. This is the single most common way a hand-written CPA-005 generator gets rejected.
| Transactions | 2 |
|---|---|
| Date in the file | 2026-07-12 |
The defects it carries
- CPA-Z-DVZ trailer: the total value of debit transactions (D and J) is declared as 1500.00 but the segments add up to 0.00.
- CPA-Z-DCZ trailer: the number of debit transactions (D and J) is declared as 1 but the file carries 0.
- CPA-Z-EVZ trailer: the total value of "E" error corrections is declared as 0.00 but the segments add up to 1500.00. E records have their own total — they are not part of the debit total.
- CPA-Z-ECZ trailer: the number of "E" error corrections is declared as 0 but the file carries 1.
Quoted verbatim from the validator, not paraphrased.
Every party, IBAN and amount below is fictitious. The IBANs are structurally valid — they pass the mod-97 check — but they belong to no real account.
File content
A0000000010000012345000102619300300 CAD
C0000000020000012345000120000001500000261930004100101234567 0030003000001000000001000ACME PAYROLL JEAN TREMBLAY ACME MANUFACTURING INC USERID0001XREF-0001 0004100109876543 SUNDRY 0000000000000
E0000000030000012345000120000001500000261930004100101234567 0030003000001000000002000ACME PAYROLL JEAN TREMBLAY ACME MANUFACTURING INC USERID0001XREF-0001 0004100109876543 SUNDRY 00300030000010000000010000000000000
Z000000004000001234500010000000015000000000001000000001500000000000100000000000000000000000000000000000000000000
How we know these results hold
Every file in this library is run through the site's own validator on each build. The expected result stated above is asserted by an automated test — if a file stopped matching what this page claims, the build would fail. Two inherited fixtures were repaired this way before publication: three IBANs failed the mod-97 check and several names used characters outside the basic SEPA character set.
CPA-005 / AFT payment file (Canada)
- CPA-005 — payroll direct deposit (two credits in one record)
- CPA-005 — a pre-authorised debit and its NSF return (code 901)
- CPA-005 — credits (C) and debits (D) in one file, four pairs of totals balanced
- CPA-005 — Notice of Change file (U / S / V records, 208 characters)
- CPA-005 — transit 099999999 passes: there is no check digit in Canada