Powering Saudi hospitality with NTouch
A multi-tenant property management platform running daily bookings, invoicing and compliance across 40+ hotels and 28 companies in Saudi Arabia.
What was breaking before this build
Business challenges
- Fragmented booking channelsWalk-in, OTA, and corporate bookings sat in separate spreadsheets, forcing manual cross-checks that let double-bookings slip through unnoticed.
- Invisible OTA overbookingsBooking.com, Agoda, and Expedia sold the same room at once without live sync, and staff discovered conflicts after guests arrived.
- Contract and signature delaysEvery booking needed a separately drafted contract and a separate signature request, slowing confirmations and adding paperwork.
- Compliance handled manuallyVAT, Zatca invoicing, and mandatory reporting to Shomoos and the Ministry of Tourism ran without automation, risking legal and financial penalties.
- Untracked pricing overridesManagers could override room rates for discounts with no audit trail, leaving receptionists without an accountability structure for price changes.
- Inaccurate multi-calendar billingGregorian, Hijri, and fixed-30-day billing periods coexisted without a unified engine, producing incorrect monthly rent and early-checkout refund calculations.
Technical challenges
- Multi-calendar billing modelGregorian, Hijri, and fixed-30-day periods each calculate date ranges differently, and a single miscalculation could throw off both monthly rent and early-checkout refunds.
- Zero-mismatch tax chainThe tax engine had to calculate inclusive and exclusive VAT identically across booking, contract, invoice, PDF, and export, since any drift from Zatca's own math would trigger compliance failures.
- Immutable invoices under ZatcaEvery invoice needed a QR code and cryptographic signature, then had to stay unchangeable after submission.
- Idempotent government reportingCheck-in data reaches Shomoos and the Ministry of Tourism simultaneously, so a failed submission on one endpoint could not duplicate records or block the other.
- Reliable OTA sync without data lossReservations from Booking.com, Agoda, and Expedia had to upsert instead of duplicate, and a sync failure on one channel could not corrupt or lose data from the others.
- Hotel-level data isolationA user managing multiple hotels in one browser session risked seeing one property's data mixed with another's.
How we solved it
Single booking system
Replaced spreadsheets across walk-in, OTA, and corporate contracts with one unified platform — staff now work off a single live calendar.
Live two-way OTA sync
Connected NTouch directly to Booking.com, Agoda, and Expedia so reservations update across every channel instantly, with automatic recovery on a failed sync.
Automated contracts and e-signatures
Every confirmed booking generates a numbered contract automatically and sends signature requests through WhatsApp, SMS, or email.
Zatca-compliant invoicing pipeline
One consistent tax calculation chain runs from booking through invoice and export, so every invoice carries a valid QR code, signature, and matches Zatca's calculation exactly.
Fail-safe government reporting
Idempotent submission logic for Shomoos and Ministry of Tourism reporting means a failed check-in report never duplicates and never blocks the other endpoint.
Controlled pricing with full accountability
A role-based approval workflow ties every discount directly to the receptionist who applied it.
Unified multi-calendar billing
One billing engine calculates Gregorian, Hijri, and fixed-30-day periods correctly, keeping rent and refund amounts accurate.
What the team uses every day
Unified booking calendar
Walk-in, OTA and corporate bookings land on one live calendar instead of separate spreadsheets.
Two-way OTA sync
Booking.com, Agoda and Expedia reservations update instantly, with automatic recovery on a failed sync.
Contracts & e-signatures
Every booking generates a numbered contract, signed over WhatsApp, SMS or email.
Zatca invoicing
One tax chain produces compliant invoices carrying a valid QR code and signature.
Government reporting
Idempotent Shomoos and Ministry of Tourism submissions that never duplicate or block each other.
Accountable price overrides
Role-based approval ties every discount to the receptionist who applied it.
Multi-calendar billing
One engine calculates Gregorian, Hijri and fixed-30-day cycles correctly, every time.
The guarantees this was built on
- Zero-mismatch tax chainVAT calculates identically across booking, contract, invoice, PDF and export, so nothing drifts from Zatca's own math.
- Immutable invoicesEvery invoice carries a QR code and cryptographic signature, then stays unchangeable after submission.
- Idempotent government reportingShomoos and Ministry of Tourism submissions are safe to retry — records never duplicate or block one another.
- Upsert-based OTA syncBooking.com, Agoda and Expedia reservations reconcile by identity instead of blind inserts, so a failed sync can't corrupt or lose data.
- Hotel-level data isolationA user managing multiple hotels in one session never sees one property's data mixed with another's.
- Unified multi-calendar engineGregorian, Hijri and fixed-30-day periods are calculated by one engine, keeping rent and refund math consistent.
Integrations & channels
The outcome
Runs bookings, invoicing and compliance for 92 active users across 40 hotels and 28 companies
Integration failures dropped sharply after automatic notification, logging and reconnect-based sync
A server change tied to this build cut the client's infrastructure costs directly