Skip to main content
Direct Booking Engine for Hotels — A commission-free website booking widget that reads live rates and availability from your  — 1/1Illustrative preview

A commission-free website booking widget that reads live rates and availability from your ERPNext hotel PMS,

captures deposits or full payment online, and creates the reservation directly in ERPNext — no OTA commission, no double entry. Built to order, installed, and supported by ECOSIRE.

What is Direct Booking Engine for Hotels?

A commission-free website booking widget that reads live rates and availability from your ERPNext hotel PMS, captures deposits or full payment online, and creates the reservation directly in ERPNext — no OTA commission, no double entry. Built to order, installed, and supported by ECOSIRE. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Embeddable JS booking widget (single script tag) that mounts on any site — WordPress, static, or your existing marketing page — and talks to ERPNext over the REST API
Guest-safe `@frappe.whitelist(allow_guest=True)` methods for availability, quote, and booking, with server-side price calculation so client-submitted prices are never trusted
Real-time availability and rate reads directly from your ERPNext room inventory and Hotel Room Pricing rules — one source of truth for web and reception
Room-hold mechanism that reserves inventory during checkout, with a scheduler event that auto-releases expired holds so rooms are never silently locked
Online payment capture (deposit or full) via Stripe, Razorpay, or a regional PSP, confirmed by verified server-side webhooks before the reservation is created
Reservation creation on a `hooks.py` doc event / server script — creates the Hotel Room Reservation, guest Contact, and payment record inside one transaction
Promo codes and package/rate-plan support (min-stay, seasonal, length-of-stay discounts) evaluated server-side against dedicated DocTypes
Multilingual, mobile-first checkout using Frappe's translation layer, with per-language content and currency formatting
`hooks.py` doc events that recalculate availability instantly when a reservation is booked, cancelled, or a room is blocked for maintenance
Scoped guest role plus rate-limited, validated endpoints to prevent scraping, price tampering, and inventory-locking abuse
ERPNext role-profile-aware desk screens and client scripts for front-desk availability lookups and promo overrides
Scheduler events for booking confirmation, pre-arrival, and payment-reminder emails driven off ERPNext data
Configurable deposit and cancellation policy enforced consistently across widget and back office
Built and tested for Frappe/ERPNext v15 and v16, delivered as a standard installable bench app

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

Every booking that comes through an OTA costs a hotel 15-25% in commission, and the alternative — a website "book now" button that dumps enquiries into an inbox — means someone re-keys each reservation into ERPNext by hand, risks overselling a room, and loses the guest to a faster competitor. ERPNext has strong back-office hospitality building blocks (Hotel Room, Hotel Room Reservation, Hotel Room Pricing, Hotel Room Package DocTypes), but out of the box there is no public, embeddable booking front end: no real-time availability check exposed to your website, no guest-facing checkout, and no online payment capture that lands a confirmed reservation straight into the PMS. That gap is exactly where hotels keep paying commission.

We build a proper Frappe app — its own module, DocTypes, and hooks.py — that closes the gap. An embeddable, mobile-first booking widget (a lightweight JS bundle you drop into any website, including your existing WordPress or static site) calls a set of guest-safe @frappe.whitelist(allow_guest=True) methods over the Frappe REST API. Those methods run an availability query against your ERPNext room inventory and pricing rules, return only bookable dates and live rates, apply promo codes and package deals server-side (never trusting client prices), and hold the room while the guest checks out. Payment is captured through your gateway of choice (Stripe, Razorpay, or a regional PSP), and on a verified payment webhook a server script creates the Hotel Room Reservation (or your customer reservation DocType) with the guest Contact, deposit or full-payment record, and correct status — all inside a single transaction so you never confirm a room you couldn't charge for.

The engine is wired into ERPNext's own mechanics rather than bolted alongside them. Availability and rate logic live in server scripts and whitelisted methods so the same source of truth drives both the widget and your reception desk. hooks.py doc events keep the widget honest — when a reservation is created, cancelled, or a room is blocked for maintenance, availability recalculates immediately. A scheduler event releases expired payment holds so inventory is never silently locked, and can push booking confirmations and pre-arrival emails. Guest-facing endpoints run under a tightly scoped guest role with rate limiting and input validation; staff-facing screens respect ERPNext role profiles and permissions so front-desk, revenue, and admin users each see only what they should. Client scripts add the desk-side conveniences (quick availability lookup, promo overrides), and everything targets Frappe/ERPNext v15 and v16.

Because this is build-to-order, we start from your actual property: room types, rate plans, seasonal and package pricing, deposit policy, cancellation rules, languages, and payment gateway. After a short scoping call we confirm the exact scope in writing, build against your requirements, and hand over installable source and a git repository — not a locked black box. Typical delivery is one working week from confirmed scope. We deploy to a staging bench for UAT, agree a rollback plan, then go live on your production bench and support you through the first weeks of real bookings. There is no instant download: what you get is a bench app engineered for your hotel and your ERPNext instance.

What you get

  • Installable Frappe app source code for your version, scoped to your property, rate plans, and payment gateway
  • On-bench installation and configuration on your staging and production ERPNext instances
  • Technical documentation: DocTypes, whitelisted methods, hooks, server/client scripts, and payment-webhook flow
  • User guide plus a live training session for front-desk and revenue staff
  • UAT on a staging bench with a documented rollback plan before go-live
  • Post-go-live support window covering the first weeks of real bookings
  • Git repository handover with full commit history — no locked black box
  • Embeddable widget snippet and integration notes for your website / CMS

Who this is for

Independent hotel or boutique property owner

Runs one or a few properties on ERPNext, is tired of paying 15-25% OTA commission, and wants a website booking button that lands confirmed, paid reservations straight into the PMS without a receptionist re-keying anything.

Revenue / distribution manager

Owns rate plans, seasonal pricing, and packages. Needs the website to always show the same live rates and availability as the desk, with promo codes and length-of-stay rules enforced server-side, so direct becomes the cheapest and best-controlled channel.

Hotel group IT / ERPNext administrator

Maintains the bench and expects a clean, standard Frappe app on v15/v16 with proper DocTypes, whitelisted methods, role profiles, and a git repo they can audit, extend, and upgrade — not a fragile customization.

Digital marketing manager

Drives traffic to the hotel website and wants a fast, mobile-first, multilingual checkout embeddable on any landing page, with promo and package deals that convert lookers into paid direct bookings.

How Direct Booking Engine for Hotels Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Commission on direct bookingsZero — bookings land straight in ERPNextZero, if built correctlyUsually zero, but generic flowNo web booking front end at all
Live PMS availability on the websiteReal-time via whitelisted methods + hooksDepends on your build effortOften a nightly sync, can oversellNot exposed to the public site
Online payment before confirmationDeposit or full, webhook-verifiedYou wire the gateway yourselfGateway support varies by appManual invoicing only
Fit to your rates and policiesBuilt to your exact rate plans and rulesFully bespoke but you own the designFixed feature set, limited configBack-office DocTypes only
Time to liveone working week from confirmed scopeMonths, plus your hiring riskFast install, slow to fit realityNot applicable — no front end
Source code and ownershipFull git repo handover, installable sourceYou own it, you also maintain itOften closed or license-lockedERPNext core, no booking app
Support and upgradesPost-go-live window + optional ongoingOnly if your developer staysVendor SLA, may lag v15/v16Community / your own team
Multilingual mobile checkoutBuilt-in, Frappe translation layerExtra scope you must specifySometimes, quality variesNone

Frequently Asked Questions about Direct Booking Engine for Hotels

Is this an app I can download and install myself right now?

No. This is a build-to-order engagement, not a marketplace download. ECOSIRE builds the Frappe app around your actual property, rate plans, and payment gateway, then installs and supports it. You receive installable source and a git repository, but the work starts after a scoping call and confirmed scope.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After a short scoping call we write down the exact requirements — room types, rate plans, deposit and cancellation policy, languages, and gateway — and build against that. Complex multi-property or unusual payment setups may extend the timeline, which we confirm before we start.

How does support and updates work after go-live?

Every build includes a post-go-live support window covering the first weeks of live bookings. Because you get the full git repository and source, you or your team can maintain it, and ECOSIRE offers ongoing support and upgrade work (including v15-to-v16 moves) as a separate arrangement. We are not a locked SaaS you can be cut off from.

Does it work with our existing website, or do we need a new one?

It works with your existing website. The booking engine ships as an embeddable JS widget you drop into any page — WordPress, a static marketing site, or a landing page — which calls guest-safe whitelisted methods on your ERPNext instance over the REST API. No website rebuild is required.

Will the website and our reception desk ever show different availability?

No. Availability and rates are read directly from your ERPNext room inventory and pricing rules through whitelisted methods, and `hooks.py` doc events recalculate the moment a reservation is booked, cancelled, or a room is blocked. The widget and the front desk read the same source of truth, and a room-hold mechanism prevents double-booking during checkout.

Which payment gateways and ERPNext versions are supported?

We build for Frappe/ERPNext v15 and v16. Payment is captured through the gateway you choose — Stripe, Razorpay, or a regional PSP — with reservations created only after a verified server-side webhook confirms the charge, so you never confirm a room you could not charge for.

Do you support deposits, promo codes, and package deals?

Yes. You can capture a deposit or full payment, and promo codes plus package and rate-plan rules (seasonal, minimum-stay, length-of-stay) are evaluated server-side against dedicated DocTypes. Prices submitted by the browser are never trusted — every quote is recomputed on the server before payment.

Request a quote

Direct Booking Engine for Hotels

A commission-free website booking widget that reads live rates and availability from your ERPNext hotel PMS, captures deposits or full payment online, and creates the reservation directly in ERPNext — no OTA commission, no double entry. Built to order, installed, and supported by ECOSIRE.

  • Embeddable JS booking widget (single script tag) that mounts on any site — WordPress, static, or your existing marketing page — and talks to ERPNext over the REST API
  • Guest-safe `@frappe.whitelist(allow_guest=True)` methods for availability, quote, and booking, with server-side price calculation so client-submitted prices are never trusted
  • Real-time availability and rate reads directly from your ERPNext room inventory and Hotel Room Pricing rules — one source of truth for web and reception
  • Room-hold mechanism that reserves inventory during checkout, with a scheduler event that auto-releases expired holds so rooms are never silently locked

Request a Quotation

Tell us about your Direct Booking Engine for Hotels requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.