Skip to main content

How to charge a credit card payment method fee with Magical Fees

Magical Fees

Written by Kyle Godon

A credit card payment method fee is a surcharge that’s added only when a customer chooses to pay by credit card at checkout. It helps offset credit card processing costs. Passing this fee to customers can help you protect your profit margins on credit card orders.

To set up a credit card payment method fee, there are three setup steps in Magical Fees:

  1. Add the fee from the Credit card processing fee template (this defines what to charge and when)

  2. Turn on the Magical Fees app embed (this is what turns the fee on in your online store)

  3. Disable express checkout buttons (this stops customers from skipping the fee)


Step 1 (Required): Add the fee

  1. In your Shopify admin, open the Magical Fees app and click Add fee.

  2. Under Popular fees, choose Credit card processing fee.

    The Add fee page with Credit card processing fee first under Popular fees
  3. Review what the template does. It appears on receipts as Credit card processing fee, charges 3% of the order subtotal, applies only when the customer pays with a credit card, and is added after the customer accepts a consent popup. It works in the Online Store.

  4. If that matches what you want, click Activate fee. To change the rate or any other setting first, click Edit.

The Credit card processing fee template with What it does, Where it works, and the Edit and Activate fee buttons

Note: If Activate fee is greyed out, complete Step 2 first, then come back to the fee.

Change the fee settings (optional)

Click Edit on the template to see every setting. They are grouped in cards.

What it charges: The Amount is a Percentage. Enter the rate your payment provider charges you, for example 3. The template turns on Charge tax on this fee. Turn it off unless you know this fee should be taxed. Under Fee limits, you can set a Minimum amount (for example $0.50) and a Maximum amount (for example $25) to prevent unusually large surcharges on big orders.

The What it charges card with Amount set to Percentage 3, Charge tax on this fee, and Fee limits

What it applies to: Charge this fee on is set to The order. Under Calculate percentage from, choose:

  • Subtotal: the cart subtotal, before taxes and shipping.

  • Order total: includes taxes, shipping, and the fee itself. Only available on the Plus plan with Shopify Plus.

The What it applies to card with The order selected and Calculate percentage from set to Subtotal

When it applies: Under Payment methods, the template adds Credit card. To add more, click Add payment methods and select one or more:

The When it applies card with Credit card under Payment methods and the Add payment methods button

How it’s enforced: Require customers to accept this fee is on. A credit card surcharge is not a government-mandated fee, and Shopify requires customer consent before applying it. On plans other than Plus, this setting is locked on.

The How it's enforced card with Require customers to accept this fee on and a Required on this plan badge

What is considered a government-mandated fee?

Government-mandated fees are legally required charges imposed by a government authority, such as recycling fees, eco fees, or bottle deposits. Customer consent is not required for these types of fees.

Fees added at the merchant’s discretion, such as credit card surcharges, tariff surcharges, or service fees, are not government-mandated and require customer consent under Shopify’s policies.

Where it works: Keep Online Store checked. Point of Sale and Draft Orders are turned off for fees with a payment method condition. See the notes below.

The Where it works card with Online Store checked and Point of Sale and Draft Orders turned off

Important: Payment method fees on POS

Payment method conditions, such as credit cards, are not supported on POS. To charge a credit card fee on POS:

  1. Click Add fee and choose the Credit card processing fee (POS) template. It applies on Point of Sale only, with no payment method condition.

  2. On your POS device, add the Manually add fees tile, so your cashier adds the fee only when the customer pays by credit card.

  3. Keep the online credit card fee as a separate fee, with Point of Sale turned off.

Important: Payment method fees on Draft Orders

  1. For stores on the Starter plan: Payment method conditions are not supported on Draft Orders.

  2. Shopify Plus stores on the Plus plan: Payment method conditions are supported on Draft Orders. The fee may appear on the draft order as $0.00 / Free until checkout, and is calculated at checkout if the customer chooses the Credit card payment method.

For more information about how Magical Fees works with draft orders, please read this article: Does Magical Fees work with draft orders?

When you’re done, click Activate fee. The badge next to the fee’s title changes to Active.


Step 2 (Required): Turn on the Magical Fees app embed

Note: This is a one-time setup step. If you already completed it during your initial setup, you can skip it.

  1. In the Magical Fees app, open Sales Channels.

  2. Under Online Store, find the Magical Fees row (App embed · All pages). If it says Active, you’re done with this step.

    The Online Store section of Sales Channels with the Magical Fees app embed Active and an Edit button on each row
  3. If it says Deactivated, click Edit, then Open theme editor.

  4. Under App embeds, turn on Magical Fees and click Save.

The theme editor App embeds panel with Magical Fees turned on

For Shopify Plus stores on the Plus plan: also add the Magical Product Fees checkout block, so Magical Fees can detect the customer’s selected payment method and add the correct fee at checkout.

  1. On Sales Channels, under Online Store, find the Magical Product Fees row (Checkout · Shopify Plus). It only appears on the Plus plan.

  2. Click Edit, then Open checkout settings, and open the checkout editor.

  3. On the Checkout page, under Order summary, click Add block and choose Magical Product Fees.

  4. Click the Magical Product Fees block. Under Checkout behavior, turn on Allow app to block checkout and Include block in Shop Pay.

  5. Click Save.

The checkout editor with the Magical Product Fees block added under Order summary

Step 3 (Required): Disable express checkout buttons

Note: This is a one-time setup step. If you already completed it during your initial setup, you can skip it.

Express checkout buttons (Shop Pay, Apple Pay, Google Pay, PayPal) can let customers skip a payment method fee. To remove them:

  1. In the Magical Fees app, open Advanced Settings.

  2. In the Checkout section, check Disable express checkout buttons. This removes the buttons from the Express section of checkout. Shop Pay stays available as a normal payment option.

  3. Click Save.

Advanced Settings with Disable express checkout buttons checked and the Save button

To also hide express buttons on product and cart pages:

  1. On Sales Channels, find Hide dynamic checkout buttons when fees apply and click Edit, then Open theme editor.

  2. In the Magical Fees app embed, turn on Hide dynamic checkout buttons when fees apply and click Save.

The Hide dynamic checkout buttons when fees apply setting in the Magical Fees app embed

How this fee will appear to customers

  1. Store on the Starter plan: The fee will be added when the customer accepts it in the Online Store. When the customer accepts the fee, the other payment methods are hidden at checkout, so the customer pays by card. If the customer declines the credit card fee and then pays with a credit card, the system will send a notification detailing the outstanding payment that includes the added fee. This is only supported for merchants using Shopify Payments.

  2. Shopify Plus stores on the Plus Plan: The fee will be added in the checkout only when a customer pays by credit card.

Debit and prepaid cards: Shopify doesn’t tell apps whether a card is credit, debit, or prepaid. The Credit card condition applies the fee to every card paid through Shopify Payments, on every plan.

Did this answer your question?