การตั้งค่า
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, and the third parties whose stock you sell.
อัปเดตล่าสุด
Who this is for: Manager, Accountant and Owner — reading this screen needs
billing.setup.read, changing anything on it needsbilling.setup.manage. Where: Settings → Billing Setup
Four tabs sit behind this one screen, and they belong together because they answer one question: what is this charge, and where does the money go?
| 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 |
| Consignors | Third parties whose stock you sell |
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.
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.

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.
- Select New main group and give it a Code, a Name and a revenue centre.
- Select Sub group on that main group to add a sub group beneath it.
- 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.

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
Adjustmenttax-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 seededADJcode is already exempt for this reason.
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.

"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 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.
- Select Change rate on the rule.
- Enter the new rate and the date it starts.
- 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#

US$450 article → US$45 service charge (10%) → US$54.45 tax (11% of 450 + 45). Every component is its own line, so a guest disputing the total can be shown exactly which rule produced which figure.
Consignment articles#
A consignment article is stock the hotel sells but does not own. The hotel collects the full price from the guest and owes the supplier its share.
Set the supplier up under Consignors, then mark the charge code as consigned and give it a split — either a percentage of the sale or a fixed amount per unit.

One sale, split at the moment it was posted: the hotel keeps US$180 as revenue and owes Bali Botanica US$270.
Two things about the split are worth knowing before you rely on the settlement figure:
- The split is recorded with the sale, not calculated from today's terms. Renegotiating from 60/40 to 50/50 next month changes what future sales record and leaves every past sale exactly as it was agreed at the time. The settlement table is a reading of history, not a recalculation of it.
- Only the hotel's share is revenue. The consignor's share posts to accounts payable, not to the revenue line — so a consignment article does not inflate the revenue report by the part of it you owe away.
หมายเหตุ
A charge code is either fully consigned — consignor and split — or not consigned at all. There is no half-configured state to fall into, because half of one would silently keep the supplier's money as revenue.
Who can do what#
| Permission | Lets you | Held by default |
|---|---|---|
billing.setup.read |
See the charge codes, groups, rates and consignors — and pick a code when posting | Manager, Accountant, Front Desk, Read-only |
billing.setup.manage |
Create and change all four | Manager, Accountant |
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 cannot change it, which is what keeps the revenue report meaning the same thing in December as it did in January.
What's next#
- The general cashier — house cash that is not a guest payment
- The ledger — where a coded charge lands once it is posted
- Folios and charges — posting against these codes at the desk
- Ancillary items — extras sold against a stay, priced separately