In the US, you have to use a wire transfer is you're moving more than about $4,000. And wires cost a lot of money. And they aren't even instant even though they are billed that way.
I had to move some money from one account I own to another, and I needed it there the same day. The only way to make it happen was to drive 15 minutes to the origin bank, spend 15 minutes filling out a paper form in the branch, which was then faxed to the central processing center. Then I had to call the center center every hour to see if they'd gotten to it yet. When they finally did do it, I had to call the receiving bank with the tracking number and tell them, and then they had to find it on their side, which took a couple minutes, before it was finally processed.
From the time I finished filling out the "instant" wire form (and paying $45!) to the time it hit my other account was over three hours! And that was after the initial 30 minute delay of driving to the bank and filling out a paper form.
Seriously. This is disgusting but it works.
Which is helpful in cases like this. And purely idiotic in many other cases because it enables check cashing scams which are probably the number one most popular scam in the US.
A couple of times I've moved between $17,000 and $40,000, and Chase sits on it for up to TEN DAYS before it will release received the funds.
Chase claims it's a federal regulation, but no one in the branch or on the phone can tell me which one.
It's all about the float.
The federal deposit rate for banks is 2.35% right now. That's $64 to the bank for every million dollars every day it is deposited at the fed.
Now imagine a large bank like chase is dealing with billions of dollars a day in transfers. Hold it several days when you receive a transfer and hold it several days before sending a transfer and you are making literally millions of dollars every month just for dragging your feet on transfers.
$5,000 isn't enough to cover rent in San Francisco.
Yes, Zelle is a nice stopgap solution, except it is only supported by a few banks, and still has really low sending limits.
Note that this only applies for business accounts. Regular users as far as I can tell are unable to access the API.
In the UK, they are starting to wake up. The new "challenger" banks which exist here all do this as a hygiene feature - see Monzo, Starling, Revolut. With Open Banking mandating open APIs for all banks, this will become the norm soon. The fact that American banks and regulation hasn't jumped on this is a symptom of something very wrong with the system.
I sincerely hope the launch of Apple Card or similar services disrupt consumer finance in the US as well and set a new bar. And when the above mentioned banks come to the US (which they are currently working on), you should absolutely switch and delete the 100 lines of python as well.