Shopify only reports fees for Shopify Payments. Third-party gateways like Stripe, PayPal, and Razorpay get estimated or missed entirely. NetNet lets you configure exact rates per gateway — including international surcharges and tax on the fee itself.
For DTC brands on third-party gateways, where an estimated fee quietly misstates true profit on every single order.
Shopify reports payment fees for Shopify Payments and nothing else, because that is the only processor whose charge passes through Shopify. Every other gateway settles directly with you, and the fee never enters the data any analytics tool reads from Shopify.
For a store on Shopify Payments alone this rarely matters. For anyone running Stripe, PayPal, Razorpay, a local processor or cash on delivery — which is most stores outside a handful of markets — a meaningful slice of every order is unaccounted for unless it is configured somewhere.
At roughly 2 to 3% of revenue, that slice is often comparable to the store's entire net margin.
A percentage of the order, a flat charge per transaction, and in some markets a tax on the commission itself. Modelling only the percentage understates the cost on every small order and in every jurisdiction that taxes financial services.
The flat fee is the component that distorts most. Thirty cents is under half a percent of a seventy-dollar order and six percent of a five-dollar one, so a store selling low-value items pays a far higher effective rate than its headline percentage implies — and sees no sign of it until the fee is modelled properly.
Percentage of order amount charged by the gateway
Fixed amount per transaction (e.g., $0.30 for Stripe)
Tax the processor charges on its own commission, in markets that tax it
| Gateway | Fee % | Flat Fee | Tax on Fee | Keyword |
|---|---|---|---|---|
| Stripe | 2.9% | $0.30 | 0% | stripe |
| PayPal | 2.9% | $0.30 | 0% | paypal |
| Shopify Payments | 2.0% | $0 | 0% | shopify |
| Razorpay | 2.36% | $0 | 0% | razorpay |
Plus a Gateway Test Tool that lets you enter a gateway name and order amount to verify which rate matches and see the exact fee calculation.
See Cost Management →Each rate carries a keyword matched case-insensitively against the gateway name Shopify records on the order. A keyword of “stripe” matches “Stripe” and “stripe_v2”.
Keywords should be specific enough not to collide — “pay” would match PayPal and Razorpay both, and whichever rule is evaluated first would win on orders belonging to the other.
Because a non-matching keyword produces no error, only a quiet fallback, the test tool is the way to confirm the configuration does what you intended rather than assuming it from the fact that nothing complained.
Resolution runs in a fixed order: a configured rate first, then Shopify's reported transaction fee where the order went through Shopify Payments, then an estimate derived from your Shopify plan.
The estimate is deliberately coarse. Its job is not accuracy — it is to ensure no order is costed at zero, because a zero fee is indistinguishable from a genuinely free transaction and quietly overstates profit on precisely the orders nobody re-checks.
Configuring a real rate replaces the estimate for every order that matches it, including historical orders once they are reprocessed.
COD has no processing percentage. It has a collection fee, a much higher rate of failed delivery and return to origin, and a settlement delay measured in weeks.
Forcing it into a gateway percentage produces a number that is wrong in both directions — too high on the orders that deliver, far too low on the ones that come back. Gateway matching detects COD rather than pricing it, and the costs that genuinely attach to it belong in per-order fees, which can be scoped to COD orders alone.
It reports what it charges. Shopify sees the fee on Shopify Payments orders because it collected it; a Stripe, PayPal or Razorpay charge is settled between you and that processor and never passes through Shopify's books.
In markets that tax financial services, the processor charges tax on its own commission — GST on the gateway fee, for instance. It is money leaving the business that never appears in the advertised rate, so it is configured as its own component rather than folded into the percentage.
It falls back to Shopify's reported transaction fee where one exists, and otherwise to an estimate based on your Shopify plan. The fee is never treated as zero, because a missing cost reads as profit.
The gateway test tool takes a gateway name and an order amount and reports which rate matched, the base fee, the tax on it, the total, and whether cash on delivery was detected. A keyword that never matches fails silently otherwise.