Building a Direct Booking App for Your Hotel
Most of your rooms are filled through OTAs, and a slice of every booking goes to commission. Bringing a guest back a second time is the cheapest sale you will ever make. Your own hotel app shows availability and rates in sync with your channel manager, so it opens a direct sales channel without creating overbooking risk and keeps the guest list on your side.
How many separate apps does this need?
-
01
Guest App (iOS + Android)
Room search by dates and occupancy, board type and rate comparison, booking and payment, online check-in, digital room key, room service requests and folio review at checkout.
-
02
Front Desk and Housekeeping App
Tablet interface: room status updates (dirty, clean, out of order), early check-in and late checkout requests, guest request queue, maintenance reporting and shift handover notes.
-
03
Admin Web Panel
Room inventory, seasonal and weekend rate rules, minimum stay, cancellation policies, occupancy and ADR reports, channel manager mapping, promo codes and multilingual content management.
What the app includes
- Nightly availability and rate calendar per room type
- Automatic child pricing by age bracket
- Minimum-stay and closed-to-arrival day rules
- Housekeeping room status and cleaning queue
- Paid room-upgrade offer pushed before arrival
- Airport transfer request with flight time note
- Spa and restaurant slot booking charged to the room folio
- Extras marked separately inside an all-inclusive package
- Rooming list upload for agency and group bookings
- Approval flow for paid early check-in and late check-out
- Guest request queue with response-time timer
- Folio view and express mobile checkout payment
State of the sector
Guests largely start their hotel search on a handful of OTAs, and while those platforms deliver the booking, they keep the guest's contact details and the chance of a return stay on their own side. For regional and single-property hotels the result is this: occupancy but no guest list, so out of season there is no one to talk to. Commission rates also sit at the top of the band for small properties with little bargaining power. A property without its own booking channel has to buy its guests back every year; a property that has one opens the early booking window with its own list.
Metrics that matter here
- Direct booking share — The share of bookings coming through the app rather than an OTA; every point of increase converts directly into commission saved
- Repeat stay rate — Bringing back guests who have stayed before through notifications and promo codes; the app's main return on investment
- Average daily rate (ADR) — Managing rate rules from the panel makes it possible to optimise last-minute and weekend pricing quickly as the season changes
- Cancellation and no-show rate — Pre-authorisation and arrival reminder notifications reduce no-shows and put the freed room back on sale earlier
Common mistakes in this sector
- Keeping room inventory separately in the app Holding availability in an app-specific table, independent of the PMS, produces overbooking on the first busy weekend. The single source of truth for inventory must be the PMS or the channel manager; the app reads from it and places temporary locks.
- Hard-coding rates Having a developer implement every seasonal, weekend and board type difference stretches a price change over days and costs you last-minute opportunities. Rate rules must be definable from the panel from the first release onwards.
- Asking for notification permission on first launch A guest who has just downloaded the app declines, and you can never reach them again. Ask for permission after a booking is completed, framed as sending an arrival reminder, and the acceptance rate rises noticeably.
- Publishing room photos without compression High-resolution images make the room list unusable on a beach connection or international roaming. Images should be generated server-side in several sizes and loaded progressively.
Regulation and compliance
Accommodation providers in Turkey are required to report the identity details of every guest to the police Identity Notification System (KBS), and the online check-in flow must be designed to feed that report completely. ID and passport data requires care under KVKK (Turkey's data protection law, aligned with GDPR): a privacy notice, explicit consent, a retention period and authorised access must all be defined, and the data must be held inside Turkey. Accommodation tax is shown as a separate line on the invoice and issued in line with the e-Arşiv / e-Fatura rules. On the payment side, virtual POS and card storage must run only through licensed payment institutions.
The real challenges in this sector
-
Channel manager sync and overbooking
The same room is on sale simultaneously on OTAs, your own website and the app. If a booking made in the app does not reach the PMS and channel manager instantly, you sell it twice. Solution: an inventory lock by room type at the moment of booking, queued delivery with retries to the channel manager API, a webhook listener for changes coming back from channels, and an overnight reconciliation job.
-
Rate, board type and length-of-stay combinations
Price depends on dates, length of stay, occupancy, board type (room only, half board, all inclusive) and cancellation terms. Storing every combination as its own row bloats the inventory. Solution: rule layers on top of a base rate plan (season, weekend, minimum stay, last minute), with the final price calculated server-side at search time and held in a short-lived cache.
-
Digital room key and lock integration
Opening a BLE lock with a phone has to work even when the lock is offline. Solution: an encrypted, room-specific key token tied to the stay dates and with a fixed expiry, downloaded to the device at check-in, validated by the lock without internet, revoked on early checkout, with the lock vendor's SDK wrapped natively and separately on iOS and Android.
-
Pre-authorisation, no-shows and partial refunds
Hotels usually collect payment at check-in or checkout; at booking, the card is only held. Solution: a pre-authorisation through the virtual POS that is captured at the end of the stay, an automatic no-show charge once the free cancellation window closes, and a partial refund for the remaining nights on early checkout, calculated from the cancellation policy rules.
-
Language and currency for international guests
An international guest opens the app in their own language and wants to see prices in their own currency, but the charge is settled in Turkish lira. Solution: room and amenity descriptions managed from the panel through a translation table, exchange rates shown for display purposes only with a rate date, a clear statement on the payment screen that the actual charge is in lira, plus Apple Pay and Google Pay support.
Required integrations
- Booking and folio sync with the PMS / hotel management system
- Channel manager (for Booking.com, Expedia and the Turkish OTAs Etstur and Tatilsepeti)
- Pre-authorisation and instalments via iyzico, PayTR or Craftgate (Turkish payment providers) or a bank virtual POS
- Guest ID reporting to KBS (Turkey's police identity notification system for accommodation)
- Invoicing with a separate accommodation tax line through an e-Arşiv / e-Fatura provider (Turkey's mandatory e-invoicing system)
- Digital room keys via a BLE or NFC smart lock SDK
Who this page is for
-
Single-property regional city hotel
Guests mostly travel for business and return often. Priorities are one-tap rebooking, negotiated corporate rates and shorter reception queues via online check-in; digital keys and loyalty can wait for later phases.
-
Seasonal coastal resort or apart-hotel
Revenue is squeezed into a few months and many guests are foreign. Priorities are multilingual content, display currencies, all-inclusive extras limits and off-season early-booking notifications; scope should centre on rate rules and the notification layer.
-
Newly opened boutique hotel or guesthouse
There is no PMS, channel manager or guest list yet and inventory lives in a spreadsheet. Priorities are making the app itself the single source of truth and getting KBS guest reporting and invoicing right from day one; with no integration burden, phase one moves faster.
A phased plan that splits the budget
-
1
Phase 1 — Core that sells directly 7-10 hafta
Delivers the guest app, room types and rate rules, pre-authorised payment, admin panel and channel-manager sync. It stands alone: bookings arrive, inventory locks, money is collected. This comes first because no other module earns anything without a working direct sales channel.
-
2
Phase 2 — Arrival, departure and operations 5-7 hafta
Adds online check-in with identity reporting to KBS (Turkey's mandatory police guest registration system), a reception and housekeeping tablet, room statuses, the guest request queue, folio view and express checkout. Scheduled after volume exists, since these modules only pay off once app bookings are meaningful.
-
3
Phase 3 — Digital key, ancillary revenue and loyalty 5-8 hafta
Brings the digital room key via the BLE lock SDK, spa and restaurant slots, upgrade offers, night-based loyalty tiers and extra languages with display currencies. Left for last because locks require hardware investment and loyalty only works once a guest list has accumulated.
Typical scope and timeline
Guest app (iOS + Android), front desk and housekeeping interface, admin web panel; PMS and channel manager integration, pre-authorisation via virtual POS, room type and rate rules, online check-in and KBS reporting, multilingual content management, e-Arşiv invoicing connection, store assets and the release process are all included. Scope and budget are set after a scoping call.
Estimated timeline: 12-18 weeks
Off-the-shelf or custom build?
| Topic | Off-the-shelf | Custom build |
|---|---|---|
| Setup speed and cost model | Live in days; you pay a monthly fee tied to room count plus a booking commission, so the bill grows as occupancy grows. | The first release takes weeks and a one-off build investment; afterwards only hosting and maintenance remain, with no per-booking share. |
| Connecting to PMS and channel manager | Ships with ready connectors for common PMS and channel managers — a genuine advantage: in a standard setup there is almost no integration work. | A connector is written for a local or obscure PMS, a spreadsheet-based setup, or a second property running a different system; not being on a vendor's list is no obstacle. |
| Property-specific workflow | The flow is mature for city hotels on bed-and-breakfast terms and the stock screens suffice for most properties; but the property adapts to the flow, not the other way round. | Your own model — all-inclusive extras limits, seasonal closure, thermal or treatment session calendars, weekly apart-hotel lets — is built into the screens exactly as you run it. |
| Data ownership and store identity | The guest list and booking history sit in the vendor's system, and the app usually ships inside a shared container app or under the vendor's store account. | The app is published under your own App Store and Google Play accounts and the database is yours; if you change suppliers, the guest list and booking history stay with you. |
Sector glossary
- RevPAR (revenue per available room)
- Hoteliers use it to merge occupancy and average rate into one number: empty rooms stay in the denominator, so it is the figure that reveals whether discounting to fill rooms actually paid off.
- Folio (room account)
- The running account a guest builds up during the stay: minibar, spa, restaurant and transfer charges are posted to the room and settled in one go at departure. It is the live screen the guest sees in the app.
- Allotment
- A block of rooms held in advance for an agency or online travel platform. App sales must not eat into that block, otherwise the agency keeps selling rooms the hotel no longer has.
- Stop-sale
- Instantly closing sales for a given date and room type across every channel — used for renovation, an incoming group, or when the last room goes. The app is expected to pick this up from the channel manager without delay.
- Rooming list
- The list showing who stays in which room, with how many people, for a group or agency booking. It usually arrives late and as a spreadsheet, so the system must import it rather than force one-by-one entry.
Frequently asked questions
Let us talk about your project
A free 30-minute call to scope it out, then an itemised quote within 48 hours.
Get a Free QuoteThis page explains the problems an app must solve in this sector. We share references and comparable projects during the call.