One of the most frequent implementation questions that I am asked by entrepreneurs is how does Airbnb make ACH direct deposits into customers’ bank accounts. There seems to be a wave of transactional marketplaces being built and everyone wants this capability. Surprisingly, there were few, if any, plug-and-play providers of this service when I implemented our solution for Airbnb, though I do know multiple companies who are building products around this now.
The do-it-yourself solution is quite straightforward though. Most commercial banks have an interface that can be activated by request that allows you to make ACH deposits. Like many startups in the Bay Area, we are a customer of Silicon Valley Bank, and, as a result, our original implementation used the SVBeConnect ACH Service. Each day our system would output a CSV file that contained batched deposit instructions (basically amount and beneficiary account details). Each weekday someone in our office would upload the file to the bank, though this step can be automated using secure FTP.
Validation can be accomplished by issuing a “pre note” (a special type of transaction in which no money is transferred) or by making a micro deposit. If the account details are wrong, a notification is typically generated within 1-3 business days. Another manual step is collecting these error notifications each day and notifying the customer. Although it would be nice if an API or XML report existed for this, a manual, but streamlined workflow is sufficient for our needs.
Airbnb migrated off the Silicon Valley Bank ACH platform as our needs grew beyond just ACH, though our current solution is still similar to the above. It is worth mentioning that at scale the cost of ACH is very cheap. We currently pay about 10 cents per transaction.
If you are going to collect and store bank information, make sure to educate yourself about SSL and how to do encryption properly. The official resource for ACH related information is www.nacha.org.