Skip to content

Tax — rates the till charges and registration that prints on invoices

Tax setup feels like one task to a restaurant owner — “sort out the tax” — but it actually lives in two places in the admin. The Tax rates page sets the percentages your till charges on every order: the VAT, the service charge, whether one applies on top of the other, and how the total rounds at the end. The Tax registration page sets the formal legal block — the registered company name, the tax ID, the registered address — that appears on every tax invoice you issue.

You’ll typically set both up once, when the venue opens, then leave them alone unless the tax law in your country changes or you re-register the company. This page is for owners only; managers and cashiers can read the values but cannot change them.

What it does

Every order the till rings up needs two things from the tax setup:

  1. How much extra to charge on top of the menu price (the rates) and how the receipt should add it up.
  2. Who is the seller, legally speaking, in case the customer asks for a formal tax invoice they can claim against their own books.

The rates drive the day-to-day till behaviour: every dish has its VAT computed, every dine-in ticket gets the service charge added, the cash drawer balances to a round number at end of shift. The registration drives the paperwork: when a corporate customer asks for a tax invoice, the system has to print the venue’s legal name, registered address, and tax ID on it — those numbers come from the registration page. Without it filled in, the cashier shell shows the Issue tax invoice button greyed out with a hint to come fill in the legal block first.

Tax rates

Open Admin → Settings → Tax rates. The page holds five settings, each with a short explanation, plus a live receipt preview that updates as you edit so you can see exactly how a sample order will look on the printer.

VAT rate. The percentage the tax authority requires you to charge. In Thailand the standard rate is 7%; in much of the EU it’s 10–22% depending on the country and the category. Set it to 0 to disable VAT entirely (useful for jurisdictions with no equivalent, or for the rare venue where the entire menu is VAT-exempt).

VAT mode — inclusive or exclusive. Inclusive means your menu prices already contain the VAT (Thai norm: a ฿100 dish includes 7 baht of VAT inside the 100). Exclusive means VAT is added on top at checkout (common in the US and parts of the EU: a $10 dish becomes $10.70 on the receipt). The mode you pick must match what your menu prices represent — switching the mode after the fact changes what the till charges, not just how it displays.

Service charge rate. A flat percentage added on top of the subtotal, common for dine-in service in many parts of Asia (typically 10%). Set to 0 if you don’t apply one.

VAT on service charge. A yes/no toggle that decides whether VAT applies on top of the service charge. The service charge is always taken on the subtotal first; with this set to yes (the Thai norm — the service charge is itself VAT-able), the VAT is then charged on the subtotal plus the service charge. On an exclusive-VAT ฿1,000 bill at 10% service charge and 7% VAT, that means a ฿100 service charge and ฿77 VAT for a ฿1,177 total; set it to no and the VAT covers the items alone (฿70). Other jurisdictions vary. The receipt preview shows the effect of flipping this either way.

Total rounding. Some venues prefer the final total to end on a clean number — to the nearest 1, 5, or 10 of the currency unit — so the cash drawer doesn’t accumulate awkward small change. Pick a rounding strategy or leave it as None to keep the mathematically-exact value.

Below the main rates, a Per-category overrides card lets you set a different VAT for specific POS categories — e.g. a 0% rate on takeaway in jurisdictions that exempt it, or a reduced rate on staples. Categories with no override inherit the venue default. The overrides are useful for the corner cases; most venues leave them all on the default.

There’s a matching switch on the category itself for the service charge. Open a POS category (its edit page) and you’ll find a Service charge exempt toggle. Turn it on and every item in that category is left out of the service charge — the rest of the bill still gets it. This is what makes the shop side work: a take-home loaf or a bottle off the shelf shouldn’t carry a dining-room service charge, so retail categories come with this turned on. The exempt items still count toward the bill total and its VAT — only the service-charge line skips them, so a mixed bill (a plate at the table plus a jar to take home) charges service on the plate alone.

Crucially, every rate you set here snapshots onto each order when the ticket is opened. Saving a new rate doesn’t retroactively change open tickets — it only affects orders opened after the save. That’s deliberate: a cashier who’s been mid-service for an hour shouldn’t see his tickets jump in price because the owner edited the VAT in the office.

Tax registration

Open Admin → Settings → Tax registration. The page is a single form with a country picker at the top and a registered-address block below.

Jurisdiction. Pick the country whose tax law your invoices comply with. The list reflects the country presets the system knows about; selecting one (e.g. Thailand (TH)) lights up format hints next to the tax ID field (Thai TIN is 13 digits; branch code “00000” means head office), and validates what you type against the country’s checksum rules so you can’t save a malformed number.

Legal entity name. The full registered name of the company that issues invoices — iO Osteria Co., Ltd. — not the trading name. This is what prints at the top of every tax invoice.

Tax ID. Your tax identification number (Thai TIN, EU VAT number, UK VAT registration, US EIN). The system validates the shape against the chosen jurisdiction.

Branch code. Where the jurisdiction supports multi-branch registration (Thailand notably does — “00000” is HQ, other codes are individual branches), this is the branch this venue belongs to. Optional in most jurisdictions.

Registered address. The address on file with the tax authority. This may differ from the venue’s operating address (the kitchen) — a holding company in one city, a restaurant in another. Two address lines, city, optional state/province, optional postal code, and a two-letter country code.

The same caveat as rates: every issued invoice snapshots these values at issue time. Updating the registration later doesn’t rewrite history; it only affects invoices issued after the change. If you ever need to wipe the registration entirely (the venue is closing, or restructuring under a new entity), the Clear registration button at the bottom removes the block — invoices can’t be issued again until you fill it in.

The rule

The rates change what the till charges; the registration changes what the receipts say. Set them both before you open the doors. After that, leave them alone unless the tax law shifts or the company restructures — and remember that every change snapshots forward, never backward.

How to use it

For most venues the workflow is once-at-setup, never-again:

  1. Open Tax rates. Set VAT, set the mode (inclusive/exclusive), set the service charge if any, decide whether VAT applies to service charge, pick a rounding strategy. Watch the receipt preview confirm the numbers. Save.
  2. Walk through the Per-category overrides card and override only the categories that need a different rate (takeaway VAT-free, alcoholic drinks at a higher rate, whatever your jurisdiction requires). Leave the rest blank.
  3. Open Tax registration. Pick the jurisdiction. Type the legal entity name, tax ID, branch code, registered address. Save.

That’s it. The till charges correctly from the next order onward, and the cashier shell can issue formal tax invoices from the next order onward.

If a corporate customer with a billing profile walks in and asks for a tax invoice, the system pulls the buyer block from their customer profile and the seller block from your tax registration, computes the totals from the rates, and prints (or emails) a fully-formed tax invoice ready for the customer’s books.

Worked example

Anna’s pizzeria is opening in Bangkok. Day one of admin setup, she goes to Settings → Tax rates.

VAT rate: she types 7 (the Thai standard). VAT mode: Inclusive — Thai menu prices traditionally include VAT, so her ฿320 Margherita already contains 20.93 baht of tax inside the 320. Service charge: 10 — standard dine-in service for a sit-down restaurant. VAT on service charge: Yes — Thai rule. Rounding: Nearest 1 (whole unit) — she doesn’t want sub-baht numbers on receipts.

The receipt preview to the right shows what a sample ฿1,000 ticket would look like: Subtotal ฿1,000, Service charge (10%) ฿100, VAT included (7%) ฿65.42, Total ฿1,100. (The VAT inside the inclusive price is shown for transparency but doesn’t add to the total.) Save. The till from now on charges exactly this way.

She scrolls down to the per-category overrides. The categories she has so far — Pizza, Pasta, Antipasti, Wine, Soft Drinks — all use the default 7%. She leaves them blank. (If she ever adds a Takeaway category and Thai law later exempts it, she’ll come back and set Takeaway to 0%.)

Next, Settings → Tax registration. Jurisdiction: Thailand (TH). Legal entity name: Pizzeria da Anna Co., Ltd. (the full registered name on the company papers — her trading name is Pizzeria da Anna but the legal entity has the Co., Ltd. suffix). Tax ID: 0105561234567 — the 13-digit Thai TIN from her tax registration certificate. Branch code: 00000 (head office). Address: Sukhumvit Soi 49, Bangkok, postal code 10110, country code TH. Save.

Three weeks later a corporate customer — a hotel concierge — sits down with eight colleagues, orders ฿4,200 of food and wine, and asks for a tax invoice for the company books. The cashier rings the order, taps Issue tax invoice, picks the customer profile (already on file from a previous visit with the company’s billing details), and the printer produces a fully-formatted Thai tax invoice with Anna’s legal name and TIN at the top, the customer’s company name and TIN below, line-by-line VAT breakdown in the middle, and the total at the bottom. No manual paperwork.

  • Customers — corporate customers with a billing profile carry their own tax ID and registered address; combined with what’s set here, the system can issue formal tax invoices that satisfy both sides of the transaction.
  • Venue settings — the venue’s operating identity (name, address, contact). The legal entity for tax purposes can differ from the trading name set there.
  • Audit log — every change to tax rates or registration is logged with the actor and timestamp.
  • Online ordering — orders placed through the public site or aggregators carry the same VAT treatment as in-house orders; the rates apply uniformly.