Thanks for all the ideas, Ian.
Firstly, we don’t like the concept of building a few pretty obscure features as a temporary workaround for the lack of the real feature, so that’s not the route we would like to take.
We are, however, much more interested in solving the real problem.
The dynamic fee amount isn’t actually too hard… It’s impossible. We cannot tell Stripe to charge (for example) $100 + card processing fees. We have to give them the final amount. It would also be quite unfair to the paying customer not to actually know how much they are agreeing to pay. The only option here is for breweries to specify a single flat rate fee for card payments. For example, you could specify 3% card fee, and you could pitch this at a fair rate based on your own payment processing fee agreements with Stripe. Most businesses already have a “blended rate” for card fees from Stripe, which makes this much easier for them (though I appreciate that the blended rate doesn’t cover all possible card types).
The hard part, which is partly why we haven’t tackled this yet, is: what if the invoice is already finalised? Typcially a customer will pay after the invoice has been raised. At this point, we prevent changes to the invoice in Breww, so we cannot change the amount without a fair bit of complication, not to mention confusion for your own accounts team and your customer’s finance department.
Even if we built a solution to this in Breww (and ignored that it would make it impossible to trust “invoiced” figures not to change retrospectively), we would still face the problem of accounting platforms such as QuickBooks & Xero. Some of the platforms we integrate with support changing invoice values after upload (although we don’t support this in Breww at this time), while others don’t. Some only support it conditionally, and I’m quite confident that this would become a complete mess in no time 
My proposal to solve the sticking point here in a way that fits in the existing Breww structure and would be compatible with all our accounting platforms would be to raise a “supplementary” invoice for the additional card fee. This would only need to happen if the order being paid had been invoiced, if not, we could adjust it before invoicing to add the fee. If we do need to raise the supplementary invoice, you might have INV-001 for $100 of product and then INV-002 for $3 of “Card processing fees relating to INV-001”. They would get their own invoice number (next available, not necessarily consecutive) and be an invoice in their own right, but clearly reference back to the original.
This would also be a reusable concept to assist with Allow charging invoice late fees which is also blocked on the same blocker.
Does this sound workable for you? Or do you have any other ideas for solving this part of the blocker?