Live data from Hacker News

How ACH works: A developer perspective (2014)

engineering.gusto.com

211–220 of 226 posts

Re: How ACH works: A developer perspective (2014)

#211

Earlier quoted context omitted.

Bank account numbers are not unique across banks. Account number schemes aren't even uniform across banks. The only limitation is what fits within the ACH system. You need the combination of routing number (to identify the bank) and account number (to identify the individual within the bank). Zelle associates the bank account to a email address and / or phone number. Creation of these associations is gated through th…

If all you need is a phone number to pay, how does it handle multiple accounts? Or can you only sign up for a single account?

It's a 1:1 association. When I changed banks and tried to sign up online, it kept giving me an error. I stopped by a branch, and my old bank had registered me at some point. The teller had to call support and remove my previous association before they could create the new one.

Also, the association is to receive, not to send. Sending is initiated by your bank, which obviously already knows your account number. You send from your bank account to an email or phone number, which Zelle then translates to the target bank account.

Re: How ACH works: A developer perspective (2014)

#212
post #45

I noticed a few comments specifically referencing FTP (and who can blame them since the HN title as of this moment specifically references it). In the first post of the series, the author refers to the server as a "Secure FTP" server, which can be confusing to read[0]. In later parts (and a little googling of my own), it's clear that the server is actually an SFTP server, not a plain-old FTP server. It's still plenty…

I came to ask the same question, I followed the comments link on the tfa and notice it linked back to HN 1200 days ago and that was one of the top questions.

Re: How ACH works: A developer perspective (2014)

#213
post #45

I noticed a few comments specifically referencing FTP (and who can blame them since the HN title as of this moment specifically references it). In the first post of the series, the author refers to the server as a "Secure FTP" server, which can be confusing to read[0]. In later parts (and a little googling of my own), it's clear that the server is actually an SFTP server, not a plain-old FTP server. It's still plenty…

I don't think that there's anything archaic about using SFTP to move files around!

Re: How ACH works: A developer perspective (2014)

#214

Earlier quoted context omitted.

Ha! I wrote an editor for fixed length files, it lets you map to a cobol copybook, or create the layout manually. I never released it. Anyone interested?

If it works on Windows, I'd love to give it a try! Our ERP system is written in COBOL and I have to deal with fixed-width files all the time. Does it also handle REDEFINES and level 88?

Yes it handles redefines and 88s, my emails in my profile, I have a Windows build.

Re: How ACH works: A developer perspective (2014)

#215

Earlier quoted context omitted.

The difference is, however, that you can assign a bank account a number that is unique within a given banking system. Once you move into the realm of trying to tie an identifier you have no control over (and that has no reliable verification method for) to a place where money will go, you open yourself up to a smorgasbord of potential attack vectors, confusions and edge cases.

Bank account numbers are not unique across banks. Account number schemes aren't even uniform across banks. The only limitation is what fits within the ACH system. You need the combination of routing number (to identify the bank) and account number (to identify the individual within the bank). Zelle associates the bank account to a email address and / or phone number. Creation of these associations is gated through th…

You'll note of course that I said "banking system," and I said "you can assign a bank account a unique identifier." i.e. I can create a scheme where I can map a particular account to a globally unique number, with rules about who owns which ranges etc.

So if Alice provides Bob a globally unique identifier to their bank account, then that's where it's going.

If Alice gives Bob a token that is hopefully mapped to the account, then there's an additional layer that can go wrong.

Eve can compromise Alice's e-mail or phone number, and then try and convince their bank that their bank account should now be associated with that identifier. If it's a different bank, then presumably this request must be federated through the third party system. And hopefully the 'true' owner is not identified by sending an e-mail or SMS.

Or maybe Eve just creates a bunch of accounts and tries to associate them with a bunch of telephone numbers and e-mail addresses that she can compromise at will and waits for the money to roll in. This is obviously more likely if some people have more than one account, as it means that the mapping of account -> e-mail/phone no. can no longer be mandatory.

In your example it sounds like they've got some reasonable safeguards in place (like ensuring you have to de-register a mapping before you can register a new one), the only point I was trying to make is that yes, it can be done, but to be done safely it's much harder than just simply having an account number (including routing number/sort code/swift code etc.).

You lose the 1-1 mapping and it gives you yet another thing that you have to actively manage/remember how it's set up/remember to change when you change e-mail provider or your phone number changes.

Re: How ACH works: A developer perspective (2014)

#216

>At Gusto, we rely heavily on the ACH network. For example, when a company runs payroll, we’ll use the ACH network to debit the company’s account to fund their employee’s pay. Once we’ve received these funds from the company, we’ll again use the ACH network to initiate credits into each of the employee’s accounts to pay them for their hard work. Can you use ACH to initiate a transfer between two (third) parties (i.e.…

> Can you use ACH to initiate a transfer between two (third) parties (i.e. you not being one of them)?

No, the closest you could come is what you quoted. You could issue the debit & credit actions together, but you'd be taking on the risk that the debit fails and the credit succeeds, leaving you short.

> If not, what are the requirements to be a broker / escrow in between them?

The Federal Reserve is the entity that is between all inter-bank ACH transactions. Essentially US banks hold an account with the Federal Reserve. When they send ACH payments for their customers, their Fed account is debited (and the other bank is credited). When they receive ACH payments for their customers, their Fed account is credited (and the other bank is debited).

Re: How ACH works: A developer perspective (2014)

#217

Earlier quoted context omitted.

Well, if not TLS, then what would you use? Noise? TLS is the only widely deployed standard cryptographic protocol which has ever protected any internet communication to any degree. For its many flaws and patchwork, there is nothing even competing in the category.

There is ssh. Actually sftp (ssh) tends to be a lot more popular than FTPS (TLS) because of the whole FTPS NAT catastrophe that sftp doesn't have.

Yes. In my experience FTPS is a whole bucket of nope. I've never encountered a situation where we couldn't use SFTP.

The only time I've had FTPS work 'well' is when the client & server were both written by the same company (Tumbleweed) and they don't follow the RFC exactly.

Re: How ACH works: A developer perspective (2014)

#218

Earlier quoted context omitted.

Which is a bit like saying, at least the 70mph mountain pass road has a guard rail.

Well, if not TLS, then what would you use? Noise? TLS is the only widely deployed standard cryptographic protocol which has ever protected any internet communication to any degree. For its many flaws and patchwork, there is nothing even competing in the category.

It doesn't matter if the connection is secured if the data itself is not secured. Transport security is a red herring in a complex system.

If you are driving a car at 70mph around a mountain pass, even a really strong guard rail leaves the possibility that you could plummet ten thousand feet to your death. If, on the other hand, you were driving on the Bonneville salt flats at 45mph, there is much, much less danger.

Secure your data. Then paint the bike shed.

Re: How ACH works: A developer perspective (2014)

#219
post #48

Earlier quoted context omitted.

Same here when I worked at a Mortgage company. SFTP everywhere.

Did they use sftp from the OpenSSH package or was it some sort of commercial variant?

Linux/Ruby systems used openssh sftp. Windows Server/SQL Server used some POS SQL Server SSIS sftp plugin.
Post reply on HN