Skip to main content

Reservation

Overview​

The reservation module synchronizes reservation data, including guest information, room details, folio data, and reservation rates. Reservation records reference company and other previously synchronized master data.

Request​

  • Method: POST
  • Path: {{base_url}}/api/sync-reservation

Request Envelope​

The Reservation module uses reservation as the module name and sends reservation records as an array in data.

{
"module": "reservation",
"data": [
{}
],
"chunk_metadata": {}
}

For details on when to use sync modules versus initialization_* modules, see Module Behavior.

Request Body Fields​

FieldTypeRequiredDescriptionExample
reservation_idstringYesReservation identifier.RES-1001
companyobjectYesCompany information (See below).{...}
reservation_datestringyesReservation date.2026-08-20
agent_idstring / nullYesAgent identifier.AGT-01
total_of_roomnumberOptionalTotal reserved rooms.1
guest_profileobjectOptionalGuest information (see below).{...}
reservation_detailarray of objectyesReservation detail records (See below).[...]
ratesarray of objectyesReservation rate records (see below).[...]

Company Fields​

FieldTypeRequiredDescriptionExample
idstringYesCompany identifier.HTL-001
codestringOptionalCompany code.HTL001

Guest Profile Fields​

FieldTypeRequiredDescriptionExample
idstringOptionalGuest identifier.GST-01
emailstringOptionalGuest email.[email protected]
addressstringOptionalGuest address.Jl. Melati No. 5, Jakarta
countrycodestringOptionalGuest country code.ID

Reservation Detail Fields​

FieldTypeRequiredDescriptionExample
idstringyesReservation detail identifier.DET-1001
room_type_idstringyesRoom type identifier.RT-01
arrival_datestringyesArrival date.2026-09-01
departure_datestringyesDeparture date.2026-09-03
reservation_statusstringyesReservation status.CHECK_IN
nightsnumberOptionalNumber of nights.2
main_foliostring / nullYesMain folio identifier.FOL-1001
reservation_folioobjectOptionalReservation folio information (see below).{...}

Rates Fields​

FieldTypeRequiredDescriptionExample
idstring / nullYesRate line identifier.RATE-LINE-1
rates_idstring / nullYesRate identifier.RATE-01
room_idstring / nullYesRoom identifier.RM-101
room_type_idstring / nullYesRoom type identifier.RT-01
net_ratesnumberyesNet rate amount.750000
taxes_amountnumberYesTax amount.0
service_amountnumberYesService amount.0
commission_amountnumberYesCommission amount.0
total_posnumberYesTotal POS amount.0
total_pos_taxesnumberYesTotal POS tax amount.0
adultnumberOptionalNumber of adults.2
childnumberOptionalNumber of children.0
is_virtual_roombooleanOptionalVirtual room indicator.false
datesstring / nullYesRate date.2026-09-01
reservation_rates_typestringYesReservation rate type.ROOM_CHARGE
remarkstringYesRate remark.Room Charge

Reservation Folio Fields​

FieldTypeRequiredDescriptionExample
idstringyesFolio identifier.FOL-1001
total_posnumberyesTotal POS amount.0
total_paymentnumberyesTotal payment amount.1500000

Request Example​

{
"module": "reservation",
"data": [
{
"reservation_id": "RES-1001",
"company": {
"id": "HTL-001",
"code": "HTL001"
},
"reservation_date": "2026-08-20",
"agent_id": "AGT-01",
"total_of_room": 1,
"guest_profile": {
"id": "GST-01",
"email": "[email protected]",
"address": "Jl. Melati No. 5, Jakarta",
"countrycode": "ID"
},
"reservation_detail": [
{
"id": "DET-1001",
"room_type_id": "RT-01",
"arrival_date": "2026-09-01",
"departure_date": "2026-09-03",
"reservation_status": "CHECK_IN",
"nights": 2,
"main_folio": "FOL-1001",
"reservation_folio": {
"id": "FOL-1001",
"total_pos": 0,
"total_payment": 1500000
},
"rates": [
{
"id": "RATE-LINE-1",
"rates_id": "RATE-01",
"room_id": "RM-101",
"room_type_id": "RT-01",
"dates": "2026-09-01",
"net_rates": 750000,
"taxes_amount": 0,
"service_amount": 0,
"commission_amount": 0,
"total_pos": 0,
"total_pos_taxes": 0,
"adult": 2,
"child": 0,
"is_virtual_room": false,
"reservation_rates_type": "ROOM_CHARGE",
"remark": "Room Charge"
},
{
"id": "RATE-LINE-2",
"rates_id": "RATE-01",
"room_id": "RM-101",
"room_type_id": "RT-01",
"dates": "2026-09-02",
"net_rates": 750000,
"taxes_amount": 0,
"service_amount": 0,
"commission_amount": 0,
"total_pos": 0,
"total_pos_taxes": 0,
"adult": 2,
"child": 0,
"is_virtual_room": false,
"reservation_rates_type": "ROOM_CHARGE",
"remark": "Room Charge"
},
{
"id": "RATE-LINE-3",
"rates_id": "RATE-01",
"room_id": "RM-101",
"room_type_id": "RT-01",
"dates": "2026-09-03",
"net_rates": 750000,
"taxes_amount": 0,
"service_amount": 0,
"commission_amount": 0,
"total_pos": 0,
"total_pos_taxes": 0,
"adult": 2,
"child": 0,
"is_virtual_room": false,
"reservation_rates_type": "ROOM_CHARGE",
"remark": "Room Charge"
},
{
"id": "RATE-LINE-4",
"rates_id": "RATE-01",
"room_id": "RM-101",
"room_type_id": "RT-01",
"dates": "2026-09-03",
"net_rates": 750000,
"taxes_amount": 0,
"service_amount": 0,
"commission_amount": 0,
"total_pos": 0,
"total_pos_taxes": 0,
"adult": 2,
"child": 0,
"is_virtual_room": false,
"reservation_rates_type": "EXTRA_ADULT",
"remark": "Extra Adult"
}
]
}
]
}
],
"chunk_metadata": {
"process_id": "postman-reservation-001",
"chunk_sequence": 1,
"is_last_chunk": true,
"total_records_in_chunk": 1
}
}