{   "comment": "NACHA ACH File Format - Record and field definitions",
    "descriptions": "nacha-descriptions.txt", 
    "references": [ "https://www.nacha.org/system/files/resources/AAP201%20-%20ACH%20File%20Formatting.pdf" ],
 
    "type": "ACH", "name": "NACHA ACH File", "format": "fixed", "recordLength": 94, "suffixes": [ "ach", "nacha" ], "signature": "1*",
    "description": "ACH file format, as defined by NACHA. See https://www.nacha.org.",
 
    "records": [
        { "type": "1", "name": "File Header", 
          "fields": [ [ "Record Type Code",        1, "M", "1", "1",
                            "Code identifying the File Header Record.", ["readonly"] ],
                      [ "Priority Code",           2, "R", "01", "01" ],
                      [ "Immediate Destination",  10, "M", "bTTTTAAAAC", "" ],
                      [ "Immediate Origin",       10, "M", "bTTTTAAAAC", "" ],
                      [ "File Creation Date",      6, "M", "YYMMDD", "" ],   
                      [ "File Creation Time",      4, "O", "HHMM",   "" ],  
                      [ "File ID Modifier",        1, "M", "AN",  "0" ], 
                      [ "Record Size",             3, "M", "094", "094" ],   
                      [ "Blocking Factor",         2, "M", "N", "10" ],    
                      [ "Format Code",             1, "M", "1", "1" ],   
                      [ "Immediate Destination Name", 23, "M", "AN", "" ],    
                      [ "Immediate Origin Name",  23, "M", "AN", "" ], 
                      [ "Reference Code",          8, "O", "AN", ""  ]]                
        },
        { "type": "5", "parent": "1", "name": "Company/Batch Header", 
          "fields": [ [ "Record Type Code",        1, "M", "5", "5", "", ["readonly"] ],
                      [ "Service Class Code", 3, "M", "N", "225" ],
                      [ "Company Name", 16, "O", "AN", "" ],
                      [ "Company Discretionary Data", 20, "O", "AN", "" ],
                      [ "Company Identification", 10, "M", "AN", "" ],
                      [ "Standard Entry Class Code", 3, "M", "AN", "" ],
                      [ "Company Entry Description", 10, "M", "AN", "" ],
                      [ "Company Descriptive Date", 6, "O", "AN", "" ],
                      [ "Effective Entry Date", 6, "R", "AN", "" ],
                      [ "Settlement Date", 3, "O", "AN", "" ],
                      [ "Originator Status Code", 1, "M", "AN", "1" ],
                      [ "Originating DFI Identification", 8, "M", "AN", "" ],
                      [ "Batch Number",           7, "M", "N", "" ]]
        },  
        { "type": "6", "parent": "5", "name": "Entry Detail", 
          "fields": [ [ "Record Type Code",        1, "M", "6", "6", "", ["readonly"] ],
                      [ "Transaction Code", 2, "M", "N", "" ],
                      [ "Receiving DFI Identification", 8, "M", "N", "" ],
                      [ "Check Digit", 1, "M", "N", "" ],
                      [ "DFI Account Number", 17, "R", "AN", "" ],
                      [ "Amount", 10, "M", "N", "" ],
                      [ "Check Number / Indiv Name", 15, "O", "", "" ],
                      [ "Individual Name / ID Number", 22, "O", "", "" ],
                      [ "Discretionary Data", 2, "O", "AN", "" ],
                      [ "Addenda Record Indicator", 1, "M", "N", "0" ],
                      [ "Trace Number", 15, "M", "N", "" ]]   
        },  
        { "type": "701", "parent": "6", "name": "Cross-Border Payment Addenda", "signature": "^701",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "01", "", ["readonly"] ],
                      [ "Transaction Type Code", 3, "R", "AN" ],
                      [ "Foreign Receiving DFI ID", 11, "R", "AN" ],   
                      [ "Foreign Payment Amount", 15, "R", "AN" ],  
                      [ "Foreign Trace Number", 22, "O", "N" ],    
                      [ "Foreign Receiver's Account Number", 25, "R", "AN" ],                                         
                      [ "Trace Number", 15, "M", "N" ]]
        },         
        { "type": "702", "parent": "6", "name": "Transaction Addenda", "signature": "^702",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "02", "", ["readonly"] ],
                      [ "Transaction Description", 7, "R", "" ],
                      [ "Network Identification Code", 3, "O", "AN" ],   
                      [ "Terminal Identification Code", 6, "R", "AN" ],   
                      [ "Transaction Serial Number", 6, "R", "AN" ],        
                      [ "Transaction Date", 4, "R", "N" ],    
                      [ "Transaction Time", 6, "R", "HHMMSS" ],    
                      [ "Terminal Location", 27, "R", "AN" ],     
                      [ "Terminal City", 15, "R", "AN" ],                      
                      [ "Terminal State", 2, "R", "AN" ],                                          
                      [ "Trace Number", 17, "M", "N" ]]
        },          
        { "type": "705", "parent": "6", "name": "Payment Addenda", "signature": "^705",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "05", "", ["readonly"] ],
                      [ "Payment Related Information", 80, "O", "" ],
                      [ "Addenda Sequence Number", 4, "M", "N" ],                     
                      [ "Entry Detail Sequence Number", 7, "M", "N" ]]
        },        
        { "type": "710", "parent": "6", "name": "First IAT Addenda", "signature": "^710",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "10", "", ["readonly"] ],
                      [ "Transaction Type Code", 3, "R", "AN" ], 
                      [ "Foreign Payment Amount", 18, "R", "" ],
                      [ "Foreign Trace Number", 22, "O", "AN" ],
                      [ "Receiving Company Name/Individual Name", 35, "M", "AN" ],
                      [ "Reserved", 6, "", "" ],
                      [ "Entry Detail Sequence Number", 7, "M", "N" ]]
        },        
        { "type": "711", "parent": "6", "name": "Second IAT Addenda", "signature": "^711",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "11", "", ["readonly"] ],
                      [ "Originator Name", 35, " M", "AN" ],
                      [ "Originator Street Address", 35, "M", "AN" ],
                      [ "Reserved", 14, "", "" ],
                      [ "Entry Detail Sequence Number", 7, "M", "N" ]]
        },        
        { "type": "712", "parent": "6", "name": "Third IAT Addenda", "signature": "^712",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "12", "", ["readonly"] ],
                      [ "Originator City & State/Province", 35, "M", "" ],
                      [ "Originator Country & Postal Code", 35, "M", "" ],
                      [ "Reserved", 14, "", "" ],
                      [ "Entry Detail Sequence Number", 7, "M", "N" ]]                     
        },         
        { "type": "713", "parent": "6", "name": "Fourth IAT Addenda", "signature": "^713",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "13", "", ["readonly"] ],
                      [ "Originating DFI Name", 35, "M", "AN" ],
                      [ "Originating DFI Identification Number Qualifier", 2, "M", "AN" ],
                      [ "Originating DFI Identification", 34, "M", "AN" ],
                      [ "Originating DFI Branch Country Code", 3, "M", "AN" ],
                      [ "Reserved", 10, "", "" ],
                      [ "Entry Detail Sequence Number", 7, "M", "N" ]]
        },    
        { "type": "714", "parent": "6", "name": "Fifth IAT Addenda", "signature": "^714",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "14", "", ["readonly"] ],
                      [ "Receiving DFI Name", 35, "M", "AN" ],
                      [ "Receiving DFI Identification Number Qualifier", 2, "M", "AN" ],
                      [ "Receiving DFI Identification", 34, "M", "AN" ],
                      [ "Receiving DFI Branch Country Code", 3, "M", "AN" ],
                      [ "Reserved", 10, "", "" ],
                      [ "Entry Detail Sequence Number", 7, "M", "N" ]]
        },   
        { "type": "715", "parent": "6", "name": "Sixth IAT Addenda", "signature": "^715",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "15", "", ["readonly"] ],
                      [ "Receiver Identification Number", 15, "O", "AN" ],
                      [ "Receiver Street Address", 35, "M", "AN" ],
                      [ "Reserved", 34, "", "" ],
                      [ "Entry Detail Sequence Number", 7, "M", "N" ]]
        },     
        { "type": "716", "parent": "6", "name": "Seventh IAT Addenda", "signature": "^716",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "16", "", ["readonly"] ],
                      [ "Receiver City & State/Province", 35, "M", "" ],
                      [ "Receiver Country & Postal Code", 35, "M", "" ],
                      [ "Reserved", 14, "", "" ],
                      [ "Entry Detail Sequence Number", 7, "M", "N" ]]
        },   
        { "type": "717", "parent": "6", "name": "Remittance IAT Addenda", "signature": "^717",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "17", "", ["readonly"] ],
                      [ "Payment Related Information", 80, "O", "" ],
                      [ "Addenda Sequence Number", 4, "M", "N" ],
                      [ "Entry Detail Sequence Number", 7, "M", "N" ]]
        },  
        { "type": "718", "parent": "6", "name": "IAT Addenda - Foreign Bank", "signature": "^718",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "18", "", ["readonly"] ],
                      [ "Foreign Correspondent Bank", 35, "M", "AN" ],
                      [ "Foreign Bank ID Number Qualifier", 2, "M", "AN" ],  
                      [ "Foreign Bank ID Number", 34, "M", "AN" ],     
                      [ "Foreign Bank Branch Country", 3, "M", "AN" ],  
                      [ "Reserved", 6, "", "" ],                     
                      [ "Addenda Sequence Number", 4, "M", "N" ],
                      [ "Entry Detail Sequence Number", 7, "M", "N" ]]
        },          
        { "type": "798", "parent": "6", "name": "COR Addenda", "signature": "^798",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "98", "", ["readonly"] ],
                      [ "Change Code", 3, "M", "AN", "" ],
                      [ "Original Trace Number", 15, "M", "N", "" ],
                      [ "Date Of Death", 6, "O", "AN", "" ],
                      [ "Original RDFI", 8, "R", "N", "" ],
                      [ "Corrected Data", 44, "O", "AN", "" ],
                      [ "Trace Number", 15, "O", "N", "" ]]
        },          
        { "type": "799", "parent": "6", "name": "Return Addenda", "signature": "^79(?!8)",
          "fields": [ [ "Record Type Code",        1, "M", "7", "7", "", ["readonly"] ],
                      [ "Addenda Type Code", 2, "M", "N", "99", "", ["readonly"] ],
                      [ "Return Reason", 3, "M", "AN", "" ],
                      [ "Original Trace Number", 15, "M", "N", "" ],
                      [ "Date Of Death", 6, "O", "AN", "" ],
                      [ "Original RDFI", 8, "R", "N", "" ],
                      [ "Addenda Information", 44, "O", "AN", "" ],
                      [ "Trace Number", 15, "O", "N", "" ]]
        },   
        { "type": "8", "parent": "1", "name": "Company/Batch Control", 
          "fields": [ [ "Record Type Code",        1, "M", "8", "8", "", ["readonly"] ],
                      [ "Service Class Code", 3, "M", "N", "225" ],
                      [ "Entry Addenda Count", 6, "M", "N", "" ],
                      [ "Entry Hash", 10, "M", "N", "" ],
                      [ "Total Debit Entry Dollar Amount", 12, "M", "N", "" ],
                      [ "Total Credit Entry Dollar Amount", 12, "M", "N", "" ],
                      [ "Company Identification", 10, "R", "AN", "" ],
                      [ "Message Authentication Code", 19, "O", "AN", "" ],
                      [ "Reserved", 6, "O", "AN", "" ],
                      [ "Originating DFI Identification", 8, "M", "AN", "" ],
                      [ "Batch Number", 7, "M", "N", "" ]]   
        },
        { "type": "9", "name": "File Control Record", "signature": "^9(?!999999)",
          "fields": [ [ "Record Type Code",        1, "M", "9", "9", "", ["readonly"] ],
                      [ "Batch Count", 6, "M", "N", "" ],
                      [ "Block Count", 6, "M", "N", "" ],
                      [ "Entry Addenda Count", 8, "M", "N", "" ],
                      [ "Entry Hash", 10, "M", "N", "" ],
                      [ "Total Debit Entry Dollar Amount In File", 12, "M", "N", "" ],
                      [ "Total Credit Entry Dollar Amount In File", 12, "M", "N", "" ],
                      [ "Reserved", 39, "O", "AN", "" ]]   
        },
        { "type": "999", "name": "Block Fillter Record", "signature": "^9999999",
          "fields": [ [ "Filler 1", 15, "O", "N", "999999999999999" ],
                      [ "Filler 2", 15, "O", "N", "999999999999999" ],
                      [ "Filler 3", 15, "O", "N", "999999999999999" ],
                      [ "Filler 4", 15, "O", "N", "999999999999999" ],
                      [ "Filler 5", 15, "O", "N", "999999999999999" ],                          
                      [ "Filler 6", 19, "O", "N", "9999999999999999" ]]   
        }         
    ]
}