// Mini POS wiki
Taxes
How Mini POS computes tax on a line and carries it through to the posted invoice: the tax-method switch (US sales tax, VAT, or none), tax-inclusive pricing, and how tax reaches Business Central at end of day.
How Mini POS computes tax on a line and carries it through to the posted invoice: the tax-method switch (US sales tax, VAT, or none), tax-inclusive pricing, and how tax reaches Business Central at end of day.
Tax calculation method See status matrix
What it is
One Setup switch chooses how every line computes tax. The computed tax lives in a generic tax bucket on the line — the VAT Amount / VAT % fields, with the tax-inclusive total in Amount Incl. VAT — so receipts, shifts, and end-of-day need no change regardless of method. Every amount is rounded once through the central BAA POS Money Policy at the currency's BC Amount Rounding Precision (company LCY when the sale currency is blank), not a hard-coded cent.
Setup
| Field (POS Setup) | Default | What it does |
|---|---|---|
| Tax Calculation Method | VAT | Sales Tax (US, from Tax Detail), VAT (from VAT posting setup), or None (tax stays 0). A newly seeded POS Setup starts on VAT. |
| Default Tax Rate % | 0 | A stored rate field on POS Setup, shown under Advanced Settings. Note: the current calculation path (Sales Tax reads Tax Detail; VAT reads VAT Posting Setup) does not consult this field — it is not a live fallback in this version. |
| Prices Include Tax | off | Tax-inclusive pricing. Sales Tax method only — the field is editable and honored only when the method is Sales Tax; VAT and None ignore it (see below). |
How to test
- Set method to None, ring a sale. Expected: Tax line 0.00.
- Switch to Sales Tax with a configured tax area/detail, ring the same item. Expected: tax computed from the tax detail.
US sales tax See status matrix
What it is
Sales-tax mode computes tax from Business Central's Tax Detail for the line's tax group and the sale's tax area — the standard US sales-tax mechanism. The engine (BAA POS Tax Calc) walks every jurisdiction on the tax area and sums the latest effective Sales and Use Tax Tax Detail rate for the line's tax group as of the sale's posting/business date, then applies the combined rate to the line and normalizes the tax through the Money Policy at the sale currency's precision. The sale's Tax Liable flag gates this Sales Tax path: a non-liable sale is charged nothing. The current VAT calculation path does not inspect that flag. If a Sales Tax line has no tax area (it inherits the sale header's) or no tax group, no tax is computed.
Destination and liability are independent authorities. Tax liability is separate from the destination tax area. For an in-store or walk-in sale, the configured Store Tax Area is the primary destination jurisdiction regardless of the customer's home address. For delivery, the selected ship-to supplies the destination. The POS customer or mapped BC customer separately supplies tax liability/exemption; Store Tax Liable is the final liability fallback. Customer Tax Area is only a compatibility fallback when no valid store record is available for a non-register draft. A configured store with blank or invalid tax setup fails closed rather than silently adopting the customer area.
Tiered tax is not supported. If an effective Tax Detail uses a maximum amount or an above-maximum rate, Mini POS rejects completion with an actionable error instead of silently using only Tax Below Maximum.
Where to find it
Configure Tax Groups, Tax Areas, and Tax Details in BC as usual; set the store's destination Tax Area Code, maintain customer liability/exemption, and set each POS item's Tax Group Code (mapped from its BC item).
VAT See status matrix
What it is
VAT mode looks up the rate from the mapped BC customer's VAT Bus. group combined with the line's VAT Prod. group (from the standard VAT Posting Setup), and applies it to the line amount — the standard VAT mechanism. The resulting tax is normalized once through the Money Policy at the sale currency's precision.
A historical bug where VAT resolved to 0 for almost every sale (it looked up a BC customer using a POS customer number) was fixed in the remediation phase. Ensure your POS customers are mapped to BC customers for VAT to resolve — VAT needs both a mapped customer (for the VAT Bus. group) and a VAT Prod. Posting Group on the line, or it stays 0.
Notes & limits
- The Prices Include Tax toggle does not apply in VAT mode — the VAT path always adds tax on top of the line amount. Tax-inclusive back-out is implemented only for the Sales Tax method (below).
Prices include tax Needs verification
Prices captured as tax-inclusive are replayed to Business Central as a tax-exclusive base plus standard calculated tax.
What it is
Prices Include Tax is a Sales Tax-method option only (the field is editable and honored only when Tax Calculation Method is Sales Tax; VAT and None ignore it). When on, the prices you enter and display already contain sales tax: the price on the tile is the price the customer pays, and tax is backed out for posting. The line's tax-exclusive base is price ÷ (1 + rate/100) and the tax is the inclusive remainder, each rounded once through the Money Policy at the sale currency's precision. Business Central documents remain tax-exclusive; Mini POS replays the frozen base and lets the standard tax engine reproduce the collected total.
How to test
- Set Tax Calculation Method to Sales Tax, turn on Prices Include Tax, price a tax-liable item at 10.00 with a configured 10% combined rate. Expected: the customer pays 10.00; the line books ~9.09 net + ~0.91 tax, not 11.00.
Notes & limits
- The capture mode is stored in the frozen tax context. Posting does not reread the current POS Setup toggle.
- For a VAT retailer who wants tax-inclusive shelf pricing, this toggle does nothing today — inclusive back-out is not wired into the VAT path.
Tax at end of day Needs verification
Operational caution: every POS item needs a Tax Group Code before completion in a US Sales Tax company. Tiered Tax Detail and a taxable price-adjustment G/L account are rejected before the sale becomes immutable.
What it is
Completion creates a versioned frozen tax context from standard Business Central header and line validation. For an in-store sale, the configured store is the jurisdiction source. For delivery, the selected ship-to address supplies the destination tax area while the resolved customer exemption or liability remains authoritative. End of Day replays the frozen BC customer, location, ship-to, VAT groups, tax area, liability, item tax groups, prices, and currency factor into a tax-exclusive document. It does not replace those values from current mappings or setup. Sales with different semantic context fingerprints are posted in separate documents; legacy completed sales without a fingerprint fail closed for explicit reconciliation. See End of Day for grouping and posting detail.
Tax/VAT Summary report
What it is
The POS Tax VAT Summary report (a Reports and Analysis report you can search for by name, or by terms like Sales Tax, VAT, Tax Liability) gives a tax-liability view built only from the tax facts stored on completed POS sales and lines — the stored tax base, tax amount, rate, tax area/group and VAT product group. It deliberately never re-reads live Tax Detail or VAT setup to restate a finished transaction. It therefore matches stored POS snapshots, not necessarily the final Business Central tax when a dual-pricing adjustment G/L line creates additional tax; those cases are flagged ADJUSTMENT-TAX-UNRESOLVED and must be checked against the posted document.
What it summarizes
- Summary By — one of Area + Tax Group, VAT Product Group, Stored Rate, Store, or Date (currency is always a separate grouping key). Each group shows line/document counts, quantity, stored tax base, sales vs. return tax, net tax liability, the tax-inclusive total, and the tax the stored base + rate would have produced (with the difference flagged).
- Transaction detail — optional one-row-per-line breakdown, including whether each line's price was inclusive-, exclusive-, or unknown-basis derived.
- Exceptions sheet — a non-financial list of stored-fact anomalies: tax booked with no rate, a tax amount that doesn't match base × rate, a line tax area that disagrees with the sale header, a missing posted-document reference, document totals that don't tie to the line sum, and similar. These are surfaced for review, not used to change any total.
Where to run it
Search the report by name (POS Tax VAT Summary) from Tell Me. The request page lets you set a required date range (business date or posting date basis), a sale/return/both scope, a posted / unposted / all filter, and stored-fact filters on tax area, tax group, VAT product group and rate. The central report catalog lives on the Analytics & Reporting page.