FeeLayer vs. Upcharge
Both apps add a card surcharge to a Shopify checkout. They go about it in completely different ways, and that one difference decides most of what you'd notice running them. Starting with whether the fee is still on the order when someone pays with Shop Pay.
- Fee logic runs on injected JavaScript
- No Cart Transform Function
- No second enforcement layer
- Tiered pricing, $9.99/mo to start
- Shop Pay express checkout bypasses it in many configurations
- Cart Transform + Checkout Validation Functions
- Runs server-side, inside Shopify's own infrastructure
- Two enforcement layers: one recalculates, one rejects tampered totals
- Flat $9/mo, no tiers, no volume caps
- Bypass-proof on Shop Pay, Apple Pay, and Google Pay
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
Checkout Validation Functions (2nd enforcement layer)
Bypass-proof on Shop Pay, Apple Pay, Google Pay
US state compliance auto-waive
Theme App Extension (storefront disclosure)
Abandoned-cart safe (no draft orders)
Pricing model
Monthly price (entry plan)
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.
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.
JS injection + UI extensions
What most Shopify surcharge apps are still running today.
- 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
Cart Transform + Validation Functions
Built on Shopify's current checkout architecture from day one, not retrofitted onto an older app.
- 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
What to actually evaluate
Four questions worth putting to either app, or to any other one you're weighing up.
- Does the fee survive express checkout? Shop Pay, Apple Pay and Google Pay skip most of the paths a legacy app uses to inject its fee. Server-side enforcement through Cart Transform Functions is what makes the charge apply every time.
- Is there a second enforcement layer? Without Checkout Validation Functions, totals can be modified between the cart and payment auth. FeeLayer's second layer rejects any order where the numbers don't match.
- What about the states where you can't surcharge at all? Connecticut, Massachusetts and Maine ban it outright, and card-network rules cap what you can add per transaction everywhere else. The app should waive the fee in those three states on its own and enforce a ceiling on every other order.
- Flat or tiered? Tiered apps charge you more as you grow. A flat app costs the same at $1K a month as it does at $1M. FeeLayer is flat. Upcharge is tiered.
Try FeeLayer free for 14 days
Request early access. The App Store listing is coming soon.
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.