A direct booking website for a Malaysian homestay replaces a platform commission of about 15% or more with roughly 3% to 6% in payment fees, plus the cost of the site and of finding guests. It pays only if guests actually come, and only if your settings do not quietly price direct above Airbnb.
We run 100+ units in Johor Bahru and Desaru on our own system, AntlerHub, and direct booking is part of it. This is what we have learned from building and operating that flow, including the parts where our product is not the right answer.
What are your three options for a direct booking website?
Most search results sell you one route. There are really three, and they fail in different ways.
| Route | What you own | What you still need | Fits when |
|---|---|---|---|
| Your own site plus a booking engine (Softinn, for example, lists iPay88, eGHL and Billplz for Malaysia) | Domain, brand, Google traffic | A calendar that stays in step with your OTAs, marketing, upkeep | You have a brand guests search for, or repeat groups |
| A direct site that comes with your PMS | Guest relationship, not necessarily the domain | Check whether it is really your own storefront or a shared one | You already want everything in one system |
| Airbnb and Agoda only, no direct | Nothing | Nothing | You have a few units and no repeat guests |
Be clear about where AntlerHub sits. Its direct booking lives on one public site, /booking, showing listings from every operator on the platform. You can send a guest a link to one unit with the dates filled in, but today it is not a storefront on your own domain. If your own brand and domain are the whole point, a standalone site fits that goal better.
How much does a direct booking really cost compared with Airbnb?
Airbnb's host-only fee is 15.5% of the booking subtotal, cleaning fee included (Hostfully, September 2026). Vendor articles often say direct costs "about 3%". In Malaysia that number moves depending on how the guest pays. Stripe's published Malaysian rates, read today, are 3% + RM1 for domestic cards and FPX, 3% for GrabPay, plus 1% for international cards and another 2% when currency conversion is needed.
This is a worked example on a RM500 stay, not one of our bookings, and before any PMS commission (see the last section):
| How the RM500 is paid | Fee | You receive | Better than Airbnb by |
|---|---|---|---|
| Airbnb, host-only fee 15.5% | RM77.50 | RM422.50 | n/a |
| Direct, Stripe, Malaysian card or FPX | RM16.00 | RM484.00 | RM61.50 |
| Direct, Stripe, GrabPay | RM15.00 | RM485.00 | RM62.50 |
| Direct, Stripe, foreign card with conversion | RM31.00 | RM469.00 | RM46.50 |
Our Johor Bahru guests include many Singaporeans, and most of them cannot use FPX, so the bottom line is the one to plan around, not the top. We wrote the guest side of that sum separately.
Xendit is the other gateway we support. We do not quote its percentage rates here, so check them in your own account. One Xendit charge is on our pricing page: from October 2026 it charges RM 0.90 + 8% tax, about RM 0.97, on every payment attempt, which means a failed try costs you too.
When does your own direct booking website pay for itself?
A popular vendor formula divides annual direct costs by 0.155 (FutureStay). That leaves out payment fees, so it comes out too kind. Use what you really save, about 10% of each ringgit once a foreign card is in the mix.
As an example, say your site and marketing cost RM6,000 a year. RM6,000 ÷ 0.10 means RM60,000 of direct revenue before the site pays back. At RM500 a stay, that is 120 direct bookings a year. If a person spends hours answering direct enquiries, add those hours too.
For a few units that rarely see the same guest twice, this is a lot of bookings. Staying on Airbnb and Agoda can be the honest answer.
Where do direct guests actually come from?
Not from launching a website. This is the part most articles skip, and there is one firm rule in it.
Do not pull guests off Airbnb before they book. Airbnb's off-platform policy says users "may not ask or encourage another user to send or receive payments outside of Airbnb", and it also bars asking to communicate off-platform before a booking. Putting your link in an Airbnb message is the wrong way to start.
What does work without touching that rule:
- Groups and repeat stays you already serve through your own channels: WhatsApp, Facebook, friends of owners, companies.
- Referrers: on our system someone earns 5% for a stay they send, and a first-time friend can get RM20 off. How those links work matters, because a click is not a booking.
- Google: slow, and it is why this blog exists.
We do not publish what share of our bookings comes direct, and we would be wary of any vendor promising a share for you.
Which settings trap operators on direct booking?
These all come from the AntlerHub code and our own running of it. The questions are worth asking of any system.
1. A default markup you may not know about. A direct-site markup is applied to the nightly rate only on the direct site. OTA pushes, your calendar and owner reports keep your own price. In AntlerHub, an operator who has never touched this setting gets a 30% gross-up: a RM100 rate shows as RM142.86. For comparison, netting RM100 after Airbnb's 15.5% needs about RM118.34. Left alone, your direct price can be higher than your Airbnb price. Set it deliberately. "Markup" adds on top (10% makes RM110.00). "Gross-up" protects your net (10% makes RM111.11).
2. Whether the guest or you pay the payment fee. You can add a per-method surcharge and one order-level admin fee. If you add nothing, you absorb the gateway fee.
3. Which methods really show up. You pick one gateway, Stripe or Xendit, connected to your own account. FPX, cards, GrabPay and Alipay run on both. Touch 'n Go, ShopeePay and WeChat Pay are Xendit only. Apple Pay and Google Pay are wired through Xendit only and need Cards active on your account: on two live accounts we tested, the one with Cards still "In Progress" offered neither, even though Apple Pay itself showed as activated. There is no cash or bank transfer option, and no card authorise-hold.
4. Changing your gateway keys. Booking payments pause until you re-save the settings. That protects you from charging through a stale account, and it also means a routine key change can quietly close direct bookings.
5. Your credit balance. When billing is on and your balance reaches zero or below, your listings come off the public booking site and cannot take new online bookings until you top up. OTA bookings are not affected.
6. Your cancellation rules. Direct refund tiers (for example 100% at 7 days, 50% at 3 days) are yours to define, and they are separate from the security deposit policy. On Airbnb, the platform's rules do this work. On direct, your settings are the rules.
7. Late-night same-day bookings. The default cut-off for a same-day check-in is 23:59, so a 3am booking for tonight can be accepted until you move it.
What can still go wrong after the guest pays?
- The night sells elsewhere in the gap. Our calendar check counts our own bookings and parent and child rooms, and for channel-connected units there is a live check just before payment, because an OTA booking may not have been pulled yet. If that live check does not answer, we let it through rather than close the shop, and check again after payment. The payment page can stay open for 60 minutes. So paid-but-taken is rare, not impossible, and it needs a person. This is why sync failures matter more than any website design.
- The gateway and the browser both report the same payment. Both run on purpose, and the booking is made once. An incident on 2026-10-04 left no trace of a failed return, so every completion now gets logged.
- The money and the books disagree. For a long time, taking a direct room charge wrote no accounting document, so the gateway clearing account drifted negative with nothing to show it. Now each paid booking raises a cash invoice, and a Direct tab lists the ones missing. The booking always comes first, so an accounting failure can leave one to raise later.
- You cannot tell which payout paid which booking. A gateway payout is one lump, so we do not show a per-booking "reached the bank" answer. OTA money has its own reconciliation flow.
What does AntlerHub cost for this, and what is it not?
From our pricing page: RM 15 per active unit per month up to 100 units, RM 10 from 100 units, RM 8 from 500, before SST. New accounts get 50 credits, enough for 5 units for a month. Direct booking is included in the full system. You also connect your own gateway, so guest money goes to your account, and gateway fees are charged by the gateway.
Two things sit on top, so do not model on the unit price alone:
- A per-booking platform commission on direct stays, taken in credits on check-in day, only for real stays. A booking cancelled before then is not charged. Ask us for the current rate in writing before you compare it with anything.
- The referral commission, when a referrer brought the booking. We pay the referrer and recover it from your credits.
New companies can use the back office at once, but their listings only go live on the public site after we verify the company.
Honest summary. If your goal is your own domain and brand, AntlerHub's direct booking does not do that today. If your goal is one calendar, one set of books and a payment flow that writes its own accounting, without running a website, it fits, and you can see it on your own units.
Rates were read on 2026-11-02. Stripe, Airbnb and Xendit change them, so check the source before you rely on them.