# Bank Format Reference: Positive Pay Issue Files

Canonical reference for every layout supported by [PositivePayMaker](https://positivepaymaker.com/). Generated from the same format definitions the generator executes, so this document cannot drift from the tool's behavior.

Universal facts: a positive pay (check issue) file lists each check's account number, check number, amount, issue date, and usually payee, plus an issue/void marker. Every bank requires its own exact layout. QuickBooks cannot export these files natively. Always verify a first file with the bank.

## Chase: Business Online positive pay (CSV)

- Bank: JPMorgan Chase
- Confidence: **Verified**: built from the bank's published specification
- Source specification: https://www.chase.com/content/dam/chaseonline/en/legacy/content/secure/sso/document/file-upload-guide.pdf
- File type: delimited (`,`), no header row

| Column | Field | Format |
|---|---|---|
| 1 | Issue/void code | issue=`I` void=`C` |
| 2 | Account number | — |
| 3 | Check number | — |
| 4 | Issue date | MMDDYY |
| 5 | Amount | decimal (123.45) |
| 6 | Payee name | max 40 chars |

Chase's published Business Online upload layout: I/C type code (C = voided/canceled), no header row, MMDDYY dates, decimal amounts without commas, payee capped at 40 characters (uploads fail beyond that). One account per file; upload by 10 PM ET the business day before issuing checks.

## First American Bank: fixed-width 79-char

- Bank: First American Bank (IL)
- Confidence: **Verified**: built from the bank's published specification
- Source specification: https://www.firstambank.com/FirstAmericanBank/media/PDFs/positive-pay.pdf
- File type: fixed-width text, 79 characters per record

| Field | Position | Length | Format |
|---|---|---|---|
| Account number | 1–11 | 11 | zero-filled, right-justified |
| Check number | 12–21 | 10 | zero-filled, right-justified |
| Issue date | 22–29 | 8 | MMDDYYYY |
| Amount | 30–39 | 10 | implied-decimal cents, zero-padded, zero-filled, right-justified |
| Payee name | 40–69 | 30 | — |
| (blank filler) | 70–70 | 1 | — |
| Issue/void code | 71–71 | 1 | issue=` ` void=`V` |
| Issue date | 72–79 | 8 | MMDDYYYY, voids only |

First American's published 79-character layout: zero-filled account and check number, implied-decimal cents amount, capital V at position 71 for voids with void date at 72–79 (this preset reuses the issue date as the void date; adjust it in the file if the void happened on a different day). Plain text only, no blank lines.

## Associated Bank: Q2 Centrix payee issue file (216-char)

- Bank: Associated Bank
- Confidence: **Verified**: built from the bank's published specification
- Source specification: https://www.associatedbank.com/pdf/Positive_Pay_Issued_File_Layout_Payee_Format.pdf
- File type: fixed-width text, 216 characters per record

| Field | Position | Length | Format |
|---|---|---|---|
| (literal `6`) | 1–1 | 1 | — |
| Issue/void code | 2–2 | 1 | issue=`2` void=`4` |
| (literal `17`) | 3–4 | 2 | — |
| (blank filler) | 5–8 | 4 | — |
| (literal `6098`) | 9–12 | 4 | — |
| (blank filler) | 13–22 | 10 | — |
| Account number | 23–39 | 17 | zero-filled, right-justified |
| Check number | 40–49 | 10 | zero-filled, right-justified |
| Amount | 50–59 | 10 | implied-decimal cents, zero-padded, zero-filled, right-justified |
| Issue date | 60–65 | 6 | YYMMDD |
| Payee name | 66–216 | 151 | — |

Associated Bank's published 216-character Centrix layout (Aug 2025 doc): status code 2 = add issue, 4 = void; YYMMDD dates; payee must match the printed check exactly, including 'and'/'or' between joint payees. Required file name: '6098 Hxxxxxxxxx.txt' where x = your account number minus its last digit.

## Huntington: Business Online sample layout (CSV)

- Bank: Huntington National Bank
- Confidence: **Verified**: built from the bank's published specification
- Source specification: https://www.huntington.com/-/media/pdf/commercial/tm/payables-management/check-positive-pay-sample-layout.pdf
- File type: delimited (`,`), no header row

| Column | Field | Format |
|---|---|---|
| 1 | Account number | — |
| 2 | Amount | decimal (123.45) |
| 3 | Check number | — |
| 4 | Issue date | MMDDYY |
| 5 | Payee name | max 80 chars |
| 6 | (blank filler) | — |
| 7 | Issue/void code | issue=`IS` void=`CN` |

Huntington's published sample field order. Huntington lets you define your own mapping once at setup, so match whatever you registered. Issue type IS = issued, CN = void; payee max 80 chars, quoted if it contains a comma; at most one header row allowed, no trailer/total rows.

## F&M Bank (Long Beach): CSV with header

- Bank: Farmers & Merchants Bank of Long Beach
- Confidence: **Verified**: built from the bank's published specification
- Source specification: https://www.fmb.com/-/media/user-guides/fmb-positivepayissuedcheckfileoverview.pdf?rev=84de8d2ff07245e288ec6b6b33401879
- File type: delimited (`,`), with header row

| Column | Field | Format |
|---|---|---|
| 1 | Issue date | M/D/YYYY |
| 2 | Account number | — |
| 3 | Check number | — |
| 4 | Payee name | — |
| 5 | Amount | decimal (123.45) |
| 6 | Issue/void code | issue=`` void=`V` |

F&M's published CSV sample (Date, Account Number, Number, Payee, Amount) plus the optional V void-indicator column. The bank maps and tests your sample before go-live; avoid special characters like * in payee names. Upload cutoff 2 PM PT.

## First Foundation Bank: CSV (I/V record type)

- Bank: First Foundation Bank
- Confidence: **Verified**: built from the bank's published specification
- Source specification: https://go.ff-inc.com/hubfs/Online%20Banking%20Agreements/Positive%20Pay%20Spec%20Sheet%20and%20Guidelines.pdf
- File type: delimited (`,`), no header row

| Column | Field | Format |
|---|---|---|
| 1 | Issue/void code | issue=`I` void=`V` |
| 2 | Account number | — |
| 3 | Check number | — |
| 4 | Issue date | MM/DD/YYYY |
| 5 | Amount | decimal (123.45) |
| 6 | Payee name | max 120 chars |

First Foundation's published example layout: I/V record type first, MM/DD/YYYY dates, plain decimal amounts, header row omitted (their recommendation). Payee column required only if you use Payee Match: the first 120 characters are compared and must match the printed check.

## Bank of America: legacy 80-char layout

- Bank: Bank of America
- Confidence: **Reconstructed**: assembled from ERP and vendor documentation. Confirm with the bank before relying on it
- Source specification: https://nexlan.com/PDFs/1269SamplePositivePay.pdf
- File type: fixed-width text, 80 characters per record

| Field | Position | Length | Format |
|---|---|---|---|
| Account number | 1–12 | 12 | zero-filled, right-justified |
| Issue/void code | 13–13 | 1 | issue=` ` void=`V` |
| Check number | 14–23 | 10 | zero-filled, right-justified |
| Amount | 24–35 | 12 | implied-decimal cents, zero-padded, zero-filled, right-justified |
| Issue date | 36–43 | 8 | YYYYMMDD |
| Issue/void code | 44–44 | 1 | issue=` ` void=`V` |
| Payee name | 45–54 | 10 | — |
| (blank filler) | 55–80 | 26 | — |

Reconstructed from ERP vendor documentation of BofA's classic 80-character layout, NOT a current BofA publication (their live specs sit behind CashPro and have multiple variants). Use only to produce a test file, and confirm the layout with your BofA treasury contact first.

## Fifth Third Bank: legacy 80-char with 10/20/30 records

- Bank: Fifth Third Bank
- Confidence: **Reconstructed**: assembled from ERP and vendor documentation. Confirm with the bank before relying on it
- Source specification: https://nexlan.com/PDFs/1269SamplePositivePay.pdf
- File type: fixed-width text, 80 characters per record

| Field | Position | Length | Format |
|---|---|---|---|
| (literal `10`) | 1–2 | 2 | — |
| (literal `000`) | 3–5 | 3 | — |
| Account number | 6–15 | 10 | zero-filled, right-justified |
| Check number | 16–25 | 10 | zero-filled, right-justified |
| Issue date | 26–33 | 8 | YYYYMMDD |
| Amount | 34–44 | 11 | implied-decimal cents, zero-padded, zero-filled, right-justified |
| Payee name | 45–59 | 15 | — |
| Issue/void code | 60–60 | 1 | issue=` ` void=`V` |
| (blank filler) | 61–80 | 20 | — |

Trailer record 1:

| Field | Position | Length | Format |
|---|---|---|---|
| (literal `20`) | 1–2 | 2 | — |
| (literal `000`) | 3–5 | 3 | — |
| (account number) | 6–15 | 10 | zero-filled, right-justified |
| (check count) | 16–25 | 10 | zero-filled, right-justified |
| (file date) | 26–33 | 8 | YYYYMMDD |
| (total amount) | 34–44 | 11 | implied-decimal cents, zero-padded, zero-filled, right-justified |
| (blank filler) | 45–80 | 36 | — |

Trailer record 2:

| Field | Position | Length | Format |
|---|---|---|---|
| (literal `30`) | 1–2 | 2 | — |
| (literal `000`) | 3–5 | 3 | — |
| (literal `9999999999`) | 6–15 | 10 | — |
| (check count) | 16–25 | 10 | zero-filled, right-justified |
| (file date) | 26–33 | 8 | YYYYMMDD |
| (total amount) | 34–44 | 11 | implied-decimal cents, zero-padded, zero-filled, right-justified |
| (blank filler) | 45–80 | 36 | — |

RECONSTRUCTED from ERP vendor documentation: '10' detail records plus '20' account-summary and '30' file-summary trailer records with counts and implied-decimal totals. Fifth Third publishes no current public spec. Produce a test file and confirm it with your treasury contact before relying on it.

## Standard CSV (Account, Check #, Amount, Date, Payee)

- Bank: Generic, most common CSV layout
- Confidence: **Generic**: common industry pattern. Confirm the variant your bank accepts
- File type: delimited (`,`), no header row

| Column | Field | Format |
|---|---|---|
| 1 | Account number | — |
| 2 | Check number | — |
| 3 | Amount | decimal (123.45) |
| 4 | Issue date | MM/DD/YYYY |
| 5 | Payee name | max 80 chars |
| 6 | Issue/void code | issue=`I` void=`V` |

The most widely used layout pattern: comma-separated, no header row, decimal amounts, MM/DD/YYYY dates, I/V issue-void code last. Many banks accept exactly this or a close variant. Confirm the column order with your bank's treasury portal.

## CSV with header row (Check #, Date, Amount, Payee, Account)

- Bank: Generic, labeled CSV variant
- Confidence: **Generic**: common industry pattern. Confirm the variant your bank accepts
- File type: delimited (`,`), with header row

| Column | Field | Format |
|---|---|---|
| 1 | Check number | — |
| 2 | Issue date | MM/DD/YYYY |
| 3 | Amount | decimal (123.45) |
| 4 | Payee name | max 80 chars |
| 5 | Account number | — |
| 6 | Issue/void code | issue=`Issue` void=`Void` |

Same data with a labeled header row and spelled-out Issue/Void. Banks that ingest via web upload portals often prefer this shape.

## Fixed-width 80-character (classic issue file)

- Bank: Generic, classic mainframe-era layout
- Confidence: **Generic**: common industry pattern. Confirm the variant your bank accepts
- File type: fixed-width text, 80 characters per record

| Field | Position | Length | Format |
|---|---|---|---|
| Issue/void code | 1–1 | 1 | issue=`I` void=`V` |
| Account number | 2–14 | 13 | zero-filled, right-justified |
| Check number | 15–24 | 10 | zero-filled, right-justified |
| Amount | 25–34 | 10 | implied-decimal cents, zero-padded, zero-filled, right-justified |
| Issue date | 35–42 | 8 | MMDDYYYY |
| Payee name | 43–80 | 38 | uppercase |

Trailer record :

| Field | Position | Length | Format |
|---|---|---|---|
| (literal `T`) | 1–1 | 1 | — |
| (check count) | 2–7 | 6 | zero-filled, right-justified |
| (total amount) | 8–19 | 12 | implied-decimal cents, zero-padded, zero-filled, right-justified |

A representative 80-character fixed-width layout with a trailer totals record, the pattern most bank-proprietary specs are variations of (field positions differ per bank; use the custom builder to match your bank's spec sheet exactly).

---

Generate any of these layouts free at https://positivepaymaker.com/ (browser-based, client-side). Agents: see https://positivepaymaker.com/AGENTS.md and the MCP server card at https://positivepaymaker.com/.well-known/mcp/server-card.json.
