Pillar guide

The complete Shopify surcharge guide.

Surcharging, passing the credit card processing fee to the customer, is legal and common in most US states, but the rules are non-trivial. This guide covers what a surcharge is, what's legal where, what the card brands require, and how to implement one on Shopify so it survives Shop Pay and Apple Pay.

Last reviewed: August 25, 2026

What is a credit card surcharge?

Short answer

A credit card surcharge is an extra amount a merchant adds at checkout when the customer pays with a credit card, charged to recover the merchant's card processing cost. It is tied to the payment method, not the product, which is what separates it from a price increase. Visa's own merchant guidance describes it as an additional fee that a merchant adds to a consumer's bill when they pay with a card.

The amount is typically set to approximate what the merchant pays to accept the card, around 2.9% + $0.30 per transaction on standard Shopify Payments and Stripe pricing. Because the fee attaches to the payment method rather than the item, it has to appear as its own line, be disclosed before the customer commits, and be removable by choosing a different way to pay.

Connecticut's statute gives a usefully precise definition of the term, even though Connecticut goes on to ban the practice:

"Surcharge" means any additional charge or fee that increases the total amount of a transaction for the privilege of using a particular method of payment.

Conn. Gen. Stat. § 42-133ff(a)(6)

Surcharges apply only to credit cards. Under the card-brand rules that govern nearly every US merchant, debit and prepaid cards cannot be surcharged in any state, and that holds even when the cardholder presses "credit" on a terminal. ACH bank transfers are not cards at all and sit outside the card-brand surcharge rules entirely, which is why pairing a surcharge with an ACH option is such a common design.

Surcharge vs. convenience fee, what's the difference?

Short answer

A surcharge is charged because the customer chose a credit card. A convenience fee is charged because the customer chose a particular channel, such as paying online instead of in person, and it must apply to everyone using that channel regardless of how they pay. For a normal Shopify online store the honest frame is surcharging: there is no alternative in-person channel the fee could be attached to.

These are commonly confused. The differences matter for compliance.

  • Surcharge: Applied because the customer chose a credit card. Card-brand rules apply (caps, advance notice, disclosure). State surcharge laws apply.
  • Convenience fee: Applied because the customer chose a specific alternative-payment channel (e.g., paying online instead of in person). The fee must apply to all customers using that channel, not just credit-card payers, and cannot exceed the actual added cost.

The practical test: if a customer could avoid your fee by paying with a debit card through the same checkout, it is a surcharge. If the only way to avoid it is to use a different channel entirely, and card and non-card payers in that channel are treated identically, it may be a convenience fee. Calling a surcharge a "convenience fee" does not change which rules apply to it.

Is it legal to surcharge credit cards in my state?

Short answer

In most US states, yes. The 2013 Visa antitrust settlement removed the general card-brand ban on credit card surcharging, and no federal statute prohibits it. A small number of jurisdictions still ban it outright, and several more regulate how it must be disclosed rather than whether you may do it at all.

Surcharging is legal under federal law and in most states. Mastercard, Discover, and American Express followed Visa with similar rule changes after 2013.

Jurisdictions that prohibit or restrict credit card surcharging:

  • Connecticut, flat prohibition under Conn. Gen. Stat. § 42-133ff
  • Massachusetts, flat prohibition under Mass. Gen. Laws Chap. 140D, § 28A
  • Maine, prohibited under Me. Rev. Stat. tit. 9-A, § 8-509. Maine's ban is the broadest of the three: it covers debit as well as credit cards, with an exception only for government entities
  • Puerto Rico is also widely reported to prohibit surcharging. We have not verified the current regulation against a primary source

The Connecticut and New York provisions quoted on this page were re-read against the current statutory text on August 25, 2026. The Massachusetts, Maine and Puerto Rico citations carry over from our earlier review and are maintained in the per-state reference linked below rather than re-verified here.

Connecticut's prohibition is unusually broad. It is not limited to credit cards, and it is written as a flat rule rather than a disclosure requirement:

No person may impose a surcharge on any transaction.

Conn. Gen. Stat. § 42-133ff(b)

The same statute preserves the mirror-image practice, a discount for paying another way, which is the standard workaround where surcharging is banned:

Nothing in this section shall prohibit any person from offering a discount on any transaction to induce payment by cash, check, debit card or similar means rather than by charge card or credit card.

Conn. Gen. Stat. § 42-133ff(c)(1)

A handful of states, notably New York after its 2023 statutory update, require specific disclosure formatting rather than a flat ban. New York's rule is about the posted price, not the percentage: the merchant must post the total credit-card price, and the surcharge is capped at the merchant's own cost.

… clearly and conspicuously post the total price for using a credit card in such transaction, inclusive of surcharge … any such surcharge may not exceed the amount of the surcharge charged to the business by the credit card company for such credit card use.

N.Y. Gen. Bus. Law § 518

Visa's merchant FAQ names ten states with surcharging restrictions: "California, Colorado, Connecticut, Florida, Kansas, Maine, Massachusetts, New York, Oklahoma and Texas." Read that as a prompt to check the current law in those states rather than as a list of outright bans, since the restrictions differ in kind and we have not re-verified each statute on this page. Visa's merchant FAQ also states that a merchant blocked from surcharging in one state is not thereby blocked in others: "If a merchant is prohibited from surcharging in one state, Visa's rules do not prevent the merchant from surcharging in other states that allow the practice."

We maintain a separate, continuously updated surcharge laws by state reference with the citation for each jurisdiction.

The state-by-state breakdown above is informational, not legal advice. Consult counsel for your specific situation.

What do Visa and Mastercard require?

Short answer

Even where state law permits surcharging, the card networks impose their own rules, and they bind every merchant that accepts the brand. The three that matter most: notify Visa and your acquirer at least 30 days before you start; never surcharge debit or prepaid cards; and keep the surcharge at or below your own cost of acceptance, subject to a hard ceiling of 3% for Visa and 4% for Mastercard.

Visa's merchant Q&A is explicit about the notice requirement and about which cards may be surcharged:

U.S. merchants must first notify Visa and their acquirer of their intent to surcharge at least 30 days prior to implementing surcharging.

Visa merchant surcharging FAQ (usa.visa.com)

The ability to surcharge only applies to credit card purchases, and only under certain conditions. U.S. merchants cannot surcharge debit card or prepaid card purchases.

Visa merchant surcharging FAQ (usa.visa.com)

Note on that document: it is Visa's long-standing merchant FAQ and its footnote still references a 4% ceiling. Visa lowered the cap to 3% effective April 15, 2023, so treat 3% as the operative Visa number and the FAQ as authority for the notice and debit/prepaid rules.

The cap change is documented in contemporaneous legal reporting: "Effective April 15, 2023, Visa has implemented a reduction in the permissible merchant surcharge to the lower of: (a) the merchant discount rate (MDR) for the applicable credit card or (b) 3%" (ArentFox Schiff, July 2023). Mastercard's cap remained at 4%.

  • Visa: Surcharge capped at the lower of your merchant discount rate or 3% since April 2023. Requires 30 days' advance notice to Visa and your acquirer. Cannot surcharge in prohibited states.
  • Mastercard: Surcharge capped at the lower of your cost of acceptance or 4%. No advance notice requirement to Mastercard itself, but local disclosure rules still apply.
  • American Express: Allows surcharging, but only if all card brands the merchant accepts are surcharged equally (anti-discrimination rule).
  • Discover: Allows surcharging with similar disclosure requirements.
  • Debit and prepaid (any brand): Prohibited. Applies in every state, and applies even when the cardholder selects "credit" at a terminal.

One correction worth making, because it circulates widely: the debit surcharge ban is a card-network rule, not a provision of the Durbin Amendment. The word "surcharge" does not appear in 15 U.S.C. § 1693o-2. What Durbin actually does is cap debit interchange for large issuers and stop the networks from blocking merchant discounts:

A payment card network shall not, directly or through any agent, processor, or licensed member of the network, by contract, requirement, condition, penalty, or otherwise, inhibit the ability of any person to provide a discount or in-kind incentive for payment by the use of cash, checks, debit cards, or credit cards …

15 U.S.C. § 1693o-2(b)(2)(A) (Durbin Amendment)

The practical effect is the same, you may not surcharge debit, but the source of the rule matters if you are ever arguing about it with an acquirer.

What has to be disclosed at checkout?

Short answer

At minimum: the surcharge as its own line item, the amount in dollars (not only a percentage), the fact that it applies to credit cards specifically, and a visible non-surcharged way to pay. Visa additionally requires the surcharge dollar amount on every receipt and notice at the point of entry and point of sale. New York goes further and requires the total credit-card price to be posted up front.

Both the card brands and many states require clear disclosure of the surcharge to the customer before they complete the transaction. At a minimum, your checkout should show:

  • The surcharge as a separate line item (not bundled into the subtotal).
  • The percentage rate and the dollar amount (some states require both).
  • The fact that the surcharge applies to credit cards specifically and that other payment methods (debit, ACH) are not subject to it.
  • An option to choose a non-surcharged payment method where one is available.

Visa's guidance on receipts is unambiguous: "U.S. merchants that surcharge must disclose the surcharge dollar amount on every receipt." A percentage alone does not satisfy it.

FeeLayer ships with a Theme App Extension that adds compliant storefront disclosure to your theme without touching code. The line-item label is customizable per merchant brand.

How do I add a surcharge to Shopify checkout?

Short answer

There are three implementation patterns, and only one of them is reliable. Theme JavaScript injection is the oldest and breaks on express checkouts. Checkout UI Extensions render inside Shopify's hosted checkout but do not cover every express path. Cart Transform Functions run server-side inside Shopify's own checkout infrastructure on every payment method, which is why they are the current best practice, ideally paired with Checkout Validation Functions as a second layer.

There are three common ways to implement a credit card surcharge on Shopify, and they have very different reliability profiles.

1. JavaScript injection (oldest, least reliable)

Earlier surcharge apps inject a JS snippet into your theme that adds a fee line item to the cart when the customer selects a credit card. The fundamental problem: Shop Pay, Apple Pay, and Google Pay skip the storefront entirely, express checkout buttons jump straight from the product page to payment authorization, never running your storefront JS. Result: those payment methods bypass the surcharge entirely.

2. Checkout UI Extensions (better, still bypassable)

Shopify's Checkout UI Extensions (introduced 2023) let an app render UI inside Shopify's hosted checkout. This solves the storefront-bypass problem. Shop Pay Checkout uses the same extension surface. But UI extensions still don't run on Apple Pay express checkout from product pages or carts, where Apple's UI handles the entire transaction without invoking checkout extensions.

3. Cart Transform + Checkout Validation Functions (current best practice)

Cart Transform Functions are server-side WebAssembly functions that run inside Shopify's checkout infrastructure. They mutate the cart on every change, adding, modifying, or removing line items based on rules. Critically, they run for every payment method, including all express checkouts.

Cart Transform alone is enough to inject the surcharge in a tamper-resistant way, but a determined customer could still attempt to manipulate the totals between cart and payment. The second enforcement layer is Checkout Validation Functions, which run at payment authorization and reject any order where the totals don't match the expected calculation.

FeeLayer uses both layers. Most surcharge apps surveyed on Shopify rely on one or the other, see our comparison for the full feature matrix.

Will a surcharge still apply if the customer uses Shop Pay?

Short answer

Only if the surcharge is enforced server-side. Shop Pay, Apple Pay, and Google Pay are express checkouts: the buyer can jump from a product page straight to payment authorization without your storefront JavaScript ever running. A theme-script surcharge silently disappears on those orders. A Cart Transform Function does not, because it executes inside Shopify's checkout on every cart mutation, whatever surface started it.

This is the single most expensive mistake in Shopify surcharging, and it is invisible until you reconcile. The surcharge appears correctly in your test orders (placed through the normal cart), then a meaningful slice of real orders arrives with no fee attached because those buyers tapped an express button. Nothing errors. Nothing logs. The revenue simply is not there.

How to tell which situation you are in:

  • Check a real Shop Pay order. Place one end-to-end from a product page using the Shop Pay button, not the cart page. If the fee line is missing, your surcharge is storefront-only.
  • Check an Apple Pay order from a product page. This is the hardest surface to cover, and the one Checkout UI Extensions do not reach.
  • Reconcile fee revenue against card orders. If your collected surcharge divided by card subtotal is well under your configured rate, express checkouts are leaking.

There is a compliance dimension too, not just a revenue one. Card-brand and state rules assume the surcharge is disclosed and applied consistently. A fee that attaches on some checkout paths and not others is harder to defend as a consistent, disclosed practice than one that applies uniformly.

FeeLayer's Cart Transform implementation is designed for exactly this: the fee is computed and inserted by Shopify's own checkout, so Shop Pay, Apple Pay, and Google Pay orders carry it like any other.

What are the best practices for running a surcharge program?

Short answer

Give customers a fee-free alternative, cap the surcharge per order, say plainly why the fee exists, and account for the states where you cannot charge it. Merchants who do all four see far less support volume and far less checkout abandonment than merchants who simply switch a percentage on.

  • Pair surcharging with an ACH option. The single most effective thing a surcharging merchant can do is offer customers a fee-free alternative. PayLayer adds Stripe ACH at 0.8% (capped at $5), most B2B and high-AOV customers will switch the moment you give them the option.
  • Set a per-order cap. A 3% surcharge on a $5,000 order is $150, which dwarfs your actual processing cost on that order ($145.30). Capping the surcharge per order keeps you in line with card-brand "actual cost" rules and improves customer trust.
  • Be explicit about why. Customers don't object to the fee, they object to surprise. Clear messaging in checkout ("Card processing fee, itemized before you pay") substantially reduces support volume.
  • Audit your state mix. If a meaningful share of orders ship to Connecticut, Massachusetts, or Maine, your effective recovery rate is lower than the headline percentage suggests. Region-aware auto-waive is essential.
  • Send the Visa notice before you launch, not after. The 30-day advance notice to Visa and your acquirer is a precondition, not a formality, and it is the easiest rule to accidentally skip when an app makes turning a surcharge on a one-click operation.

How does FeeLayer handle all of this?

Short answer

FeeLayer implements the server-side pattern end to end: Cart Transform Functions compute and insert the fee inside Shopify's checkout, Checkout Validation Functions reject tampered totals, prohibited states are auto-waived, and a Theme App Extension renders the disclosure on your storefront. It is a flat $9/month with no per-transaction cut.

FeeLayer is an end-to-end implementation of the patterns above:

  • Cart Transform + Checkout Validation Functions for tamper-proof enforcement
  • Auto-waive in Connecticut, Massachusetts, and Maine
  • A 4% fee ceiling enforced on every order
  • Theme App Extension for storefront disclosure
  • Editable storefront disclosure text out of the box
  • Flat $9/month, no transaction fees, no volume caps

One clarification on that ceiling: 4% is the maximum FeeLayer will let you configure, not a statement that 4% is compliant everywhere. Visa's own cap has been 3% since April 2023, so set your rate against the brand caps and your actual cost of acceptance, not against the app's upper bound.

Disclosure: FeeLayer is built by MerchantLayer, the publisher of this guide, and is currently in early access rather than published on the Shopify App Store. If you need an app you can install today, our roundup of Shopify surcharge apps lists the alternatives with their current listing data.

See FeeLayer in action