When you’re running a point-of-sale system, every penny matters. How fees are calculated — and in what order — directly affects your bottom line and your customers’ receipts.

Here’s exactly how WooPOS handles fee calculations so there are no surprises at checkout.

Two Types of Fees

WooPOS supports two fee types:

  • Flat fees — A fixed dollar amount (e.g., a $25 Transfer Fee or $10 Background Check Fee)
  • Percentage fees — A percentage of the transaction (e.g., a 3% Credit Card Fee)

These two types are calculated differently by design, because they serve different purposes.

The Order of Operations

Every transaction follows a strict calculation sequence. This matters because changing the order changes the final number.

Step 1: Subtotal

All item prices multiplied by their quantities are summed up.

Step 2: Discounts

Any discount — whether a percentage or fixed amount — is subtracted from the subtotal.

Step 3: Flat Fees

Fixed-dollar fees are added. These may or may not be taxable depending on your store’s configuration. If a flat fee is marked as taxable, the applicable tax is calculated and included.

Step 4: Tax

Sales tax is calculated on the discounted item total plus any taxable flat fees. WooPOS uses your WooCommerce tax settings and shop base address to determine the correct rates, including support for multiple tax classes.

Step 5: Percentage Fees (Calculated Last)

This is the key part. Percentage-based fees — like a credit card surcharge — are calculated after everything else, including tax. The base for a percentage fee is:

Discounted Subtotal + Flat Fees + Tax

Percentage fees are also always non-taxable. Tax is never charged on top of a credit card surcharge.

Why Calculate Percentage Fees Last?

A credit card processing fee is meant to cover the cost of processing the entire transaction. If a customer buys $100 worth of merchandise and owes $7 in tax, the card processor charges you a percentage of the full $107 that runs through the terminal — not just the $100 pre-tax amount.

By calculating the percentage fee on the post-tax total, the surcharge accurately reflects the real cost of processing.

A Concrete Example

Line ItemAmount
Product$100.00
Discount (10%)−$10.00
Shipping Fee (flat, taxable)$5.00
Tax (7%) on $90 + $5$6.65
Credit Card Fee (3%) on $90 + $5 + $6.65$3.05
Total$104.70

The 3% credit card fee is applied to $101.65 (the full post-tax amount), not to the $90 discounted subtotal. This ensures the surcharge covers the actual processing cost.

Configuring Fees in WooPOS

WooPOS comes with several predefined fees you can enable or disable in Settings → Payments:

  • Credit Card Fee (3%, percentage)
  • Transfer Fee ($25, flat)
  • Background Check ($10, flat)
  • Shipping & Handling ($15, flat)
  • Setup Fee ($20, flat)
  • Rush Fee (10%, percentage)

Each fee can be individually configured with:

  • Name — What appears on the receipt
  • Type — Flat dollar amount or percentage
  • Amount — The fee value
  • Taxable — Whether tax applies (only relevant for flat fees; percentage fees are always non-taxable)
  • Enabled — Whether the fee button appears in the POS
  • Warn on Terminal — Whether to prompt the cashier to add this fee when processing a card payment

You can also add custom one-off fees directly from the POS checkout screen.

The Global “Fees No Tax” Setting

For stores that never want tax on any fee, WooPOS offers a global “Make all fees non-taxable” toggle in the General settings. When enabled, all flat fees default to non-taxable. Individual fee settings can still override this on a per-fee basis.

Percentage fees are always non-taxable regardless of this setting.

Quick Reference

Fee TypeCalculated OnTaxable?
FlatFixed amount, added before taxConfigurable per fee
PercentagePost-tax total (subtotal − discount + flat fees + tax)Never

This approach ensures credit card surcharges and similar percentage-based fees accurately reflect the true cost of the transaction, while flat fees maintain flexibility for your store’s specific tax requirements.