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, Theme. 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”, meaning 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 … |
| Alternative phone | text | A second number for the hotel, up to 40 characters. |
| 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. Changing any tax rule needs Settings · Full access and an idle till: while a restaurant ticket is open the save is refused (“3 tickets are still open on the till”), because open bills would be re-priced mid-service. |
| Daily housekeeping for every occupied room | checkbox | On (default): from 06:00 hotel time a stayover task is created for every room with a guest in house, once per day, due by the check-out time. Off for a hotel that services rooms on request only. |
| Require an open shift to take money at the till | checkbox | Off (default): the POS sells with or without a shift. On: cash, card and mobile money on a ticket are refused (“No shift is open on this outlet”) until the outlet manager opens one, so every tender lands on a Z-report. |
| Take money only after the kitchen marks the food ready | checkbox | On (default): the till refuses every tender while a kitchen dish on the bill is unsent or still cooking (“2 items not ready: …”); the pass marks items ready one by one. Drinks never hold a bill. Restaurant · Full access may override, and the override is written to the audit log. Off: the till pays whenever. |
| Sign out after minutes without activity | 0–720 | Default 15. A screen with no input for that long shows a one-minute countdown, then signs the person out and the login page says why. 0 never signs out. The kitchen display keeps itself signed in while it is on screen. |
| MTN MoMo merchant code · Airtel Money merchant code · Merchant name the networks show | text | Printed as “PAY BY MOBILE MONEY” on every bill and receipt so a guest can pay from the table; the merchant name (for example IJHotel) prints beside each code so the guest can check the payee. Two Airtel codes go in one box with a slash. |
| Prices include taxes | checkbox | Off (default): the taxes above are added on top of room rates and menu prices. On: rates and prices are final figures and the taxes are extracted from them; bills and receipts label the rows “Includes VAT 18%” and print “Prices include taxes”. The helper text under the box says which way the hotel is set. Affects new charges only. |
| Till receipt paper | select | 80 mm till roll (default), 58 mm till roll, or an A6 card for a desk printer. A roll receipt is as tall as the ticket needs and cuts after the footer; one print can override it with ?paper= on the receipt address. |
| Tax identification number (TIN) | text | Printed under the address on every till receipt and guest bill. Leave blank until the hotel has one. |
| Receipt footer | text, up to 200 | The last line of every till receipt. Blank prints “Thank you, asante, webale”. |
| Guest bill footer | text, up to 400 | Printed under the thank-you line on the guest bill: bank details, a policy line, or nothing. |
| 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 digits | Settings Full only. Shows “(set)” or “(not set)”; leave blank to keep the current PIN. Saving a new PIN signs out every session that was opened with the old one within minutes. 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 digits”. The PIN is hashed and never displayed. |
Amenities on offer is the list the room-type picker shows (M9.1). Press the box, tick what this hotel has: the dropdown is grouped and every row is a checkbox, and each ticked one also appears as a chip with its icon and an x. Leave it empty and every amenity the system knows is offered, which is what a full-service hotel wants; a lodge narrows it to the handful it has. Taking one off the list never strips it from a room type that already carries it. It saves with Save changes.
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. The bin deletes a plan no booking was quoted on.
Branding & locale tab
Hotel ManagerSuper AdminUpload the sidebar logo, pick the theme and sign-in tagline, 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.
Theme
- Theme picks the colour set and the display font for every screen and every PDF letterhead; the change applies as soon as you save (toast “Theme saved”).
- Tagline is the headline on the sign-in page of a live hotel (up to 140 characters); leave it empty for the standard line.
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”, with 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 |
| Waiter | None |
| Chef | None |
| Housekeeper | None |
| Cashier | 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 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.