HotelLedger
βš™οΈ System Admin

Hotel Identity

Guest Services Hub

Shown on the guest-facing page reached by scanning a room's QR code β€” "Wi-Fi Password" and "View Hotel Information" read directly from here.

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.

πŸŒ™ Night Audit Reset

For correcting a genuinely wrong Night Audit run β€” removes exactly what that date's audit posted (Room Charge, Complimentary Breakfast/Room entries) from every folio, and clears the audit record so it can be run again correctly. Front Desk staff have no access to this; every reset here is logged to the audit trail.

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.
Loading rooms…

Your Booking Page

Share or embed this link on your real website, social media, or Google Business listing β€” anyone who opens it can check real-time availability and book directly.

β†— Open

Room Rates

The booking page always quotes and charges the same rate your real rooms have in Room Management β€” there's nothing separate to configure here. To change a rate, update it in Room Management as usual and the booking page picks it up automatically.

πŸ“ž "Pay at Hotel" Bookings

A guest choosing to pay at check-in doesn't pay anything online, so those bookings land as Pending, not Confirmed β€” Front Desk sees a banner on their dashboard and must confirm each one (or call the guest to verify) before it's treated as a real reservation. "Pay in Full" and "Pay Deposit Now" are verified with Paystack automatically and confirm immediately.

Configured Channels

Toggling off hides a channel from Front Desk without losing its saved connection β€” turn it back on and the same iCal/room mapping is still there. Removing it deletes it from this list entirely (the connection record itself is kept, in case it's ever re-added).

Loading…

+ Add Channel

+ 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

πŸ“Š Owner Data Export

The real handover package β€” AP, AR, Guest Profiles & Folio History, HR/Payroll, F&B Orders, Reservations, and GL Journals across every period, all as one Excel workbook any accountant or new system can actually open. This is what to give an owner migrating away β€” the JSON backup below is for disaster recovery, not this.

πŸ“¦ 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.

πŸ”§ Fix Paid Bill Dates β€” Safe, does not delete anything

A bill's date is only ever set once, when it's created β€” a bill created one day but paid days later shows up as "not counted today" on the F&B Dashboard and Reports, and only appears under its old creation date in a search. This scans every already-paid F&B order and corrects its date to match the day it was actually paid, so past bills report correctly too. Fixed going forward as of today β€” this only cleans up bills paid before that fix.

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