python-ach
==========

.. image:: https://travis-ci.org/travishathaway/python-ach.svg?branch=master
    :target: https://travis-ci.org/travishathaway/python-ach

ACH file generator module for python. So far, this has been tested with
“PPD” and “CCD” batches with addenda records.

Example
=======

Below is an example of how to use the module:

.. code:: python


    from ach.builder import AchFile

    settings = {
        'immediate_dest' : '123456789', # Your bank's routing number 
        'immediate_org' : '123456789', # Bank assigned routing number
        'immediate_dest_name' : 'YOUR BANK',
        'immediate_org_name' : 'YOUR COMPANY',
        'company_id' : '1234567890', #tax number
    }

    ach_file = AchFile('A',settings) #file Id mod

    entries = [
        {
            'type'           : '22', # type of
            'routing_number' : '12345678',
            'account_number' : '11232132',
            'amount'         : '10.00',
            'name'           : 'Alice Wanderdust',
            'addenda' : [
                {
                    'payment_related_info': 'Here is some additional information',
                },
            ],
        },
        {
            'type'           : '27',
            'routing_number' : '12345678',
            'account_number' : '234234234',
            'amount'         : '150.00',
            'name'           : 'Billy Holiday',
        },
        {
            'type'           : '22',
            'routing_number' : '12323231',
            'account_number' : '123123123',
            'amount'         : '12.13',
            'name'           : 'Rachel Welch',
        },
    ]

    ach_file.add_batch('PPD', entries, credits=True, debits=True)

    print ach_file.render_to_string()

This returns the following NACHA file:

::

    101 123456789 1234567891407141745A094101YOUR BANK              YOUR COMPANY                   
    5220YOUR COMPANY                        1234567890PPDPAYROLL         140714   1123456780000001
    62212345678011232132         0000001000               ALICE WANDERDUST        1123456780000001
    705HERE IS SOME ADDITIONAL INFORMATION                                             00000000001
    622123456780234234234        0000015000               BILLY HOLIDAY           0123456780000002
    622123232315123123123        0000001213               RACHEL WELCH            0123456780000003
    822000000400370145870000000000000000000172131234567890                         123456780000001
    9000001000001000000040037014587000000000000000000017213                                       
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
