Bitta Retail POS guide
Taxes
US Sales Tax and VAT through standard Business Central authorities, tax-inclusive pricing, the frozen tax context replayed at posting, and the POS Tax VAT Summary report.
status: verified applies-to: 1.0.0.121rev: 5
How Bitta Retail 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 the frozen tax context reaches Business Central at posting. In every mode, standard Business Central is the tax authority - the app does not maintain a second tax-rate table.
Choosing a tax method
One switch on POS Setup 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 work the same regardless of method. Every amount is rounded once, centrally, at the currency's configured BC Amount Rounding Precision.
| Field (POS Setup) | Default | What it does |
|---|---|---|
| Tax Calculation Method | Sales Tax in US; VAT elsewhere | Sales Tax (US, through BC's Sales Tax Calculate), VAT (from VAT Posting Setup), or None (tax stays 0). The starting value is country-aware; existing companies keep their saved choice. |
| Prices Include Tax | off | Tax-inclusive shelf pricing for Sales Tax or VAT. None ignores the field. The choice is frozen on each sale, so a later setup change cannot restate a completed transaction. |
US sales tax
Sales-tax mode uses Business Central's standard Sales Tax Calculate authority for the line's tax group and the sale's tax area. Bitta Retail POS passes the exact line amount, base quantity, posting date, and frozen currency factor, so BC owns jurisdiction order, effective dates, tax-on-tax, maximum amount or quantity caps, and above-maximum tiers. Configure Tax Groups, Tax Areas, and Tax Details in BC as usual; set each store's destination Tax Area Code, maintain customer liability or exemption, and set each POS item's Tax Group Code (mapped from its BC item).
The sale's Tax Liable flag gates the Sales Tax path: a non-liable sale is charged nothing. If a 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. 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 or exemption, with Store Tax Liable as the final liability fallback. A configured store with blank or invalid tax setup fails closed rather than silently adopting the customer's tax area. See Multi-store operations for the store fields.
The first-register wizard requires an existing Business Central Tax Area before completing Sales Tax setup. If it creates a new walk-in BC customer, that customer is Tax Liable; if it reuses an existing customer, it preserves that customer's taxable or exempt status and reports a readiness error instead of silently changing it.
VAT
VAT mode builds a standard temporary Business Central Sales Header and Sales Line from the frozen sale context. The mapped bill-to customer's VAT Business Posting Group and the mapped item's VAT Product Posting Group select the VAT Posting Setup row; Business Central then owns the rate, discounts, inclusive/exclusive conversion, and rounding. The app stores the resulting net, VAT, and gross amounts and validates the same standard context again before completion and posting.
WARNING
VAT needs both a mapped customer (for the VAT Bus. Posting Group) and a VAT Prod. Posting Group on the line, or it stays 0. Make sure your POS customers are mapped to BC customers before relying on VAT amounts.
Prices include tax
When Prices Include Tax is on, the price you enter and display is the amount the customer pays:
- In Sales Tax mode, the app asks BC's standard Sales Tax Calculate authority to reverse-calculate the tax-exclusive base, freezes that base and tax, and later posts a tax-exclusive document that reproduces the collected total. Example: a tax-liable item priced 10.00 with a 10% combined rate books ~9.09 net + ~0.91 tax; the customer pays 10.00, not 11.00. The register labels the tax row Includes Tax.
- In VAT mode, the app validates a standard Business Central line with
Prices Including VATenabled and stores the standard net, VAT, and gross amounts; the invoice or credit memo is replayed with the same inclusive-VAT header policy. The register labels the tax row Includes VAT. - None ignores the toggle and always stores zero tax.
The capture mode is stored in the frozen tax context; posting never rereads the current POS Setup toggle.
Tax at posting
Completion creates a versioned frozen tax context from standard Business Central header and line validation. Posting replays the frozen BC customer, location, ship-to, VAT groups, tax area, liability, item tax groups, prices, and currency factor - current mappings or setup never replace the frozen facts. VAT-inclusive sales use a standard document with Prices Including VAT; Sales Tax sales replay their frozen tax-exclusive base through the standard Sales Tax authority. Sales with different semantic tax contexts are posted in separate documents. See Consolidated posting for grouping and posting detail.
NOTE
In a US Sales Tax company, every POS item needs a Tax Group Code before a sale can complete. A taxable price-adjustment G/L account is also rejected before the sale becomes immutable, because it would make the frozen tender total impossible to replay exactly.
Tax/VAT Summary report
The POS Tax VAT Summary report (search for it by name from Tell Me, 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 - 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.
- Summary By - Area + Tax Group, VAT Product Group, Stored Rate, Store, or Date (currency is always a separate grouping key), with line/document counts, stored tax base, sales vs return tax, net liability, and a recomputed check figure with differences 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 with no rate, amounts that do not match base x rate, header/line tax-area disagreement, missing posted-document references, and similar), surfaced for review, never used to change a total.
The request page takes a required date range (business 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 full report catalog lives on Analytics and reporting.