HotelLedger
βš™οΈ System Admin

Hotel Identity

Financial Settings

F&B Outlets

Configure the outlet names that appear across F&B and Cash Reconciliation

Room Types & Rates

Define room categories and default rack rates

Floor Options

The valid floor names Room Inventory and the Front Desk Room Board filter can use. Edit, remove, or add to this list to match this property's real layout.

Banks (for Transfer Payments)

When a guest or client pays by bank transfer, staff pick the bank from this list instead of typing it freehand. Add banks here as you encounter new ones β€” no need to guess them all up front.

Room Inventory

The actual, individual rooms staff see on the Front Desk Room Board β€” adding real property inventory is an Admin decision, not a front desk task.

Loading…
Room Number
Room Class
Floor
Rate / Night (₦)

Rate Plans / Packages

One package rate per plan (matching real hotel industry practice) β€” with a configured Room/F&B split so tax posts correctly behind the scenes. Guests just see one clean nightly rate.

Front Desk Settings

If off (default), staff print the folio manually using the existing button β€” nothing changes for them. If on, a folio pops up ready to print right after every checkout, no extra click needed.

Front Desk staff can only tick "Breakfast Included" on a reservation β€” the value charged always comes from here, so nobody can type in a different amount at the point of booking.

Late Checkout Charge Brackets

Guest is charged this % of the room rate, based on how many hours past standard check-out time they actually leave. Checked in order β€” the first bracket whose "up to" hours covers the actual delay applies.

Early Check-in Charge Brackets

Guest is charged this % of the room rate, based on how early before standard check-in time they actually arrive.

Enabled Modules

Untick anything this hotel doesn't use β€” that tile disappears completely from the login page, staff never see it at all. System Admin always stays visible, so you can never lock yourself out.

Department PINs

These are the shared PINs used to log into each department from the landing page

πŸ” Admin & GM Secure Login

Admin and GM can do the most damage if compromised β€” Admin can wipe the whole database, GM can override credit limits and approve real AR charges. A 4-digit PIN isn't proportionate for these two anymore. Set up a real email + password + SMS code login for each, replacing their PIN.

⚠️ SMS codes currently go through Africa's Talking's sandbox environment β€” real phone numbers won't receive them until that's switched to production credentials. Set this up now, but don't rely on it for real security until that's confirmed working with a real test message.

πŸ”’ Trusted Device Policy

Controls whether Admin/GM can skip the SMS code on a device they've already verified once. This is a real security-vs-convenience tradeoff β€” you decide where the line sits, not the code.

Front Desk Agents

Each agent has their own PIN, separate from department PINs above. Add a new agent or reset an existing one's PIN.

What each level can do
Pick a level below, tick what it's allowed to do, then save. Changes apply immediately to everyone at that level β€” no redeploy needed. Levels no longer auto-inherit from the one below: each level's capabilities are whatever is ticked for it, so if Level 4 should keep doing everything Level 3 can, tick those boxes for Level 4 too.
New agents are now created in Staff & Users, alongside every other department's staff β€” one place instead of several. To change an existing agent's role/level, click "Change Role" on their card above.

PIN Change Log

Loading...

πŸ” Smart Lock Integration

Pick whichever lock vendor this hotel has installed, then fill in the credentials that vendor gives you. This is built as a plug-in β€” adding a second vendor later, or switching brands, never requires touching the rest of HotelLedger.

⚠️ Before choosing a vendor: confirm with them directly that their locks validate access offline (the door itself doesn't need live internet to unlock) β€” this matters for what happens if HotelLedger or the internet goes down. Ask about their REST API/webhook documentation before buying, not after.
Status: checking...

πŸ“§ Email Integration

Guest booking confirmations currently send automatically through this. The actual API key is a server secret, so it's configured in Netlify's environment variables, not here β€” this page is for setup guidance and testing.

Setup Steps (one-time)
  1. Create a free SendGrid account at sendgrid.com
  2. Under Settings β†’ Sender Authentication, verify the email address you'll send from (SendGrid rejects sending from an unverified address)
  3. Create an API Key under Settings β†’ API Keys
  4. In Netlify β†’ Environment variables, add SENDGRID_API_KEY with that key
  5. Also add SENDGRID_FROM_EMAIL and SENDGRID_FROM_NAME to match your verified sender
  6. Redeploy β€” environment variable changes only apply on the next deploy
Currently used for: guest booking confirmations (book.html). Checkout receipts and staff notifications can be added the same way once this is confirmed working.

+ Add New Staff

One place to create any staff login β€” pick the department first, the right fields appear below.

F&B Staff

Individual F&B logins with personal PINs

Loading...

Front Desk Agents

Loading...

Maintenance Staff

Loading...

Housekeeping Staff

Individual Housekeeping logins with personal PINs

Loading...

Recent Logins (Last 24 Hours)

Loading...
Loading...

Module Status

Running checks...

Data Flags

Scanning...
⏳
Last Backup

πŸ“¦ Automated Backups

A full Realtime Database snapshot is saved automatically every night and kept for 30 days. Download any date below for safekeeping β€” actually restoring from one is a careful, hands-on operation (via the Firebase console or with assistance), not a one-click action from here.

Loading...

πŸ“œ Backup Activity Log

Just the backup-related entries from the system audit trail β€” for the complete log across every module, see πŸ“‹ Audit Trail.

Loading...

πŸ“€ Manual Module Exports

Export data from any module as CSV β€” or everything at once as JSON

πŸ“Š AP β€” Invoices

All invoices across all months

🏒 AP β€” Vendors

Complete vendor master list

🍽️ F&B Orders

All F&B orders and payments

🏨 Front Desk

Reservations and folios

πŸ’΅ Petty Cash

All disbursements and replenishments

πŸ”§ Maintenance

All job orders and history

πŸ“‹ Audit Trail

Complete system audit log

πŸ“¦ Full System Backup (Manual)

Everything β€” all modules, all data, as JSON, downloaded straight to your browser right now

πŸ”§ Fix Room Rates on Reservations

Correct rate_per_night on existing reservations saved with wrong rates. Updates total_amount automatically.

⚠️ WARNING: All actions on this page are permanent and cannot be undone. Export a full backup before proceeding with anything here.

Clear AP β€” Specific Month

Delete all invoices for one month

Clear Payment History

Wipe the AP payment transaction log only

Clear F&B Orders

Delete all F&B order history

Clear Maintenance Jobs

Delete all maintenance job orders

🚨 Reset Entire System

Delete ALL data across ALL modules β€” AP, F&B, Front Desk, Maintenance, Petty Cash, Inventory. Cannot be undone.