I want to pass on stripe fees to customers paying with card, thereby encouraging them to use ACH payment methods.
I've considered making the fee a separate charge, but there is a fee on the fee, and so the customer would end up paying more than the Stripe fee rate.
Also, I could add invoice items when the invoice.created webhook is sent, however, there's the issue of how to deal with a customer changing their payment method after the invoice is finalized.
So, any ideas?
Generally passing payment processing fees on to customers is discouraged and, in some cases, may be against the law.
That said, Stripe has a support article that includes the formula you need to use to pass fees to customers while accounting for the overall increase in the charge amount:
The logistics of applying this formula to Subscriptions would be quite tricky. As you pointed out, the customer may switch to a different payment method after the Invoice is finalized, and if your goal is to only pass on the fees based on the payment method used it's probably not practical/possible to do this in the context of a Subscription/Invoice in Stripe.