Set fee percentage, flat fee, and tax-on-fee per payment gateway. Use keyword matching to auto-apply the right rate to each order.
Payment processing is a small percentage of every order and it applies to all of them, which makes it easy to dismiss and expensive to ignore. At around 2.5% of revenue it is frequently larger than a store's entire net margin — a business running at 6% net gives roughly a third of that to its processor.
It is also the cost most often carried as a single remembered number. Merchants know they are “on 2.9 plus 30 cents”, then take cash on delivery at a different rate, run a second gateway for one market, pay tax on the commission in another, and keep applying the one figure they remember to all of it.
Configuring rates here replaces that with per-gateway arithmetic that runs on every order automatically.
The percentage is charged on the order amount, and it is the part everyone knows.
The flat fee is charged per transaction. It is trivial on a large order and brutal on a small one — thirty cents is under half a percent of a seventy-dollar basket and six percent of a five-dollar one, which is why stores with low average order values find their processing costs far higher as a share of revenue than the headline rate suggests.
The tax on the fee is charged on the commission itself in markets that tax financial services. It is the component most often left out entirely, because it never appears in the rate the processor advertises.
Go to Costs → Gateway Fees tab. Click "Add Gateway Rate" and fill in:
Use the Gateway Test Tool at the bottom of the tab. Enter a gateway name and order amount to see:
When processing an order, NetNet checks fees in this order:
Every order resolves a payment fee through the same three steps, in order.
First, your configured rate, matched by keyword against the gateway name on the order. This is the most accurate source because it reflects terms you actually negotiated.
Second, Shopify's reported transaction fee. Available only for Shopify Payments, where Shopify tells us what it charged. Exact, but limited to that one processor.
Third, an estimate from your Shopify plan — Basic 2%, Shopify 1%, Advanced 0.5%, Plus 0%. A deliberately rough figure whose purpose is to prevent a zero.
The chain matters because the alternative to an estimate is not accuracy, it is a blank — and a blank reads as free processing, which overstates profit on exactly the orders nobody is checking.
COD is not a payment gateway in the sense the others are, and treating it as one produces nonsense. There is no processing percentage; there is a collection fee, a materially higher return-to-origin rate, and cash that arrives weeks after the parcel does.
Gateway matching detects COD rather than forcing it into a percentage. The costs that actually attach to it — collection charges, failed-delivery costs — belong in per-order fees, which can be scoped to COD orders specifically.
For stores where COD is a large share of orders, this distinction is usually worth more than every other fee setting combined.
The test tool exists because keyword matching is the kind of configuration that fails silently. A keyword that never matches does not raise an error; it just quietly routes every order to the fallback, and the resulting numbers look plausible.
Enter a real gateway name from one of your orders and a typical order amount. The tool reports which rate matched, the base fee, the tax on it, the total, and whether COD was detected. If it says no match, your keyword differs from what Shopify records — check an order's payment details for the exact string.
Run this once per gateway when you set up, and again whenever you add a processor or change markets.
Not necessarily. Shopify reports its own transaction fees on those orders, and NetNet uses them when no rate of yours matches. Configure a rate when you use any other gateway, or when you have negotiated terms that differ from the published rate.
Your keyword is matched as a case-insensitive substring against the gateway name Shopify records on the order. A keyword of “stripe” matches “Stripe” and “stripe_v2”. Keep keywords specific enough not to collide — “pay” would match both PayPal and Razorpay.
In several markets the processor charges tax on its own fee — GST on the gateway commission, for example. That tax is real money leaving the business and it is invisible if you only record the headline percentage. Set it to zero where fees are not taxed.
It falls through the chain: your configured rates first, then Shopify's reported transaction fees, then an estimate based on your Shopify plan. It is never treated as zero, because a missing fee silently overstates profit.
Use the gateway test tool. Enter a gateway name and an order amount and it reports which rate matched or that it fell back, the base fee, the tax on the fee, the total, and whether it detected cash on delivery.