Hacker News new | past | comments | ask | show | jobs | submit login
How ACH works: A developer perspective – Part 3 (zenpayroll.com)
63 points by aseidl on July 9, 2014 | hide | past | web | favorite | 17 comments

I've done a lot of thinking in this area, mostly a few years ago when we were starting kraken.com but also ongoing.

Though the US ACH system is a particularly bad case, as others have pointed out it affects credit cards, and to a lesser extent cryptocurrencies too, and it's a global problem.

The solution is to build systems that objectively consider the real properties of these settlement networks, known or inferred, before committing to transactions.

This allows, for wont of a better term, a 'free market' in financial services that should act to increase efficiency and reduce overheads/latency worldwide by incentivising financial services companies to be more objective and transparent in their dealings.

Now: [forced to accept legalese at your bank] [try to do something at your bank] [wallow in pain and self-pity as they fail to either do anything or communicate about the flailing process]

Future: (with plugin support for arbitrary cryptographic protection, financial endpoint identification and entity identification/reputation systems) [send RFQ] [receive quotes on what you want to do, including temporal and cost overheads, references, jurisdiction information, intermediate path details, asset-types/currencies supported] [select a quote based on your local priorities, risk profiles, etc.] [execute and manage state versus promised progression with incremental status updates]

If anyone else believes this is generally logical I'd love some feedback on http://ifex-project.org/ ...

The only thing I see sort of remotely in this space right now is high end logistics solutions, of the type probably employed by SAP customers, global courier companies and places like Amazon's global warehousing.

The details you provide are especially interesting, especially in light of PayPal's announcement yesterday of their Next-Day-Settlement (NDS) service: http://thenextweb.com/insider/2014/07/08/paypal-now-lets-us-...

NDS must be a proprietary alternative to ACH.

Thanks for this write-up. Looking forward to your next post on the ACH file format.

It's interesting how the incentives are misaligned for the two banks. The receiver wants to wait as long as possible before returning a REJECT, because returning earlier doesn't benefit them, and in fact can hurt the customer experience.

My bank will send me a warning that an ACH is pending, and I need a certain amount in the account by 10am the next morning. That's plenty of time to move funds into place from a neighboring account (as long as it doesn't involve selling shares). And on the other hand, it's an interesting benefit that the requester of the debit doesn't see this happening.

I think the solution is an explicit ACK. We could add an optional pingback url as part of each transaction message, and let everyone else deal with building the infra.

I have a feeling it's a lot more complicated than that. $39 trillion a year is a lot of transactions to track live status for, so I suspect this is both complicated and valuable.

What the heck NACHA -- impress us with your ability to build the next gen ACH system! Oh right, unless we're talking a physical structure, that's never going to happen.

Good read. The most interesting fact to me was that it takes 3 days to 100% confirm a transaction.

I thought bitcoin was slow, but this really gives me hope.

>I thought bitcoin was slow

I don't know what standard people are using to reach this opinion.

Credit card:

• Transaction goes through to pending state within 5-30 seconds. Chargeback is easy in this state.

• Transaction is fully confirmed in 60 days.


• Transaction goes through to pending state within 1-2 seconds. Chargeback may be possible in this state.

• Transaction is fully confirmed in a few minutes.

Technically it takes 60 days. Not sure from what basis. I would assume that 60 days countdown only starts on the 2nd or 3rd day, so that would make it 63 days.

There are many ACH transaction types (called: SEC cods).

The post I wrote generally applies to PPD SEC codes, which are generally used when debiting a consumer bank account.

The 60-day rule applies to PPD SEC codes.

There's another ACH SEC code called CCD, which can be used when debiting a corporate bank account. For CCD codes, an 'unauthorized' return must be received within 48 hours, instead of the 60-days.

Here's a full list of ACH SEC codes:


   "... no later than the opening of business on the banking
   day following the sixtieth calendar day following the   
   settlement date of the original entry"
From my notes, quoted from the NACHA spec a few years back.

So, settlement date is the next day (mostly). + 60 days, then the next morning that banks are open. So, if 60 days is Thursday, Christmas Eve, then the next Monday morning is the cutoff.

"the RDFI is allowed 60 days to return the ACH debit. Because of this, the ACH protocol is very consumer friendly, since the originator of the ACH debit must now return the money they debited"

Well, consumer-friendly if the consumer has enough money in their account to temporarily cover the unauthorized debit amount plus any other authorized debits/withdrawls that occur in the meantime. But if the ODFI's do their homework to keep fraudsters from getting accounts, I suppose that issue is minimized.

Good Read for non-developers.

Best resource is official NACHA Rule Book - must read for any payments/ach developer.


In the case of a debit, say, is the account receiving the money always the ODFI? Can you do an ACH transfer from one client’s account at bank A to another client’s account at bank B, with you using a third financial institution to process this?

the ODFI is always the bank that is initiating the ACH transaction, whether its a credit or debit. The RDFI is always the bank that is the target of the ACH transcation, whether its a credit or debit.

You cannot do an ACH transfer from one clients account to another clients account. You must be the originator of the ACH transaction (meaning your bank account must be at one end of the transaction).

At ZenPayroll, this is why we'll first initiate an ACH debit from the company's account to our account, wait 3 business days, and then initiate an ACH credit from our account to the employee's account.

This is really interesting... I currently use and administer our Intuit Online Payroll account. I'm required to run payroll only 2 full business days before pay day. Does the final credit stage you mention here not introduce any additional delay? (Read: is IOP doing the same thing to their main account?)

Also, are you or IOP able to collect interest on the 3 day float? Or does interest not accrue for not fully guaranteed funds?

Finally, is the clearinghouse account you utilize internally not something of a high-risk target? I understand there are safeguards in place to prevent unauthorized false requests, but the thought of even temporarily acting as a go between with somebody else's funds like that feels an awful lot like being a bank without the rewards.

I also wonder if the account is legally set up so that employer customers get FDIC pass-through insurance.

I'm interested in two things:

1. What would happen if ACH was fully guaranteed minus chargebacks instantly? What is that worth? 2. What would it be worth if ACH was fully guaranteed instantly PERIOD - including chargebacks? What would that be worth?

What does SVB charge for an ACH debit?

The cost depends largely on your ACH volume, but is generally less than $0.50.

Thus, ACH is known as a low-cost alternative to credit card fees, which charge a percentage of the amount.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact