Skip to main content

Reservation Service

Overview

The Reservation Service serves as the primary mechanism for the Push Integration of successful booking transactions. This integration represents the proactive synchronization flow where the PMS sends reservation data, including guest profiles, room assignments, and financial ledgers directly to external systems.

Request Specification

API Specification

  • HTTP Method: POST
  • Secure URL Path: {{external_base_url}}/api/reservation

Request Headers

  • x-api-key : {{api_key}} Authorization token assigned to the connecting system. The API key is provided by GuestPro.
  • Content-Type : application/json Explicitly defines the payload structure.

Payload Construction and Schema Definition

Primary Request Body

The root object contains the administrative and source metadata for the booking.

FieldTypeRequiredDescriptionExample
companyobjectYesCompany information object (see below).{...}
reservation_idstringYesUnique reference ID for idempotency check.8f708bc0-ebef-11f0-4d69ad00abaf
reservation_nostringYesHuman-readable reservation reference number.jiwa-013738
reservation_datestring (date)YesReservation creation/business date in YYYY-MM-DD.2026-01-07
reservation_group_idstring | nullNoReservation group ID (if any).null
agent_idstringYesBooking agent/channel identifier.2e5e-11ed-add0-350a581b5547
agent_namestringYesBooking agent/channel display name.Booking.com Pay at Agent 2
segment_codestring | nullNoSegment code (if any).null
sourcestringYesBooking source.Online Travel Agent
payment_typestringYesPayment methodology.Channel Collect
total_of_roomnumberYesTotal rooms in this reservation.1
booking_statusstringYesCurrent lifecycle state: NEW, MODIFY, or CANCELLED.NEW
currencycodestringYes3-letter ISO currency code.IDR
created_atstring (datetime)YesCreation timestamp (ISO-8601).2026-01-08T01:37:38+08:00
updated_atstring (datetime)YesLast update timestamp (ISO-8601).2026-02-19T15:50:26+08:00
reservation_detailarray of objectYesList of room details and nightly rate breakdowns.[{...}]
guest_profileobjectYesGuest contact information object.{...}
paymentarrayYesList of payments (may be empty).[]

Company Object (company)

The company object identifies the property and its associated Revenue Management System (RMS) configuration. It is positioned at the top of the request body.

FieldTypeRequiredDescriptionExample
idstringYesCompany ID from the PMS.e6d64880-65a4-11ea-bf47
codestringYesCompany code from the PMS.xxx_code_company
rmsobjectYesObject for the 3rd party Revenue Management System.{...}

RMS Object (company.rms)

FieldTypeRequiredDescriptionExample
rms_keystringYesSecret key for each 3rd party RMS.key_rms
rms_codestringYesCompany code from the 3rd party RMS.rms_company
use_rmsnumberYesRMS usage flag (1 = enabled, 0 = disabled).1

Reservation Detail Objects (reservation_detail)

FieldTypeRequiredDescriptionExample
idstringYesReservation detail ID.8fa96730-ebef-11f0-a33e
folio_nonumberYesFolio number.33867
room_type_idstringYesRoom type ID (mapped identifier).11ec-b26a-03aaaae40eb2
room_type_namestringYesRoom type name.Premier Room Rice Field View
room_namestringYesRoom label/number.101
booking_statusstringYesBooking status at room level.NEW
reservation_statusstringYesReservation status.WAITING_LIST, TENTATIVE, DEFINITE, NO_SHOW, CHECK_IN, CHECK_OUT, CANCELLED
adultnumberYesAdult count.2
childnumberYesChild count.0
infranumberNoInfant count.0
rate_idstringYesRate ID.0af63f80-4f1c6ca09b1e
arrival_datestring (date)YesCheck-in date in YYYY-MM-DD.2026-03-17
departure_datestring (date)YesCheck-out date in YYYY-MM-DD.2026-03-21
arrival_timestringNoArrival time (PMS-defined format).00:00
departure_timestringNoDeparture time (PMS-defined format).00:00
remarkstringNoDetail remark/notes (can be long).smoking preference :: Non-Smoking
special_requeststringNoSpecial request (may contain HTML).<p><strong>DOUBLE BED</strong></p>
total_room_ratesnumberYesTotal room charge amount.4240743
total_include_productnumberNoTotal included products/add-ons.1000000
total_extra_chargenumberNoTotal extra charge amount.0
total_taxes_ratesnumberNoTotal taxes for room rates.357323.36
total_service_ratesnumberNoTotal service for room rates.324839.42
total_taxes_extra_chargenumberNoTotal taxes for extra charges.0
total_service_extra_chargenumberNoTotal service for extra charges.0
total_commissionnumberNoTotal commission amount.1310186
nightsnumberYesNumber of nights.4
open_availabilitynumberNoOpen availability flag.0
open_availability_start_datestring | nullNoOpen availability start date.null
open_availability_end_datestring | nullNoOpen availability end date.null
main_foliostringYesMain folio ID.8fa97320-1f90196e41ae
real_departure_datestring (date)YesActual departure date.2026-03-21
reservation_folioobjectYesFolio summary (total payment/POS).{...}
ratesarray of objectYesNightly breakdown.[{...}]

Reservation Folio Object (reservation_folio)

FieldTypeRequiredDescriptionExample
idstringYesFolio ID.8fa97320-1f90196e41ae
folio_nonumberYesFolio number.33867
total_paymentnumberYesTotal payments.0
total_posnumberYesTotal POS.0

Rates Object (rates)

FieldTypeRequiredDescriptionExample
idstringYesRate line ID (per night).8fadad50-ebef-11f0-86c5
amountnumberYesAmount (gross per PMS definition).1020483
datesstring (date)YesRate date in YYYY-MM-DD.2026-03-17
namestringNoRate plan name.RBF - A'LA CARTE
room_type_idstringNoRoom type ID for this rate line.11ec-b26a-03aaaae40eb2
rates_idstringNoRate plan/rate mapping ID.0af63f80-4f1c6ca09b1e
room_idstringNoRoom ID.9f4fe000-0000-0000-0000
net_ratesnumberNoNet rate.1020483
taxes_amountnumberNoTaxes per night.63896.56
service_amountnumberNoService per night.58087.78
commission_amountnumberNoCommission per night.317620.81
total_posnumberNoPOS total for this night.0
total_pos_taxesnumberNoPOS taxes.0
reservation_rates_typestringNoRate type (e.g., ROOM_CHARGE).ROOM_CHARGE
remarkstringNoRate line remark (e.g., Room Charge).Room Charge
adultnumberNoAdult count for this rate line.2
childnumberNoChild count for this rate line.0
is_virtual_roomnumberNoVirtual room flag (0/1).0

Guest Profile Object (guest_profile)

FieldTypeRequiredDescriptionExample
idstringYesGuest profile ID.8f70e7e0-ebef-11f0-bfdc
addressstring | nullNoAddress.null
phonestringYesPhone number.+48 724
emailstringYesEmail address.jtolwi@guest.com
countrycodestringYesCountry code.and
first_namestringYesFirst name.Ja
last_namestringYesLast name.Tski
citystringNoCity.null
zipcodestringNoZip/postal code.null

Expected System Responses

Successful Execution

The external system must respond with an HTTP 200 OK or 201 Created.

{
"status": "success",
"message": "Reservation b3b24f0b-179b-4e9a-afa4-e3a1ef882a48 has been successfully ingested."
}

Failure Execution

When the external system provides a response other than success codes (200, 201), the external system delivers the following error response structure.

{
"status": "error",
"message": "<<error_detail>>"
}

Full Request Body

{
"company": {
"id": "e6d64880-65a4-11ea-bf47",
"code": "xxx_code_company",
"rms": {
"rms_key": "key_rms",
"rms_code": "rms_company",
"use_rms": 1
}
},
"reservation_id": "8f708bc0-ebef-11f0-4d69ad00abaf",
"reservation_no": "jiwa-013738",
"reservation_date": "2026-01-07",
"agent_id": "2e5e-11ed-add0-350a581b5547",
"reservation_group_id": null,
"segment_code": null,
"agent_name": "Booking.com Pay at Agent 2",
"source": "Online Travel Agent",
"payment_type": "Channel Collect",
"total_of_room": 1,
"booking_status": "NEW",
"created_at": "2026-01-08T01:37:38+08:00",
"updated_at": "2026-02-19T15:50:26+08:00",
"currencycode": "IDR",
"reservation_detail": [
{
"id": "8fa96730-ebef-11f0-a33e",
"folio_no": 33867,
"room_type_id": "11ec-b26a-03aaaae40eb2",
"room_type_name": "Premier Room Rice Field View",
"room_name": "101",
"booking_status": "NEW",
"reservation_status": "DEFINITE",
"adult": 2,
"child": 0,
"infra": 0,
"rate_id": "0af63f80-4f1c6ca09b1e",
"arrival_date": "2026-03-17",
"departure_date": "2026-03-21",
"arrival_time": "00:00",
"departure_time": "00:00",
"remark": "smoking preference :: Non-Smoking | genius_rate : yes",
"special_request": "<p><strong>DOUBLE BED</strong></p>",
"total_room_rates": 4240743,
"total_include_product": 1000000,
"total_extra_charge": 0,
"total_taxes_rates": 357323.36,
"total_service_rates": 324839.42,
"total_commission": 1310186,
"nights": 4,
"open_availability": 0,
"main_folio": "8fa97320-1f90196e41ae",
"real_departure_date": "2026-03-21",
"reservation_folio": {
"id": "8fa97320-1f90196e41ae",
"folio_no": 33867,
"total_payment": 0,
"total_pos": 0
},
"rates": [
{
"id": "8fadad50-ebef-11f0-86c5",
"amount": 1020483,
"dates": "2026-03-17",
"name": "RBF - A'LA CARTE",
"net_rates": 1020483,
"taxes_amount": 63896.56,
"service_amount": 58087.78,
"commission_amount": 317620.81,
"reservation_rates_type": "ROOM_CHARGE",
"adult": 2,
"child": 0
},
{
"id": "8fd1c570-ebef-11f0-b717",
"amount": 1073420,
"dates": "2026-03-18",
"taxes_amount": 67505.9,
"service_amount": 61369.0
}
]
}
],
"guest_profile": {
"id": "8f70e7e0-ebef-11f0-bfdc",
"phone": "+48 724",
"email": "jtolwi@guest.com",
"countrycode": "and",
"first_name": "Ja",
"last_name": "Tski"
},
"payment": []
}