```rust let content = std::fs::readtostring("mynachafile.ach").unwrap() let file = NachaFile::new(content)
println!("{:#?}", file); ```
sh
cargo install nacha
To parse a nacha file, just provide the filename!
sh
nacha my_nacha_file.ach
Given a nacha file my_nacha.ach
like below:
101 23138010401210428821906240000A094101Federal Reserve Bank My Bank Name
5225Name on Account 121042882 PPDREG.SALARY 190625 1121042880000001
62723138010412345678 0100000000 Receiver Account Name 0121042880000001
82250000010023138010000100000000000000000000121042882 121042880000001
9000001000001000000010023138010000100000000000000000000
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
sh
nacha my_nacha.ach my_nacha.json
json
{
"file_header": {
"record_type_code": "1",
"priority_code": "01",
"immediate_destination": "231380104",
"immediate_origin": "0121042882",
"file_creation_date": "2019-06-24",
"file_creation_time": "00:00:00",
"file_id_modifier": "A",
"record_size": "094",
"blocking_factor": "10",
"format_code": "1",
"immediate_destination_name": "Federal Reserve Bank",
"immediate_origin_name": "My Bank Name",
"reference_code": ""
},
"batches": [
{
"batch_header": {
"record_type_code": "5",
"service_class_code": "225",
"company_name": "Name on Account",
"company_discretionary_data": "",
"company_id": "121042882",
"standard_entry_class_code": "PPD",
"company_entry_description": "REG.SALARY",
"company_descriptive_date": "",
"effective_entry_date": "2019-06-25",
"settlement_date": null,
"originator_status_code": "1",
"originating_dfi_id": "12104288",
"batch_number": "0000001"
},
"detail_entries": [
{
"record_type_code": "6",
"transaction_code": "27",
"receiving_dfi_id": "23138010",
"check_digit": "4",
"dfi_account_number": "12345678",
"amount": 100000000,
"individual_id_number": "",
"individual_name": "Receiver Account Name",
"discretionary_data": "",
"addenda_record_indicator": "0",
"trace_number": "121042880000001",
"addenda": []
}
]
}
],
"file_control": {
"record_type_code": "9",
"batch_count": 1,
"block_count": 1,
"entry_and_addenda_count": 1,
"entry_hash": "0023138010",
"total_debit": 100000000,
"total_credit": 0,
"reserved": ""
}
}
sh
nacha my_nacha.ach my_nacha.yaml
fileheader: recordtypecode: "1" prioritycode: "01" immediatedestination: "231380104" immediateorigin: "0121042882" filecreationdate: 2019-06-24 filecreationtime: "00:00:00" fileidmodifier: A recordsize: "094" blockingfactor: "10" formatcode: "1" immediatedestinationname: Federal Reserve Bank immediateoriginname: My Bank Name referencecode: "" batches: - batchheader: recordtypecode: "5" serviceclasscode: "225" companyname: Name on Account companydiscretionarydata: "" companyid: "121042882" standardentryclasscode: PPD companyentrydescription: REG.SALARY companydescriptivedate: "" effectiveentrydate: 2019-06-25 settlementdate: ~ originatorstatuscode: "1" originatingdfiid: "12104288" batchnumber: "0000001" detailentries: - recordtypecode: "6" transactioncode: "27" receivingdfiid: "23138010" checkdigit: "4" dfiaccountnumber: "12345678" amount: 100000000 individualidnumber: "" individualname: Receiver Account Name discretionarydata: "" addendarecordindicator: "0" tracenumber: "121042880000001" addenda: [] filecontrol: recordtypecode: "9" batchcount: 1 blockcount: 1 entryandaddendacount: 1 entryhash: "0023138010" totaldebit: 100000000 total_credit: 0 reserved: "" ```