Pengaturan

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.

Terakhir diperbarui

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 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.

Catatan

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.

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: a table of ACC Room Charge, LATECO Late Check-out, XBED Extra Bed, BFAST Breakfast, RSVC Room Service, MINIBAR and SPATRT Spa Treatment 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

Tips

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.

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%, kind Service charge, basis Exclusive, order 10; PB1 Restaurant & Hotel Tax at 11%, kind VAT, 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.

Penting

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 showing Room night 1 US$300.00, Tax night 1 US$30.00, Botanica Massage Oil US$450.00, Service Charge US$45.00 and PB1 US$54.45, balance US$879.45

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.

The Consignors tab with Bali Botanica listed above a settlement table reading 1 posting, gross US$450.00, hotel share US$180.00, owed US$270.00

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.

Catatan

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#