The hoteliga API

Reservation

Reservation object represents the booking of a room type for a customer and a specific time period.

Resources
Resource Description
GET /v1/Reservation/{id} Get the stored data for a reservation
GET /v1/Reservations/Future Get all future reservations
POST /v1/Reservation Create a new reservation
POST /v1/Reservations Get the stored data for a set of reservations
POST /v2/Reservations Get the stored data for a set of reservations, the customer data in the reservations are returned as one object
POST /v1/Reservations/Filter Search for reservations
POST /v1/Reservation/{reservationId}/Guest Add existing guest to reservation
POST /v2/Reservations/CheckedIn Get checked in reservations between specified dates
POST /v2/Reservations/Status Get chunk of 2000 reservations with reservation ids and status
PUT /v1/Reservation Update the data of an existing reservation
PUT /v1/Reservation/{id} Update selected data of an existing reservation
GET /v1/Reservation/{id}/ExtraCharges Get extra charges for a reservation
POST /v1/Reservation/{id}/ExtraCharge Add an extra charge to a reservation
DELETE /v1/Reservation/{id}/ExtraCharge/{id2} Delete an extra charge of a reservation
POST /v1/Reservations/Group Groups two or more reservations
POST /v1/Reservations/Ungroup Ungroup specified number of reservations. Ungrouping all reservations deletes the group.
GET /v1/Reservation/{id}/Payments Get payments of a reservation and its grouped ones.
Object properties
Name Type Description
actualReservationDate date (YYYY-MM-DD) Actual date that reservation was created
bookingAgencyId int Unique identifier of bookingAgency of reservation
bookingAgencyReferenceCode string (50) Unique identifier of reservation for the bookingAgency
contractId int Unique identifier of holding contract for reservation
customer object Information about customer
currencyCode string (5) Determines the currency in which the reservation will be paid
dateFrom date (YYYY-MM-DD) Starting date of reservation
dateTo date (YYYY-MM-DD) Ending date of reservation
id int Unique identifier of reservation
notes string (1000) Notes about the reservation
priceListId int Unique identifier of holding price list for the reservation
reservationStatusId int Identifier of reservation's status
roomId int Unique identifier of the room to be reserved
roomTypeId int Unique identifier for the roomType to be reserved
totalAgreedPrice decimal (##.##) The amount that the customer will pay for this reservation. It overrides the normal price
board string There are 5 board codes: RO (Room only), BB (Bed&breakfast), HB (Half board), FB (Full board) and AI (All inclusive)
cancellationFeeBookingAgency decimal The amount that is withheld from the agency in case of cancellation
cancellationReasonId int The unique identifier for the cancellation reason (applies only to TripAdvisor)
groupId string If the reservation is part of a multireservation (multiple rooms in one go), then the group ID is non-null and contains a unique GUID. Otherwise its empty
invoiceId int The unique system identifier of the last invoice issued for the reservation
invoiceNumber string The unique number of the invoice as shown on paper
externalSystemId string The unique number of the external systems
promoCode string The promo code, if any, that was used when the reservation was made. Applies to hoteliga booking engine reservations only
totalExtraTaxes decimal The sum of all taxes per reservation that are on top to the agreed price of the reservation

Reservation status

Value Description
1 Tentative
2 Channel new
3 Confirmed
4 Checked-in
5 Checked-out
6 Early departure
7 Confirmed cancelled
8 Tentative cancelled
9 Customer no-show
10 Modified from channel
11 Cancelled from channel
12 Checked-out late

GET /v1/Reservation/{id}

Get the stored data for a reservation.

Request parameters

Name Value
id The id of the requested reservation

Response

The result is a reservation object.

Example Response

<?xml version="1.0" ?>
<Reservation>
    <ActualReservationDate>2016-07-17T00:00:00</ActualReservationDate>
    <BookingAgencyId>12</BookingAgencyId>
    <BookingAgencyReferenceCode>166383</BookingAgencyReferenceCode>
    <ContractId>1</ContractId>
    <CustomerId>1</CustomerId>
    <CurrencyCode>EUR</CurrencyCode>
    <DateFrom>2016-07-18T00:00:00</DateFrom>
    <DateTo>2016-07-24T00:00:00</DateTo>
    <Id>1</Id>
    <Notes />
    <PriceListId>1</PriceListId>
    <ReservationStatusId>5</ReservationStatusId>
    <RoomId>15</RoomId>
    <RoomTypeId>2</RoomTypeId>
    <TotalAgreedPrice>480.00</TotalAgreedPrice>
</Reservation>
{
    "actualReservationDate":"2016-07-17T00:00:00",
    "bookingAgencyId":12,
    "bookingAgencyReferenceCode":"166383",
    "contractId":1,
    "customerId":1,
    "currencyCode":"EUR",
    "dateFrom":"2016-07-18T00:00:00",
    "dateTo":"2016-07-24T00:00:00",
    "id":1,
    "notes":"",
    "priceListId":1,
    "reservationStatusId":5,
    "roomId":15,
    "roomTypeId":2,
    "totalAgreedPrice":280.00
}
        

GET /v1/Reservations/Future

Get all future reservations.

Request parameters

This request does not take any parameters.

Response

The result is a list of reservation objects.

Example Response

<?xml version="1.0"?>
<Reservations>
  <Reservation>
    <ActualReservationDate>2018-02-08T00:00:00</ActualReservationDate>
    <AgreedPrice>0.00</AgreedPrice>
    <Balance>0.00</Balance>
    <Board>RO</Board>
    <BookingAgencyId>0</BookingAgencyId>
    <BookingAgencyReferenceCode />
    <CancellationFeeBookingAgency>0</CancellationFeeBookingAgency>
    <CancellationReasonId>0</CancellationReasonId>
    <ChannelNotes />
    <Commission>0</Commission>
    <CommissionBookingAgency>0</CommissionBookingAgency>
    <ContractId>9999</ContractId>
    <CreateDate>2018-02-08T13:47:44</CreateDate>
    <CreateUser>admin</CreateUser>
    <CreditCardViews>0</CreditCardViews>
    <CustomerId>4</CustomerId>
    <CurrencyCode>CAD</CurrencyCode>
    <DateFrom>2018-03-10T00:00:00</DateFrom>
    <DateTo>2018-03-17T00:00:00</DateTo>
    <Discount>0</Discount>
    <ExchangeRate>1.00</ExchangeRate>
    <GroupId>4ddfce2c-dbbd-410c-81bf-4cf2313b72d5</GroupId>
    <OtherReservationsInGroup> 
      <Reservation id="2">
        <RoomTypeId>2</RoomTypeId>
      </Reservation>
      <Reservation id="3">
        <RoomTypeId>4</RoomTypeId>
      </Reservation>
    </OtherReservationsInGroup>
    <Id>1</Id>
    <InvoiceId>0</InvoiceId>
    <InvoiceNumber />
    <ExternalSystemId />
    <IsChannelReservation>0</IsChannelReservation>
    <IsLocked>0</IsLocked>
    <IsNonRefundable>0</IsNonRefundable>
    <IsOverriden>0</IsOverriden>
    <LastUpdate>2018-02-08T13:47:44</LastUpdate>
    <MoveCustomerTold>0</MoveCustomerTold>
    <NormalPrice>0.00</NormalPrice>
    <Notes />
    <NumAdults>1</NumAdults>
    <NumChildren>0</NumChildren>
    <NumNights>7</NumNights>
    <PreCancellationTotalAgreedPrice>0.00</PreCancellationTotalAgreedPrice>
    <PriceListId>2</PriceListId>
    <PromoCode />
    <ReservationSourceId>12</ReservationSourceId>
    <ReservationStatusId>3</ReservationStatusId>
    <RoomId>7</RoomId>
    <RoomTypeId>4</RoomTypeId>
    <Status>FullyPaid</Status>
    <TotalAgreedPrice>0.00</TotalAgreedPrice>
    <TotalAgreedPriceCurrency>0.00</TotalAgreedPriceCurrency>
    <TotalExtraCharges>0.00</TotalExtraCharges>
    <TotalExtraTaxes>0.00</TotalExtraTaxes>
    <TotalNormalPrice>0.00</TotalNormalPrice>
    <TotalNormalPriceCurrency>0.00</TotalNormalPriceCurrency>
    <TotalPayments>0.00</TotalPayments>
    <UpdateUser>admin</UpdateUser>
    <BoardTitle>Room only</BoardTitle>
    <BookingAgencyCustomerId>0</BookingAgencyCustomerId>
    <BookingAgencyTitle />
    <CustomerCountry>Australia</CustomerCountry>
    <CustomerCountryCode>AU</CustomerCountryCode>
    <CustomerFirstName>Nicole</CustomerFirstName>
    <CustomerLastName>Kidman</CustomerLastName>
    <CustomerNotes />
    <CustomerMobile />
    <CustomerEmail />
    <Guests>
      <Guest id="0">
        <FirstName />
        <IdDocIssueDate />
        <IdDocType>0</IdDocType>
        <LastName />
        <LastName2 />
        <ProvinceId>0</ProvinceId>
        <SalutationId>0</SalutationId>
      </Guest>
    </Guests>
    <ReservationStatusTitle>Confirmed</ReservationStatusTitle>
    <RoomTitle>07</RoomTitle>
    <RoomTypeTitle>Female-only</RoomTypeTitle>
  </Reservation>
  ...
</Reservations>
   
[
   {
      "actualReservationDate":"2018-02-08T00:00:00",
      "agreedPrice":0.00,
      "balance":0.00,
      "board":"RO",
      "bookingAgencyId":0,
      "bookingAgencyReferenceCode":"",
      "cancellationFeeBookingAgency":0.0,
      "cancellationReasonId":0,
      "channelNotes":"",
      "commission":0.0,
      "commissionBookingAgency":0.0,
      "contractId":9999,
      "createDate":"2018-02-08T13:47:44",
      "createUser":"admin",
      "creditCardRestToken":null,
      "creditCardToken":null,
      "creditCardViews":0,
      "currencyCode":"CAD",
      "dateFrom":"2018-03-10T00:00:00",
      "dateTo":"2018-03-17T00:00:00",
      "discount":0.0,
      "exchangeRate":1.00,
      "groupId":"4ddfce2c-dbbd-410c-81bf-4cf2313b72d5",
      "otherReservationsInGroup": {
          "2": {
              "roomTypeId": 2
          },
          "3": {
              "roomTypeId": 4
          }
      },
      "id":1,
      "invoiceId":0,
      "invoiceNumber":"",
      "externalSystemId":"",
      "isChannelReservation":0,
      "isLocked":0,
      "isNonRefundable":0,
      "isOverriden":0,
      "lastUpdate":"2018-02-08T13:47:44",
      "moveCustomerTold":0,
      "normalPrice":0.00,
      "notes":"",
      "numAdults":1,
      "numChildren":0,
      "numNights":7,
      "preCancellationTotalAgreedPrice":0.00,
      "priceListId":2,
      "promoCode":"",
      "reservationSourceId":12,
      "reservationStatusId":3,
      "roomId":7,
      "roomTypeId":4,
      "status":3,
      "totalAgreedPrice":0.00,
      "totalAgreedPriceCurrency":0.00,
      "totalExtraCharges":0.00,
      "totalExtraTaxes":0.00,
      "totalNormalPrice":0.00,
      "totalNormalPriceCurrency":0.00,
      "totalPayments":0.00,
      "updateUser":"admin",
      "boardTitle":"Room only",
      "bookingAgencyCustomerFirstName":null,
      "bookingAgencyCustomerId":0,
      "bookingAgencyCustomerLastName":null,
      "bookingAgencyTitle":"",
      "customerCountry":"Australia",
      "customerCountryCode":"AU",
      "customerFirstName":"Nicole",
      "customerLastName":"Kidman",
      "customerNotes":"",
      "customerMobile":"",
      "customerEmail":"",
      "guests":[
         {
            "dateOfBirth":"",
            "firstName":"",
            "id":0,
            "idDocIssueDate":"",
            "idDocNumber":null,
            "idDocType":0,
            "lastName":"",
            "lastName2":"",
            "nationalityCountryId":null,
            "provinceId":0,
            "salutationId":0
         }
      ],
      "reservationStatusTitle":"Confirmed",
      "roomTitle":"07",
      "roomTypeTitle":"Female-only"
   }, ...
]
        

POST /v1/Reservation

Create a new reservation.

Request parameters

Name Value
bookingAgencyId Unique identifier of agency making the booking
bookingAgencyReferenceCode Unique identifier of agency reference code
customer Customer object. For a new customer apply the restrictions for a new customer. For an existing customer is required only the customer's id.
currencyCode Currency code of payment
PriceListId Mandatory if Rack Rate is not created
dateFrom Starting date of reservation
dateTo Ending date of reservation
numAdults Number of adults in the room
reservationStatus Reservation status id
roomId Id of the room to be reserved
roomTypeId Id of the room type to be reserved
totalAgreedPrice Total cost of reservation
board Board code

* Field id must not be issued in the request.

Response

The result is the ID of the newly created reservation.

Example Request

<Reservation>
    <Customer>
        <LastName>Smith</LastName>
    </Customer>
    <RoomTypeId>5</RoomTypeId>
    <TotalAgreedPrice>100</TotalAgreedPrice>
    <CurrencyCode>EUR</CurrencyCode>
    <ReservationStatus>3</ReservationStatus>
    <DateFrom>2018-05-15</DateFrom>
    <DateTo>2018-05-16</DateTo>
</Reservation>
{
    roomTypeId: 2,
    customer: {
        lastName: 'Smith'
    },
    totalAgreedPrice: 80.00,
    dateFrom: "2016-11-20",
    dateTo: "2016-11-25",
    bookingAgencyId: 1,
    contractId: 1,
    reservationStatus: 3,
    currencyCode: "EUR"
}
        

Example Response

<?xml version="1.0" ?>
<Id>429</Id>
{
    "id": 429
}

POST /v1/Reservations

Get stored data for a set of existing reservations.

Request parameters

Name Type Value
id int Unique identifier of requested reservation

Response

The result is a list of Reservation objects.

Example Request

<Reservations>
    <id>1</id>
    <id>15</id>
</Reservations>
        
{ 
    ReservationIds: [1,15] 
}
        

Example Response

<?xml version="1.0"?>
<Reservations>
  <Reservation>
    <ActualReservationDate>2018-02-08T00:00:00</ActualReservationDate>
    <AgreedPrice>0.00</AgreedPrice>
    <Balance>0.00</Balance>
    <Board>RO</Board>
    <BookingAgencyId>0</BookingAgencyId>
    <BookingAgencyReferenceCode />
    <CancellationFeeBookingAgency>0</CancellationFeeBookingAgency>
    <CancellationReasonId>0</CancellationReasonId>
    <ChannelNotes />
    <Commission>0</Commission>
    <CommissionBookingAgency>0</CommissionBookingAgency>
    <ContractId>9999</ContractId>
    <CreateDate>2018-02-08T13:47:44</CreateDate>
    <CreateUser>admin</CreateUser>
    <CreditCardViews>0</CreditCardViews>
    <CustomerId>4</CustomerId>
    <CurrencyCode>CAD</CurrencyCode>
    <DateFrom>2018-03-10T00:00:00</DateFrom>
    <DateTo>2018-03-17T00:00:00</DateTo>
    <Discount>0</Discount>
    <ExchangeRate>1.00</ExchangeRate>
    <GroupId>4ddfce2c-dbbd-410c-81bf-4cf2313b72d5</GroupId>
    <OtherReservationsInGroup> 
      <Reservation id="2">
        <RoomTypeId>2</RoomTypeId>
      </Reservation>
      <Reservation id="3">
        <RoomTypeId>4</RoomTypeId>
      </Reservation>
    </OtherReservationsInGroup>
    <Id>1</Id>
    <InvoiceId>0</InvoiceId>
    <InvoiceNumber />
    <ExternalSystemId />
    <IsChannelReservation>0</IsChannelReservation>
    <IsLocked>0</IsLocked>
    <IsNonRefundable>0</IsNonRefundable>
    <IsOverriden>0</IsOverriden>
    <LastUpdate>2018-02-08T13:47:44</LastUpdate>
    <MoveCustomerTold>0</MoveCustomerTold>
    <NormalPrice>0.00</NormalPrice>
    <Notes />
    <NumAdults>1</NumAdults>
    <NumChildren>0</NumChildren>
    <NumNights>7</NumNights>
    <PreCancellationTotalAgreedPrice>0.00</PreCancellationTotalAgreedPrice>
    <PriceListId>2</PriceListId>
    <PromoCode />
    <ReservationSourceId>12</ReservationSourceId>
    <ReservationStatusId>3</ReservationStatusId>
    <RoomId>7</RoomId>
    <RoomTypeId>4</RoomTypeId>
    <Status>FullyPaid</Status>
    <TotalAgreedPrice>0.00</TotalAgreedPrice>
    <TotalAgreedPriceCurrency>0.00</TotalAgreedPriceCurrency>
    <TotalExtraCharges>0.00</TotalExtraCharges>
    <TotalExtraTaxes>0.00</TotalExtraTaxes>
    <TotalNormalPrice>0.00</TotalNormalPrice>
    <TotalNormalPriceCurrency>0.00</TotalNormalPriceCurrency>
    <TotalPayments>0.00</TotalPayments>
    <UpdateUser>admin</UpdateUser>
    <BoardTitle>Room only</BoardTitle>
    <BookingAgencyCustomerId>0</BookingAgencyCustomerId>
    <BookingAgencyTitle />
    <CustomerCountry>Australia</CustomerCountry>
    <CustomerCountryCode>AU</CustomerCountryCode>
    <CustomerFirstName>Nicole</CustomerFirstName>
    <CustomerLastName>Kidman</CustomerLastName>
    <CustomerNotes />
    <CustomerMobile />
    <CustomerEmail />
    <Guests>
      <Guest id="0">
        <FirstName />
        <IdDocIssueDate />
        <IdDocType>0</IdDocType>
        <LastName />
        <LastName2 />
        <ProvinceId>0</ProvinceId>
        <SalutationId>0</SalutationId>
      </Guest>
    </Guests>
    <ReservationStatusTitle>Confirmed</ReservationStatusTitle>
    <RoomTitle>07</RoomTitle>
    <RoomTypeTitle>Female-only</RoomTypeTitle>
  </Reservation>
  ...
</Reservations>
   
[
   {
      "actualReservationDate":"2018-02-08T00:00:00",
      "agreedPrice":0.00,
      "balance":0.00,
      "board":"RO",
      "bookingAgencyId":0,
      "bookingAgencyReferenceCode":"",
      "cancellationFeeBookingAgency":0.0,
      "cancellationReasonId":0,
      "channelNotes":"",
      "commission":0.0,
      "commissionBookingAgency":0.0,
      "contractId":9999,
      "createDate":"2018-02-08T13:47:44",
      "createUser":"admin",
      "creditCardRestToken":null,
      "creditCardToken":null,
      "creditCardViews":0,
      "currencyCode":"CAD",
      "dateFrom":"2018-03-10T00:00:00",
      "dateTo":"2018-03-17T00:00:00",
      "discount":0.0,
      "exchangeRate":1.00,
      "groupId":"4ddfce2c-dbbd-410c-81bf-4cf2313b72d5",
      "otherReservationsInGroup": {
          "2": {
              "roomTypeId": 2
          },
          "3": {
              "roomTypeId": 4
          }
      },
      "id":1,
      "invoiceId":0,
      "invoiceNumber":"",
      "externalSystemId":"",
      "isChannelReservation":0,
      "isLocked":0,
      "isNonRefundable":0,
      "isOverriden":0,
      "lastUpdate":"2018-02-08T13:47:44",
      "moveCustomerTold":0,
      "normalPrice":0.00,
      "notes":"",
      "numAdults":1,
      "numChildren":0,
      "numNights":7,
      "preCancellationTotalAgreedPrice":0.00,
      "priceListId":2,
      "promoCode":"",
      "reservationSourceId":12,
      "reservationStatusId":3,
      "roomId":7,
      "roomTypeId":4,
      "status":3,
      "totalAgreedPrice":0.00,
      "totalAgreedPriceCurrency":0.00,
      "totalExtraCharges":0.00,
      "totalExtraTaxes":0.00,
      "totalNormalPrice":0.00,
      "totalNormalPriceCurrency":0.00,
      "totalPayments":0.00,
      "updateUser":"admin",
      "boardTitle":"Room only",
      "bookingAgencyCustomerFirstName":null,
      "bookingAgencyCustomerId":0,
      "bookingAgencyCustomerLastName":null,
      "bookingAgencyTitle":"",
      "customerCountry":"Australia",
      "customerCountryCode":"AU",
      "customerFirstName":"Nicole",
      "customerLastName":"Kidman",
      "customerNotes":"",
      "customerMobile":"",
      "customerEmail":"",
      "guests":[
         {
            "dateOfBirth":"",
            "firstName":"",
            "id":0,
            "idDocIssueDate":"",
            "idDocNumber":null,
            "idDocType":0,
            "lastName":"",
            "lastName2":"",
            "nationalityCountryId":null,
            "provinceId":0,
            "salutationId":0
         }
      ],
      "reservationStatusTitle":"Confirmed",
      "roomTitle":"07",
      "roomTypeTitle":"Female-only"
   }, ...
]
        

POST /v2/Reservations

Get the stored data for a set of reservations, the customer data in the reservations are returned as one object

Request parameters

Name Type Value
id int Unique identifier of requested reservation

Response

The result is a list of Reservation objects.

Example Request

<Reservations>
    <id>1</id>
    <id>15</id>
</Reservations>
        
{ 
    ReservationIds: [1,15] 
}
        

Example Response

<?xml version="1.0"?>
<Reservations>
  <Reservation>
    <ActualReservationDate>2018-02-08T00:00:00</ActualReservationDate>
    <AgreedPrice>0.00</AgreedPrice>
    <Balance>0.00</Balance>
    <Board>RO</Board>
    <BookingAgencyId>0</BookingAgencyId>
    <BookingAgencyReferenceCode />
    <CancellationFeeBookingAgency>0</CancellationFeeBookingAgency>
    <CancellationReasonId>0</CancellationReasonId>
    <ChannelNotes />
    <Commission>0</Commission>
    <CommissionBookingAgency>0</CommissionBookingAgency>
    <ContractId>9999</ContractId>
    <CreateDate>2018-02-08T13:47:44</CreateDate>
    <CreateUser>admin</CreateUser>
    <CreditCardViews>0</CreditCardViews>
    <CurrencyCode>CAD</CurrencyCode>
    <DateFrom>2018-03-10T00:00:00</DateFrom>
    <DateTo>2018-03-17T00:00:00</DateTo>
    <Discount>0</Discount>
    <ExchangeRate>1.00</ExchangeRate>
    <GroupId>4ddfce2c-dbbd-410c-81bf-4cf2313b72d5</GroupId>
    <OtherReservationsInGroup> 
      <Reservation id="2">
        <RoomTypeId>2</RoomTypeId>
      </Reservation>
      <Reservation id="3">
        <RoomTypeId>4</RoomTypeId>
      </Reservation>
    </OtherReservationsInGroup>
    <Id>1</Id>
    <InvoiceId>0</InvoiceId>
    <InvoiceNumber />
    <ExternalSystemId />
    <IsChannelReservation>0</IsChannelReservation>
    <IsLocked>0</IsLocked>
    <IsNonRefundable>0</IsNonRefundable>
    <IsOverriden>0</IsOverriden>
    <LastUpdate>2018-02-08T13:47:44</LastUpdate>
    <MoveCustomerTold>0</MoveCustomerTold>
    <NormalPrice>0.00</NormalPrice>
    <Notes />
    <NumAdults>1</NumAdults>
    <NumChildren>0</NumChildren>
    <NumNights>7</NumNights>
    <PreCancellationTotalAgreedPrice>0.00</PreCancellationTotalAgreedPrice>
    <PriceListId>2</PriceListId>
    <PromoCode />
    <ReservationSourceId>12</ReservationSourceId>
    <ReservationStatusId>3</ReservationStatusId>
    <RoomId>7</RoomId>
    <RoomTypeId>4</RoomTypeId>
    <Status>FullyPaid</Status>
    <TotalAgreedPrice>0.00</TotalAgreedPrice>
    <TotalAgreedPriceCurrency>0.00</TotalAgreedPriceCurrency>
    <TotalExtraCharges>0.00</TotalExtraCharges>
    <TotalExtraTaxes>0.00</TotalExtraTaxes>
    <TotalNormalPrice>0.00</TotalNormalPrice>
    <TotalNormalPriceCurrency>0.00</TotalNormalPriceCurrency>
    <TotalPayments>0.00</TotalPayments>
    <UpdateUser>admin</UpdateUser>
    <BoardTitle>Room only</BoardTitle>
    <BookingAgencyCustomerId>0</BookingAgencyCustomerId>
    <BookingAgencyTitle />
    <Customer id="10820">
        <BillingAddress1 >
        <BillingAddress2 >
        <BillingCity >
        <BillingZipCode >
        <Country>Australia</Country>
        <CountryCode>AU</CountryCode>
        <Email>nicole@hoteliga.com</Email>
        <FirstName>Nicole</FirstName>
        <LastName>Kidman</LastName>
        <IsSalesTaxExempt>0</IsSalesTaxExempt>
        <Mobile>+343001022455</Mobile />
        <Notes />
        <Occupation>actor</Occupation>
        <Phone>+389071111213</Phone>
        <ProvinceId>0</ProvinceId>
        <TaxId > 11111 </TaxId >
        <TaxAdditional />
        <Categories>
            <Category id="1">VIP<Category>
            ...
        </Categories>
    </Customer>    
    <Guests>
      <Guest id="0">
        <FirstName />
        <IdDocIssueDate />
        <IdDocType>0</IdDocType>
        <LastName />
        <LastName2 />
        <ProvinceId>0</ProvinceId>
        <SalutationId>0</SalutationId>
      </Guest>
    </Guests>
    <ReservationStatusTitle>Confirmed</ReservationStatusTitle>
    <RoomTitle>07</RoomTitle>
    <RoomTypeTitle>Female-only</RoomTypeTitle>
  </Reservation>
  ...
</Reservations>
   
[
   {
      "actualReservationDate":"2018-02-08T00:00:00",
      "agreedPrice":0.00,
      "balance":0.00,
      "board":"RO",
      "bookingAgencyId":0,
      "bookingAgencyReferenceCode":"",
      "cancellationFeeBookingAgency":0.0,
      "cancellationReasonId":0,
      "channelNotes":"",
      "commission":0.0,
      "commissionBookingAgency":0.0,
      "contractId":9999,
      "createDate":"2018-02-08T13:47:44",
      "createUser":"admin",
      "creditCardRestToken":null,
      "creditCardToken":null,
      "creditCardViews":0,
      "currencyCode":"CAD",
      "dateFrom":"2018-03-10T00:00:00",
      "dateTo":"2018-03-17T00:00:00",
      "discount":0.0,
      "exchangeRate":1.00,
      "groupId":"4ddfce2c-dbbd-410c-81bf-4cf2313b72d5",
      "otherReservationsInGroup": {
          "2": {
              "roomTypeId": 2
          },
          "3": {
              "roomTypeId": 4
          }
      },
      "id":1,
      "invoiceId":0,
      "invoiceNumber":"",
      "externalSystemId":"",
      "isChannelReservation":0,
      "isLocked":0,
      "isNonRefundable":0,
      "isOverriden":0,
      "lastUpdate":"2018-02-08T13:47:44",
      "moveCustomerTold":0,
      "normalPrice":0.00,
      "notes":"",
      "numAdults":1,
      "numChildren":0,
      "numNights":7,
      "preCancellationTotalAgreedPrice":0.00,
      "priceListId":2,
      "promoCode":"",
      "reservationSourceId":12,
      "reservationStatusId":3,
      "roomId":7,
      "roomTypeId":4,
      "status":3,
      "totalAgreedPrice":0.00,
      "totalAgreedPriceCurrency":0.00,
      "totalExtraCharges":0.00,
      "totalExtraTaxes":0.00,
      "totalNormalPrice":0.00,
      "totalNormalPriceCurrency":0.00,
      "totalPayments":0.00,
      "updateUser":"admin",
      "boardTitle":"Room only",
      "bookingAgencyCustomerFirstName":null,
      "bookingAgencyCustomerId":0,
      "bookingAgencyCustomerLastName":null,
      "bookingAgencyTitle":"",
      "customer": {
            "billingAddress1": "",
            "billingAddress2": "",
            "billingCity": "",
            "billingZipCode": "",
            "countryCode": "ES",
            "email": "irene@hoteliga.com",
            "firstName": "Irene",
            "id": 10820,
            "isSalesTaxExempt": 0,
            "lastName": "Giakoumi",
            "mobile": "",
            "notes": "",
            "occupation": "developer",
            "phone": "+34306942074590",
            "provinceId": 0,
            "taxId": "",
            "taxIdAdditional": "",
            "categories": [
                {
                    "id": 1,
                    "title": "VIP"
                },
                ...
            ]
        },     
      "guests":[
         {
            "dateOfBirth":"",
            "firstName":"",
            "id":0,
            "idDocIssueDate":"",
            "idDocNumber":null,
            "idDocType":0,
            "lastName":"",
            "lastName2":"",
            "nationalityCountryId":null,
            "provinceId":0,
            "salutationId":0
         }
      ],
      "reservationStatusTitle":"Confirmed",
      "roomTitle":"07",
      "roomTypeTitle":"Female-only"
   }, ...
]
        

POST /v1/Reservations/Filter

Search for reservations.

Request parameters

Name Value
customerNameContains Part of the first or last names that is being searched for.
emailContains Part of the email that is being searched for.
bookingAgencyId The booking agency ID which is being searched for.
bookingAgencyReferenceCodeContains Part of the booking agency reference code which is being searched for.
dateTypeId 1 - based on arrival date, 2 - based on departure date, 3 - based on actual reservation date, 4 - based on actual cancellation date, 5 - based on create date, 6 - based on last update date
dateFrom date format YYYY-MM-DD, default: today
dateTo date format YYYY-MM-DD, default: today + 30 days
reservationStatusId 1 - tentative, 2 - new from channel, 3 - confirmed, 4 - checked in, 5 - checked out, 6 - early departure, 7 - confirmed cancelled, 8 - tentative cancelled, 9 - no show, 10 - modified from channel, 11 - cancelled from channel, 12 - late checked out

Response

The reservations that fill all of the criteria/filters.

Example Request

<?xml version="1.0" ?>
<ReservationFilter>
    <CustomerNameContains>Kidman</CustomerNameContains>
</ReservationFilter>
{
    "customerNameContains": "Kidman"
}
        

Example Response

<?xml version="1.0"?>
<Reservations>
  <Reservation createDate="2018-02-08T13:48:12+01:00" 
lastUpdateDate="2018-02-08T13:49:57+01:00">3</Reservation>
  <Reservation createDate="2018-02-08T13:48:11+01:00" 
lastUpdateDate="2018-02-08T13:48:11+01:00">2</Reservation>
  <Reservation createDate="2018-02-08T13:47:44+01:00" 
lastUpdateDate="2018-02-08T13:47:44+01:00">1</Reservation>
</Reservations>
[
   {
      "reservationId":3,
      "createDate":"2018-02-08T13:48:12+01:00",
      "lastUpdateDate":"2018-02-08T13:49:57+01:00"
   },
   {
      "reservationId":2,
      "createDate":"2018-02-08T13:48:11+01:00",
      "lastUpdateDate":"2018-02-08T13:48:11+01:00"
   },
   {
      "reservationId":1,
      "createDate":"2018-02-08T13:47:44+01:00",
      "lastUpdateDate":"2018-02-08T13:47:44+01:00"
   }
]

Example Request

<?xml version="1.0"?>
<ReservationFilter>
<BookingAgencyId>11</BookingAgencyId>
<DateTypeId>1</DateTypeId>
<DateFrom>2019-04-10</DateFrom>
<DateTo>2019-04-10</DateTo>
<ReservationStatusId>4</ReservationStatusId>
</ReservationFilter>
		
{
	BookingAgencyId: 11,
	DateTypeId: 1,
	DateFrom : '2019-04-10',
	DateTo: '2019-04-10',
	ReservationStatusId: 4
}
		

Example Response

<?xml version="1.0"?>
<Reservations>
  <Reservation createDate="2019-04-03T08:04:49+02:00" 
lastUpdateDate="2019-04-11T06:50:06+02:00">8128</Reservation>
  <Reservation createDate="2019-03-06T22:58:11+01:00" 
lastUpdateDate="2019-04-11T01:00:16+02:00">7582</Reservation>
  <Reservation createDate="2019-03-06T22:58:07+01:00" 
lastUpdateDate="2019-04-11T00:56:30+02:00">7581</Reservation>
</Reservations>
		
[
   {
      "reservationId":8128,
      "createDate":"2019-04-03T08:04:49+02:00",
      "lastUpdateDate":"2019-04-11T06:50:06+02:00"
   },
   {
      "reservationId":7582,
      "createDate":"2019-03-06T22:58:11+01:00",
      "lastUpdateDate":"2019-04-11T01:00:16+02:00"
   },
   {
      "reservationId":7581,
      "createDate":"2019-03-06T22:58:07+01:00",
      "lastUpdateDate":"2019-04-11T00:56:30+02:00"
   }
]
		

POST /v2/Reservations/CheckedIn

Get checked in reservations between specified dates

Request Parameters

Name Value
dateFrom Date format YYYY-MM-DD
dateTo Date format YYYY-MM-DD
roomTitle Title of the room in the reservation

Response

The result is a list of Reservation objects.

Example Request

<?xml version="1.0" ?>
<Reservations>
    <DateFrom>2021-02-09</DateFrom>
    <DateTo>2021-02-15</DateTo>
    <RoomTitle>201 Delux</RoomTitle>
</Reservations>
{
    "dateFrom": "2021-02-09",
    "dateTo": "2021-02-15",
    "roomTitle": "201 Delux"
}

Example Response

<?xml version="1.0" ?>
<Reservations>
    <Reservation id="13137" roomTitle="201 Delux">
        <DateFrom>2021-02-12</DateFrom>
        <DateTo>2021-02-13</DateTo>
        <NumAdults>1</NumAdults>
        <NumChildren>0</NumChildren>
        <Board>Bed and Breakfast</Board>
        <Guests>
            <Guest id="11013">
                <IsCustomer>1</IsCustomer>
                <IsPrimaryGuest>1</IsPrimaryGuest>
                <FullName>Jane Doe</FullName>
            </Guest>
        </Guests>
    </Reservation>
</Reservations>
[
    {
        "reservationId": 13137,
        "roomTitle": "201 Delux",
        "dateFrom": "2021-02-12",
        "dateTo": "2021-02-13",
        "numAdults": 1,
        "numChildren": 0,
        "board": "Bed and Breakfast",
        "guests": [
            {
                "id": 11013,
                "isCustomer": 1,
                "isPrimaryGuest": 1,
                "fullName": "Jane Doe"
            }
        ]
    }
]

POST /v2/Reservations/Status

Get chunk of 2000 reservations with reservation ids and status

Request Parameters

Name Value
reservationOffset Unique identifier of reservation from which the search data should start

Response

The result is a list of Reservation objects with id and status and flag hasMore that returns true if there is more reservations to return and false otherwise.

Example Request

                <?xml version="1.0" ?>
                <Reservations>
                    <ReservationOffset>1<>
                </Reservations>
            
                {
                    "ReservationOffset" : 1
                }
            

Example Response

            <?xml version="1.0" ?>
            <Reservations>
                <Reservation>
                    <id>1</id>
                    <reservationStatusId>3</reservationStatusId>
                </Reservation>
                <Reservation>
                    <id>2</id>
                    <reservationStatusId>7</reservationStatusId>
                </Reservation>
                ...
                <Reservation>
                    <id>2000</id>
                    <reservationStatusId>3</reservationStatusId>
                </Reservation>
            </Reservations>
            <hasMore>true</hasMore>
                {
                    "reservations": [
                        {
                            "id": 1,
                            "reservationStatusId": 3
                        },
                        {
                            "id": 2,
                            "reservationStatusId": 7
                        },
                        ...
                        {
                            "id": 2000,
                            "reservationStatusId": 3
                        }
                    ],
                    "hasMore": true
                }    
            

POST /v1/Reservation/{reservationId}/Guest

Add existing guest to reservation

Request parameters

Name Value
reservationId Unique identifier of reservation.
id Unique identifier of guest.
isPrimaryGuest Indicates if this guest is primary. If reservation already has a primary guest, it will be overriden.

Response

Result is the status code of the request.

Example Request

<?xml version="1.0" ?>
<Guest>
    <Id> 12 </Id>
    <IsPrimaryGuest> 1 </IsPrimaryGuest>
</Guest>
{
    "Id":12,
    "IsPrimaryGuest":1
}
        

PUT /v1/Reservation

Update the data of an existing reservation.

Request parameters

Name Value
id The ID of the requested reservation
bookingAgencyId Unique identifier of agency making the booking
customer Customer object, that must contain the customer's id
currencyCode Currency code of payment
dateFrom Starting date of reservation
dateTo Ending date of reservation
reservationStatusId Reservation status id
roomId Id of room to be reserved
roomTypeId Id of roomType to be reserved
totalAgreedPrice Total cost of reservation

* The rest of reservation's object fields are optional.

** The fields that are not issued in the request will be set to the default value.

Response

The result is the status code of the request.

Example Request

{
    id: 13,
    roomTypeId: 2,
    customer: {id: 416},
    totalAgreedPrice: 80.00,
    dateFrom: "2016-11-20",
    dateTo: "2016-11-25",
    bookingAgencyId: 1,
    contractId: 1,
    reservationStatusId: 3,
    currencyCode: "EUR",
    notes: "Adding notes for the reservation"
}
        

PUT /v1/Reservation/{id}

Update only selected data of existing reservation.

Request parameters

Name Value
id The ID of the requested reservation
bookingAgencyId Unique identifier of agency making the booking
customerId The customer's id
currencyCode Currency code of payment
dateFrom Starting date of reservation
dateTo Ending date of reservation
reservationStatusId Reservation status id
roomId Id of room to be reserved
roomTypeId Id of roomType to be reserved
totalAgreedPrice Total cost of reservation

Response

The result is the status code of the request and whole object.

Example Request

{
    "totalAgreedPrice": 6000.15,
    "notes": "Example notes",
    "numAdults": 5
}
        

GET /v1/Reservation/{id}/ExtraCharges

Get extra charges for a reservation.

Request parameters

Name Value
id The id of the requested reservation

Response

The result is a list of extra charges

Example Response

<?xml version="1.0"?>
<ArrayOfExtraCharge>
  <ExtraCharge id="1">
    <ExtraChargeId>5</ExtraChargeId>
    <ChargeDate>2018-02-08</ChargeDate>
    <UnitPrice>0.00</UnitPrice>
    <Quantity>1.00</Quantity>
    <Subtotal>0.00</Subtotal>
    <Notes>3</Notes>
    <TotalExtraTaxes>0.00</TotalExtraTaxes>
    <ExtraChargeTitle>Parking</ExtraChargeTitle>
  </ExtraCharge>
  <ExtraCharge id="2">
    <ExtraChargeId>6</ExtraChargeId>
    <ChargeDate>2018-02-08</ChargeDate>
    <UnitPrice>0.00</UnitPrice>
    <Quantity>1.00</Quantity>
    <Subtotal>0.00</Subtotal>
    <Notes>44</Notes>
    <TotalExtraTaxes>0.00</TotalExtraTaxes>
    <ExtraChargeTitle>Bicycle</ExtraChargeTitle>
  </ExtraCharge>
  <ExtraCharge id="3">
    <ExtraChargeId>6</ExtraChargeId>
    <ChargeDate>2018-02-08</ChargeDate>
    <UnitPrice>0.00</UnitPrice>
    <Quantity>1.00</Quantity>
    <Subtotal>0.00</Subtotal>
    <Notes>77</Notes>
    <TotalExtraTaxes>0.00</TotalExtraTaxes>
    <ExtraChargeTitle>Bicycle</ExtraChargeTitle>
  </ExtraCharge>
  <ExtraCharge id="8">
    <ExtraChargeId>6</ExtraChargeId>
    <ChargeDate>2018-01-03</ChargeDate>
    <UnitPrice>13.00</UnitPrice>
    <Quantity>2.00</Quantity>
    <Subtotal>26.00</Subtotal>
    <Notes>Test extra charge</Notes>
    <TotalExtraTaxes>1.80</TotalExtraTaxes>
    <ExtraChargeTitle>Bicycle</ExtraChargeTitle>
  </ExtraCharge>
  <ExtraCharge id="12">
    <ExtraChargeId>6</ExtraChargeId>
    <ChargeDate>2018-03-05</ChargeDate>
    <UnitPrice>13.00</UnitPrice>
    <Quantity>2.00</Quantity>
    <Subtotal>26.00</Subtotal>
    <Notes>Test extra charge</Notes>
    <TotalExtraTaxes>0.00</TotalExtraTaxes>
    <ExtraChargeTitle>Bicycle</ExtraChargeTitle>
  </ExtraCharge>
  <ExtraCharge id="9">
    <ExtraChargeId>1</ExtraChargeId>
    <ChargeDate>2001-01-01</ChargeDate>
    <UnitPrice>5.00</UnitPrice>
    <Quantity>1.00</Quantity>
    <Subtotal>5.00</Subtotal>
    <Notes>Test</Notes>
    <TotalExtraTaxes>0.00</TotalExtraTaxes>
    <ExtraChargeTitle />
  </ExtraCharge>
  <ExtraCharge id="10">
    <ExtraChargeId>1</ExtraChargeId>
    <ChargeDate>2001-01-01</ChargeDate>
    <UnitPrice>5.00</UnitPrice>
    <Quantity>1.00</Quantity>
    <Subtotal>5.00</Subtotal>
    <Notes>Test</Notes>
    <TotalExtraTaxes>0.00</TotalExtraTaxes>
    <ExtraChargeTitle />
  </ExtraCharge>
  <ExtraCharge id="11">
    <ExtraChargeId>1</ExtraChargeId>
    <ChargeDate>2018-03-05</ChargeDate>
    <UnitPrice>5.00</UnitPrice>
    <Quantity>1.00</Quantity>
    <Subtotal>5.00</Subtotal>
    <Notes>Test</Notes>
    <TotalExtraTaxes>0.00</TotalExtraTaxes>
    <ExtraChargeTitle />
  </ExtraCharge>
</ArrayOfExtraCharge>
[
   {
      "id":1,
      "extraChargeId":5,
      "chargeDate":"2018-02-08",
      "unitPrice":0.00,
      "quantity":1.00,
      "subtotal":0.00,
      "notes":"3",
      "totalExtraTaxes":0.00,
      "extraChargeTitle":"Parking"
   },
   {
      "id":2,
      "extraChargeId":6,
      "chargeDate":"2018-02-08",
      "unitPrice":0.00,
      "quantity":1.00,
      "subtotal":0.00,
      "notes":"44",
      "totalExtraTaxes":0.00,
      "extraChargeTitle":"Bicycle"
   },
   {
      "id":3,
      "extraChargeId":6,
      "chargeDate":"2018-02-08",
      "unitPrice":0.00,
      "quantity":1.00,
      "subtotal":0.00,
      "notes":"77",
      "totalExtraTaxes":0.00,
      "extraChargeTitle":"Bicycle"
   },
   {
      "id":8,
      "extraChargeId":6,
      "chargeDate":"2018-01-03",
      "unitPrice":13.00,
      "quantity":2.00,
      "subtotal":26.00,
      "notes":"Test extra charge",
      "totalExtraTaxes":1.80,
      "extraChargeTitle":"Bicycle"
   },
   {
      "id":12,
      "extraChargeId":6,
      "chargeDate":"2018-03-05",
      "unitPrice":13.00,
      "quantity":2.00,
      "subtotal":26.00,
      "notes":"Test extra charge",
      "totalExtraTaxes":0.00,
      "extraChargeTitle":"Bicycle"
   },
   {
      "id":9,
      "extraChargeId":1,
      "chargeDate":"2001-01-01",
      "unitPrice":5.00,
      "quantity":1.00,
      "subtotal":5.00,
      "notes":"Test",
      "totalExtraTaxes":0.00,
      "extraChargeTitle":""
   },
   {
      "id":10,
      "extraChargeId":1,
      "chargeDate":"2001-01-01",
      "unitPrice":5.00,
      "quantity":1.00,
      "subtotal":5.00,
      "notes":"Test",
      "totalExtraTaxes":0.00,
      "extraChargeTitle":""
   },
   {
      "id":11,
      "extraChargeId":1,
      "chargeDate":"2018-03-05",
      "unitPrice":5.00,
      "quantity":1.00,
      "subtotal":5.00,
      "notes":"Test",
      "totalExtraTaxes":0.00,
      "extraChargeTitle":""
   }
]   

POST /v1/Reservation/{id}/ExtraCharge

Adds an extra charge to a reservation.

Request parameters

Name Value
id The ID of the requested reservation
extraChargeId The ID of the extra charge
chargeDate The date of charge (yyyy-mm-dd)
unitPrice The unit price
quantity The quantity
notes Additional information
totalExtraTaxes Set the additional taxes (optional)

Response

The result is the ID of the newly created extra charge record.

Example Request

<?xml version="1.0"?>
<ExtraCharge>
<ExtraChargeId>1</ExtraChargeId>
<ChargeDate>2018-03-06</ChargeDate>
<UnitPrice>5</UnitPrice>
<Quantity>1</Quantity>
<Notes>Test</Notes>
</ExtraCharge>
{ 
extraChargeId: 1,
chargeDate: '2018-03-06',
unitPrice: 5,
quantity: 1,
notes: 'Test'
}
        

Example Response

<?xml version="1.0"?>
<Id>15</Id>
{"id":15}
    

DELETE /v1/Reservation/{id}/ExtraCharge/{id2}

Delete an extra charge of a reservation.

Request parameters

Name Value
id The ID of the requested reservation.
id2 The ID of the requested extra charge.

Response

The result is the status code of the request.

POST /v1/Reservations/Group

Group two or more reservations.

Request parameters

Name Type Value
id int Unique identifier of a reservation.

Response

The result is the status code of the request.

Example Request

<Reservations>
    <id>1</id>
    <id>15</id>
</Reservations>
        
{ 
    "ReservationIds": [1, 15] 
}
        

POST /v1/Reservations/Ungroup

Ungroup specified number of reservations, leave the remaining reservations in the group in place. Ungrouping all reservations deletes the group.

Request parameters

Name Type Value
id int Unique identifier of a reservation.

Response

The result is the status code of the request.

Example request

<Reservations>
    <id>1</id>
    <id>15</id>
</Reservations>
{
    "ReservationIds": [1, 15]
}

GET /v1/Reservation/{id}/Payments

Get payments of a reservation and its grouped ones.

Request parameters

Name Value
id The id of the requested reservation

Response

The result is a list of payments

Example Response

<?xml version="1.0" encoding="UTF-8"?>
<Payments>
    <Payment>
        <Id>7839</Id>
        <PaymentDate>2019-07-15T00:00:00</PaymentDate>
        <ReservationId>10</ReservationId>
        <PaymentMethodId>3</PaymentMethodId>
        <Amount>16.3</Amount>
        <Notes>Notes for payment</Notes>
        <AmountCurrency>16.3</AmountCurrency>
        <CurrencyCode>EUR</CurrencyCode>
        <ExchangeRate>1.0</ExchangeRate>
        <InvoiceId>30</InvoiceId>
    </Payment>
    ....
</Payments>
            
[
    {
        "id": 7839,
        "paymentDate": "2019-07-15T00:00:00",
        "reservationId": 10,
        "paymentMethodId": 3,
        "amount": 16.30,
        "notes": "Notes for payment",
        "amountCurrency": 16.30,
        "currencyCode": "EUR",
        "exchangeRate": 1.0,
        "invoiceId": 30
    },
    ....
]