Why does (did?) Direct Deposit (in the US) take so long to set up?

Several years ago, when I would sign up for direct deposit with an employer, I was told that I might get one or two more paper checks because they do a “test” deposit first. I don’t understand what waiting to do a test deposit on payday that I never get called about is useful. Why can’t they do it immediately, and what exactly are they verifying? That my account exists? Isn’t that simple and doable much more quickly? Later, I was told by someone that the reason that it can take time for direct deposit to kick in was that the employer needed to have an account at the bank you want your funds deposited in, and that had to be set up, possibly manually.

New Employee: “Here’s my direct deposit paperwork.”
HR Drone: “OK”. <thinking to self>: “This is Miami. This void check is from the Mariners and Fishermen’s Bank of Western Alaska. There goes an evening.”
HR Drone calls M&F Bank of W.A.: “Thank you for calling the Mariners and Fishermen’s Bank of Western Alaska. Your call is important to us, please stay on the line… <plays sea shanties> Hello, thank you for calling the Mariners and Fishermen’s Bank of Western Alaska, how can I help you?”
HR Drone: “My name is Joe Davidson and I’m with DEO Technologies in Miami, Florida. We recently had one of your customers join our company and we would like to get direct deposit set up.”
Bank rep: “Ok. I see that you are not currently a customer. I’m mailing an application package to you. It’ll take at least a week considering the distance it has to be mailed. Fill this out and get it signed by at least two general managers, then mail it back. You’ll then receive your introductory new customer packet in 3-5 weeks. Then, you’ll need to call the number in that packet in order to set up the direct deposit.”

What really has to happen behind the scenes to get direct deposit set up?

There is no need for the employer to have an account at your bank. They’re all on the ACH network.

The reason it takes a few weeks to set up direct deposit is because your company (or payroll provider) runs all their deposits in a single batch job over night. If your pay period is every two weeks, then the test (to ensure that your account exists and is capable of receiving a deposit) is run then. Your actual check can then be deposited in the next batch. Until then, you get paper.

There is no incentive for them to go to the extra effort of verifying the account immediately, so they don’t. Other services that perform ACH transactions (like PayPal, for instance) will happily perform a verification transaction the same day and get you set up within two or three days. (The batch-job nature of the ACH system precludes doing anything faster than that. But that’s what wire transfers are for.)

But, why is doing a test $0 deposit even required? If they attempt on the first week to deposit your entire enchilada, and it fails, wouldn’t the report say:

Joe Brown: $1002.43 deposit success
Mary Victor $1020.23 deposit success
Newb Employee $2005.23 FAILED - Unrecognized Account Number
Silly Dood $1444.23 deposit success

HR Guy: “Hey, we need to do Newb Employee manually this week - direct deposit failed!”

Because of the nature of the ACH system, it can take up to several days for a failed transaction to be closed. The paying bank is then out the amount of your paycheck until the transaction unwinds and they get the money back. In addition, they now have to go to the trouble of printing a paper check for you to cover the failed DD.

It’s much easier to print paper checks by default, do a test transaction for $0.00 (so if it fails it’s no big deal) and then when they’re sure everything works, stop issuing paper checks.

It’s been several years since I worked in the industry, so this may be a little dated, but I’m pretty sure the basic information is the same.

Transfers between banks are processed using a system called Automated Clearing House (ACH). The employer submits a batch of payment records containging the Originating Bank/Acct #, Destination Bank/Acct #, Transaction Amount, and a bunch of other information.

Before a Destination Bank/Acct # (the employees bank account) can be used for the first time, a “Test Transaction” has to be sent through the system with a zero amount, to see if there are any errors that would cause the transaction to reject.

Most employers, rather than send through a batch with just one test transaction, will send the test the next time they do payroll. For that pay period, since there was no actual transaction sent, the employee will get a physical check instead of direct depost. If for some reason there were errors in the test, the employer will correct them and send another test with the next payroll.

Once the test has been successfullly sent, the employee will start getting direct deposits.

ETA: I need to learn to type faster.

Random guess: It’s easier to accidentally deposit nothing or some tiny amount (or what ever is involved in verifying an account) into the wrong person’s account then it is to deposit your paycheck in the wrong person’s account. Especially since you might not call them right away asking about it. For some people, it might be a few weeks of missed paychecks before they start wondering about it. Now they have to deal with getting the money back from the other person and everything that’s involved with that.
ISTM, for a one time thing, it’s easier just to verify the account first.

Because they get charged a hefty fee to do their ACH deposit process.

For a large employer, this is set up as a batch process, with hundreds or thousands of transactions in the batch. There is more effort involved than a single transaction process like PayPal, etc. If they did a batch of only a single transaction, they would still be charged the fee. So they bunch your first ‘test’ transaction in with the regular batch for the next payroll.

And for small employers, they’re likely to work with a payroll processor who does batch processes for all their clients, so everything applies for many small employers too.

The large employers probably also use a payroll processor. I know the large company I work for uses a payroll processor.

And, until that point, you haven’t gotten paid at all. Not too many employees would be amenable to waiting those extra days.

I would say the real question here is what will we get first: instantaneous monetary transactions or flying cars?

I mean, we have mainframes that can access and process 30 million database transactions a second. Information is flowing around the country at nearly the speed of light. The amount of processing to perform a simple deposit should be trivial.

What is the hold up guys?

We have instantaneous money transfers. They are called wire transfers and they are expensive.

The ACH system is designed to be cheap, simple and reliable. Transaction speed isn’t their primary concern.

It’s still a lot faster than mailing a check across the country, though.

The hold up is that nobody sees any significant increase in profits from this, so why spend the money to develop an instantaneous transfer system. Better to spend their development money on things that will gain more customers, increase sales, etc.

So I’d say this, and flying cars, are pretty unlikely. Neither makes much sense. (DWI’s cause enough havoc in society – can you imagine Flying-While-Intoxicated’s?)