Login & roles
Open hms.saskey.in and sign in with the email + password your admin provided. If the same email belongs to more than one property, a property picker appears after you enter your password β choose the one you want to work in. Your access to screens depends on your role:
Navigation overview
The sidebar groups screens by function:
- Dashboard β daily snapshot of occupancy, arrivals, departures, today's revenue. Every tile is clickable and opens the matching report with the date already filtered (see Dashboard drill-downs).
- Rooms β live grid of every room with status colour (Clean / Dirty / Occupied / Out-of-order).
- Bookings β list view + calendar view + filters (date range, status, search).
- Night Audit β preview tonight's auto-postings; manually run if needed.
- Front Desk β quick screen for arrivals & departures today.
- Housekeeping / Maintenance / Linen / Assets / Store β operational modules.
- Accounts β Purchases, Purchase Returns, Vendor Payments, Expenses, Cash/Bank Ledger, Card Settlement, Journal/Contra, Bank Reconciliation, Corporates, GST Filing, Missing Invoices, Financials.
- Banquet β hall bookings with their own list + calendar + ledger flow.
- Reports β a single hub with a two-level menu (grouped by Operations, Financial, Complianceβ¦). Police Report and Invoice Register now live inside Reports.
- Settings β property config, theme, users, charge categories, GST, SMS, ledger routing.
First-time setup checklist
Before the first guest, an admin should walk through:
Create a booking
- Bookings β + New Booking.
- Pick the guest (search by phone first; system auto-fills if guest exists). If new, fill name + phone + ID type/number.
- Pick check-in and check-out dates.
- Set adults + children. The rate auto-recalculates: 1A β single rate, 2A β double rate, 3+ β double + extra-person Γ N.
- Choose the room category and (optionally) assign a specific room. You can leave it unassigned and pick at check-in.
- Save. Booking status starts as
confirmed.
Walk-in (guest at the desk now)
- Rooms screen β click a vacant_clean room β Walk-in button.
- Fill guest details, ID type + number, address.
- Confirm adults (rate updates live).
- Optionally collect an advance amount + payment method now β it'll be posted to the folio immediately.
- Save. The booking is created with
status=checked_inand the room flips tooccupied.
Multi-room booking (one guest, several rooms)
From an existing booking detail page, click + Link Another Room. Each linked room has its own rate (per category and occupancy), but they share one folio + one invoice. Checkout only generates the invoice when the last room vacates.
Change occupancy mid-stay
On Booking Detail β click π₯ Occupancy. Pick new adults / children. The system:
- Updates the saved per-room occupancy.
- Re-computes the rate from the room category settings.
- If past nights have already been charged, you'll see a confirm prompt β choose either "reverse + re-post past nights at the new rate" (creates offsetting JV entries) or "future-only" (past nights keep their old rate).
Check-in
- Booking Detail β Check-in.
- Confirm room assignment (system blocks dirty rooms β Mark Clean first).
- System sets
actual_check_in=NOW(), room βoccupied, status βchecked_in.
Check-out & round-off
- Booking Detail β Check Out.
- Late checkout? You'll see a suggested fee based on Settings β Late Checkout Policy. You can override.
- System asks you to settle the folio balance before closing β Record Payment or set the booking as Corporate Bill-To.
- The invoice is generated automatically at checkout, and the grand total is rounded to the nearest rupee β the paise difference posts as a Round Off line so the payable is a clean whole number (standard Indian hotel-invoice practice). This never changes the tax.
- Folio closes, room flips to
vacant_dirty, a housekeeping task is auto-created.
Undo checkout
Checked a guest out by mistake? Booking Detail β Undo Checkout reopens the folio and puts the room back to occupied.
- Because checkout now issues the tax invoice automatically, Undo Checkout voids that invoice and its revenue posting so the folio is clean again.
- It requires an Admin or Manager, and only works while the invoice's GST period is not yet filed. If GSTR-1 for that month is already filed, issue a credit note instead.
- Re-checking out afterwards simply generates a fresh invoice with a new number; the voided one stays as a historical record.
Room shift
To move a guest to a different room: Booking Detail β Room Shifting β pick the new (vacant_clean) room. The original folio history stays; future charges go to the new room.
Extend / shorten stay
Booking Detail β Amend Stay. Pick the new check-out date. Extending posts additional night charges; shortening reverses charges from the dropped dates (room + GST rows only β F&B and misc charges stay).
Folio & charges
Every booking has one folio. The Folio tab on Booking Detail shows all transactions grouped by date, with taxes indented under their parent charge.
To add a non-room charge (Food, Laundry, Mini Bar, etc.), click + Add Charges, pick a category, amount, and (optionally) override the SAC or GST rate. The category's default GST from Settings is used automatically.
Apply discount
- Folio β % Apply Discount.
- Enter the percentage and a reason.
- System reverses every room + extra-person row, then re-posts them with GST calculated on the discounted base. F&B / Laundry / etc. are not discounted.
Record payments
Folio β + Record Payment. Pick the method (Cash / Card / UPI / Bank Transfer / Cheque). The deposit account auto-fills from your Settings β Cash/Bank routing defaults, but you can override at payment time.
Each payment writes a receipt (RCPT/FY/00001), posts a balanced JV (Dr Bank / Cr AR), and updates the folio balance.
Generate invoice
Checkout finalises the invoice automatically (see Check-out). You can reprint it any time from Booking Detail β Invoice tab β Print Invoice. The document number (INV/FY/00001) and its line items are locked once issued β further changes need a credit note.
For a Pro-forma at any time: Folio tab β Pro Forma.
Share invoice on WhatsApp
From the Invoice modal β π¬ Send via WhatsApp. The system mints a 30-day public share link hms.saskey.in/i/<token> and opens WhatsApp with a pre-filled message to the guest. No PDF attachment needed; the guest just taps the link.
GST handling
Three layers:
- Room slabs β Settings β GST: exempt-below / low rate / threshold / high rate.
- Charge categories β each row has its own default GST. F&B 5%, Banquet 18%, etc.
- Place of supply β derived from the guest's GSTIN (first 2 digits = state). Same state β CGST + SGST. Different state β IGST.
Purchases & purchase returns
Accounts β Purchases records supplier bills for store items, linen, assets and consumables. Each bill posts the expense/asset and credits Accounts Payable, and (for asset lines) creates the asset record automatically.
- Record a payment against a single purchase bill from the bill itself β or pay several bills together on the Vendor Payments screen (below).
- Edit / Cancel a bill reverses its accounting and inventory. Cancelling an asset bill also removes the asset it created.
- Purchase Returns handle goods sent back to a supplier and adjust the payable.
Vendor payments NEW
Accounts β Vendor Payments pays a vendor's outstanding bills β both laundry bills (raised on the Linen screen) and purchase bills β in a single cheque or bank transfer, posting one clean entry to the account the money left.
Vendor advances
On the same screen you can also handle prepayments to a vendor:
- Add advance β pay a vendor money not tied to any bill (you can even pick a vendor with no open bills). Posts Dr Advances to Vendors Β· Cr Bank, and builds up that vendor's advance balance.
- Apply advance β when a vendor has an advance balance, the screen shows "(βΉX avail)". Draw from it to settle bills, and the bank pays only the difference (Dr Accounts Payable Β· Cr Advances to Vendors).
Example: pay a βΉ2,000 advance today β next week a βΉ1,500 bill arrives β apply βΉ1,500 from the advance, bank pays βΉ0, and βΉ500 stays in the vendor's wallet.
Cash / Bank ledger
Accounts β Cash/Bank Ledger shows a running-balance passbook for any cash drawer or bank account. Pick the account and a From / To date range to see every inflow and outflow with the closing balance β money in from guest payments, money out on expenses and vendor payments, plus manual journal/contra entries tagged to that account.
Bank reconciliation
Accounts β Bank Reconciliation matches your books against the bank statement.
- Pick the bank account and upload the SBI statement PDF / e-statement (the parser handles both current accounts and OD accounts).
- Confirm the auto-suggested matches between statement lines and your ledger entries.
- For bank-only lines (charges, interest) post a quick adjustment so both sides tally.
Corporates & credit
Accounts β Corporates tracks companies you bill on credit. A corporate booking can be marked Bill-To at checkout β a tax invoice is raised but the balance stays as receivable until the company pays.
- Each corporate page shows all its bookings, the discount given per booking and the total discount at the top (information only), plus outstanding, aging and a statement.
- Record the company's payments against their receivable from the same page.
GST filing
Accounts β GST Filing is the month-wise compliance hub: GSTR-1, GSTR-3B and GSTR-2B views, the filing JSON, a 2B reconcile, and a filing lock. Once a month is marked filed, the system blocks edits that would change that period's figures (e.g. undo-checkout on an invoice in a filed month) so your books can't drift from what you submitted.
Banquet β new booking
- Banquet β + New Booking.
- Fill event name, date, hall, pax count, food rate/pax, hall charges, contact.
- Optionally enter an initial advance + payment method.
- Save. Status starts as
confirmed.
Advance payments + receipts
Open the booking detail β Payment Ledger β + Add Payment. Multiple advances are allowed any time before the event. Each gets a receipt number RCPT-BNQ/FY/00001 you can print from the π¨οΈ icon.
Complete event β generate invoice
After the event happens, click Mark Completed. The Generate Invoice button enables only at this point (locks the amount; pre-event changes are allowed).
Cancel & refund
Open detail β Cancel Booking β confirm reason. The system:
- Reverses the revenue + GST JV (if invoice was issued).
- Does NOT touch payment rows β money is still in your bank.
- Surfaces a β©οΈ Refund button with the eligible amount.
Click Refund β pick mode (Cash / UPI / Bank) β pick which account to refund from β submit. Each refund creates a refund-receipt row and posts Dr Advance / Cr Bank.
Housekeeping tasks
Housekeeping page shows rooms grouped by floor with their cleaning tasks. Tap a room β Start begins a timer. Stop closes the task and records duration.
Multi-floor assignments: Settings β Users β click a housekeeping staff member β Floors β tick the floors they handle. They'll only see their floors in the mobile app + web.
Maintenance tickets
Maintenance page lists open / in-progress / closed tickets. Receptionists raise tickets from Booking Detail β π§ Ticket β category (electrical / plumbing / AC / etc.), priority (low/normal/high/urgent), description.
Maintenance staff get a push notification on their phone and a row on their mobile dashboard.
Install the mobile app
Android: Google Play Store β search "HMS by Saskey" β Install. Or use the internal-testing invitation link from your admin.
iOS: TestFlight invitation (forthcoming on App Store).
Sign in with the same email + password you use on the web. Updates arrive over-the-air β if a screen looks out of date, fully close the app twice to pull the latest.
Role-specific screens
Push notifications
Tasks and tickets are pushed to the assigned staff member's device within seconds. If you stop receiving them: settings β app permissions β ensure Notifications is enabled. Sign out + back in re-registers your push token with the server.
Night audit
Runs automatically at 00:05 IST daily. Posts room charges for every in-house booking for that night, using each room's live occupancy and category rate. Open Night Audit to preview what's about to post, or run it manually if you missed a day.
Dashboard drill-downs
Every tile on the Dashboard is a shortcut into the matching report, with the date filter already applied β click today's Revenue tile and you land on the Revenue report for today; click Arrivals and you get today's arrivals list.
The Occupancy % tile is calculated on a room-nights basis (rooms occupied for the night Γ· sellable rooms), and shows the number of guests (pax) in-house beneath it. The same figures appear in the mobile app.
Reports & menu
Reports is one hub with a two-level menu β pick a group along the top (Operations, Financial, Complianceβ¦), then the report underneath. Police Report and Invoice Register now live here too (with a "back to Reports" link), and Missing Invoices sits under Accounts.
- Day Sales / Cash / Cashier / Day Book β collections by date, method and cashier.
- Revenue & Tax β GST-segregated revenue (CGST/SGST/IGST) for the period.
- Occupancy β per-day occupancy with a pax (guest count) column, and the Flash report shows pax on its tile.
- P&L / Balance Sheet / Trial Balance β GL-derived, date-filtered, always tally.
- Receivables Aging β open folios and corporate dues by age.
- Invoice Register β every issued invoice; Police Report β the daily guest register.
Every dated report has quick presets (Today Β· Yesterday Β· This/Prev month Β· Custom) and exports to CSV or Print/PDF.
Report access by role
Reports are gated per role so each person sees what's relevant:
| Role | Sees |
|---|---|
| Admin Β· Accountant Β· Back office Β· Front Office Manager | All reports. |
| Receptionist Β· Cashier | Cash, Day Book, Cashier, Breakfast, Police Report, Invoice Register. |
| Housekeeping | Occupancy, Housekeeping. |
| Maintenance | Maintenance. |
GSTR-1 export
Accounts β GST Filing β pick month. The output groups invoices by HSN/SAC, calculates per-bucket taxable + tax, and produces the format your CA / accountant can file. Voided invoices are excluded, and the taxable value is derived from each invoice's stored totals.
Settings β Theme colours
Settings β Theme β set the Primary and Accent hex codes. Used everywhere: sidebar gradient, h1 colour, accent strip, primary buttons. Leave blank to fall back to navy / blue defaults.
Settings β SMS templates
Provider: pay4sms.in (or SmartPing). Paste the token + sender ID + DLT template IDs from your DLT portal. The Settings page has a π§ͺ Test SMS form β pick an event, type a phone, send. The result + the actual rendered message both show inline.
Settings β Charge categories
Add each non-room service you'll bill: F&B, Laundry, Mini Bar, Banquet, Spa, etc. Each row stores SAC code + default GST rate. When you add a charge on a booking and pick this category, both fields auto-fill.
Settings β Cash / Bank routing
Pick which Chart-of-Accounts account each payment method posts to. Example: Cash β 1101 (Cash on hand), Card β 1145 (Card/UPI Clearing), UPI β 1145, Bank Transfer β 1120 (Bank Accounts), Cheque β 1101. These defaults pre-fill the account on every payment, so operators rarely have to think about it.
Settings β Users & roles
Invite a user with email + role. Change role inline anytime. For housekeeping / maintenance roles, also assign the floors they should see (Floors button next to the user row). Managers can add non-admin users but cannot create or edit admins.
Cancel & refund β accounting view
The system distinguishes booking cancel from refund:
- Cancel = reverse the revenue recognition (and the invoice's GST). Sets status='cancelled'.
- Refund = operator decides when and via which mode the money actually leaves. Multiple partial refunds allowed.
License & access
Each property runs on a Saskey license with an end date. While the license is current, everyone works as normal. If it lapses, the PMS blocks sign-in and every screen (web and mobile) with a "license expired" message β no data is lost, access is simply paused.
Troubleshooting
"Your Saskey PMS license has expired"
Your property's license end date has passed. Nothing is lost β message Saskey to renew and access is restored the moment we update the date.
A vendor payment isn't showing in the Cash/Bank Ledger
Make sure the payment was recorded with the correct Paid From account on the Vendor Payments screen. The ledger lists a payment only when it's tagged to that bank/cash account.
The theme isn't applying on some pages
Hard refresh the browser (Cmd+Shift+R / Ctrl+Shift+R). Confirm Settings β Theme shows your colours saved. Open DevTools β Inspect <html> β look for --theme-primary in computed styles.
An SMS test failed
Check the error message inline. Common causes: DLT template ID empty, body still uses {#var#} instead of {#alphanumeric#} (both now supported), pay4sms balance ran out.
F&B GST showing 18% instead of 5%
Settings β Charge Categories β "Food & Beverage / Restaurant" β set Default GST to 5%. Save. New F&B charges will post at 5%; existing wrong ones need to be void + re-added.
Invoice grand total doesn't match folio
The right-side summary subtracts discount + payments and applies the whole-rupee round-off; the line items show gross. If they don't reconcile, run a Trial Balance and check the journal entries for that booking β every Dr should match Cr per account.
Mobile app doesn't show new tasks / screens look old
Pull to refresh. If push isn't arriving: settings β notifications enabled, then sign out + back in to re-register the push token. For an out-of-date screen, fully close the app twice so it pulls the latest over-the-air update.
Get support
WhatsApp: +91 84892 56789
Email: info@saskey.in
Web: saskey.in
Mention your property name and the booking number you're stuck on β that gives us instant context.