Need Help: Add Surcharge Fee Based on Payment Method (Debit/Credit Card)

Hi everyone :waving_hand:

I need help setting up a surcharge fee in Shopify.

Here’s the logic I want:
Total + (Shipping Fee × 0.01) = Surcharge Fee

This fee should only apply when the selected payment option is Debit Card or Credit Card.

Is there a way to:

  • Automatically calculate this surcharge during checkout after selection of payment method.

  • Apply it only to specific payment methods (not Cash on Delivery or Bank Transfer) Card Payment only

  • Maybe through, Custom App, Shopify Scripts, Checkout Extensibility, or another workaround?

I’d really appreciate any guidance or examples on how to set this up. :folded_hands:

Thanks in advance!

we are on shopify plus plan..

It’s a messy topic you could research it in the api docs and tons of historical posts floating around.

Problem has always been that payment selection comes after the tally.

See shopify-functions, there should be some off the shelf apps that do this using cart transforms, etc.
Checkout extensibility would be more for adding it by gating order completion, or after purchasing.
Or you can get it custom built, reach out if you need this explored or services.
i don’t recall if defunct shopify scripts could even do this without redirect hijinks

There’s some specifics that might not work like adding fees to the provider itself, i.e. increase a paypal fee.

Without any of the above other approaches are:

  • collect this info PRIOR to checkout, by asking what method of payment will be used then adding the surcharge.
  • Or you’d need to be able set a checkout attribute, then redirect the customer back a step after selecting payment for shopify-functions to run; plus plans ability to edit checkout.liquid is defunct.
  • Otherwise you have to do this post-checkout when the order is created and edit the order to add the surcharge; in tandem with making sure this policy message is HIGHLY visible.

The harder alternative is replacing the shopify checkout with a different provider.