Technically... You cant initiate an ACH transaction. You request it from a member institution, who authorize and initiate it. Many large institutions have their own APIs... But cybersource http://www.cybersource.com/developers/ has most of what you'd need
Interesting - as I understand the process is generally to send an ACH file to a bank's file transfer point once agreements are signed and credentials/keys are shared.
Are there any libraries to create the ACH file itself from basic information like ODFI, etc?