Only a fraction of the fee is the cost. It's mostly profit.
Not that I'm for these sort of controls, but he is being disingenuous.
As a programmer that has coded these purchases, I can testify to that truth. If you have certain info - Name, address, card number, expiration and CID the fee is actually on the order of 3 cents.
It really depends on how you allocate costs. There are a lot of hidden overhead expenses you don’t see.
Someone has to pay for branches, data centers, networks, and all the employees who work there. At a large bank, there may be thousands of people working in retail services. Sure, they’re spread out of 40 million accounts, but there are considerable costs involved.