Settings
Purpose and who uses it
Super AdminHotel ManagerEveryone gets Account and Notifications; the hotel-wide tabs need Settings access.
Settings has six tabs: Account, Hotel, Branding & locale, Ops config, Notifications and Numbering. Account and Notifications are personal and open for every role. The other four describe the hotel and need Settings access: View to read, Edit to change most fields, Full for the handful that can break things, currency, timezone, the front-desk PIN and the numbering counters.
By default only the Super Admin has Settings = Full. The Hotel Manager has Edit, the HR Manager has View, and everybody else sees just Account and Notifications. Every hotel-level change is written to the audit log as a settings.* event.
Screen anatomy
A segmented tab bar; each tab loads its own data when opened.
- 1Page head“Your account, hotel profile and operational configuration”, then the tab bar: Account · Hotel · Branding & locale · Ops config · Notifications · Numbering. Hotel-wide tabs are hidden when your role has no Settings access.
- 2Left card(s)Hotel: Hotel profile. Branding: Logo. Ops config: POS discounts, Housekeeping checklist. Account: your name, email, role and Change password.
- 3Right card(s)Hotel: Taxes & charges. Branding: Locale. Ops config: POS void reasons, Outlet service charge. Account: Appearance.
- 4Second rowHotel: Deposits & stay fees (with the front-desk PIN) and Rate plans. Ops config: Departments, suppliers & categories.
- 6SaveThe Hotel tab has one Save changes button top-right (Settings Edit). Branding saves per card (logo immediately; Save locale). Ops config and Numbering save each field on blur or Enter.
Deep link a tab with /settings?tab=notifications (ids: account, hotel, branding, ops, notifications, numbering) , the Preferences button on the Notifications page does exactly that.
Account tab
See who you are signed in as, change your password, and pick light or dark for this device.
- 1Click Change passwordThree fields unfold: Current password, New password (min 8) and Confirm new password.
- 2Click Update passwordThe page checks “New password must be at least 8 characters” and “Passwords don't match” before sending. The server verifies the current password.
- 3Other devices are signed outToast: “Password changed. Other devices were signed out”. Every other session’s refresh token is revoked; this browser gets a fresh one and stays in. The change is audited as user.password.changed.
Appearance: Light or Dark. “Theme is saved per device”: it lives in this browser, not on your account, and the moon/sun icon in the top bar toggles the same setting.
Hotel tab
Hotel ManagerSuper AdminProfile, check-in/out times, tax chain, deposit and cancellation fees, the front-desk PIN and rate-plan adjustments.
Edit any field and click Save changes (top right; Settings Edit). Toast: “Settings saved”.
| Field | Type | Notes |
|---|---|---|
| Hotel name * | text | 2–120 characters. Shown in the sidebar, print headers and exports. |
| Phone | text | Up to 40 characters, e.g. +256 … |
| Reservations email | Must be a valid address or blank. | |
| Address | text | Up to 200 characters; printed on invoices and exports. |
| Check-in from / Check-out by | time | HH:MM. Informational defaults for the front desk. |
| Star rating | 1–5 | Shown as stars on the card. |
| Field | Type | Notes |
|---|---|---|
| VAT %, Service charge %, Tourism levy % | 0–50, step 0.5 | Chained on the room charge in the order service → VAT → levy. All zero means nightly rates are tax-inclusive and invoices equal rate × nights. Affects new quotes and future check-outs only. |
| Field | Type | Notes |
|---|---|---|
| Deposit on confirm % | 0–100 | Posted when a booking is confirmed. Zero means no charge. |
| Cancellation fee % of stay | 0–100 | Posted on cancellation. |
| No-show fee % of one night | 0–100 | Defaults to 100% of one night. |
| Front-desk PIN | 4–8 digits | Settings Full only. Shows “(set)” or “(not set)”; leave blank to keep the current PIN. Others read “Only a role with full Settings access (Super Admin by default) can change the front-desk PIN.” Client check: “Front-desk PIN must be 4–8 digits”. The PIN is hashed and never displayed. |
Rate plans lists every plan (code, name and kind, BAR, weekend, promo…) with its percentage adjustment; change the number and click Save on that row (toast “WKND saved”). New plans are created from the rate-plan API, not here.
Branding & locale tab
Hotel ManagerSuper AdminUpload the sidebar logo, and set the IANA timezone and the three-letter currency code.
Logo
- “PNG, JPEG or WebP. Downscaled to 512px; max 200KB after that.” Click Upload logo, pick a file; the browser scales it to 512 px on the long edge and saves it at once (toast “Logo updated”). Remove clears it (“Logo removed”). Settings Edit.
- Too complex an image after scaling gives “Logo too large even after downscaling. Try a simpler image”; an unreadable file gives “Could not read that image”.
- The logo is stored with the hotel profile (no file server) and appears in the sidebar and on exports. The audit log records “(image updated)”, never the image.
Locale
- Timezone (IANA): a list of every zone the browser knows (Africa/Kampala, Africa/Nairobi…). It defines the hotel’s business date for check-ins, night audit, reports and the audit log.
- Currency code: three capital letters (UGX, KES…). Client check: “Currency must be a 3-letter code like UGX or KES”.
- Both need Settings Full: the fields are disabled otherwise and the note adds “Changing currency or timezone needs full Settings access.” Click Save locale (toast “Locale saved”); the sidebar and money labels refresh immediately.
Ops config tab
Hotel ManagerSuper AdminThe lists POS and Housekeeping read at runtime: discounts, void reasons, checklist steps, outlet service charge, and reference data.
Everything on this tab needs Settings Edit. Rename fields save on blur or Enter; the + button beside each “New …” box adds a row.
- POS discounts: “Deactivate rather than delete. Tickets copy label & %”. Each row: label (2–60 chars), whole-number % (0–100), an Auth chip (amber when the discount “Requires supervisor authorization” at the till) and Active / Off. Add with “New discount label” + “%”.
- POS void reasons: “Offered when a ticket line is voided”. Label (2–80 chars) with Active / Off. Add with “New void reason”.
- Housekeeping checklist: “Template applied to every new cleaning task”. Steps with Active / Off; add with “New checklist step”. “Changes apply to tasks created from now on; open tasks keep their checklist.”
- Outlet service charge: “Overrides the hotel service % on POS folios”: one “% svc” box per POS outlet (0–50). Shows “No POS outlets configured.” when there are none.
- Departments, suppliers & categories: “Create and rename only. Rows stay referenced by history”. Staff departments, Suppliers and Inventory categories, each with a rename box per row and a “New department” / “New supplier” / “New category” box. Names must be unique (2–60 characters; suppliers up to 80).
Notifications tab
Per-browser Device alerts and per-account category mutes, covered in the Notifications chapter.
Two cards: Device alerts (the On/Off chip and Send test) and Categories (Bookings, Payments, Operations, System with On / Muted chips). Both are personal, no Settings access needed. Full detail in Notifications → Turning on Device alerts.
Numbering tab
Super AdminSee the next code for every document type; move a counter forward, never back.
“Prefixes are fixed; the next counter can only move upward (lowering it would duplicate codes)”. The table lists Documents, Prefix, Next code and Next value for: Bookings (BK-), Invoices (INV-), Payments (PAY-), Guests (G-), Housekeeping tasks (HK-), Maintenance orders (M-), POS tickets (TKT-), Purchase orders (PO-), POS shifts (SHF-), Staff records (S-) and Leave requests (LV-).
- 1Type the new Next valueSettings Full only; others see the number and “Editing counters needs full Settings access.”
- 2Press Enter or click awayThe counter saves on blur. Toast: “BK counter moved to 5000”.
- 3Lower values are refused“Next value must be above the current 1042. Lowering it would duplicate codes”. The change is audited as settings.sequence.updated with from/to.
Permissions
View reads, Edit changes, Full unlocks currency, timezone, PIN and counters.
| Role | Settings |
|---|---|
| Super Admin | Full |
| Hotel Manager | Edit |
| Receptionist | None |
| Accountant | None |
| Housekeeping Mgr | None |
| Maintenance | None |
| Restaurant Mgr | None |
| HR Manager | View |
| Security | None |
- None: Account and Notifications tabs only.
- View: read Hotel, Branding & locale, Ops config and Numbering.
- Edit: Save changes on Hotel, logo upload/remove, rate-plan adjustments, every Ops config list.
- Full: additionally currency, timezone, the front-desk PIN and numbering counters. Full also makes the role admin tier: it can manage roles and users and read the audit log, and the shared PIN can no longer sign in as it.
Errors you may see
Every refusal from the settings, ops-config and password endpoints.
Changing currency, timezone or the front-desk PIN requires full Settings accessUnknown timezone. Use an IANA name like Africa/KampalaNext value must be above the current 1042. Lowering it would duplicate codesUnknown sequenceA discount with that name already existsDiscount not foundCurrent password is incorrectUse HH:MMLogo too large. Keep it under 200KBPIN must be 4–8 digits- Business date / hotel day
- The calendar day in the hotel’s timezone; check-in dates, night audit and reports all use it.
- Sequence
- The per-hotel counter behind a document prefix such as BK- or INV-.
- Soft delete
- Switching a list row to Off so it stops being offered but stays referenced by past tickets and tasks.