Do-it-yourself ACH direct deposit

About Nathan Blecharczyk

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


About Nathan Blecharczyk

Speak Your Mind


To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see


  1. Javier Mata

    Hi Nathan,Great post! Could you tell us a bit more about the platform that Airbnb migrated to? Does that platform provide you with a similar solution for wire transfers?Cheers,Javier

  2. greggles

    It’s great to post this, but a lot of details are left out. If you aren’t using ACH…what are you using? How does SVB get money to the bank accounts of other people? In your new system, how long does it take for money to arrive in the recipient account?

    Did you consider working with Dwolla and their FiSync platform?

  3. houston fisher

    Hey!! Good post…. Could you tell me How does my business benefit from using Direct Deposit via
    ACH payments?