Card surcharges

Pass card processing fees to your customers, at checkout.

FeeLayer puts a processing-fee line into the cart with Shopify's Cart Transform Function, so it's added server-side. The customer can't delete it, and it holds through Shop Pay, Apple Pay and Google Pay on every plan. Ship an order to Connecticut, Massachusetts or Maine and the fee comes off by itself. There's a hard 4% ceiling on top of whatever rate you set.

Cart Transform + Checkout Validation

Stop eating credit card fees.Recover them at checkout.

The fee goes in as a real Shopify line item, added by a Cart Transform Function inside Shopify's own infrastructure. A second function checks the total again before payment is authorized. That's why the fee is still there when someone taps Shop Pay, Apple Pay or Google Pay.

ORDER SUMMARY
Order summary
Secure and encrypted
Subtotal (3 items)$248.00
Shipping$9.00
Tax$20.56
Card processing feeAdded
+$8.04
Not charged in CT/MA/ME
TotalUSD$285.60
The recovery math

See what FeeLayer hands back.

You pay 2.9% + $0.30 on every card order today. FeeLayer adds that amount to the buyer's total at checkout, so it stops coming out of your margin. Put your numbers in.

Estimated card orders / mo500
Fee on your average order$6.10
Card fees you pay today / mo
$3,050.00
Processing on the surcharge
$88.45
the only part you still eat
FeeLayer hands back
$2,962/mo
$35,539 a year, against a flat $9/mo

Assumes Stripe standard card processing (2.9% + $0.30) and a surcharge equal to your processing cost, within the 4% ceiling. Net of card processing on the surcharge itself. The fee auto-waives for orders shipping to CT, MA, and ME, which this estimate does not subtract. Your actual recovery depends on your processor, rates, and order mix.

Your customer sees the whole number

The fee sits in the order summary on its own line, right under shipping and tax. Nothing buried in the product price.

Flat, percentage, or both

Pick the fee type, cap what any single order can be charged, set a minimum, and write the label your customer reads at checkout.

It knows where it can't charge

Connecticut, Massachusetts and Maine ban card surcharges outright. Ship there and the fee comes off by itself.

Runs inside Shopify, not bolted onto it

Cart Transform and Checkout Validation Functions do the work, and a Theme App Extension puts the disclosure line on your storefront. No theme edits, no draft orders, no checkout script for you to babysit.

Architecture

Most fee apps get bypassed at checkout.

An app built on JavaScript injection or a Checkout UI Extension lives on a page that Shop Pay, Apple Pay and Google Pay walk straight past. The fee never gets added. FeeLayer runs as two WebAssembly functions inside Shopify's own infrastructure, so the charge is applied server-side before anybody pays.

Legacy approach
THE OLD WAY

JS injection + UI extensions

What most Shopify surcharge apps are still running today.

<script> storefront
Checkout UI Extension
Payment
Common failure modes
  • Shop Pay, Apple Pay and Google Pay skip the UI extension entirely
  • A customer can delete the fee line out of the cart
  • A bundle app gets installed and the Cart Transforms collide
  • Behaves one way on Android and another on iOS Safari
FeeLayer
TWO ENFORCEMENT LAYERS

Cart Transform + Validation Functions

Built on Shopify's current checkout architecture from day one, not retrofitted onto an older app.

Cart Transform Function
WebAssembly (runs at edge)
Checkout Validation Function
Paid
Why it can't be bypassed
  • The total is recalculated server-side every time the cart changes
  • Checkout Validation throws out any order whose totals were tampered with
  • Both functions run before payment auth, so express checkout is covered
  • A Theme App Extension puts the disclosure line on your storefront
Two enforcement layers, not oneCart Transform does the math. Validation refuses anything that doesn't match.
Enforcement
Server-side
Express checkout
Fully covered
In your Shopify admin

Every fee recovered, live.

It's a page in your Shopify admin. Set the fee, then watch what it collects order by order, without calling a developer or touching your theme.

  • Totals for the window you pick
    7 days, 30, 90, or all time. You get the dollars recovered and the transaction count behind them.
  • Flat, percentage, or hybrid
    Cap what any one order can be charged, put a floor under the fee, and change either whenever you want.
  • A ledger of what you actually collected
    Each applied fee sits against the order it came from.
  • The three banned states are handled
    An order headed to Connecticut, Massachusetts or Maine gets no fee. You don't keep the list.
FeeLayer
Credit-card surcharge recovery at checkout
Fee collection active
Applying surcharge on applicable card payments
Fee Engine · Cart Transform
Server-side WASM · tamper-proof at checkout
Active
Fees recovered
$1,284.00
This month
Transactions
389
Across all payment methods
Avg fee
$4.28
Per applicable order
Daily fee recovery
Last 14 days
US State Compliance · Built-in

Surcharge where it's legal. Waive where it's not.

Three states ban card surcharges outright. FeeLayer knows which three, drops the fee when an order ships to one of them, and caps every other fee at 4%.

Connecticut, Massachusetts, Maine
When the shipping address is in one of those three, the fee is zero. Every fee that does get charged is written to that order's ledger.
Nothing goes over 4%
That ceiling is enforced on every order, no matter what you set your own cap to.
The disclosure line is already written
It ships turned on and shows in the cart and at checkout. Rewrite it if you need different wording.
Your cap, your minimum
Set a limit on what one order can be charged, and a floor under the fee. The 4% ceiling still sits above both.
Compliance Summary
Surcharging is regulated state-by-state.

FeeLayer keeps track of which state does what, so you don't have to.

Surcharging allowed
Most states. Your configured rate applies, up to the 4% ceiling.
Disclosure required
Some states want specific wording. The storefront disclosure line is yours to edit.
Prohibited, fee auto-waived
CT, MA, ME. FeeLayer reads the shipping state and skips the fee.
Rules enforced automatically
Fee ceiling4% cap enforced per transaction
No-surcharge statesCT, MA, ME auto-waived
Feature-for-feature

Everything the leaders offer, at a flat $9/mo

These are the surcharge apps you'll actually run into on the App Store. Every check below comes from public listings, vendor pages and user reviews as of April 2026.

Cart Transform Functions

FeeLayer
MerchantLayer
Magical Fees
Magical Apps
Upcharge
UC Lab
Releasit
Releasit

Checkout Validation Functions (2nd enforcement layer)

FeeLayer
MerchantLayer
Magical Fees
Magical Apps
Upcharge
UC Lab
Releasit
Releasit

Bypass-proof on Shop Pay, Apple Pay, Google Pay

FeeLayer
MerchantLayer
Magical Fees
Magical Apps
Upcharge
UC Lab
Releasit
Releasit

US state compliance auto-waive

FeeLayer
MerchantLayer
Magical Fees
Magical Apps
Upcharge
UC Lab
Releasit
Releasit

Theme App Extension (storefront disclosure)

FeeLayer
MerchantLayer
Magical Fees
Magical Apps
Upcharge
UC Lab
Releasit
Releasit

Abandoned-cart safe (no draft orders)

FeeLayer
MerchantLayer
Magical Fees
Magical Apps
Upcharge
UC Lab
Releasit
Releasit

Pricing model

FeeLayer
MerchantLayer
Flat
Magical Fees
Magical Apps
Tiered
Upcharge
UC Lab
Tiered
Releasit
Releasit
Flat

Monthly price (entry plan)

FeeLayer
MerchantLayer
$9
Magical Fees
Magical Apps
$9
Upcharge
UC Lab
$9.99
Releasit
Releasit
$9.99

Source: Shopify App Store listings, vendor websites, and user-review analysis, April 2026. Features reflect default behavior on each app's entry-level plan; higher-tier plans may add capabilities that are only listed on paid tiers. Pricing shown is the lowest public plan, excluding free trials.

Get that fee off your P&L

Request early access. Nine dollars a month, flat, however many orders you do.

The MerchantLayer Suite

One app. Three modules.

Card fees, no bank-transfer option, BNPL taking a cut of your biggest orders. One module each. Stack all three for flat pricing with no volume caps.