Most companies offering FX services will charge both.
Most consumers are not sophisticated enough to do the calculation to blend the fee into the quoted rate to get the true rate. Institutions will be.
The risk of a “no fee” pricing scheme (or why there are fees in the first place) is to avoid getting wiped out by lots of small transactions, where your per-transaction overhead dominates. OP clearly has automated enough that they are not worried about this. And given the amount of manual work still involved in FX (do not get me started on some of the process hell I saw running international payments globally over an “api” payment provider), there is also a lot of room to reduce total cost through automation.
But in summary, everyone is making money from the FX rate spread, and you are always getting charged more than the provider is paying for the currency. The question is just whether fee or spread dominates.
You know, I have a Capital One bank account that I opened because it advertised no foreign transaction fees.
And yet whenever I make a foreign transaction on the debit card, I pay 1% more in dollars than I get in FX. That 1% number is eerily consistent.
I still use it. 1% is a reasonable fee. But I'd be a lot happier if they admitted they were charging it. It takes a lot of effort to tell the difference between "ZERO foreign transaction fee! (but your prices are 1% higher than they should be)" and "ZERO foreign transaction fee! (but your prices are 8% higher than they should be)".