Skip to content
Jared Morgan edited this page Mar 14, 2014 · 3 revisions

These are some really rough thoughts for what I'd like to see in a future version of this gem.

Note that @ristojuola is working on updates in https://github.com/financeit/ach for compliance with the most recent ACH guidelines and to fix some of my mistakes. I expect some of those changes will be breaking. If I can to this quick enough, maybe those updates and (some) of the ideas here can be released together.

  1. Smarter field setters: a. Routing number should be able to calculate or verify the check digit b. Company Identification should have a way to either input 10 characters of separately specify an ICD.
  2. All record types supported, including parsing

Something like this is how I'd like to set the data:

file = ACH::ACHFile.new

ach.header do |h|
  h.immediate_destination = '0000000000'
  ....
end

ach.batches.add 'PPD' do |b|
  b.header do |bh|
    bh.company_name = 'Company Name'
    ...
  end

  b.entry_details.add do |ed|
    ed.transaction_code = ACH::CHECKING_CREDIT
    ...

    ed.addenda.add do |a|
      a...
    end
  end
end

# file and batch control numbers would be updated anytime control is called (control is rebuilt)
# trace numbers update automatically
# Page 139 about trace numbers (also generated automatically unless explicitly set)

# Not using blocks:
h = ACH.header('PPD')
b = ACH.batch('PPD')
h.batches.add b
e = ACH.entry_detail('PPD')
b.batches.add e
ACH.addenda('PPD')
e.batches.add a
Clone this wiki locally