ACH via Batch File Exchange
Compile a send a next day US bank batch payment
ACH (Automated Clearing House) is a US network that powers electronic funds transfers. It processes financial transactions for consumers, businesses, and federal, state, and local governments. ACH processes large volumes of credit and debit transactions in batches.
The rules and regulations that govern the ACH network are established by National Automated Clearinghouse Association (NACHA).
Use Cases
ACH is available for both credit (push) and debit (pull) transactions.
- Payout funds using ACH credit transfers with Create Transaction
type: push
. - Accept payments ACH direct debit with Create Transaction
type: pull
.
ACH Credit
- B2B vendor payments: One time or on-going payments to a business vendor providing a product or service.
- Expense reimbursements: Payments from a business to an employee to often cover travel costs, meals, etc.
- Tax refunds: Government disbursements to taxpayers to balance overpayments.
- Retirement and investment contributions: Account holders send funds from one bank account into their investment account.
ACH Direct Debit
- Consumer payments on insurance premiums: Accept monthly payments for insurance coverage.
- Mortgage loans: Accept monthly installments for loans for homebuyers.
- Utility bills: Accept payments for homeowners and building tenants.
Integration Methods
TabaPay ACH is available via both our Unified APIas well as via file-based exchanges.
For more information please look at our ACH via API guide.
Want to get enabled for ACH in Unified API? Email [email protected]
ACH Files
Refer to Request File Format understand ACH file formatting.
Preferred ACH File Format
ACH files can be sent in 1. NACHA file format or 2. TabaPay format listed in Request File Format . ACH Return files can also be in either format.
File Details
- File sharing details will be provided to the client
- Input File name: yyyymmdd_ISO_MID_ACHInput_N_v2-5.csv (sent to TabaPay)
- yyyymmdd = the date you send us the file.
- Output File name: yyyymmdd_ISO_MID_ACHOutput.csv (received from TabaPay)
- Processed file: yyyymmdd_ISO_MID_ACHProcessed_A.csv (received from TabaPay)
- yyyymmdd = the date the file was processed
- N=sequence number (1..n) if multiple files per cycle used
- A=file modifier (A..Z)
- For ISO: Do not use MID
- Return file: yyyymmdd_ISO_MID_ACHReturns.csv (received from TabaPay)
- yyyymmdd = the date of the return, not the date the file is generated
- Comma separator for each field
Input files
- Merchant deposits input file(s) into the file sharing tool.
- All input files since last batch are processed.
- TabaPay moves Input files to 'Inboxprocessed' after processing.
- Email to [email protected] with copy to [email protected]: subject: NAME ACH; total debits and $s, total credits and $s
- Cut-off times: Same day: 7:00 AM PT; Next day: 5:30 pm PT.
- File cutoff missed will be moved to next window
- Confirmation of processing email to merchant
- TabaPay output files, processed files, return files:
- Merchant Pickup return files, Processed files, and Output files in the 'Outbox'
- Processed file delivered within minutes of ACH files being processed by bank; One file for each merchant batch.
- Output file delivered next business day; same format as Processed file - with Trace ID and processed time from bank
Guidelines
- All files received prior to same day cutoff are processed as same day, otherwise processed as next day.
- ISO+MID assigned by TabaPay.
- CompanyName, CompanyID assigned by TabaPay.
- IIN must be unique by CompanyName, and CompanyID. Trace IDs are generated based on IINs.
- Offset account is always merchant's DDA at ODFI. Option to include offset records (default is no offset).
Explanation for each file
There are 4 files associated with ACH.
- Input file -> this file is generated by the merchant and contains the transaction requests.
- Processed file -> this file is generated by TabaPay. It indicates that transactions that have been sent to the bank.
- Status: Processed -> Transaction has been sent to the bank.
- Status: Rejected -> Transaction was rejected, status codes below.
- Output file (Conditional) -> This file is generated by some banks to let us know when the transaction was sent to the Fed. This file has the exact same format as the Processed file, and will include the Trace ID from the Fed. Might take up to 2 days to be sent.
- Return file -> This file contains a list of returned transactions. Can come back 6 to 7 days later.
TabaPay pushes ACH files via SFTP.
SFTP Push - Security options can include:
- Merchant whitelists TabaPay IP
- SFTP ID and Password
- TabaPay public key for SFTP security (ID or ID+PW)
- File encryption using Merchant public PGP key
ACH Request
View the following file format option for ACH requests, or view a NACHA file format.
Request File Format
Rows |
Values |
Length/type |
Description/Notes |
|
---|---|---|---|---|
ISO (Client ID) |
Assigned by TabaPay |
|||
MID (SubClient ID) |
1 alpha |
Assigned by TabaPay |
||
Same day, next day, real time |
S, N, R |
1 alpha |
Same day must be in by cutoff time or converts to next day (see settle date in response file) |
|
Type |
CCD, PPD, WEB |
3 alpha |
CCD’s are Corporate Credit or Debit transactions and are used to originate transactions to or from Corporate Accounts only. PPD’s are Prearranged Payment or Deposit transactions and are used to originate transactions to Consumer Accounts only.WEB is Internet-Initiated/Mobile Entries |
|
Entry Description |
Text |
10 characters |
Shown on customer statement. If approved - can include company name with "|" separator. entryDescription|CompanyName* |
|
Amount |
########.## |
999999 |
2 decimal places |
|
IIN |
Text |
15 alpha-numeric |
Individual Identification Number is a unique identifier generated by TabaPay Clients for every transaction. Must be unique over a rolling 10-day period (TabaPay recommends this being unique for every transaction).
|
|
First name |
Doe |
22 alpha-numeric combined fn ln |
No commas, blanks allowed. No symbols |
|
Last name |
Doe |
No commas, blanks allowed. No symbols |
||
Account type |
C/S/L/BC/BS/G |
Up to 2 alpha (C, S, L, G, BC, BS) |
Checking(C), Savings(S), Loan (L) Business Checking (BC), Business Savings (BS) General Ledger (G). |
|
RTN |
######### |
Exactly 9 digits, must have check digit |
Destination Bank Routing Number |
|
Account |
############### |
4-17 numeric |
Destination Bank Account Number |
|
Credit-Debit |
C |
1 alpha C, D |
Credit or Debit (C or D) |
|
*Company name - if allowed in Entry Description |
Text |
16 alpha-numeric |
Shown on customer statement |
Request File Sample
ISO |
MID |
ACH Type |
Entry Type |
Entry Description |
Amount |
IIN |
First name |
Last name |
Account type |
RTN |
Account |
Debit-Credit |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1000 |
1 |
N |
CCD |
100.01 |
yerzzj4db2syz55 |
Samwise |
Gamgee |
C |
123456789 |
4444444444 |
D |
|
1000 |
2 |
N |
CCD |
101 |
z8983ge3sgm93jd |
Samwise |
Gamgee |
C |
123456789 |
4444444445 |
D |
|
1000 |
2 |
S |
CCD |
102 |
f1np15hijttq558 |
Samwise |
Gamgee |
G |
233456789 |
3333333335 |
C |
|
1000 |
2 |
N |
PPD |
101.02 |
lx41dq381mfmur0 |
Samwise |
Gamgee |
G |
123456789 |
4444444445 |
D |
|
1000 |
2 |
N |
PPD |
101.02 |
sx98dpls037io2o |
Samwise |
Gamgee |
G |
|
|
|
|
1000 |
2 |
N |
WEB |
101.02 |
ovk7lzr9rn74x4t |
Samwise |
Gamgee |
G |
123456789 |
4444444445 |
D |
|
AAAA |
2 |
N |
PPD |
101.02 |
5dojbbe6c9dlovk |
Samwise |
Gamgee |
G |
123456789 |
4444444445 |
D |
|
1000 |
AAAA |
N |
PPD |
101.02 |
am93unuhfhf3je4 |
Samwise |
Gamgee |
G |
123456789 |
4444444445 |
D |
|
1000 |
2 |
N |
PPD |
101.02 |
ly0iggewzwlmrsa |
Samwise |
Gamgee |
G |
123456789 |
4444444445 |
D |
|
1000 |
2 |
N |
PPD |
101.02 |
fpdsrhx4on05i60 |
Samwise |
Gamgee |
G |
123456789 |
4444444445 |
D |
|
1000 |
2 |
B |
PPD |
101.02 |
0t9ifhqag8hlxbu |
Samwise |
Gamgee |
G |
123456789 |
4444444445 |
D |
|
1000 |
2 |
N |
PPD |
101.02 |
yno4jzjdfue0bkf |
Samwise |
Gamgee |
Z |
123456789 |
4444444445 |
D |
|
1000 |
2 |
N |
PPD |
101.02 |
s2w3qmev6zmjxim |
Samwise |
Gamgee |
C |
123456789 |
4444444445 |
Z |
|
1000 |
2 |
N |
PPD |
101.02 |
cthswu2ffn7jhfw |
Samwise |
Gamgee |
C |
12345678 |
4444444445 |
D |
|
1000 |
2 |
N |
PPD |
3,452 |
ax3qx38svvyntyh |
Samwise |
Gamgee |
C |
*012345678 |
4444444445 |
D |
|
1000 |
2 |
N |
PPD |
673452 |
zxitnkt8xx32pzp |
Samwise |
Gamgee |
C |
*012345678 |
4444444445 |
D |
ACH Response
View the following file format for ACH response codes.
Response and Processed File Format
ISO |
Assigned by TabaPay |
||
---|---|---|---|
MID |
Assigned by TabaPay |
||
Entry Type |
CCD, PPD, Web |
3 alpha |
|
Status |
Output file: Complete, Error. Processed file: Accepted or Rejected |
See Response Codes |
|
Result |
0, Response Code |
See Response Codes |
|
Same Day or Next Day |
S, N |
1 alpha |
Same Day must be in by cutoff time or converts to next day |
Processed date |
mm-dd-yyyy |
||
Settlement date |
mm-dd-yyyy |
||
Amount |
########.## |
999999.99 |
2 decimal places |
IIN |
afhticcz3ibkii6 |
15 alpha-numeric |
No commas, no blanks. No symbols |
Trace ID |
################ |
15 numeric |
Output file only - from bank |
First name |
doe |
22 alpha-numeric combined First Name and Last Name |
No commas, blanks allowed. No symbols |
Last name |
doe |
No commas, blanks allowed. No symbols |
|
Account type |
C/S/L/BC/BS/G |
Up to 2 Alphabet (C, S, L, G, BC, BS) |
Checking(C), Savings(S), Loan (L) Business Checking (BC), Business Savings (BS) General Ledger (G) |
RTN |
######### |
Exactly 9 digits; must have checksum |
Destination Bank Routing Number |
Account |
############### |
4-17 numeric |
Destination Bank account number |
Credit-Debit |
C |
1 alpha C, D |
Credit or Debit (C or D) |
Fee |
##.## |
4 numeric with decimal (signed) |
##.## |
Message |
Processed file contains a descriptive reason of any Rejected entries |
ACH Response File Sample
ISO |
MID |
Status |
Result |
ACH Type |
Processed date |
Settlement date |
Entry Type |
Entry Description |
Credit-Debit |
Amount |
Trace ID |
IIN |
First name |
Last name |
Account Type |
RTN |
Account |
Fee |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1000 |
1 |
Complete |
0 |
N |
03-11-24 |
03-12-24 |
CCD |
D |
100 |
9234000001 |
Samwise |
Gamgee |
C |
123456789 |
4444444444 |
0.25 |
||
1000 |
2 |
Error |
422: Duplicate IIN |
N |
03-11-24 |
03-12-24 |
CCD |
D |
101 |
9234000002 |
Samwise |
Gamgee |
C |
123456789 |
4444444445 |
0.25 |
||
1000 |
2 |
Error |
422: ACHType |
S |
03-11-24 |
03-12-24 |
CCD |
C |
102 |
9234000003 |
Samwise |
Gamgee |
BC |
233456789 |
3333333335 |
0.25 |
||
1000 |
2 |
Error |
422: EntryType |
N |
03-11-24 |
03-12-24 |
PPD |
D |
101 |
9234000004 |
Samwise |
Gamgee |
BC |
123456789 |
4444444445 |
0.25 |
||
1000 |
2 |
Complete |
0 |
S |
03-11-24 |
03-12-24 |
CCD |
C |
102 |
9234000005 |
Samwise |
Gamgee |
C |
233456789 |
3333333335 |
0.25 |
||
1000 |
2 |
Complete |
0 |
S |
03-11-24 |
03-12-24 |
CCD |
C |
102 |
9234000006 |
Samwise |
Gamgee |
C |
233456789 |
3333333335 |
0.25 |
ACH Returns
View the following file format option for ACH returns and return codes, or view NACHA file format.
ACH Return File Format
ISO |
ISO |
|
---|---|---|
MID |
MID |
|
Return date |
Date (5_70_75) |
|
Amount |
Amount (6_30_39) |
|
Account |
Account (6_13_29) |
|
RTN |
ABA/Routing (6_04_12) |
|
Name |
Individual Name (6_55_76) |
|
IIN |
Individual ID (6_40_54) |
Matches IIN from input |
ACH RC |
Transaction Code (6_02_03) |
|
Trace |
Trace (80_94) |
|
Bank Discretionary |
Bank Discretionary (6_77_78) |
|
Addenda |
Addenda (7_04_83) |
|
Descriptive Date |
Descriptive Date (5_64_69) |
|
Company Name |
Company Name (5_05_20) |
IIN unique to company name and ID |
Company Discretionary |
Company Discretionary (5_21_40) |
|
Company ID |
Company ID (5_41_50) |
|
Class |
Class (5_51_53) |
|
Entry Description |
Company Entry Description (5_54_63) |
|
Batch |
Batch (5_88_94) |
|
ODFI |
Originating DFI (5_80_87) |
|
Immediate Destination |
Immediate Destination (1_04_13) |
|
Immediate Origin |
Immediate Origin (1_14_23) |
|
File Date |
File Date (1_24_29) |
|
File Time |
File Time (1_30_33) |
|
File modifier |
File Modifier (1_34_34) |
|
Immediate destination name |
Immediate Destination Name (1_41_63) |
|
Immediate origin name |
Immediate Origin Name (1_87_94) |
|
Amount |
Amount_Unsigned (no dollar or comma) |
|
Service CC |
Service Class 2xx (5_02_04) |
|
Julian Date |
Julian_Settle_Date (5_76_78) |
|
Text4 |
Text4 |
|
Text5 |
Text5 |
|
Return Code |
Return Code (7_04_06) |
|
Return Description |
Return Description |
|
Original Trace # |
Original Trace (7_07_21) |
|
Optional Date |
Optional Date (7_22_27) |
|
Original RDFI |
Original Receiving DFI (7_28_35) |
|
Addenda Text |
Addenda Text (7_36_79) |
|
Addenda Trace |
Addenda Trace (7_80_94) |
|
Addenda Type |
Addenda Type (7_02_03) |
|
Returns Origin ID |
Returns Origination Transaction Code (calculated) |
|
Returns RTN |
Returns ABA 9 digit (concatenated) |
|
Amount |
Amount_Unsigned (no dollar or comma) |
ACH Return Codes
Code |
Description |
Detail |
---|---|---|
R01 |
Insufficient funds |
Available balance is not sufficient to cover the amount of the debit entry |
R02 |
Bank account closed |
Previously active amount has been closed by the customer of RDFI |
R03 |
No bank account/unable to locate account |
Account number does not correspond to the individual identified in the entry, or the account number designated is not an open account |
R04 |
Invalid bank account number |
Account number structure is not valid |
R06 |
Returned per ODFI request |
ODFI requested the RDFI to return the entry |
R07 |
Authorization revoked by customer |
Receiver has revoked authorization |
R08 |
Payment stopped |
Receiver of a recurring debit has stopped payment of an entry |
R09 |
Uncollected funds |
Collected funds are not sufficient for payment of the debit entry |
R10 |
Customer advises not authorized |
Receiver has advised RDFI that originator is not authorized to debit his bank account |
R11 |
Check truncation entry return |
To be used when returning a check truncation entry |
R12 |
Branch sold to another RDFI |
RDFI unable to post entry destined for a bank account maintained at a branch sold to another financial institution |
R13 |
RDFI not qualified to participate |
Financial institution does not receive commercial ACH entries |
R14 |
Representative payee deceased or unable to continue in that capacity |
The representative payee authorized to accept entries on behalf of a beneficiary is either deceased or unable to continue in that capacity |
R15 |
Beneficiary or bank account holder |
(Other than representative payee) deceased* - (1) the beneficiary entitled to payments is deceased or (2) the bank account holder other than a representative payee is deceased |
R16 |
Bank account frozen |
Funds in bank account are unavailable due to action by RDFI or legal order |
R17 |
File record edit criteria |
Fields rejected by RDFI processing (identified in return addenda) |
R18 |
Improper effective entry date |
Entries have been presented prior to the first available processing window for the effective date. |
R19 |
Amount field error |
Improper formatting of the amount field |
R20 |
Non-payment bank account |
Entry destined for non-payment bank account defined by reg. |
R21 |
Invalid company ID number |
The company ID information not valid (normally CIE entries) |
R22 |
Invalid individual ID number |
Individual id used by receiver is incorrect (CIE entries) |
R23 |
Credit entry refused by receiver |
Receiver returned entry because minimum or exact amount not remitted, bank account is subject to litigation, or payment represents an overpayment, originator is not known to receiver or receiver has not authorized this credit entry to this bank account |
R24 |
Duplicate entry |
RDFI has received a duplicate entry |
R25 |
Addenda error |
Improper formatting of the addenda record information |
R26 |
Mandatory field error |
Improper information in one of the mandatory fields |
R27 |
Trace number error |
Original entry trace number is not valid for return entry; or addenda trace numbers do not correspond with entry detail record |
R28 |
Transit routing number check digit error |
Check digit for the transit routing number is incorrect |
R29 |
Corporate customer advises not authorized |
RDFI has bee notified by corporate receiver that debit entry of originator is not authorized |
R30 |
RDFI not participant in check truncation program |
Financial institution not participating in automated check safekeeping application |
R31 |
Permissible return entry (CCD and CTX only) |
RDFI has been notified by the ODFI that it agrees to accept a CCD or CTX return entry |
R32 |
RDFI non-settlement |
RDFI is not able to settle the entry |
R33 |
Return of XCK entry |
RDFI determines at its sole discretion to return an XCK entry; an XCK return entry may be initiated by midnight of the sixtieth day following the settlement date if the XCK entry |
R34 |
Limited participation RDFI |
RDFI participation has been limited by a federal or state supervisor |
R35 |
Return of improper debit entry |
ACH debit not permitted for use with the CIE standard entry class code (except for reversals) |
TabaPay Response Codes
Status |
Result |
File |
Message |
---|---|---|---|
Accepted |
0 |
Processed |
|
Rejected |
423 |
Processed |
Invalid input record length |
Rejected |
440 |
Processed |
Invalid entry class |
Rejected |
430 |
Processed |
Invalid ISO |
Rejected |
431 |
Processed |
Invalid MID |
Rejected |
432 |
Processed |
invalid ISO format |
Rejected |
428 |
Processed |
Duplicate or re-used IIN |
Rejected |
409 |
Processed |
Duplicate or re-used IIN |
Rejected |
427 |
Processed |
Invalid entry type |
Rejected |
426 |
Processed |
Invalid ACH type (S, N, R) |
Rejected |
425 |
Processed |
Invalid account type |
Rejected |
452 |
Processed |
Invalid debit or credit indicator |
Rejected |
422 |
Processed |
Invalid RTN |
Rejected |
448 |
Processed |
Invalid amount formt |
Rejected |
449 |
Processed |
Limit exceeded |
Complete |
0 |
Output |
|
Error |
100 |
Output |
Rejected by ODFI |
Updated 7 days ago