Generate JPMorgan Chase payment files without an ERP

Bank-ready NACHA ACH credit files (PPD payroll + CCD vendor) for upload to Chase Business Online’s ACH File Upload service, in USD. Built for US small businesses, bookkeepers, and finance teams running vendor payments and payroll through Chase without an ERP or treasury software.

Generate your first Chase ACH fileFree preview, no signup required.

If you’re sending vendor or payroll payments through JPMorgan Chase and don’t have an ERP, your options usually come down to three: key payments directly into Chase Business Online (CBO) one payee at a time, license desktop ACH software you’ll use once a week, or stitch together a NACHA file in a spreadsheet and hope Chase accepts it.

PayFile Pro is the fourth option. Drop a CSV of payees in, get back a bank-ready NACHA file. No subscription, no payment data sent to our servers, credits that never expire.

Scope

PayFile Pro generates credit entries (vendor payments, payroll, disbursements going out). Debit entries (ACH collections, customer pulls, bill pay coming in) aren’t currently supported. In NACHA terms: we generate Service Class Code 220 (credits-only batches), not 225 (debits-only) or 200 (mixed). This matches Chase’s own structure — Chase doesn’t accept mixed batches either (SCC 200 isn’t supported), and credits and debits are uploaded through separate services (ACH Payment Services for credits, ACH Collections for debits). We support PPD (individual payees — employees, contractors, individual vendors) and CCD (business payees — corporate vendors, suppliers) — together these cover the disbursement workflows most SMBs run through Chase.

How it works

First time: a few minutes

  1. 1. Download the Excel (.xlsx) template from the US ACH (NACHA) generator. The template has every column pre-formatted as text, so leading zeros in routing numbers, account numbers, and Chase’s 20-digit Company Discretionary Data field stay intact.
  2. 2. Fill in your originator details and your payee list. Originator details for a Chase NACHA file are: your Company Identification (a 10-digit numeric value Chase requires — typically your federal Tax ID prefixed with 1, or another 10-digit value Chase assigns when they enroll you for ACH origination), your Immediate Destination (one of the 16 Chase ABA routing numbers Chase publishes in their CBO spec, placed in a 10-character field with a leading blank or zero — e.g., b021000021 for New York or b322271627 for California; see the identifier codes FAQ below for the full list), your Immediate Destination Name (JPMORGAN CHASE, left-justified and blank-padded to 23 characters), your Company Name (what appears on your payee’s bank statement — 16 characters, the field is unforgiving on length), the Company Entry Description (PAYROLL for PPD payroll batches — required by Chase and by NACHA’s 2026 rule for wage credits; ACH PMT, VENDOR PAY, or a similar customer-entered value for CCD vendor batches; REVERSAL for reversal batches), the Effective Entry Date (when funds should land — Chase’s May 2024 spec requires at least 1 business day after the file creation date for both vendor and payroll batches, though many ACH originators leave a 2-day buffer for payroll as standard network practice), the File ID Modifier (a single uppercase character A–Z or 0–9 that lets you distinguish multiple files originated on the same day — no symbols), and the Company Discretionary Data (your 20-digit Chase funding account number, right-justified and zero-filled, e.g., 00000000000123456789 — this is the account Chase will debit; PayFile Pro builds it automatically from the account number you enter).

    The payee list is everyone you might pay this period — your full payee list, not just this run.

  3. 3. Save the filled-out template as CSV, then upload to PayFile Pro. Open with Excel, edit, and use Save As → CSV (Comma delimited). PayFile Pro previews the file and validates it against Chase’s CBO NACHA file specifications (May 2024) before generation. If anything’s off, you see it before Chase does. Hit generate, download your file, then upload it through Chase Business Online: Pay & transfer → ACH Payment Services → ACH File Upload → Choose a file → upload → review the validation result → Submit to schedule the file. Chase validates files one at a time, doesn’t accept partial uploads, doesn’t accept files containing past-effective-date transactions, and the ACH File Upload service is desktop-only — Chase Mobile doesn’t support file upload. If Chase Dual Control is active on your account (optional for ACH file upload, not mandatory), a second authorized user will need to approve the file before it’s released to the ACH operator.

Why XLSX as the working file, CSV for upload?

Excel will silently strip leading zeros from typed-in numeric fields, which breaks routing, account number, and Chase’s 20-digit Company Discretionary Data formatting. The XLSX template is pre-formatted as text to prevent this. CSV is what PayFile Pro reads — saving from your XLSX preserves the formatting you already locked in.

Every run after: under a minute

Open last week’s XLSX (not the CSV — the XLSX preserves your text formatting). Update the date, effective entry date, and amounts. Save as CSV. Upload, generate, done. Originator details and payee list stay put.

Skipping a vendor this run? Leave the amount blank — that row is automatically skipped and stays in your template for next week. Adding a new vendor? Add a row with their banking details once; they’re part of your reusable template from then on. The XLSX is your living payee list — you maintain it in one place and reuse it forever.

Files are generated entirely in your browser. Your account numbers, amounts, and payee list never touch our servers, our disk, or anything else.

When you’d reach for this instead of the alternatives

vs. Chase Payment Center directly. Chase Business Online’s data-entry flow (Pay & transfer → ACH Payment Services → Add Payee → Schedule Payments) saves your payee list and lets you key transactions directly in the platform — one-time payments, repeating payments, grouped payees. CBO also accepts NACHA file upload through the ACH File Upload service, so there are two flows in the platform depending on how you want to work. The data-entry flow works, especially if you’re paying the same handful of vendors the same amounts on the same schedule. What it doesn’t have is a per-payee templating layer that lives outside CBO. Every run, you’re keying transactions in or releasing pre-saved payment templates that you have to maintain inside the portal — and the CBO UI for editing 30 vendors at once is slower than editing a spreadsheet. With PayFile Pro, your Excel sheet is the template: skip a vendor by leaving the amount blank, add one by adding a row. The spreadsheet is the state; each run is just what’s in the amount column. PayFile Pro doesn’t replace Chase Business Online — it sits in front of it. You generate the file here, you upload it through CBO’s ACH File Upload service there.

vs. an ERP (NetSuite, SAP, Sage Intacct, QuickBooks Enterprise). If you already have an ERP doing AP, use it. If you don’t, an ERP is overkill to solve “send 30 ACH payments every two weeks.” PayFile Pro is for the gap between “the bank’s portal isn’t enough” and “we have an ERP.”

vs. desktop ACH software (Treasury Software’s ACH Universal, etc.). This is the closest competitor for a small business doing Chase ACH payment files without an ERP. ACH Universal handles US ACH/NACHA, Canadian EFT, Positive Pay, and BAI parsing, and integrates tightly with QuickBooks. Treasury Software also maintains a JPMorgan Chase–specific setup page in their help center — the only big-5 US bank with a dedicated bank-specific setup article — which speaks to how central Chase is among their customers. Their setup automates the Chase-specific configuration (Company Entry Description set to PAYROLL for PPD batches, the 20-digit Company Discretionary Data convention, separate files for credits vs. debits) once you enter your Chase routing number and funding account.

Where ACH Universal differs from PayFile Pro: it’s installed Windows software (Mac users need an emulator like Parallels), licensing is subscription ($39.95–$149.95/mo across Standard, Corporate, and Advanced editions, monthly or annual, with perpetual licenses also available) rather than prepaid credits, and the workflow is QuickBooks-tied rather than CSV-first. SEC code coverage is tier-gated: their Standard edition covers PPD and CCD (the same scope PayFile Pro generates today); Corporate adds WEB, TEL, ARC, BOC, POP, RCK, CCD+, PPD+, and addenda records; Advanced adds IAT (international), CTX (EDI 820), and TXP (tax payment addenda). If you’re already deep in QuickBooks, want phone support, or need WEB/TEL/IAT/CTX coverage that PayFile Pro doesn’t generate, ACH Universal is a serious option — they’ve been around since 1999 and are a Nacha Preferred Partner.

If you want a browser-based tool that works on any OS, no subscription, credits that never expire, and a native template built directly against Chase’s specific CBO NACHA spec — the PAYROLL Company Entry Description rule for PPD payroll, the 20-digit Company Discretionary Data convention, the credits-only single-file scope, and the May 2024 spec’s field-level requirements — PayFile Pro is the tighter fit.

vs. a hand-built spreadsheet that outputs NACHA by hand. This works until it doesn’t. Chase will reject files for a missing leading zero, a wrong record sequence, an out-of-range effective entry date, a missing or wrong Chase account in Company Discretionary Data, an ineligible Chase funding account, a batch hash mismatch, an Entry Hash that doesn’t tie to the routing-number sum, a PAYROLL Company Entry Description paired with the CCD SEC code (Chase rejects that combination — PAYROLL is PPD-only), a pre-note transaction code (codes 23, 28, 33, 38 are all rejected — Chase doesn’t support pre-notes), an offset record (Chase doesn’t accept balanced files), or any of two dozen other things. PayFile Pro validates against Chase’s spec before generation, so you find out the file is malformed in your browser, not from a Chase rejection email two days before payroll.

Frequently asked questions

Do I need to be set up with Chase for ACH origination to use PayFile Pro?

To submit a generated file, yes — your business needs to be set up with Chase Business Online for ACH Payment Services, with a Company Identification Number assigned, your funding account entitled for ACH origination, and the ACH File Upload service activated. PayFile Pro generates the file; your Chase enrollment as an ACH Originator is what authorizes you to upload it. If you’re not sure whether your CBO profile supports ACH file upload, your Chase business banker (1-877-242-7372, option 3) can confirm and provision it if needed. Chase enrolls business customers in ACH Payment Services through CBO directly (Pay & transfer → ACH Payment Services → Enroll); larger Chase Connect / Commercial customers go through a separate Treasury Services onboarding.

What identifier codes does my Chase NACHA file need?

Four values in the File Header and Batch Header of every Chase NACHA file need bank-specific attention — Chase’s CBO spec is more prescriptive than the generic NACHA standard on three of them.

  • Immediate Destination — a 9-digit Chase routing number placed in a 10-character field with a leading blank space or zero. Chase publishes 16 valid routing numbers in their CBO NACHA spec: 021000021 (New York), 044000037 (Ohio), 065400137 (Louisiana), 071000013 (Illinois), 072000326 (Michigan), 072412927 (Michigan branch), 074000010 (Indiana), 075000019 (Wisconsin), 083000137 (Kentucky), 102001017 (Colorado), 103000648 (Oklahoma), 111000614 (Texas), 122100024 (Arizona), 124001545 (Utah), 322271627 (California), and 325070760 (Washington). Use the one that matches your account’s home state. PayFile Pro asks which Chase region you bank in and inserts the right value automatically.
  • Immediate Destination Name — Chase’s spec accepts any of these variants, left-justified and blank-padded to 23 characters: JPMORGAN CHASE, JP MORGAN CHASE, JP Morgan Chase, JPMorgan Chase, or jp morgan chase. PayFile Pro uses JPMORGAN CHASE by default.
  • Company Identification — a 10-digit numeric value Chase requires in both the Batch Header Record (positions 41–50) and the Batch Control Record (positions 45–54). This is typically your business’s federal Tax ID prefixed with 1 (e.g., a Tax ID of 12-3456789 becomes 1123456789), or another 10-digit value Chase assigns when they enroll you for ACH origination. Confirm with your Chase business banker which value to use if you’re not sure.
  • Company Entry Description — Chase requires specific values here based on the batch’s SEC code and content. For PPD batches with payroll transactions: PAYROLL. For reversal batches: REVERSAL. For CCD vendor batches: any customer-entered value such as ACH PMT, VENDOR PAY, or BONUS — Chase processes any non-PAYROLL, non-REVERSAL value as a standard CCD payment. Note: PAYROLL cannot be paired with the CCD SEC code — that’s a PPD-only Company Entry Description per Chase’s spec.

Additionally, Chase’s Batch Header requires a 20-digit Company Discretionary Data field (positions 21–40) containing your Chase funding account number, right-justified and zero-filled (e.g., 00000000000123456789 for a 9-digit account number). This identifies the Chase account that funds the batch and is more prescriptive than the generic NACHA standard, which treats that field as optional. If you leave it blank, Chase prompts you to assign an account during the file upload step — but populating it in the file avoids that round-trip. PayFile Pro builds it automatically from the Chase account number you enter.

(Different US banks use different conventions for these fields. Chase’s PAYROLL-only-with-PPD rule, the 20-digit Company Discretionary Data convention, and the 16 named Chase ABA routing numbers are documented here. Bank of America, Wells Fargo, U.S. Bank, and PNC each have their own bank-specific conventions for the Company Identification, Company Entry Description, and originator-routing values — documented on each bank’s dedicated PayFile Pro page as those launch, or available from your CashPro / CEO / SinglePoint / PINACLE relationship manager today.)

What's Chase's Company Entry Description rule for payroll vs. vendor batches?

Chase requires PAYROLL in the Company Entry Description field (Batch Header positions 54–63) for any PPD batch containing payroll transactions, and REVERSAL for reversal batches. Other batch types — CCD vendor payments, individual vendor disbursements — can use any customer-entered value such as ACH PMT, VENDOR PAY, or BONUS; Chase processes anything that’s not PAYROLL or REVERSAL as a standard payment.

One constraint worth flagging: PAYROLL cannot be paired with the CCD SEC code — that’s a PPD-only Company Entry Description per Chase’s spec. If you’re paying employees with direct deposit, use SEC code PPD + Company Entry Description PAYROLL. If you’re paying corporate vendors, use SEC code CCD + a vendor-appropriate Company Entry Description (ACH PMT is conventional). The values NONSETTLED, RECLAIM, RETRY PMT, and RETURN FEE are explicitly rejected by Chase.

The PAYROLL requirement for PPD payroll batches aligns with NACHA’s 2026 rule mandating that exact value for wage credits across the ACH network (effective March 20, 2026). Chase’s CBO spec has required PAYROLL for PPD payroll for years — the network rule just catches up with Chase’s long-standing convention. See the 2026 rule changes FAQ on the US ACH hub page for the full picture across PURCHASE, the Phase 2 fraud monitoring deadline on June 22, 2026, funds availability for non–Same Day ACH credits, and the IAT scope update.

Why does Chase want my account number in the Company Discretionary Data field?

This is one of Chase’s more prescriptive deviations from the generic NACHA standard. The Company Discretionary Data field (Batch Header positions 21–40) is technically optional under NACHA’s spec — banks can use it for whatever batch-level context they want. Chase uses it to identify the funding account: the Chase account that the batch’s credits will debit when the file settles. It needs to be your Chase account number, right-justified and zero-filled to exactly 20 digits (e.g., a 9-digit account 123456789 becomes 00000000000123456789). If the field is blank or contains a value that doesn’t match a Chase account on your CBO profile, Chase rejects the batch with a “Your batch has an ineligible or is missing a Chase account” error at upload — which you can fix in CBO by clicking “Add account” during upload, but the cleaner workflow is to populate the field in the file. PayFile Pro builds the field automatically from the account number you enter in the template.

Can PayFile Pro generate Chase debit files (ACH Collections)?

Not currently. PayFile Pro generates credit files — vendor payments, payroll, supplier disbursements (Service Class Code 220). Debit files for ACH Collections (customer pulls, pre-authorized debits) aren’t supported. This also matches Chase’s structure: Chase doesn’t accept mixed-batch files (SCC 200), and credit and debit files are uploaded through separate CBO services anyway — credits through ACH Payment Services / Payment Center, debits through ACH Collections. If debit file generation is something you need, email us — it’s on the roadmap and customer demand is what moves it up. Note that originating ACH debits requires separate underwriting and approval from Chase: your CBO profile has to be enabled for ACH Collections specifically, distinct from the credit origination enrollment.

Will this work with Chase Business Online?

Yes. PayFile Pro generates the NACHA file; Chase Business Online is what you use to submit it. They’re complementary tools — no integration or API connection required. From CBO: Pay & transfer → ACH Payment Services → ACH File Upload → Choose a file → upload the file PayFile Pro generated → review the validation result → Submit to schedule the file. Chase validates the file (one at a time, no partial uploads), confirms the file details, and schedules it for the effective entry date in the Batch Header. If your account has Chase Dual Control enabled, a second authorized user approves the file before it’s released to the ACH operator. The ACH File Upload service is desktop-only — Chase Mobile doesn’t support file upload. The same upload path works for Chase for Business and Chase Connect customers; larger Chase Treasury Services / Commercial customers using SFTP transmission for file delivery generate the same NACHA file and transmit it through their existing SFTP tooling.

How is this different from saving payees in Chase Payment Center?

Chase Payment Center saves your payee list and lets you key transactions directly in the platform — Add Payee, Manage Payees, group payees, schedule one-time or repeating payments. The data-entry flow works, especially if you’re paying the same handful of vendors the same amounts on the same schedule.

What it doesn’t have is a per-payee template layer that lives outside CBO. Every run, you’re either keying transactions in or releasing pre-saved payment templates that you have to maintain inside the portal — and the CBO UI for editing 30 vendors at once is slower than editing a spreadsheet. With PayFile Pro, your Excel sheet is the template. Leave an amount blank to skip a vendor — their row stays in next week’s template. Add a row to add a vendor — they’re part of your reusable template from then on. The spreadsheet is the state; each run is just what’s in the amount column.

You still upload the file through Chase Business Online’s ACH File Upload service — PayFile Pro doesn’t bypass Chase or sit in the payment flow. Bank-side controls, dual approval, payment activity tracking, reversals, all stay where they are. PayFile Pro replaces the variance-management step (editing 30 amounts, skipping 2 vendors, adding a new one) with editing a spreadsheet column. That’s it.

Is my payment data secure?

Yes. PayFile Pro generates files entirely in your browser. Routing numbers, account numbers, amounts, and payee lists never leave your machine — no upload to our servers, no storage on our disk, no transmission anywhere. The only data we store is your account info: email, company name, primary bank, credit balance.

What if Chase rejects the file I generate?

PayFile Pro validates files against Chase’s CBO NACHA file specifications (May 2024) before generation, which catches most common rejection causes (wrong field length, missing required fields, invalid characters, malformed dates, mismatched record counts, Entry Hash that doesn’t tie to the routing-number sum, batch totals that don’t tie to entry totals, PAYROLL paired with the CCD SEC code, pre-note transaction codes 23/28/33/38, and offset records). If Chase still rejects a file after generation, the most likely causes are bank-specific and outside the file-format spec itself:

  • Missing or wrong Chase account in Company Discretionary Data — the most common Chase rejection. CBO surfaces this as “Your batch has an ineligible or is missing a Chase account” at upload. Fixable in CBO by clicking “Add account” during upload, but the cleaner workflow is to populate the 20-digit account number in the template before generating (see the identifier codes FAQ).
  • Effective entry date in the past — Chase doesn’t accept files containing past-effective-date transactions. The Effective Entry Date must be at least 1 business day after the file creation date.
  • Ineligible Chase funding account — the account you’re trying to fund the batch from isn’t entitled for ACH origination on your CBO profile. Your Chase business banker can confirm which accounts in your profile are entitled.
  • Company Identification mismatch — the 10-digit value in the Batch Header doesn’t match the value Chase has on file for your business. Usually your Tax ID prefixed with 1; confirm with your Chase business banker.
  • Mobile upload attempted — Chase’s ACH File Upload service is desktop-only. Use Chase Business Online on a desktop browser.
  • Partial upload — Chase validates files one at a time and doesn’t accept partial uploads.
  • Out-of-region routing number in Immediate Destination — using 021000021 (New York) when your funding account is in California, for example. Chase doesn’t strictly enforce this for every account, but mismatch can cause downstream routing issues. Use the routing number that matches your funding account’s home state.

Email hello@payfilepro.com with the rejection message and we’ll help you debug — if the rejection is Chase-specific and frequent enough, it gets documented here so the next person hits a known-resolved issue.

How much does it cost to generate a Chase payment file?

PayFile Pro uses prepaid credits. One credit per generated file. Credits never expire. Packs start at $10 USD for 5 credits ($2.00 per file) and scale to $1.50 per file at 50 credits. No subscription, no monthly minimum, no auto-renewal. Buy credits when you need them.

Ready to generate your first Chase ACH file?

Free preview before you buy — see the parsed file before you spend a credit.

Questions about your setup? Email us.

Sending payments through other banks?

PayFile Pro is an independent software product. We are not affiliated with, endorsed by, or sponsored by Nacha or JPMorgan Chase Bank, N.A.. Nacha, ACH, Same Day ACH are trademarks of Nacha (the National Automated Clearing House Association). JPMorgan Chase, Chase, Chase for Business, Chase Business Online, Chase Connect, and Chase Payment Center are trademarks of JPMorgan Chase Bank, N.A. Treasury Software and ACH Universal are trademarks of Treasury Software Corp.