Guide

Direct booking widget setup

The Room Profit direct booking widget reads live inventory from Profitroom and writes reservations back through the official Reservations API. In practice, most hoteliers spend more time on payment methods and CSS theming than on the widget itself. Here is the whole flow.

Where the widget lives

The widget is a single JavaScript snippet you drop into the head or before the closing body tag on your hotel website. It renders a search form (dates, guests, promo code) on any page where you place a container div. Clicking search opens a full-screen booking flow that stays on your domain — the guest never bounces to a third-party checkout URL that breaks their trust.

Step 1 — Get your widget key

In the Room Profit dashboard, open Modules, then Direct Booking, then "Get embed code". You will see a script tag with a widget key that scopes the widget to your Profitroom property. Copy it as a whole. The key is safe to expose in the HTML — real API access happens server-side on our infrastructure.

Step 2 — Place the script and the container

Paste the script tag once, before the closing body element, and add a container div where the search form should appear:

  • Homepage hero — full-width version, best for leisure properties.
  • Rooms landing page — compact horizontal version, best for city hotels.
  • Sticky sidebar on room detail pages — small vertical version with pre-filled room type.

You can drop the container in three places on the same site; the widget deduplicates and shares state across them.

Step 3 — CSS theming with your brand palette

The widget reads a CSS variables block. You override colour and radius tokens in your own stylesheet without editing our code. Typical set:

  • Primary button colour — your brand orange or navy.
  • Secondary text and border colour.
  • Border radius — sharp for editorial brands, 12 pixels for softer ones.
  • Font — either inherit from the site or override to a specific display face.

Step 4 — Connecting Polish payment methods

Polish guests expect familiar payment options at checkout. We support three PSPs natively:

  • Przelewy24 — the market default. Instant BLIK, Pay-by-link from every major Polish bank, card. Onboarding requires your NIP and a company bank account statement.
  • PayU — strong card acceptance and BLIK, good for higher AOV bookings, hospitality merchant category available.
  • Blue Media — often already integrated with hotels that use mBank as their acquiring bank; supports BLIK, Google Pay, Apple Pay.

You can enable more than one PSP and the widget offers all supported methods at the payment step. We recommend Przelewy24 first, PayU as fallback.

Step 5 — Promo codes

Promo codes are created in the Room Profit dashboard, not in Profitroom Suite. Each code has a discount type (percentage, fixed amount, upgrade), a validity window, a booking window (for example, book by 30 September, stay before 15 December), a rate plan filter and an optional maximum uses. Codes propagate to the widget in about 15 seconds.

Step 6 — Upsell rooms and services

The widget shows two upsell steps by default. On the room step, the guest sees a "Would you rather?" card offering a room upgrade for a per-night delta pulled from your Profitroom room type rates. On the confirmation step, the guest sees ancillaries: early check-in, late check-out, breakfast, parking, spa access. Ancillaries are configured in the Ancillaries module and priced in EUR or PLN. Attach rate is around 22% on our onboarding cohort.

Step 7 — Split payments

For MICE guests, the widget supports split payments: a 20% or 30% deposit today, balance 14 days before arrival. The deposit is captured through your PSP; the balance is charged automatically on schedule against a tokenised card. If the balance charge fails, the guest gets an automated email and WhatsApp with a payment link.

Step 8 — Testing on the sandbox

Before going live, switch the widget key to sandbox mode and run three test bookings: a same-day arrival, a two-week-out family booking with an upgrade, and a MICE-style split payment. Sandbox writes to a shadow property in Profitroom that is invisible to your PMS. Once all three pass, flip to production.

Common issues

  • Widget renders but does not show rooms — usually the Profitroom connection was set up on a different property. Re-check the Establishment ID.
  • Cyrillic or diacritic room names look broken — set a UTF-8 charset on your page head.
  • Przelewy24 declines all payments in sandbox — Przelewy24 sandbox is a separate credential; ask your account manager for it.

Next steps

Open modules catalog Back to guides