การตั้งค่า

Charge codes, tax and billing setup

Every article the property can post, the groups a revenue report rolls up by, the tax and service rates applied to them, and the routing templates a group applies at billing time.

อัปเดตล่าสุด

Who this is for: Manager, Accountant and Owner — reading this screen needs billing.setup.read, changing anything on it needs billing.setup.manage. Where: Settings → Billing Setup

Four tabs sit behind this one screen, and the first three belong together because they answer one question: what is this charge, and where does the money go? The fourth answers a related one — who pays for it, when it's a group.

Tab Holds
Charge codes Every article the property can post
Article groups The two-level hierarchy a revenue report rolls up by
Tax & service The VAT, service charge and levies this property applies
Instructions Named billing-instruction templates a group reservation applies at billing time

Everything in Nerve that puts money on a folio reaches for a charge code from here. Set it up once and the folio, the revenue report and the ledger already agree — nobody reconciles them afterwards.

หมายเหตุ

A new property is not empty. Nerve seeds a starter set the first time the screen is opened: 4 main groups, 10 sub groups, 12 charge codes and 7 cashier purposes, all editable. Nothing you change is ever overwritten by that seed.

เคล็ดลับ

Each tab's explanation now lives behind the info button beside its action, with a link out to this page. The screen gives its space to the table; the reasoning is one click away when you want it.

Article groups come first#

A charge code has to hang off something, so start here.

There are two levels and only two: a sub group hangs off a main group, and a charge code hangs off a sub group. That is not a limitation left over from somewhere — it is the shape a revenue report rolls up by, and a third level would give you a number that no report knows how to total.

The Article groups tab showing main group Rooms with sub groups Accommodation and Extra Bed & Late Checkout, Food & Beverage with Food, Beverage and Minibar, and Spa & Wellness below

Main group, then sub group. The badge beside each main group is its revenue centre — Rooms, Food & beverage, Spa, Minor operated or Other — which is what a departmental report groups by.

  1. Select New main group and give it a Code, a Name and a revenue centre.
  2. Select Sub group on that main group to add a sub group beneath it.
  3. Charge codes then pick a sub group, never a main group.

Groups are never deleted, only deactivated. A deactivated group stops being offered on new charge codes, and every posting already made against it stays exactly where it is — which is what keeps last year's revenue report readable next year.

Charge codes are the unit of everything#

A charge code is what lets a posting be grouped, taxed consistently, mapped to a general-ledger account and reported on. A free-text description is none of those things — which is why "Miscellaneous, 450" typed onto a folio is a hole in the revenue report rather than a line in it.

The Charge codes tab with a filter row on the left of the action bar — search, All groups, All types, Active only — and a table of articles with their group, price, tax treatment and GL account

One row per article. Group is the sub group it rolls up under, Price is the default the posting form offers, Tax is the treatment applied, GL is the account the revenue lands on.

Each code carries five decisions:

Field What it decides
Article group Which sub group — and therefore which revenue centre — this rolls up under
Posting type room, incidental, adjustment, service_charge or tax. Room charges route to the room folio; adjustments may be negative
Tax treatment standard (every active rate applies), exempt (none do), zero_rated (rates apply at zero and stay visible on the folio)
Default price Pre-filled on the posting form. Optional — leave it empty for anything priced per sale
GL account Where the revenue lands in the chart of accounts

เคล็ดลับ

Make Adjustment tax-exempt and leave it that way. A goodwill credit is not a sale, and re-taxing it hands the guest the tax back twice. The seeded ADJ code is already exempt for this reason.

Finding a code in a long master#

A real house runs hundreds of articles, so the list filters and pages 25 at a time.

Control Narrows to
Search A code or article name containing what you type
All groups One sub group
All types One posting type
Active only Codes still offered on the posting form

The filters combine, which is what makes them worth having separately: "which Food & Beverage articles are still active?" is a question search alone cannot ask. Clear appears as soon as anything is set.

What the front desk sees#

The clerk posting a charge does not choose a group, a tax treatment or a GL account. They choose the article, and the rest comes with it.

The Post a charge dialog with Botanica Massage Oil selected, a line reading

"Rolls up under Retail · Standard" is the setup speaking. The clerk sees the consequence of the code before posting, and can change nothing but the amount and the description.

This is why billing.setup.read is on the Front Desk role: you cannot pick a charge code you are not allowed to see. It is read-only there — a clerk uses the master, never edits it.

Tax and service charge#

A rate has a code, a kind (vat, service or levy), a rate, a basis and an order.

The Tax & service tab: Service Charge SVC at 10%, basis Exclusive, order 10; PB1 Restaurant & Hotel Tax at 11%, basis Exclusive, order 20; both effective from 1 Jan 2026 with a Change rate action

The order is the whole story of the Indonesian 10 + 11: service charge at order 10, tax at order 20, so PB1 is charged on the article plus the service charge, not on the article alone.

Basis decides where the money already is:

  • Exclusive — the rate is added on top of the price. A US$450 article becomes US$450 + tax on the folio.
  • Inclusive — the rate is already inside the price the guest was quoted. The guest total does not move; the tax is reclassified out of revenue into the tax liability, which is what USALI requires and what a rate-card that says "nett" actually means.

Order decides compounding. Rates are applied in ascending order, and each one is charged on the article plus everything already applied before it.

Changing a rate#

You cannot edit a rate in place, and the screen offers Change rate rather than an edit for that reason. Editing a live rate would restate every folio it has already priced, including settled and invoiced ones.

  1. Select Change rate on the rule.
  2. Enter the new rate and the date it starts.
  3. Nerve closes the current rule on that date and opens a new one from it.

The new date must be after the current rule's start date; anything else is refused. Every folio priced under the old rate keeps the old rate, forever.

สำคัญ

A rate change is dated, not immediate. If a levy rises on 1 September, enter it in August with 1 September as the start date. Waiting until the first of the month and changing it "now" leaves every posting made that morning on the old rate, and there is no way to re-price them afterwards.

What lands on the folio#

A guest folio grouped under Accommodation and Charges headings, with a single collapsed

The folio groups charges by what they are and folds every tax and service-charge line into one figure. The arrow opens the breakdown — each rule as its own line — so a guest disputing the total can still be shown exactly which rule produced which amount.

A US$450 article at these rates produces US$45 service charge (10% of 450) and US$54.45 tax (11% of 450 + 45). Both are real, separate postings; the folio simply presents them as one line until you ask.

Instructions#

The Instructions tab holds named, reusable routing instructions for a group reservation — "company pays room & tax, guest pays extras", say — so the desk does not re-pick the same split by hand on every group that arrives under the same arrangement.

  1. Select New template and give it a Name.
  2. Choose which posting types it routes to the master: room, tax, service charge, incidental, adjustment.
  3. Save.

A template's own row carries a Deactivate switch and an Edit, same as a charge code. It does nothing on its own until a group applies it — see applying a template from Group binders. Applying copies the routing onto the group at that moment; editing a template afterwards never reaches back and alters a routing a group already applied.

Consignment articles#

Stock the hotel sells but does not own is still configured here, on the charge code: turn on consignment, choose the consignor, and set the split.

The consignor record and what each one is owed live elsewhere, because neither is a pricing decision:

What Where
The consignor record Inventory → Suppliers → Consignors
What each is owed Accounting → Consignment

See Consignment settlement for both.

Who can do what#

Permission Lets you Held by default
billing.setup.read See the charge codes, groups, rates and instruction templates — and pick a code when posting Manager, Accountant, Front Desk, Read-only
billing.setup.manage Create and change all four tabs, and the consignor records Manager, Accountant
frontdesk.folio.transfer Apply an instruction template to a group, from Group binders — a separate permission from managing the templates themselves Front Desk, Manager
billing.cashier.record Run the general cashier — a separate job from this screen Manager, Accountant

The split is deliberate: the front desk posts against the master all day and applies a template at billing time, but cannot define one — which is what keeps the revenue report meaning the same thing in December as it did in January.

What's next#