GMC Booking for Joomla · Direct-booking engine, 0% commission
Direct accommodation booking
GMC Booking
Turn an accommodation site into a direct-booking channel: fewer portal fees, clear ownership, and a CMS workflow your team can actually run.
What is included
- Accommodation enquiry and booking flow
- 0% commission from the plugin
- Stripe-friendly payment path
Booking Engine
€399/year
Choose GMC Tours or GMC Booking. Annual licence, updates and support included.
Buy Booking EngineDirect Booking Pack
€699/year
GMC Tours + GMC Booking together for one annual direct-booking stack.
Direct Booking PackFAQ
Everything included
94 real, shipping features — grouped by area, so you can see exactly how deep the booking engine goes.
Operating modes & setup
- Two products in one — a single-property PMS and a multi-host marketplace share one codebase, switched by a single "operating mode" setting.
- Single mode — rent out your own apartments/rooms directly at 0% commission, keeping the whole flow on your site.
- Portal / marketplace mode — run an Airbnb-style site where external hosts list their properties and you earn a commission on every booking (default 10%).
- Runs on your own brand and domain — no channel fees, no third-party booking platform in the loop.
- Your currency — configurable default currency (EUR out of the box) with multi-currency amounts.
- Adjustable hold window — set how long a guest keeps a hold while paying (default 15 minutes, 1–240).
- One-package install — the package installs the component, scheduler, web-services and privacy plugins and the slider module together, and auto-creates the scheduled tasks.
Booking engine & anti-double-booking
- Overbooking-proof availability lock — nights are reserved inside a database transaction with
SELECT … FOR UPDATE, so two guests can never both book the last unit for the same dates. - Time-limited holds — a guest gets a short-lived hold while checking out; unpaid holds are released automatically and returned to the calendar.
- Token-gated confirmation — a booking only confirms with its matching secret token and an unexpired hold, so nobody can confirm or view another guest's booking (no IDOR).
- Quantity-based inventory — each unit (room type) carries a stock count, so you can sell several identical units.
- Minimum-stay enforcement — bookings shorter than a date's minimum stay are refused with a clear message.
- Party-size / occupancy enforcement — the form captures adults + children and refuses a booking that exceeds the unit's maximum occupancy.
- Half-open date model —
[check-in, check-out), so the checkout night is correctly not counted as occupied. - Payment-after-expiry safety net — a charge that lands after a hold expired is flagged "needs reconciliation" for operator follow-up instead of being silently dropped.
Availability & calendar
- Per-night availability calendar — open/close individual dates and set per-date price overrides and min-stay.
- Bulk availability management — open date ranges and push prices/min-stay across many nights from the admin grid.
- Guest-facing monthly calendar — the property page shows a free/occupied/past month grid per unit (no personal data), rendered server-side with AJAX month navigation and localized month/weekday names.
- Always-fresh cross-channel availability — external channel feeds are re-downloaded on demand whenever availability is read (throttled, fail-open, single-flight), shrinking the cross-channel overbooking window from ~1 hour to seconds.
Pricing, rate plans & coupons
- Seasonal rate plans — price by date range and weekday (per-day bitmask), with priority ordering when plans overlap.
- Per-night price precedence — a specific date override beats a rate plan, which beats the unit base price.
- Length-of-stay / flat-rate packages — a rate plan can price an exact number of nights as one flat total instead of per-night.
- Discount coupons — percent or fixed amount, with validity window, minimum nights and usage cap; a coupon use is only consumed when a booking is actually confirmed.
- Live quote — price and availability recompute live on the booking form as the guest picks dates.
Fees, taxes & extras
- Per-property cleaning fee — a flat fee added once per booking.
- Tourist tax / VAT — charged per guest per night, shown in the quote and at checkout.
- Checkout extras & add-ons — sell add-ons scoped globally, per-host or per-property, priced per-stay, per-night or per-person, with quantity caps and admin CRUD.
- Transparent breakdown — extras, fees and taxes are itemised as persisted booking line items; discounts apply to the room only.
Payments
- Stripe card checkout — Stripe Payment Element with a signature-verified webhook as the source of truth (raw REST, no SDK).
- PayPal checkout — PayPal Smart Buttons (Orders v2) for full-payment bookings.
- Guest picks the provider — offer Stripe, PayPal, or both side by side at checkout.
- Demo mode — a plain confirm button lets you test the whole flow before adding any payment keys.
- Deposit / balance collection — charge a percentage deposit now and collect the balance later via a tokenized pay-link + reminder, automatic off-session charge, or offline.
- Per-property deposit override — each property can override the global deposit percentage (or require full payment).
- Refundable security / damage deposit — hold an amount on the guest's card near check-in, release it on a clean stay, or capture full/partial damages from the booking screen; long stays that outlast a card authorization are charged upfront and refunded.
- Full and partial refunds — refund all or any part of a captured payment from the booking screen without cancelling; distributed across legs, capped at what's refundable, idempotent on retry.
- Cancellation penalty — optionally withhold a non-refundable share on cancellation and allow a past-window guest cancel with the penalty kept.
- Duplicate-charge protection — PaymentIntents are reused on reload and Stripe events are de-duplicated by id, so a page refresh or replayed webhook never double-charges or double-confirms.
Guest experience (front-end)
- Property catalogue — a browsable list with thumbnails, amenity filter and search.
- Property detail page — photo gallery, amenities, units, guest reviews and average rating.
- Full self-service checkout — dates, guests, extras, consent and payment in one flow.
- Pretty SEF URLs — human-readable
id:aliasproperty links. - Guest reviews — post-stay reviews (only from real completed bookings, one per booking), moderated by the admin, displayed with an average on the property page.
- Opt-in guest self-cancellation — guests cancel their own confirmed booking inside a free-cancellation window, with an automatic refund.
- Online pre-check-in — an opt-in tokenized form lets guests complete traveller details for every guest before arrival; the link rides the confirmation email.
- Property slider — a responsive property carousel (Joomla module / WP
[gmcbooking_slider]shortcode) with manual IDs, filters, ordering and a CTA.
Guest & admin communications
- Booking confirmation emails — to both guest and admin on every confirmed booking.
- Balance reminders — scheduled tokenized pay-link emails before the balance due date.
- Post-stay review requests — a daily job invites recently-departed guests to review.
- One-click resends — resend a confirmation or send a balance reminder from the booking screen.
- WhatsApp payment link — deliver the hosted checkout link over the WhatsApp Business Cloud API (fail-closed until configured, with a per-booking cooldown).
Admin & operations
- Dashboard KPIs — hosts, properties, units, bookings, confirmed and active holds, plus operational tiles (arrivals/departures today, month revenue, needs-reconciliation, unread messages, new leads).
- Bookings-by-channel reporting — count and confirmed/completed revenue grouped by acquisition channel (web, referral, admin walk-in).
- Properties management — CRUD with photo gallery, amenities and per-listing contact details (phone, email, website, WhatsApp).
- Units management — CRUD for base price, quantity, max occupancy and iCal import URL.
- Bookings management — detail view, cancel + refund (including multi-select), and reschedule to new dates/unit in one anti-overbooking transaction with the price difference auto-settled.
- Phone / walk-in booking — create a booking on a guest's behalf from the admin.
- Bookings CSV export — export the filtered bookings list.
- Coupons, rate plans & reviews screens — full CRUD plus review moderation.
Marketplace (hosts, messaging, payouts)
- Hosts management — admin CRUD over host profiles (alias, contact, address, logo, description).
- Host self-service — host self-registration and a multi-tenant, host-scoped dashboard with KPIs and recent bookings (IDOR-guarded).
- Guest ↔ host messaging — per-booking message threads with unread tracking and optional email notification (live on both Joomla and WordPress since 1.21.0).
- Stripe Connect payouts — Express onboarding/KYC and a destination-charge split (host share + your application fee) recorded in a payout ledger.
- KYC status visibility — pending / restricted / rejected / verified states surfaced to admins and hosts instead of hidden.
- Refund clawback reconciliation — refunds reverse the host transfer and application fee and reconcile the payout ledger so a refunded booking is never paid out.
- Configurable commission — fixed amount or percentage, set globally or per host.
- Host authorization contracts — trilingual host/intermediation agreements with disclaimer acceptance, document fingerprinting, signer/IP/timestamp audit and a publication gate that blocks selling until signed.
- Qualified e-signature — AutoFirma/CAdES document binding with configurable trusted-CA validation and optional RFC-3161 timestamping and OCSP revocation checks.
Compliance, privacy & GDPR
- Consent capture — terms + privacy checkboxes and an optional marketing opt-in at checkout, stored per booking with timestamp and IP.
- Guest compliance registry — a traveller registry with search and CSV export (UTF-8 BOM for correct accents).
- Spanish SES.Hospedajes data model — the full RD 933/2021 traveller field set (sex, document support number, address + country, phone, email, kinship for minors, postal code, municipality).
- SES.Hospedajes export — generate the official "parte de viajeros" file (MIR-HOSPE v3.1.2 solicitud XML + ZIP + Base64) for a date range, with pre-flight validation and per-property establishment codes; a backend download only — it never contacts the government web service.
- Privacy export & erasure — data-subject export and anonymization that removes identity while retaining the accounting records you must legally keep (Joomla privacy plugin / WP personal-data tools).
Channel sync (iCal)
- iCal export — each unit publishes its busy dates (confirmed bookings + active holds) as an
.icsfeed for Airbnb/Booking. - iCal import — external channel feeds are imported hourly and on demand to block externally-booked dates.
- Two-way date-level sync — keeps calendars aligned across channels (dates, not rates).
Integrations, connector & analytics
- Vokira WhatsApp concierge routing — when configured, public booking forms are replaced by a WhatsApp concierge call-to-action and direct holds are blocked server-side.
- Inbound connector API — external tourism sites can push leads and catalog (properties, units, rate plans) into the system; catalog always lands as drafts.
- Native import + audit trail — full-fidelity catalog import (upsert by alias, soft-disable removed units) with every import run recorded as a batch of per-item refs and outcomes.
- Affiliate referral reporting — paid bookings that arrived via a
?ref=link are reported to a central registry over an HMAC-signed API, fail-safe so it never blocks or delays a sale. - Analytics — GA4, Google Tag Manager and Meta Pixel with
view_item/begin_checkout/purchasee-commerce events and no personal data in the payloads.
Developer / API & automation
- Web-services API — a fail-closed inbound API (Joomla web-services plugin / WP REST) for the connector's ping, leads and catalog endpoints.
- Scoped API keys — issue and rotate hashed, scope-limited connector keys; the plaintext is shown only once.
- Scheduled automation — background routines for releasing expired holds, iCal sync, Stripe Connect sync and balance reminders, auto-created on install (Joomla scheduler / WP-Cron).
Internationalization
- Multilingual out of the box — ships in English, Italian and Spanish and respects your site's multilingual setup (the WordPress build also carries Hindi and Simplified Chinese packs).
Trust & licensing
- GPLv2 licensed — open-source license on both platforms.
- Self-hosted — runs entirely on your own site with your own Stripe/PayPal credentials; your data stays on your server.
- No mandatory external service — every advanced integration (Stripe, PayPal, Connect, Vokira, iCal, affiliate, analytics) is opt-in; the engine works without any of them.
- Licensed one-click updates — a Download Key from your licence email unlocks automatic updates from the GMC / FuerteventuraTV update server (checked about every 24 hours).
- Single-package integrity — install the one package zip and every component/plugin/module stays version-aligned.
- Native on both CMSs — a native Joomla 5/6 component and a standalone WordPress plugin sharing the same engine — buy the one that matches your site.
- Requirements — Joomla 5.0+/6 with PHP 8.1+ and MySQL 8 / MariaDB (InnoDB, required for the transactional hold); WordPress 6.0+ with PHP 8.1+.
Joomla & WordPress
- Joomla — the full marketplace: Stripe Connect payouts, host self-registration and the multi-tenant host dashboard are all available.
- WordPress — same core engine and feature parity for bookings, payments (direct-charge Stripe + PayPal, no Stripe Connect payouts), pricing, extras, deposits, reviews, iCal, compliance/SES, messaging, native import and analytics; hosts are operator-managed via admin CRUD (no host self-service frontend), and the plugin adds a branded admin theme.
FAQ
- Is there any per-booking commission?
- No. The plugin does not add a per-booking fee. Stripe fees remain Stripe fees.
- Joomla or WordPress?
- The licence can be delivered for the CMS version agreed after checkout.
- Can I buy both systems?
- Yes. Use Direct Booking Pack when you want tours and accommodation booking together.


