Skip to content

How VibeBooking works with your system

For site controllers and PMSs. What VibeBooking needs from your system, what it promises in return, and how each system is connected today.

View as Markdown
On this page

VibeBooking reads a hotel's rooms, rates and availability from your system, and writes the bookings AI assistants make back into it. We build the adapter for your API ourselves.

What we need from your system

FunctionWhat we need
Read rooms, rates and availabilityRate plans, rates and availability by date, minimum stay, closed to arrival or departure
Create a bookingOne booking per stay, answered with your id. Store our reference on it
Tell a refusal from no answerA clear error when you cannot take the booking
Find by our referenceLook up a booking by our reference
Read by your idWhether it exists, whether it is cancelled, and our reference
CancelCancel by your id. Cancelling a cancelled booking succeeds
Room back on cancel or changeTell us whether the room goes back. If not, we take no bookings there
Record how it is paidPaid now or pay at the property, and the amount paid

A timeout or a server error means the booking may have landed, and we treat it that way.

How a booking goes through

sequenceDiagram
    autonumber
    participant G as Guest or AI assistant
    participant V as VibeBooking
    participant S as Stripe (the hotel's account)
    participant P as Your system
    G->>V: Asks to book
    V->>P: Re-checks rate and availability
    V->>S: Authorises the card
    V->>P: Creates the booking, with our reference
    P-->>V: Your id
    V->>S: Captures the payment
    V-->>G: Confirmation email

Payment

The hotel is the merchant of record and is paid through its own Stripe account. VibeBooking never holds the money and takes no fee. A booking that cannot be written is never charged.

What we promise

  • Every call is idempotent: a retry gives the same result.
  • A booking is never created twice.
  • If the payment fails, we cancel the booking in your system too.
  • We reconcile regularly and flag any difference.
  • Guest details live only in the booking service's database, and we send only what is needed.

When your system does not answer:

sequenceDiagram
    participant V as VibeBooking
    participant P as Your system
    participant S as Stripe
    V-xP: Creates the booking
    Note over V,P: Timeout. Not sent again
    V->>P: Looks it up by our reference
    alt Found
        V->>S: Captures the payment
    else Not found
        V->>S: Releases the authorisation
    end

What we send with each booking

FieldWhat it holds
Our booking referenceFor example VB-ABC123. Also how we search for, read and cancel the booking
Room type, rate planYour system's ids
Check-in, check-out
GuestsAdults and children
Price per night, currencyThe total divided by the nights, including any accommodation tax paid at the property
PaymentPaid now: the amount paid online and the Stripe payment id; the rest of the total is collected at the property. Pay at the property: all of it is collected there
Lead guest's name, email, phone
FuriganaA name written in kanji
Lives abroadA guest living outside Japan, and whether they are a Japanese national
Nationality, passport numberA foreign national with no address in Japan: fields of Japan's guest register
Source idOur id for which AI assistant the booking came through

Where your system has no field for one of these, we write it in the booking's notes, one per line. The passport is checked at check-in, face to face. Card details never reach your system.

API styles

Whatever style your API uses, we build an adapter for it if we need to. Our booking side stays the same; each system gets its own adapter.

StyleSupport
REST (JSON)In use (Channex, Beds24)
SOAP or XML over HTTPSBuilt to your specification
TravelXMLBuilt to your specification
AuthenticationAPI keys, refresh tokens
TransportHTTPS only

OpenTravel mapping

We do not speak OpenTravel (OTA) messages as standard. If your API takes OTA XML (http://www.opentravel.org/OTA/2003/05), we send each booking as an OTA_HotelResNotifRQ, as below. Element names and codes follow OpenTravel 2017B.

What we sendOpenTravel element
Our booking referenceUniqueID (Type="14")
Room type, rate planRoomType@RoomTypeCode, RatePlan@RatePlanCode
Check-in and check-out datesTimeSpan@Start, TimeSpan@End
GuestsGuestCount@AgeQualifyingCode (adults 10, children 8)
Price per night, currencyRate/Base@AmountAfterTax, @CurrencyCode
PaymentGuarantee@GuaranteeType (PrePay when paid online, None when paid at the property); the amount paid in DepositPayments
Lead guest's name, email, phonePersonName, Email and Telephone under Customer
Nationality, passport numberCitizenCountryName, Document (DocType="2")
Furigana, lives overseasNo element for these, so they go in ResGlobalInfo/Comments
Source IDPOS/Source/BookingChannel
CancellationResStatus="Cancel"

We never send card details (PaymentCard).

Systems we work with

Channex

FunctionIn Channex
ReadRoom types, rate plans, availability, restrictions
Create a bookingBooking CRS POST /bookings (status new, ota_name Offline)
Our referenceota_reservation_code and meta
Find by our referenceThe bookings list, matched on our reference
Read by your idGET /bookings/:id
CancelPUT /bookings/:id (status cancelled)
Room backallow_availability_autoupdate_on_cancellation and allow_availability_autoupdate_on_modification both on
Paid nowpayment_collect ota, amount as a deposit
Pay at the propertypayment_collect property

Furigana and the guest register items go in the booking notes, one line each, in Japanese for the front desk.

Guest dataIn Channex
Namecustomer surname and name, and the room's guest
Email, phonecustomer mail, phone
FuriganaNotes ふりがな: …
Lives abroadNotes 居住: 海外, or 居住: 海外(日本国籍) for a Japanese national
NationalityNotes 国籍: …
Passport numberNotes 旅券番号: …
A test bookingNotes start with [TEST]
  • The Booking CRS application must be installed.
  • The room-back settings are off by default; the hotel switches them on in Channex.
  • The API is asynchronous: a read right after a create can answer 404. We never take that as no booking.

How a hotel connects

The hotel pastes a Channex API key into the VibeBooking console. Once connected, Channex appears under Properties › Integrations.

The Connect Channex screen, with a field to paste the API key and a Connect button.
Pasting the API key to connect.
The Connections tab, showing Channex connected.
Integrations, once connected.

Adding your system

Email hello@vibebooking.ai.