I work on payments related systems. At Amazon, this meant connecting to banks and being dependent on them. At Snap, we use payment processors to facilitate things relating to payments.<p>What I've learned is that the U.S. payments infrastructure is quite far behind, it's complicated, and frankly makes building with it more difficult than it should be.<p>For example. There's this new (as of like 2017 iirc) payment rail called Real Time Payments. Think "ACH transfer" but in <10 minutes 24/7 instead of 3-5 business days.<p>It's advertised as 24/7 however banks are actually allowed to go offline from 3am - 6am on Sundays (it may be once a month, memory is a bit fuzzy). So if you initiate a payment to a payee who's bank is offline, the payment is "rejected". So now you have to tell your customer "hey sorry, the payment has been rejected, it's not actually going to be available for a few hours".<p>Also there's no centralized way to tell when banks are down and as far as I know, there was no system built to track which banks are down and which are not. So if you want to avoid sending payments to a bank that's offline, you need to look at the history of payments to see for recent reject codes, have a direct line of communication with the banks, or use a third party API which probably does one of the prior mentioned things.<p>There's also some fun (sarcasm) edge cases in the state machine for a payment and there's a state of payments where it's said to be completed but actually the payment is in limbo and hasn't been received.<p>Remember, this is a payment system that was released in the last 5-10 years. Also, only ~70% of banks are onboarded to this payment rail so you have to look at payment destination routing numbers to validate if it's an option or not.<p>I mention all of this to try and convey the complexity and difficulty of working with the U.S. payment rails directly. I don't know if charges applies in the same manner, but I bet it's just as complicated.<p>With that said, this is Affirms bread and butter for their business. They should be aware of these things. Build the tools to enable their support team to do their jobs and help customers.<p>p.s. can't forget that ACH transfers are built to be done in batches for business hours only. That's a whole other topic.