How ACH works: A developer perspective – Part 4
engineering.zenpayroll.com
engineering.zenpayroll.com
The second most surprising thing was that we'd get back returns after a full year had elapsed. Most return reasons have time limits, but banks will push through the fraud reason without apparent limit and you'd better be ready to handle it.
The third most surprising thing was the account verification system - you 'verify' by sending through a special transaction and waiting a week. If it hasn't returned to you after a week, must be good! I don't think anybody designing a system today would come up with such a mechanism, but that's what we have for ACH...
The first business I encountered that used the “real” verification system was Fidelity, and I found that quite annoying.
http://www.npr.org/blogs/money/2013/10/04/229224964/episode-...
It may appear archaic from the outside, but these systems are pushing $39 trillion dollars a year (22 billion transactions) [1]. I can see why the big banks are hesitant to change things drastically.
In some ways security isn’t such a big deal for financial transactions, because they can be undone. Checks are very insecure. ACH is insecure because you can take money out of anyone’s account with the information at the bottom of the check, but ACH transactions can be reversed for at least 45 days after they are made.
You also have to ask “how much?” How long is it reasonable to wait for change? The system for same day ACH has existed for years. Very few banks have opted in. Should the Fed set a deadline and say, everyone has to be on it by 2020? (It’s the nature of such deadlines that they are be extended, but something will eventually happen.)
AFAIK, there's no automatic way of tracing a claim to it's subsequent rejection, outside of doing it yourself. You would have thought that would be basic.
And yes, pre-notes are slightly hilarious.
In europe, we're moving towards SEPA - http://en.wikipedia.org/wiki/ISO_20022
(source: I implement financial IT stuff in the US, UK and Europe)
Part 2: http://engineering.zenpayroll.com/how-ach-works-a-developer-... (HN: https://news.ycombinator.com/item?id=7740967)
Part 3: http://engineering.zenpayroll.com/how-ach-works-a-developer-... (HN: https://news.ycombinator.com/item?id=8007838)
One institution I was dealing with had a spec for a fixed-record-length file, but when I received the file in production, they truncated it to the last non-whitespace character, which was something not in the spec.
I haven't seen a lot of payment gateways but does ODFI place block limits or OverDraft limits on the originator and does it vary from bank to bank?
The ODFI does place daily (soft) limits on the originator, and the amount of collateral you have to put up is proportional to your daily limit. It definitely varies from bank to bank and is a largely of a factor of how much your bank trusts you and your past ACH history with them.
All of that depends on the bank, and is somewhat negotiable. We had much better luck talking to a local bank where we were able to get a meeting with the head of the business banking division.
Is there any chance you could go into how you developed a relationship with your ODFI? Like how you found them, how early in your development they were willing to work with you, what type of compliance checks they required, what type of fraud prevention you guaranteed, etc?
This seems to be the biggest obstacle as a startup in the very early stages of exploring ACH.
20 years ago when I first wrote a program to generate ACH files it struck me as crazy that all that was needed to take money from someones account (given an existing ACH relationship with a bank to send the file in the first place) was an individual's bank's public routing number and the individual's personal checking account number - both of which were at the bottom of every check they write.
I get that fraudulent charges can be reversed, but that's also true on credit cards - so why the lower security on ACH?
If you think about it, it's pretty easy for someone to create a fake check based on someone's account/routing number (which, as you correctly say, it's not private information because is on the bottom of every check you write), put it in an ATM machine and debit someone's account without their permission. ACH is really no less secure than the current security protocol for checks.
Not that I think this is a good idea, but this might be a possible explanation of why ACH was designed this way.
Hopefully, you will notice it in a timely manner and get your debit reversed. Without action on your part, the fraudulent transaction will most likely never be questioned.
If anyone knows I'm genuinely curious: why hasn't it been exploited on a large scale or what, if anything, prevents it from being exploited?
Edit: jeffasinger & edawerd largely answered my question in their posts above.
What's more interesting to me is the police and FBI's complete disinterest in going after the perpetrators even though they knew who they were.
* transactions are reversible for quite a long time.
* ODFIs (originating banks) are responsible for files they send.
A bad actor can get away with stuff for a while, but sooner or later, their ODFI will cut them off. Those relationships take time to build, so you don't want to be going through them quickly. And there are often deposits and other security protecting the ODFI.So, the customer says it'sfraud. It's not their bank's problem, they punt to the ODFI. The ODFI is in the business of not taking too much risk, so they yank money from the originator. The Originator, they might be SOL, depending on if they're the one who was scammed, or if they have a way to reclaim the money.