tags:

views:

497

answers:

4

You know those websites that let you type in your checking account number and the routing number, and then they can transfer money to and from your account?

How does that work? Any good services or APIs for doing that? Any gotchas?

+3  A: 

The banks do have APIs for doing this, but only approved people/companies are allowed to interface with these systems. Because it actually involves transferring money around, the security requirements are pretty high in terms of how you handle the account numbers on your system. Many sites that offer this feature for buying goods actually use a third party system to handle the actual money transfer into their account. This lowers the amount of trouble to implement the API, as well as putting the burden of security on the third party handling the money transfers. If you are serious about setting up a system where you can accept bank account numbers, and exchange funds, you should contact your bank, and see what the actual requirements for implementing such a system. Each bank has their own system, along with their own rate regarding the cost of these transactions.

[ADDITION]

Some third parties I'm aware of are

Moneris Cactus Beanstream

I'm in Canada, although I think Moneris and Cactus operate in the US. I think Beanstream doesn't. Again, you can talk to your bank, and they can probably get you in touch with a third party who will help you with the transactions.

Kibbee
There's a fair amount of federal law regarding electronic transactions as well.
davenpcj
You know of an example of one of those 3rd parties?
Joe Van Dyk
+1  A: 

Paypal has a fairly accessible API you can use within your program to accomplish some of this.

davenpcj
Using paypal, I can transfer money from my bank account to another person's bank account? I guess the recipient would have to be signed up on paypal as well?
Joe Van Dyk
davenpcj
A: 

Re PayPal, note that you need a specific PayPal account, and that you may only transfer funds from/to PayPal accounts, and not, e.g., between two bank accounts of yours.

Asaf Bartov
+3  A: 

If you want to be able to initiate transfer of funds between accounts in different financial institutions (using account and routing number), you need to find a payment processing company that offers ACH (http://en.wikipedia.org/wiki/Automated_Clearing_House) transfer services. Usually these companies are subsidiary of a financial institution that already has access to ACH. For example. one such company is ACH Direct (http://www.achdirect.com/). I can't vouch for its services or reliability though, I am just giving it here as an example of what type of companies you need to search.

Of course, technically, you could try to connect to ACH directly. However, to do this, you need to follow the rules and regulations of NACHA (http://en.wikipedia.org/wiki/NACHA-The_Electronic_Payments_Association) when writing your software and pass rigorous certification. It's quite a big investment, so unless you are backed by couple of bilions of dollars, I wouldn't advise attempting this.

Franci Penov