derrick-florence
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Getting Started with Channel Management API

Getting Started

Introduction

example image

Before beginning work it is necessary that:

  • Your organization is registered and activated
  • You have participated in a kick­off meeting
  • The opening questionnaire has been filled out
  • You have your login and password. (Using it you get a unique session token that must be used in every request to API as param jwt)

Contact us to be registered and get your credentials.

All responses are returned as JSON.

This document covers all the API calls and other methods that can be used to complete Razor-Cloud integration. It is important to note that all parameters are case sensitive in this document and should be used as documented.

Responses: When a request is successful, a response body will typically be sent back in the form of a JSON object. An exception to this is when a DELETE request is processed, which will result in a successful 200 status and an empty response body.

Install the Package

Run the following command from your project directory to install the package from npm:

npm install derrick-florence@1.0.0

Initialize the API Client

The following parameters are configurable for the API Client:

Parameter Type Description
timeout number Timeout for API calls.
Default: 0
jwt string Token which need to be passed in every request as GET parameter. You will get this token in authorization response. Token is valid 1 hour.

The API client can be initialized as follows:

const client = new Client({
  timeout: 0,
  jwt: 'jwt',
})

Authorization

This API uses Custom Query Parameter.

Client Class Documentation

Channel Management API Client

The gateway for the SDK. This class acts as a factory for the Controllers and also holds the configuration of the SDK.

Controllers

Name Description
authorization Gets AuthorizationController
propertyManagers Gets PropertyManagersController
product Gets ProductController
images Gets ImagesController
ratesAndAvailability Gets RatesAndAvailabilityController
lOSPricing Gets LOSPricingController
feeAndTax Gets FeeAndTaxController
feeAndTaxMandatoryAtThePropertyLevel Gets FeeAndTaxMandatoryAtThePropertyLevelController
yields Gets YieldsController
validation Gets ValidationController
testingOfMessageAPICalls Gets TestingOfMessageAPICallsController
messaging Gets MessagingController
requestToBook Gets RequestToBookController
pushNotification Gets PushNotificationController
reservationNotifications Gets ReservationNotificationsController

API Reference

List of APIs

Authorization

Login

In order to begin utilizing the platform APIs, your application must be authenticated and authorized to access domain resources. Follow the URL with your credentials and obtain an authorization token which is used in every request. You will have 2 types of tokens. One is on the PMS level, and this one should be used when you send requests related to PMS/PM data. For managing properties, you will need a token on PM level, with PM credentials. For every API call it will be noted which API credentials you should use.

ℹ️ Note This endpoint does not require authentication.

async login(
  username: string,
  password: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<Authorization>>
Parameters
Parameter Type Tags Description
username string Query, Required Your account email address (for PMS or PM)
password string Query, Required Your password
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

Authorization

Example Usage
const username = 'username0';
const password = 'password4';
try {
  const { result, ...httpResponse } = await authorizationController.login(username, password);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "token": "a9eaf5b0-c433-450e-991d-8011fc4aa264",
  "partyId": 61692799,
  "organizationId": 61690131,
  "name": "Update Name",
  "currency": "USD",
  "supplierId": 61692799
}

Property Managers

Overview

In all requests in this API section you need to use your PMS credentials.

P Mslist

This API call will return a list of property managers (PM) that have been created in the BookingPal platform that is associated with your PMS. In all requests in this API section, you need to use your PMS credentials.

async pMslist(
  requestOptions?: RequestOptions
): Promise<ApiResponse<GetPMslist>>
Parameters
Parameter Type Tags Description
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

GetPMslist

Example Usage
try {
  const { result, ...httpResponse } = await propertyManagersController.pMslist();
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "id": 61690133,
      "name": "Test name",
      "extraName": "Test fullname",
      "emailAddress": "test001@gmail.com"
    },
    {
      "id": 61690517,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa002@gmail.com"
    },
    {
      "id": 61690534,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa003@gmail.com"
    },
    {
      "id": 61691075,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa004@gmail.com"
    },
    {
      "id": 61691076,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa005@gmail.com"
    },
    {
      "id": 61691729,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa103@gmail.com"
    },
    {
      "id": 61691731,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "te@gmail.com"
    },
    {
      "id": 61691732,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "testa026@gmail.com"
    },
    {
      "id": 61691733,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa027@gmail.com"
    },
    {
      "id": 61691734,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa028@gmail.com"
    },
    {
      "id": 61691735,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa029@gmail.com"
    },
    {
      "id": 61691736,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "testa0031@gmail.com"
    },
    {
      "id": 61691737,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "testa0032@gmail.com"
    },
    {
      "id": 61691803,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "testa035@gmail.com"
    },
    {
      "id": 61691852,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa036@gmail.com"
    },
    {
      "id": 61691861,
      "name": "Auto-lyxpz company name",
      "extraName": "Auto-dzvjr full name",
      "emailAddress": "wnvuyqfya213@pqclbzs.rli"
    },
    {
      "id": 61691868,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "testa038@gmail.com"
    },
    {
      "id": 61691875,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM001@gmail.com"
    },
    {
      "id": 61691876,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM002@gmail.com"
    },
    {
      "id": 61691877,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM003@gmail.com"
    },
    {
      "id": 61691878,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM004@gmail.com"
    },
    {
      "id": 61691879,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM005@gmail.com"
    },
    {
      "id": 61691880,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM006@gmail.com"
    },
    {
      "id": 61691881,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM007@gmail.com"
    },
    {
      "id": 61691882,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM008@gmail.com"
    },
    {
      "id": 61691883,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM009@gmail.com"
    },
    {
      "id": 61691884,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM010@gmail.com"
    },
    {
      "id": 61691885,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM011@gmail.com"
    },
    {
      "id": 61691886,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM012@gmail.com"
    },
    {
      "id": 61691887,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM014@gmail.com"
    },
    {
      "id": 61691888,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM015@gmail.com"
    },
    {
      "id": 61691889,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM016@gmail.com"
    },
    {
      "id": 61691896,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM017@gmail.com"
    },
    {
      "id": 61691897,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM018@gmail.com"
    },
    {
      "id": 61691898,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM019@gmail.com"
    },
    {
      "id": 61691899,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM020@gmail.com"
    },
    {
      "id": 61691900,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM021@gmail.com"
    },
    {
      "id": 61691903,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa0141234@gmail.com"
    },
    {
      "id": 61691904,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa01412345@gmail.com"
    },
    {
      "id": 61691905,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM022@gmail.com"
    },
    {
      "id": 61691906,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM023@gmail.com"
    },
    {
      "id": 61691907,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa014123452@gmail.com"
    },
    {
      "id": 61691908,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa0141234521@gmail.com"
    },
    {
      "id": 61691909,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM024@gmail.com"
    },
    {
      "id": 61691910,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM025@gmail.com"
    },
    {
      "id": 61691911,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM026@gmail.com"
    },
    {
      "id": 61691979,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM028@gmail.com"
    },
    {
      "id": 61692003,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM030@gmail.com"
    },
    {
      "id": 61692065,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM031@gmail.com"
    },
    {
      "id": 61692066,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM032@gmail.com"
    },
    {
      "id": 61692067,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM033@gmail.com"
    },
    {
      "id": 61692068,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "TestPM034@gmail.com"
    },
    {
      "id": 61692418,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM01130@gmail.com"
    },
    {
      "id": 61692455,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM035@gmail.com"
    },
    {
      "id": 61692456,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM036@gmail.com"
    },
    {
      "id": 61692457,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM037@gmail.com"
    },
    {
      "id": 61692552,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "TestPM038@gmail.com"
    },
    {
      "id": 61692554,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM999MJ@gmail.com"
    },
    {
      "id": 61692695,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa133@gmail.com"
    },
    {
      "id": 61692769,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM050@gmail.com"
    },
    {
      "id": 61692782,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPMCreateProduct@gmail.com"
    },
    {
      "id": 61692785,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM055@gmail.com"
    },
    {
      "id": 61692787,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM056@gmail.com"
    },
    {
      "id": 61692789,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM057@gmail.com"
    },
    {
      "id": 61692790,
      "name": "Test Wiz",
      "extraName": "Test Wiz",
      "emailAddress": "TestPM058@gmail.com"
    },
    {
      "id": 61692791,
      "name": "Test wiz1",
      "extraName": "Test wiz1",
      "emailAddress": "TestPM059@gmail.com"
    },
    {
      "id": 61692793,
      "name": "Test wiz1",
      "extraName": "Test wiz1",
      "emailAddress": "TestPM060@gmail.com"
    },
    {
      "id": 61692794,
      "name": "Test wiz1",
      "extraName": "Test wiz1",
      "emailAddress": "TestPM061@gmail.com"
    },
    {
      "id": 61692795,
      "name": "Test wiz",
      "extraName": "Test wiz",
      "emailAddress": "TestPM062@gmail.com"
    },
    {
      "id": 61692797,
      "name": "Wizard Demo",
      "extraName": "Wizard Demo",
      "emailAddress": "wizarddemo@gmail.com"
    },
    {
      "id": 61692799,
      "name": "Test PM",
      "extraName": "Test PM",
      "emailAddress": "apimaticTest@test.com"
    }
  ]
}

Createnew Property Manager

This API call will allow the PMS to pass all data to BookingPal that is required for registering a new PM (Property Manager). All fields are mandatory - PMS must pass this data in order for a PM account to be created. You need to use PMS credentials for this request.

async createnewPropertyManager(
  contentType: string,
  body: CreatenewUpdatePropertyManagerRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<PropertyManagerdetailsresponse>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body CreatenewUpdatePropertyManagerRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

PropertyManagerdetailsresponse

Example Usage
const contentType = 'Content-Type2';
const bodyDataCompanyDetailsCompanyAddress: CompanyAddress = {
  country: 'US',
  state: 'Test State',
  streetAddress: 'Test Street',
  city: 'Test City',
  zip: '13245',
};

const bodyDataCompanyDetailsPhone: Phone = {
  countryCode: '+321',
  number: '132456',
};

const bodyDataCompanyDetails: CompanyDetails = {
  accountId: '132',
  companyName: 'Test PM',
  language: 'en',
  fullName: 'Test PM',
  companyAddress: bodyDataCompanyDetailsCompanyAddress,
  website: 'www.testsite.com',
  email: 'apimaticPMemail@test.com',
  phone: bodyDataCompanyDetailsPhone,
  currency: 'USD',
};
bodyDataCompanyDetails.password = 'password';

const bodyDataPoliciesPaymentPolicySplitPayment: SplitPayment = {
  depositType: 'FLAT',
  value: 4,
  secondPaymentDays: 30,
};

const bodyDataPoliciesPaymentPolicy: PaymentPolicy = {
  type: 'SPLIT',
  splitPayment: bodyDataPoliciesPaymentPolicySplitPayment,
};

const bodyDataPoliciesCancellationPolicyManualPolicyManualPolicies: ManualPolicies[] = [];

const bodyDataPoliciesCancellationPolicyManualPolicymanualPolicies0: ManualPolicies = {
  chargeValue: 20,
  beforeDays: 34,
  cancellationFee: 1,
};

bodyDataPoliciesCancellationPolicyManualPolicyManualPolicies[0] = bodyDataPoliciesCancellationPolicyManualPolicymanualPolicies0;

const bodyDataPoliciesCancellationPolicyManualPolicymanualPolicies1: ManualPolicies = {
  chargeValue: 12,
  beforeDays: 45,
  cancellationFee: 2,
};

bodyDataPoliciesCancellationPolicyManualPolicyManualPolicies[1] = bodyDataPoliciesCancellationPolicyManualPolicymanualPolicies1;

const bodyDataPoliciesCancellationPolicyManualPolicy: ManualPolicy = {
  type: 'FLAT',
  manualPolicies: bodyDataPoliciesCancellationPolicyManualPolicyManualPolicies,
};

const bodyDataPoliciesCancellationPolicy: CancellationPolicy = {
  type: 'MANUAL',
  manualPolicy: bodyDataPoliciesCancellationPolicyManualPolicy,
};

const bodyDataPoliciesFeeTaxMandatory: FeeTaxMandatory = {
  isFeeMandatory: true,
  isTaxMandatory: true,
};

const bodyDataPolicies: Policies = {
  paymentPolicy: bodyDataPoliciesPaymentPolicy,
  cancellationPolicy: bodyDataPoliciesCancellationPolicy,
  feeTaxMandatory: bodyDataPoliciesFeeTaxMandatory,
  terms: 'www.test.com',
  checkInTime: '10:00:00',
  checkOutTime: '16:00:00',
  leadTime: 2,
};

const bodyDataPaymentCreditCardPaymentGateways: PaymentGateways = {
  paymentGatewaysType: 'AUTHORIZE_NET',
};
bodyDataPaymentCreditCardPaymentGateways.user = 'test';
bodyDataPaymentCreditCardPaymentGateways.secret = 'test';
bodyDataPaymentCreditCardPaymentGateways.additionalField1 = '';
bodyDataPaymentCreditCardPaymentGateways.additionalField2 = '';

const bodyDataPaymentCreditCardCreditCardList: CreditCardListEnum[] = ['AMERICAN_EXPRESS', 'DINERS_CLUB'];
const bodyDataPaymentCreditCard: CreditCard = {
  creditCardType: 'POST',
};
bodyDataPaymentCreditCard.paymentGateways = bodyDataPaymentCreditCardPaymentGateways;
bodyDataPaymentCreditCard.creditCardList = bodyDataPaymentCreditCardCreditCardList;

const bodyDataPayment: Payment = {
  paymentType: 'MAIL_CHECK',
};
bodyDataPayment.creditCard = bodyDataPaymentCreditCard;

const bodyData: Company = {
  companyDetails: bodyDataCompanyDetails,
  policies: bodyDataPolicies,
  payment: bodyDataPayment,
};

const body: CreatenewUpdatePropertyManagerRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await propertyManagersController.createnewPropertyManager(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "companyDetails": {
        "accountId": "132",
        "companyName": "Test PM",
        "language": "en",
        "fullName": "Test PM",
        "companyAddress": {
          "country": "US",
          "state": "Test State",
          "streetAddress": "Test Street",
          "city": "Test City",
          "zip": "13245"
        },
        "website": "www.testsite.com",
        "email": "apimaticPMemail@test.com",
        "phone": {
          "countryCode": "+321",
          "number": "132456"
        },
        "password": "password",
        "currency": "USD"
      },
      "policies": {
        "paymentPolicy": {
          "type": "SPLIT",
          "splitPayment": {
            "depositType": "FLAT",
            "value": 4,
            "secondPaymentDays": 30
          }
        },
        "cancellationPolicy": {
          "type": "MANUAL",
          "manualPolicy": {
            "type": "FLAT",
            "manualPolicies": [
              {
                "chargeValue": 20,
                "beforeDays": 34,
                "cancellationFee": 1
              },
              {
                "chargeValue": 12,
                "beforeDays": 45,
                "cancellationFee": 2
              }
            ]
          }
        },
        "feeTaxMandatory": {
          "isFeeMandatory": true,
          "isTaxMandatory": true
        },
        "terms": "www.test.com",
        "checkInTime": "10:00:00",
        "checkOutTime": "16:00:00",
        "leadTime": 2
      },
      "payment": {
        "paymentType": "MAIL_CHECK",
        "creditCard": {
          "creditCardType": "POST",
          "creditCardList": [
            "AMERICAN_EXPRESS",
            "DINERS_CLUB",
            "DISCOVER",
            "MASTER_CARD",
            "VISA"
          ],
          "paymentGateways": {
            "paymentGatewaysType": "AUTHORIZE_NET"
          }
        }
      },
      "id": 61692801
    }
  ]
}

Get Property Managerdetaildata

This function will return a property manager’s details that belong to the current user. You need to use your PMS API credentials.

Request Body parameters are the same as for creating PM.

Response is the same as in creating a Property Manager function. Here you do not need to pass all root level fields, but if some are used - all fields inside are mandatory:

  • in CompanyDetails Model you can pass any field, and none of them is mandatory
  • in Policies Model - you can pass any field, and none of them is mandatory
  • if you do use PaymentPolicy - all fields inside are mandatory
  • if you do use CancellationPolicy - all fields inside are mandatory
  • if you use Payment Model - all fields inside are mandatory
async getPropertyManagerdetaildata(
  contentType: string,
  id: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<PropertyManagerdetailsresponse>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
id string Template, Required Property Manager ID
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

PropertyManagerdetailsresponse

Example Usage
const contentType = 'Content-Type2';
const id = 'id0';
try {
  const { result, ...httpResponse } = await propertyManagersController.getPropertyManagerdetaildata(contentType, id);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "companyDetails": {
        "accountId": "132",
        "companyName": "Test PM",
        "language": "en",
        "fullName": "Test PM",
        "companyAddress": {
          "country": "US",
          "state": "Test State",
          "streetAddress": "Test Street",
          "city": "Test City",
          "zip": "13245"
        },
        "website": "www.testsite.com",
        "email": "apimaticTest@test.com",
        "phone": {
          "countryCode": "+321",
          "number": "132456"
        },
        "currency": "USD"
      },
      "policies": {
        "paymentPolicy": {
          "type": "SPLIT",
          "splitPayment": {
            "depositType": "FLAT",
            "value": 4,
            "secondPaymentDays": 30
          }
        },
        "cancellationPolicy": {
          "type": "MANUAL",
          "manualPolicy": {
            "type": "FLAT",
            "manualPolicies": [
              {
                "chargeValue": 20,
                "beforeDays": 34,
                "cancellationFee": 1
              },
              {
                "chargeValue": 12,
                "beforeDays": 45,
                "cancellationFee": 2
              }
            ]
          }
        },
        "feeTaxMandatory": {
          "isFeeMandatory": true,
          "isTaxMandatory": true
        },
        "terms": "www.test.com",
        "checkInTime": "10:00:00",
        "checkOutTime": "16:00:00",
        "leadTime": 2
      },
      "payment": {
        "paymentType": "MAIL_CHECK",
        "creditCard": {
          "creditCardType": "POST",
          "creditCardList": [
            "AMERICAN_EXPRESS",
            "DINERS_CLUB",
            "DISCOVER",
            "MASTER_CARD",
            "VISA"
          ],
          "paymentGateways": {
            "paymentGatewaysType": "AUTHORIZE_NET"
          }
        }
      },
      "id": 61692799
    }
  ]
}

Update Property Managerdetails

This function will update a property manager’s details. In case of an update you do not need to pass all information, but if you have values in one section - all fields inside are mandatory.

async updatePropertyManagerdetails(
  contentType: string,
  body: CreatenewUpdatePropertyManagerRequest,
  id: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<PropertyManagerdetailsresponse>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body CreatenewUpdatePropertyManagerRequest Body, Required -
id string Template, Required Property Manager ID
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

PropertyManagerdetailsresponse

Example Usage
const contentType = 'Content-Type2';
const bodyDataCompanyDetailsCompanyAddress: CompanyAddress = {
  country: 'US',
  state: 'Test State',
  streetAddress: 'Test Street',
  city: 'Test City',
  zip: '13245',
};

const bodyDataCompanyDetailsPhone: Phone = {
  countryCode: '+321',
  number: '132456',
};

const bodyDataCompanyDetails: CompanyDetails = {
  accountId: '132',
  companyName: 'Test PM',
  language: 'en',
  fullName: 'Test PM',
  companyAddress: bodyDataCompanyDetailsCompanyAddress,
  website: 'www.testsite.com',
  email: 'apimaticPMemail@test.com',
  phone: bodyDataCompanyDetailsPhone,
  currency: 'USD',
};
bodyDataCompanyDetails.password = 'password';

const bodyDataPoliciesPaymentPolicySplitPayment: SplitPayment = {
  depositType: 'FLAT',
  value: 4,
  secondPaymentDays: 30,
};

const bodyDataPoliciesPaymentPolicy: PaymentPolicy = {
  type: 'SPLIT',
  splitPayment: bodyDataPoliciesPaymentPolicySplitPayment,
};

const bodyDataPoliciesCancellationPolicyManualPolicyManualPolicies: ManualPolicies[] = [];

const bodyDataPoliciesCancellationPolicyManualPolicymanualPolicies0: ManualPolicies = {
  chargeValue: 20,
  beforeDays: 34,
  cancellationFee: 1,
};

bodyDataPoliciesCancellationPolicyManualPolicyManualPolicies[0] = bodyDataPoliciesCancellationPolicyManualPolicymanualPolicies0;

const bodyDataPoliciesCancellationPolicyManualPolicymanualPolicies1: ManualPolicies = {
  chargeValue: 12,
  beforeDays: 45,
  cancellationFee: 2,
};

bodyDataPoliciesCancellationPolicyManualPolicyManualPolicies[1] = bodyDataPoliciesCancellationPolicyManualPolicymanualPolicies1;

const bodyDataPoliciesCancellationPolicyManualPolicy: ManualPolicy = {
  type: 'FLAT',
  manualPolicies: bodyDataPoliciesCancellationPolicyManualPolicyManualPolicies,
};

const bodyDataPoliciesCancellationPolicy: CancellationPolicy = {
  type: 'MANUAL',
  manualPolicy: bodyDataPoliciesCancellationPolicyManualPolicy,
};

const bodyDataPoliciesFeeTaxMandatory: FeeTaxMandatory = {
  isFeeMandatory: true,
  isTaxMandatory: true,
};

const bodyDataPolicies: Policies = {
  paymentPolicy: bodyDataPoliciesPaymentPolicy,
  cancellationPolicy: bodyDataPoliciesCancellationPolicy,
  feeTaxMandatory: bodyDataPoliciesFeeTaxMandatory,
  terms: 'www.test.com',
  checkInTime: '10:00:00',
  checkOutTime: '16:00:00',
  leadTime: 2,
};

const bodyDataPaymentCreditCardPaymentGateways: PaymentGateways = {
  paymentGatewaysType: 'AUTHORIZE_NET',
};
bodyDataPaymentCreditCardPaymentGateways.user = 'test';
bodyDataPaymentCreditCardPaymentGateways.secret = 'test';
bodyDataPaymentCreditCardPaymentGateways.additionalField1 = '';
bodyDataPaymentCreditCardPaymentGateways.additionalField2 = '';

const bodyDataPaymentCreditCardCreditCardList: CreditCardListEnum[] = ['AMERICAN_EXPRESS', 'DINERS_CLUB'];
const bodyDataPaymentCreditCard: CreditCard = {
  creditCardType: 'POST',
};
bodyDataPaymentCreditCard.paymentGateways = bodyDataPaymentCreditCardPaymentGateways;
bodyDataPaymentCreditCard.creditCardList = bodyDataPaymentCreditCardCreditCardList;

const bodyDataPayment: Payment = {
  paymentType: 'MAIL_CHECK',
};
bodyDataPayment.creditCard = bodyDataPaymentCreditCard;

const bodyData: Company = {
  companyDetails: bodyDataCompanyDetails,
  policies: bodyDataPolicies,
  payment: bodyDataPayment,
};

const body: CreatenewUpdatePropertyManagerRequest = {
  data: bodyData,
};

const id = 'id0';
try {
  const { result, ...httpResponse } = await propertyManagersController.updatePropertyManagerdetails(contentType, body, id);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "companyDetails": {
        "accountId": "132",
        "companyName": "Update Name",
        "language": "en",
        "fullName": "Update Full Name",
        "companyAddress": {
          "country": "US",
          "state": "Update State",
          "streetAddress": "Update Street",
          "city": "Update City",
          "zip": "13245"
        },
        "website": "www.updatesite.com",
        "email": "apimaticTest@test.com",
        "phone": {
          "countryCode": "+321",
          "number": "132456"
        },
        "currency": "USD"
      },
      "policies": {
        "paymentPolicy": {
          "type": "SPLIT",
          "splitPayment": {
            "depositType": "FLAT",
            "value": 4,
            "secondPaymentDays": 30
          }
        },
        "cancellationPolicy": {
          "type": "MANUAL",
          "manualPolicy": {
            "type": "FLAT",
            "manualPolicies": [
              {
                "chargeValue": 20,
                "beforeDays": 34,
                "cancellationFee": 1
              },
              {
                "chargeValue": 12,
                "beforeDays": 45,
                "cancellationFee": 2
              }
            ]
          }
        },
        "feeTaxMandatory": {
          "isFeeMandatory": true,
          "isTaxMandatory": true
        },
        "terms": "www.test.com",
        "checkInTime": "10:00:00",
        "checkOutTime": "16:00:00",
        "leadTime": 2
      },
      "payment": {
        "paymentType": "MAIL_CHECK",
        "creditCard": {
          "creditCardType": "POST",
          "creditCardList": [
            "AMERICAN_EXPRESS",
            "DINERS_CLUB",
            "DISCOVER",
            "MASTER_CARD",
            "VISA"
          ],
          "paymentGateways": {
            "paymentGatewaysType": "AUTHORIZE_NET"
          }
        }
      },
      "id": 61692799
    }
  ]
}

Product

Overview

Every API call in this section should be with PM credentials.

Getproductlist

This API call will return a list of properties that belong to the current user. This means that a user has to be logged in with products created already. Every API call in this section should be with PM credentials.

async getproductlist(
  requestOptions?: RequestOptions
): Promise<ApiResponse<Productresponse>>
Parameters
Parameter Type Tags Description
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

Productresponse

Example Usage
try {
  const { result, ...httpResponse } = await productController.getproductlist();
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "name": "Apimatic Test",
      "id": 1235124634,
      "supplierId": 61692799,
      "rooms": 5,
      "bathrooms": 4,
      "toilets": 2,
      "totalBeds": 6,
      "space": 111,
      "spaceUnit": "SQ_FT",
      "persons": 10,
      "childs": 2,
      "latitude": 41.886125,
      "longitude": -87.634233,
      "livingRoom": 2,
      "altId": 23556,
      "notes": {
        "description": {
          "texts": [
            {
              "language": "EN",
              "value": "Main description on EN!"
            },
            {
              "language": "ES",
              "value": "Main description on ES!"
            }
          ]
        },
        "shortDescription": {
          "texts": [
            {
              "language": "EN",
              "value": "House Rules on EN!"
            },
            {
              "language": "IT",
              "value": "House Rules on IT!"
            }
          ]
        },
        "houseRules": {
          "texts": [
            {
              "language": "EN",
              "value": "House Rules on EN!"
            },
            {
              "language": "SR",
              "value": "House Rules on SR!"
            }
          ]
        },
        "name": {
          "texts": [
            {
              "language": "EN",
              "value": "House Rules on EN!"
            },
            {
              "language": "FR",
              "value": "House Rules on FR!"
            }
          ]
        },
        "finePrint": {
          "texts": [
            {
              "language": "EN",
              "value": "House Rules on EN!"
            },
            {
              "language": "SR",
              "value": "House Rules on SR!"
            }
          ]
        }
      },
      "attributesWithQuantity": [
        {
          "attributeId": "HAC312",
          "quantity": 1
        },
        {
          "attributeId": "RMA19",
          "quantity": 1
        },
        {
          "attributeId": "RMA273",
          "quantity": 1
        },
        {
          "attributeId": "RMA32",
          "quantity": 1
        },
        {
          "attributeId": "RMA41",
          "quantity": 1
        },
        {
          "attributeId": "RMA5085",
          "quantity": 1
        },
        {
          "attributeId": "RMA68",
          "quantity": 1
        },
        {
          "attributeId": "RMA88",
          "quantity": 1
        }
      ],
      "nearbyAmenities": [],
      "propertyType": "PCT34",
      "bedroomConfiguration": {
        "bedrooms": [
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA86",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": true
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Living Room",
            "privateBathroom": false
          }
        ]
      },
      "checkInTime": "16:00:00",
      "checkInToTime": "20:00:00",
      "checkOutTime": "10:00:00",
      "currency": "EUR",
      "policy": {
        "internetPolicy": {
          "accessInternet": true,
          "kindOfInternet": "WiFi",
          "availableInternet": "AllAreas",
          "chargeInternet": "Free"
        },
        "parkingPolicy": {
          "accessParking": true,
          "locatedParking": "OnSite",
          "privateParking": true,
          "chargeParking": "$ 150",
          "timeCostParking": "PerStay",
          "necessaryReservationParking": "NotPossible"
        },
        "petPolicy": {
          "allowedPets": "Allowed",
          "chargePets": "Free"
        },
        "childrenAllowed": true,
        "smokingAllowed": false
      },
      "location": {
        "postalCode": "60606",
        "country": "US",
        "region": "Illinois",
        "city": "Chicago",
        "street": "210 North Wells Street",
        "zipCode9": "60606-1330"
      },
      "supportedLosRates": false
    }
  ]
}

Createproduct

This function allows a logged in user to create new product. You can only send one product in each request.

async createproduct(
  contentType: string,
  body: CreateUpdatePropertyRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<Productresponse>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body CreateUpdatePropertyRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

Productresponse

Example Usage
const contentType = 'Content-Type2';
const bodyDataNotesDescriptionTexts: Text[] = [];

const bodyDataNotesDescriptiontexts0: Text = {
  language: 'EN',
  value: 'Main description on EN!',
};

bodyDataNotesDescriptionTexts[0] = bodyDataNotesDescriptiontexts0;

const bodyDataNotesDescriptiontexts1: Text = {
  language: 'ES',
  value: 'Main description on ES!',
};

bodyDataNotesDescriptionTexts[1] = bodyDataNotesDescriptiontexts1;

const bodyDataNotesDescription: DescriptionTextModel = {
  texts: bodyDataNotesDescriptionTexts,
};

const bodyDataNotesHouseRulesTexts: Text[] = [];

const bodyDataNotesHouseRulestexts0: Text = {
  language: 'EN',
  value: 'House Rules on EN!',
};

bodyDataNotesHouseRulesTexts[0] = bodyDataNotesHouseRulestexts0;

const bodyDataNotesHouseRulestexts1: Text = {
  language: 'SR',
  value: 'House Rules on SR!',
};

bodyDataNotesHouseRulesTexts[1] = bodyDataNotesHouseRulestexts1;

const bodyDataNotesHouseRules: DescriptionTextModel = {
  texts: bodyDataNotesHouseRulesTexts,
};

const bodyDataNotesShortDescriptionTexts: Text[] = [];

const bodyDataNotesShortDescriptiontexts0: Text = {
  language: 'EN',
  value: 'Short description on EN!',
};

bodyDataNotesShortDescriptionTexts[0] = bodyDataNotesShortDescriptiontexts0;

const bodyDataNotesShortDescriptiontexts1: Text = {
  language: 'ES',
  value: 'short description on ES!',
};

bodyDataNotesShortDescriptionTexts[1] = bodyDataNotesShortDescriptiontexts1;

const bodyDataNotesShortDescription: DescriptionTextModel = {
  texts: bodyDataNotesShortDescriptionTexts,
};

const bodyDataNotes: Notes = {
  description: bodyDataNotesDescription,
};
bodyDataNotes.houseRules = bodyDataNotesHouseRules;
bodyDataNotes.shortDescription = bodyDataNotesShortDescription;

const bodyDataAttributesWithQuantity: AttributesWithQuantity[] = [];

const bodyDataattributesWithQuantity0: AttributesWithQuantity = {
  attributeId: 'HAC312',
  quantity: 1,
};

bodyDataAttributesWithQuantity[0] = bodyDataattributesWithQuantity0;

const bodyDataattributesWithQuantity1: AttributesWithQuantity = {
  attributeId: 'RMA107',
  quantity: 1,
};

bodyDataAttributesWithQuantity[1] = bodyDataattributesWithQuantity1;

const bodyDataattributesWithQuantity2: AttributesWithQuantity = {
  attributeId: 'RMA11',
  quantity: 1,
};

bodyDataAttributesWithQuantity[2] = bodyDataattributesWithQuantity2;

const bodyDataattributesWithQuantity3: AttributesWithQuantity = {
  attributeId: 'RMA149',
  quantity: 1,
};

bodyDataAttributesWithQuantity[3] = bodyDataattributesWithQuantity3;

const bodyDataattributesWithQuantity4: AttributesWithQuantity = {
  attributeId: 'RMA163',
  quantity: 1,
};

bodyDataAttributesWithQuantity[4] = bodyDataattributesWithQuantity4;

const bodyDataattributesWithQuantity5: AttributesWithQuantity = {
  attributeId: 'RMA18',
  quantity: 1,
};

bodyDataAttributesWithQuantity[5] = bodyDataattributesWithQuantity5;

const bodyDataattributesWithQuantity6: AttributesWithQuantity = {
  attributeId: 'RMA19',
  quantity: 1,
};

bodyDataAttributesWithQuantity[6] = bodyDataattributesWithQuantity6;

const bodyDataattributesWithQuantity7: AttributesWithQuantity = {
  attributeId: 'RMA251',
  quantity: 1,
};

bodyDataAttributesWithQuantity[7] = bodyDataattributesWithQuantity7;

const bodyDataattributesWithQuantity8: AttributesWithQuantity = {
  attributeId: 'RMA273',
  quantity: 1,
};

bodyDataAttributesWithQuantity[8] = bodyDataattributesWithQuantity8;

const bodyDataattributesWithQuantity9: AttributesWithQuantity = {
  attributeId: 'RMA32',
  quantity: 1,
};

bodyDataAttributesWithQuantity[9] = bodyDataattributesWithQuantity9;

const bodyDataattributesWithQuantity10: AttributesWithQuantity = {
  attributeId: 'RMA41',
  quantity: 1,
};

bodyDataAttributesWithQuantity[10] = bodyDataattributesWithQuantity10;

const bodyDataattributesWithQuantity11: AttributesWithQuantity = {
  attributeId: 'RMA5085',
  quantity: 1,
};

bodyDataAttributesWithQuantity[11] = bodyDataattributesWithQuantity11;

const bodyDataattributesWithQuantity12: AttributesWithQuantity = {
  attributeId: 'RMA59',
  quantity: 1,
};

bodyDataAttributesWithQuantity[12] = bodyDataattributesWithQuantity12;

const bodyDataattributesWithQuantity13: AttributesWithQuantity = {
  attributeId: 'RMA6058',
  quantity: 1,
};

bodyDataAttributesWithQuantity[13] = bodyDataattributesWithQuantity13;

const bodyDataattributesWithQuantity14: AttributesWithQuantity = {
  attributeId: 'RMA68',
  quantity: 1,
};

bodyDataAttributesWithQuantity[14] = bodyDataattributesWithQuantity14;

const bodyDataattributesWithQuantity15: AttributesWithQuantity = {
  attributeId: 'RMA88',
  quantity: 1,
};

bodyDataAttributesWithQuantity[15] = bodyDataattributesWithQuantity15;

const bodyDataBedroomConfigurationBedrooms: Bedroom[] = [];

const bodyDataBedroomConfigurationbedrooms0BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms0Bedsbed0: Bed = {
  bedType: 'RMA113',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms0BedsBed[0] = bodyDataBedroomConfigurationbedrooms0Bedsbed0;

const bodyDataBedroomConfigurationbedrooms0Bedsbed1: Bed = {
  bedType: 'RMA58',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms0BedsBed[1] = bodyDataBedroomConfigurationbedrooms0Bedsbed1;

const bodyDataBedroomConfigurationbedrooms0Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms0BedsBed,
};

const bodyDataBedroomConfigurationbedrooms0: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms0Beds,
  type: 'Bedroom',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[0] = bodyDataBedroomConfigurationbedrooms0;

const bodyDataBedroomConfigurationbedrooms1BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms1Bedsbed0: Bed = {
  bedType: 'RMA113',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms1BedsBed[0] = bodyDataBedroomConfigurationbedrooms1Bedsbed0;

const bodyDataBedroomConfigurationbedrooms1Bedsbed1: Bed = {
  bedType: 'RMA58',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms1BedsBed[1] = bodyDataBedroomConfigurationbedrooms1Bedsbed1;

const bodyDataBedroomConfigurationbedrooms1Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms1BedsBed,
};

const bodyDataBedroomConfigurationbedrooms1: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms1Beds,
  type: 'Bedroom',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[1] = bodyDataBedroomConfigurationbedrooms1;

const bodyDataBedroomConfigurationbedrooms2BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms2Bedsbed0: Bed = {
  bedType: 'RMA113',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms2BedsBed[0] = bodyDataBedroomConfigurationbedrooms2Bedsbed0;

const bodyDataBedroomConfigurationbedrooms2Bedsbed1: Bed = {
  bedType: 'RMA86',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms2BedsBed[1] = bodyDataBedroomConfigurationbedrooms2Bedsbed1;

const bodyDataBedroomConfigurationbedrooms2Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms2BedsBed,
};

const bodyDataBedroomConfigurationbedrooms2: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms2Beds,
  type: 'Bedroom',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[2] = bodyDataBedroomConfigurationbedrooms2;

const bodyDataBedroomConfigurationbedrooms3BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms3Bedsbed0: Bed = {
  bedType: 'RMA113',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms3BedsBed[0] = bodyDataBedroomConfigurationbedrooms3Bedsbed0;

const bodyDataBedroomConfigurationbedrooms3Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms3BedsBed,
};

const bodyDataBedroomConfigurationbedrooms3: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms3Beds,
  type: 'Bedroom',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[3] = bodyDataBedroomConfigurationbedrooms3;

const bodyDataBedroomConfigurationbedrooms4BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms4Bedsbed0: Bed = {
  bedType: 'RMA113',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms4BedsBed[0] = bodyDataBedroomConfigurationbedrooms4Bedsbed0;

const bodyDataBedroomConfigurationbedrooms4Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms4BedsBed,
};

const bodyDataBedroomConfigurationbedrooms4: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms4Beds,
  type: 'Bedroom',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[4] = bodyDataBedroomConfigurationbedrooms4;

const bodyDataBedroomConfigurationbedrooms5BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms5Bedsbed0: Bed = {
  bedType: 'RMA58',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms5BedsBed[0] = bodyDataBedroomConfigurationbedrooms5Bedsbed0;

const bodyDataBedroomConfigurationbedrooms5Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms5BedsBed,
};

const bodyDataBedroomConfigurationbedrooms5: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms5Beds,
  type: 'Bedroom',
  privateBathroom: true,
};

bodyDataBedroomConfigurationBedrooms[5] = bodyDataBedroomConfigurationbedrooms5;

const bodyDataBedroomConfigurationbedrooms6BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms6Bedsbed0: Bed = {
  bedType: 'RMA58',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms6BedsBed[0] = bodyDataBedroomConfigurationbedrooms6Bedsbed0;

const bodyDataBedroomConfigurationbedrooms6Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms6BedsBed,
};

const bodyDataBedroomConfigurationbedrooms6: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms6Beds,
  type: 'Living Room',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[6] = bodyDataBedroomConfigurationbedrooms6;

const bodyDataBedroomConfiguration: BedroomConfiguration = {
  bedrooms: bodyDataBedroomConfigurationBedrooms,
};

const bodyDataPolicyInternetPolicy: InternetPolicy = {
  accessInternet: true,
};
bodyDataPolicyInternetPolicy.kindOfInternet = 'WiFi';
bodyDataPolicyInternetPolicy.availableInternet = 'AllAreas';
bodyDataPolicyInternetPolicy.chargeInternet = 'Free';

const bodyDataPolicyParkingPolicy: ParkingPolicy = {
  accessParking: true,
};
bodyDataPolicyParkingPolicy.locatedParking = 'OnSite';
bodyDataPolicyParkingPolicy.privateParking = true;
bodyDataPolicyParkingPolicy.chargeParking = '$ 150';
bodyDataPolicyParkingPolicy.timeCostParking = 'PerStay';
bodyDataPolicyParkingPolicy.necessaryReservationParking = 'NotPossible';

const bodyDataPolicyPetPolicy: PetPolicy = {
  allowedPets: 'Allowed',
};
bodyDataPolicyPetPolicy.chargePets = 'Free';

const bodyDataPolicy: Policy = {
  childrenAllowed: true,
  smokingAllowed: false,
};
bodyDataPolicy.internetPolicy = bodyDataPolicyInternetPolicy;
bodyDataPolicy.parkingPolicy = bodyDataPolicyParkingPolicy;
bodyDataPolicy.petPolicy = bodyDataPolicyPetPolicy;

const bodyDataLocation: Location = {
  postalCode: '60606',
  country: 'US',
  region: 'Illinois',
  city: 'Chicago',
  street: '210 North Wells Street',
  zipCode9: '60606-1330',
};

const bodyData: Property = {
  name: 'Test product',
  rooms: 5,
  bathrooms: 4,
  persons: 10,
  propertyType: 'PCT34',
  currency: 'EUR',
  supportedLosRates: false,
};
bodyData.toilets = 2;
bodyData.totalBeds = 6;
bodyData.space = 113.76;
bodyData.spaceUnit = 'SQ_FT';
bodyData.childs = 2;
bodyData.latitude = 41.886125;
bodyData.longitude = -87.634233;
bodyData.livingRoom = 2;
bodyData.notes = bodyDataNotes;
bodyData.attributesWithQuantity = bodyDataAttributesWithQuantity;
bodyData.bedroomConfiguration = bodyDataBedroomConfiguration;
bodyData.checkInTime = '16:00:00';
bodyData.checkInToTime = '20:00:00';
bodyData.checkOutTime = '10:00:00';
bodyData.policy = bodyDataPolicy;
bodyData.location = bodyDataLocation;

const body: CreateUpdatePropertyRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await productController.createproduct(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "name": "Apimatic Test",
      "id": 1235124634,
      "supplierId": 61692799,
      "rooms": 5,
      "bathrooms": 4,
      "toilets": 2,
      "totalBeds": 6,
      "space": 111,
      "spaceUnit": "SQ_FT",
      "persons": 10,
      "childs": 2,
      "latitude": 41.886125,
      "longitude": -87.634233,
      "livingRoom": 2,
      "altId": 23556,
      "notes": {
        "description": {
          "texts": [
            {
              "language": "EN",
              "value": "Main description on EN!"
            },
            {
              "language": "ES",
              "value": "Main description on ES!"
            }
          ]
        },
        "shortDescription": {
          "texts": [
            {
              "language": "EN",
              "value": "House Rules on EN!"
            },
            {
              "language": "IT",
              "value": "House Rules on IT!"
            }
          ]
        },
        "houseRules": {
          "texts": [
            {
              "language": "EN",
              "value": "House Rules on EN!"
            },
            {
              "language": "SR",
              "value": "House Rules on SR!"
            }
          ]
        },
        "name": {
          "texts": [
            {
              "language": "EN",
              "value": "House Rules on EN!"
            },
            {
              "language": "FR",
              "value": "House Rules on FR!"
            }
          ]
        },
        "finePrint": {
          "texts": [
            {
              "language": "EN",
              "value": "House Rules on EN!"
            },
            {
              "language": "SR",
              "value": "House Rules on SR!"
            }
          ]
        }
      },
      "attributesWithQuantity": [
        {
          "attributeId": "HAC312",
          "quantity": 1
        },
        {
          "attributeId": "RMA19",
          "quantity": 1
        },
        {
          "attributeId": "RMA273",
          "quantity": 1
        },
        {
          "attributeId": "RMA32",
          "quantity": 1
        },
        {
          "attributeId": "RMA41",
          "quantity": 1
        },
        {
          "attributeId": "RMA5085",
          "quantity": 1
        },
        {
          "attributeId": "RMA68",
          "quantity": 1
        },
        {
          "attributeId": "RMA88",
          "quantity": 1
        }
      ],
      "nearbyAmenities": [],
      "propertyType": "PCT34",
      "bedroomConfiguration": {
        "bedrooms": [
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA86",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": true
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Living Room",
            "privateBathroom": false
          }
        ]
      },
      "checkInTime": "16:00:00",
      "checkInToTime": "20:00:00",
      "checkOutTime": "10:00:00",
      "currency": "EUR",
      "policy": {
        "internetPolicy": {
          "accessInternet": true,
          "kindOfInternet": "WiFi",
          "availableInternet": "AllAreas",
          "chargeInternet": "Free"
        },
        "parkingPolicy": {
          "accessParking": true,
          "locatedParking": "OnSite",
          "privateParking": true,
          "chargeParking": "$ 150",
          "timeCostParking": "PerStay",
          "necessaryReservationParking": "NotPossible"
        },
        "petPolicy": {
          "allowedPets": "Allowed",
          "chargePets": "Free"
        },
        "childrenAllowed": true,
        "smokingAllowed": false
      },
      "location": {
        "postalCode": "60606",
        "country": "US",
        "region": "Illinois",
        "city": "Chicago",
        "street": "210 North Wells Street",
        "zipCode9": "60606-1330"
      },
      "supportedLosRates": false
    }
  ]
}

Updateproduct

This function allows a logged in user to update product details.

Request parameters and request example will be the same as in the create product API. The only field that must be added is the product id.

You need to have all other parameters which were used in the create API call that you want to keep (AltID can’t be updated). Everything that you do not send as an update will be deleted (overwritten).

Response parameters and response examples are the same as in the create product API.

async updateproduct(
  contentType: string,
  body: CreateUpdatePropertyRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<Productresponse>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body CreateUpdatePropertyRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

Productresponse

Example Usage
const contentType = 'Content-Type2';
const bodyDataNotesDescriptionTexts: Text[] = [];

const bodyDataNotesDescriptiontexts0: Text = {
  language: 'EN',
  value: 'Main description on EN!',
};

bodyDataNotesDescriptionTexts[0] = bodyDataNotesDescriptiontexts0;

const bodyDataNotesDescriptiontexts1: Text = {
  language: 'ES',
  value: 'Main description on ES!',
};

bodyDataNotesDescriptionTexts[1] = bodyDataNotesDescriptiontexts1;

const bodyDataNotesDescription: DescriptionTextModel = {
  texts: bodyDataNotesDescriptionTexts,
};

const bodyDataNotesHouseRulesTexts: Text[] = [];

const bodyDataNotesHouseRulestexts0: Text = {
  language: 'EN',
  value: 'House Rules on EN!',
};

bodyDataNotesHouseRulesTexts[0] = bodyDataNotesHouseRulestexts0;

const bodyDataNotesHouseRulestexts1: Text = {
  language: 'SR',
  value: 'House Rules on SR!',
};

bodyDataNotesHouseRulesTexts[1] = bodyDataNotesHouseRulestexts1;

const bodyDataNotesHouseRules: DescriptionTextModel = {
  texts: bodyDataNotesHouseRulesTexts,
};

const bodyDataNotesShortDescriptionTexts: Text[] = [];

const bodyDataNotesShortDescriptiontexts0: Text = {
  language: 'EN',
  value: 'Short description on EN!',
};

bodyDataNotesShortDescriptionTexts[0] = bodyDataNotesShortDescriptiontexts0;

const bodyDataNotesShortDescriptiontexts1: Text = {
  language: 'ES',
  value: 'short description on ES!',
};

bodyDataNotesShortDescriptionTexts[1] = bodyDataNotesShortDescriptiontexts1;

const bodyDataNotesShortDescription: DescriptionTextModel = {
  texts: bodyDataNotesShortDescriptionTexts,
};

const bodyDataNotes: Notes = {
  description: bodyDataNotesDescription,
};
bodyDataNotes.houseRules = bodyDataNotesHouseRules;
bodyDataNotes.shortDescription = bodyDataNotesShortDescription;

const bodyDataAttributesWithQuantity: AttributesWithQuantity[] = [];

const bodyDataattributesWithQuantity0: AttributesWithQuantity = {
  attributeId: 'HAC312',
  quantity: 1,
};

bodyDataAttributesWithQuantity[0] = bodyDataattributesWithQuantity0;

const bodyDataattributesWithQuantity1: AttributesWithQuantity = {
  attributeId: 'RMA107',
  quantity: 1,
};

bodyDataAttributesWithQuantity[1] = bodyDataattributesWithQuantity1;

const bodyDataattributesWithQuantity2: AttributesWithQuantity = {
  attributeId: 'RMA11',
  quantity: 1,
};

bodyDataAttributesWithQuantity[2] = bodyDataattributesWithQuantity2;

const bodyDataattributesWithQuantity3: AttributesWithQuantity = {
  attributeId: 'RMA149',
  quantity: 1,
};

bodyDataAttributesWithQuantity[3] = bodyDataattributesWithQuantity3;

const bodyDataattributesWithQuantity4: AttributesWithQuantity = {
  attributeId: 'RMA163',
  quantity: 1,
};

bodyDataAttributesWithQuantity[4] = bodyDataattributesWithQuantity4;

const bodyDataattributesWithQuantity5: AttributesWithQuantity = {
  attributeId: 'RMA18',
  quantity: 1,
};

bodyDataAttributesWithQuantity[5] = bodyDataattributesWithQuantity5;

const bodyDataattributesWithQuantity6: AttributesWithQuantity = {
  attributeId: 'RMA19',
  quantity: 1,
};

bodyDataAttributesWithQuantity[6] = bodyDataattributesWithQuantity6;

const bodyDataattributesWithQuantity7: AttributesWithQuantity = {
  attributeId: 'RMA251',
  quantity: 1,
};

bodyDataAttributesWithQuantity[7] = bodyDataattributesWithQuantity7;

const bodyDataattributesWithQuantity8: AttributesWithQuantity = {
  attributeId: 'RMA273',
  quantity: 1,
};

bodyDataAttributesWithQuantity[8] = bodyDataattributesWithQuantity8;

const bodyDataattributesWithQuantity9: AttributesWithQuantity = {
  attributeId: 'RMA32',
  quantity: 1,
};

bodyDataAttributesWithQuantity[9] = bodyDataattributesWithQuantity9;

const bodyDataattributesWithQuantity10: AttributesWithQuantity = {
  attributeId: 'RMA41',
  quantity: 1,
};

bodyDataAttributesWithQuantity[10] = bodyDataattributesWithQuantity10;

const bodyDataattributesWithQuantity11: AttributesWithQuantity = {
  attributeId: 'RMA5085',
  quantity: 1,
};

bodyDataAttributesWithQuantity[11] = bodyDataattributesWithQuantity11;

const bodyDataattributesWithQuantity12: AttributesWithQuantity = {
  attributeId: 'RMA59',
  quantity: 1,
};

bodyDataAttributesWithQuantity[12] = bodyDataattributesWithQuantity12;

const bodyDataattributesWithQuantity13: AttributesWithQuantity = {
  attributeId: 'RMA6058',
  quantity: 1,
};

bodyDataAttributesWithQuantity[13] = bodyDataattributesWithQuantity13;

const bodyDataattributesWithQuantity14: AttributesWithQuantity = {
  attributeId: 'RMA68',
  quantity: 1,
};

bodyDataAttributesWithQuantity[14] = bodyDataattributesWithQuantity14;

const bodyDataattributesWithQuantity15: AttributesWithQuantity = {
  attributeId: 'RMA88',
  quantity: 1,
};

bodyDataAttributesWithQuantity[15] = bodyDataattributesWithQuantity15;

const bodyDataBedroomConfigurationBedrooms: Bedroom[] = [];

const bodyDataBedroomConfigurationbedrooms0BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms0Bedsbed0: Bed = {
  bedType: 'RMA113',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms0BedsBed[0] = bodyDataBedroomConfigurationbedrooms0Bedsbed0;

const bodyDataBedroomConfigurationbedrooms0Bedsbed1: Bed = {
  bedType: 'RMA58',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms0BedsBed[1] = bodyDataBedroomConfigurationbedrooms0Bedsbed1;

const bodyDataBedroomConfigurationbedrooms0Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms0BedsBed,
};

const bodyDataBedroomConfigurationbedrooms0: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms0Beds,
  type: 'Bedroom',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[0] = bodyDataBedroomConfigurationbedrooms0;

const bodyDataBedroomConfigurationbedrooms1BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms1Bedsbed0: Bed = {
  bedType: 'RMA113',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms1BedsBed[0] = bodyDataBedroomConfigurationbedrooms1Bedsbed0;

const bodyDataBedroomConfigurationbedrooms1Bedsbed1: Bed = {
  bedType: 'RMA58',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms1BedsBed[1] = bodyDataBedroomConfigurationbedrooms1Bedsbed1;

const bodyDataBedroomConfigurationbedrooms1Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms1BedsBed,
};

const bodyDataBedroomConfigurationbedrooms1: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms1Beds,
  type: 'Bedroom',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[1] = bodyDataBedroomConfigurationbedrooms1;

const bodyDataBedroomConfigurationbedrooms2BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms2Bedsbed0: Bed = {
  bedType: 'RMA113',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms2BedsBed[0] = bodyDataBedroomConfigurationbedrooms2Bedsbed0;

const bodyDataBedroomConfigurationbedrooms2Bedsbed1: Bed = {
  bedType: 'RMA86',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms2BedsBed[1] = bodyDataBedroomConfigurationbedrooms2Bedsbed1;

const bodyDataBedroomConfigurationbedrooms2Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms2BedsBed,
};

const bodyDataBedroomConfigurationbedrooms2: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms2Beds,
  type: 'Bedroom',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[2] = bodyDataBedroomConfigurationbedrooms2;

const bodyDataBedroomConfigurationbedrooms3BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms3Bedsbed0: Bed = {
  bedType: 'RMA113',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms3BedsBed[0] = bodyDataBedroomConfigurationbedrooms3Bedsbed0;

const bodyDataBedroomConfigurationbedrooms3Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms3BedsBed,
};

const bodyDataBedroomConfigurationbedrooms3: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms3Beds,
  type: 'Bedroom',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[3] = bodyDataBedroomConfigurationbedrooms3;

const bodyDataBedroomConfigurationbedrooms4BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms4Bedsbed0: Bed = {
  bedType: 'RMA113',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms4BedsBed[0] = bodyDataBedroomConfigurationbedrooms4Bedsbed0;

const bodyDataBedroomConfigurationbedrooms4Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms4BedsBed,
};

const bodyDataBedroomConfigurationbedrooms4: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms4Beds,
  type: 'Bedroom',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[4] = bodyDataBedroomConfigurationbedrooms4;

const bodyDataBedroomConfigurationbedrooms5BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms5Bedsbed0: Bed = {
  bedType: 'RMA58',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms5BedsBed[0] = bodyDataBedroomConfigurationbedrooms5Bedsbed0;

const bodyDataBedroomConfigurationbedrooms5Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms5BedsBed,
};

const bodyDataBedroomConfigurationbedrooms5: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms5Beds,
  type: 'Bedroom',
  privateBathroom: true,
};

bodyDataBedroomConfigurationBedrooms[5] = bodyDataBedroomConfigurationbedrooms5;

const bodyDataBedroomConfigurationbedrooms6BedsBed: Bed[] = [];

const bodyDataBedroomConfigurationbedrooms6Bedsbed0: Bed = {
  bedType: 'RMA58',
  count: 1,
};

bodyDataBedroomConfigurationbedrooms6BedsBed[0] = bodyDataBedroomConfigurationbedrooms6Bedsbed0;

const bodyDataBedroomConfigurationbedrooms6Beds: Beds = {
  bed: bodyDataBedroomConfigurationbedrooms6BedsBed,
};

const bodyDataBedroomConfigurationbedrooms6: Bedroom = {
  beds: bodyDataBedroomConfigurationbedrooms6Beds,
  type: 'Living Room',
  privateBathroom: false,
};

bodyDataBedroomConfigurationBedrooms[6] = bodyDataBedroomConfigurationbedrooms6;

const bodyDataBedroomConfiguration: BedroomConfiguration = {
  bedrooms: bodyDataBedroomConfigurationBedrooms,
};

const bodyDataPolicyInternetPolicy: InternetPolicy = {
  accessInternet: true,
};
bodyDataPolicyInternetPolicy.kindOfInternet = 'WiFi';
bodyDataPolicyInternetPolicy.availableInternet = 'AllAreas';
bodyDataPolicyInternetPolicy.chargeInternet = 'Free';

const bodyDataPolicyParkingPolicy: ParkingPolicy = {
  accessParking: true,
};
bodyDataPolicyParkingPolicy.locatedParking = 'OnSite';
bodyDataPolicyParkingPolicy.privateParking = true;
bodyDataPolicyParkingPolicy.chargeParking = '$ 150';
bodyDataPolicyParkingPolicy.timeCostParking = 'PerStay';
bodyDataPolicyParkingPolicy.necessaryReservationParking = 'NotPossible';

const bodyDataPolicyPetPolicy: PetPolicy = {
  allowedPets: 'Allowed',
};
bodyDataPolicyPetPolicy.chargePets = 'Free';

const bodyDataPolicy: Policy = {
  childrenAllowed: true,
  smokingAllowed: false,
};
bodyDataPolicy.internetPolicy = bodyDataPolicyInternetPolicy;
bodyDataPolicy.parkingPolicy = bodyDataPolicyParkingPolicy;
bodyDataPolicy.petPolicy = bodyDataPolicyPetPolicy;

const bodyDataLocation: Location = {
  postalCode: '60606',
  country: 'US',
  region: 'Illinois',
  city: 'Chicago',
  street: '210 North Wells Street',
  zipCode9: '60606-1330',
};

const bodyData: Property = {
  name: 'Test product',
  rooms: 5,
  bathrooms: 4,
  persons: 10,
  propertyType: 'PCT34',
  currency: 'EUR',
  supportedLosRates: false,
};
bodyData.toilets = 2;
bodyData.totalBeds = 6;
bodyData.space = 113.76;
bodyData.spaceUnit = 'SQ_FT';
bodyData.childs = 2;
bodyData.latitude = 41.886125;
bodyData.longitude = -87.634233;
bodyData.livingRoom = 2;
bodyData.notes = bodyDataNotes;
bodyData.attributesWithQuantity = bodyDataAttributesWithQuantity;
bodyData.bedroomConfiguration = bodyDataBedroomConfiguration;
bodyData.checkInTime = '16:00:00';
bodyData.checkInToTime = '20:00:00';
bodyData.checkOutTime = '10:00:00';
bodyData.policy = bodyDataPolicy;
bodyData.location = bodyDataLocation;

const body: CreateUpdatePropertyRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await productController.updateproduct(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "name": "Name Updated",
      "id": 1235124634,
      "supplierId": 61692799,
      "rooms": 3,
      "bathrooms": 6,
      "toilets": 6,
      "totalBeds": 6,
      "space": 66,
      "spaceUnit": "SQ_M",
      "persons": 6,
      "childs": 6,
      "latitude": 41.8860812,
      "longitude": -87.634233,
      "livingRoom": 6,
      "notes": {
        "description": {
          "texts": [
            {
              "language": "FR",
              "value": "Main description in FR!"
            },
            {
              "language": "SR",
              "value": "Main description in RO!"
            }
          ]
        },
        "houseRules": {
          "texts": [
            {
              "language": "RO",
              "value": "House Rules in RO!"
            },
            {
              "language": "SK",
              "value": "House Rules in SK!"
            }
          ]
        }
      },
      "attributesWithQuantity": [
        {
          "attributeId": "RMA149",
          "quantity": 1
        }
      ],
      "nearbyAmenities": [
        {
          "attributeId": "ACC203",
          "distance": 3
        }
      ],
      "propertyType": "PCT101",
      "bedroomConfiguration": {
        "bedrooms": [
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA6118",
                  "count": 2
                },
                {
                  "bedType": "RMA6120",
                  "count": 4
                }
              ]
            },
            "type": "Living Room",
            "privateBathroom": true
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA102",
                  "count": 2
                },
                {
                  "bedType": "RMA58",
                  "count": 2
                },
                {
                  "bedType": "RMA6119",
                  "count": 3
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": true
          }
        ]
      },
      "checkInTime": "17:00:00",
      "checkInToTime": "21:00:00",
      "checkOutTime": "11:00:00",
      "currency": "RSD",
      "policy": {
        "internetPolicy": {
          "accessInternet": true,
          "kindOfInternet": "Wired",
          "availableInternet": "SomeRooms",
          "chargeInternet": "$ 1000"
        },
        "parkingPolicy": {
          "accessParking": true,
          "locatedParking": "Nearby",
          "privateParking": false,
          "chargeParking": "$ 100",
          "timeCostParking": "PerHour",
          "necessaryReservationParking": "NotPossible"
        },
        "petPolicy": {
          "allowedPets": "NotAllowed",
          "chargePets": "$ 10"
        },
        "childrenAllowed": false,
        "smokingAllowed": false
      },
      "location": {
        "postalCode": "60606",
        "country": "US",
        "region": "Illinois",
        "city": "Chicago",
        "street": "210 North Wells Street",
        "zipCode9": "60606-1330"
      },
      "supportedLosRates": true
    }
  ]
}

Deletelistproduct

This function allows logged in user to delete list of products.

async deletelistproduct(
  contentType: string,
  body: PropertyListRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body PropertyListRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const contentType = 'Content-Type2';
const bodyData: number[] = [1235124636, 1235124637];
const body: PropertyListRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await productController.deletelistproduct(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Product with ids [1235124636, 1235124637] was deleted",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Getproductby ID

This function allows logged in user to get a specific product.

async getproductbyID(
  productId: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<Productresponse>>
Parameters
Parameter Type Tags Description
productId string Template, Required Id of the property
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

Productresponse

Example Usage
const productId = 'productId6';
try {
  const { result, ...httpResponse } = await productController.getproductbyID(productId);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "name": "Apimatic Test",
      "id": 1235124634,
      "supplierId": 61692799,
      "rooms": 5,
      "bathrooms": 4,
      "toilets": 2,
      "totalBeds": 6,
      "space": 111,
      "spaceUnit": "SQ_FT",
      "persons": 10,
      "childs": 2,
      "latitude": 41.886125,
      "longitude": -87.634233,
      "livingRoom": 2,
      "notes": {
        "description": {
          "texts": [
            {
              "language": "EN",
              "value": "Main description on EN!"
            },
            {
              "language": "ES",
              "value": "Main description on ES!"
            }
          ]
        },
        "houseRules": {
          "texts": [
            {
              "language": "EN",
              "value": "House Rules on EN!"
            },
            {
              "language": "SR",
              "value": "House Rules on SR!"
            }
          ]
        }
      },
      "attributesWithQuantity": [
        {
          "attributeId": "HAC312",
          "quantity": 1
        },
        {
          "attributeId": "RMA107",
          "quantity": 1
        },
        {
          "attributeId": "RMA11",
          "quantity": 1
        },
        {
          "attributeId": "RMA149",
          "quantity": 1
        },
        {
          "attributeId": "RMA163",
          "quantity": 1
        },
        {
          "attributeId": "RMA18",
          "quantity": 1
        },
        {
          "attributeId": "RMA19",
          "quantity": 1
        },
        {
          "attributeId": "RMA251",
          "quantity": 1
        },
        {
          "attributeId": "RMA273",
          "quantity": 1
        },
        {
          "attributeId": "RMA32",
          "quantity": 1
        },
        {
          "attributeId": "RMA41",
          "quantity": 1
        },
        {
          "attributeId": "RMA5085",
          "quantity": 1
        },
        {
          "attributeId": "RMA59",
          "quantity": 1
        },
        {
          "attributeId": "RMA6058",
          "quantity": 1
        },
        {
          "attributeId": "RMA68",
          "quantity": 1
        },
        {
          "attributeId": "RMA88",
          "quantity": 1
        }
      ],
      "nearbyAmenities": [],
      "propertyType": "PCT34",
      "bedroomConfiguration": {
        "bedrooms": [
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA86",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": true
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Living Room",
            "privateBathroom": false
          }
        ]
      },
      "checkInTime": "16:00:00",
      "checkInToTime": "20:00:00",
      "checkOutTime": "10:00:00",
      "currency": "EUR",
      "policy": {
        "internetPolicy": {
          "accessInternet": true,
          "kindOfInternet": "WiFi",
          "availableInternet": "AllAreas",
          "chargeInternet": "Free"
        },
        "parkingPolicy": {
          "accessParking": true,
          "locatedParking": "OnSite",
          "privateParking": true,
          "chargeParking": "$ 150",
          "timeCostParking": "PerStay",
          "necessaryReservationParking": "NotPossible"
        },
        "petPolicy": {
          "allowedPets": "Allowed",
          "chargePets": "Free"
        },
        "childrenAllowed": true,
        "smokingAllowed": false
      },
      "location": {
        "postalCode": "60606",
        "country": "US",
        "region": "Illinois",
        "city": "Chicago",
        "street": "210 North Wells Street",
        "zipCode9": "60606-1330"
      },
      "supportedLosRates": false
    }
  ]
}

Deleteproduct

This function allows the logged in user to delete product.

async deleteproduct(
  productId: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
productId string Template, Required Property ID
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const productId = 'productId6';
try {
  const { result, ...httpResponse } = await productController.deleteproduct(productId);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Product with id 1235124636 was deleted",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Activationlistproduct

This function allows logged in user to activate a list of products in BookingPal. Products MUST be activated successfully before they can be distributed to any channel.

Note: When a product is successfully activated it will be queued for the internal BP validation function and you will receive async push messages when the validation is completed - like it is described in the Validation section.

async activationlistproduct(
  contentType: string,
  body: PropertyListRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body PropertyListRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const contentType = 'Content-Type2';
const bodyData: number[] = [1235124636, 1235124637];
const body: PropertyListRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await productController.activationlistproduct(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Property with ids [1235124634, 1235124636] will be put in Queue for validation. Please expect response over push message.",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Deactivationlistproduct

This function allows the logged in user to deactivate a list of products. This function will also close the calendars on every channel the products have been listed on.

async deactivationlistproduct(
  contentType: string,
  body: PropertyListRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body PropertyListRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const contentType = 'Content-Type2';
const bodyData: number[] = [1235124636, 1235124637];
const body: PropertyListRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await productController.deactivationlistproduct(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Product with ids [1235124634, 1235124636] are Deactivated!",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Images

Overview

Every API call in this section should be with PM credentials.

This is a list of functions to work with property images. Important note is that upload or delete images will be done over an automatic cron job. So it will be done some time after your call, depending on the number of requests which are waiting before your request. Important note: Please make sure to put full URL to image, and to not use some links which will forward our system to another link since images might not be imported.

Getimagelistbyproduct ID

This function allows logged in user to get image list for the existing product

async getimagelistbyproductID(
  productId: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<GetimagelistbyproductID>>
Parameters
Parameter Type Tags Description
productId string Template, Required ID of the property
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

GetimagelistbyproductID

Example Usage
const productId = 'productId6';
try {
  const { result, ...httpResponse } = await imagesController.getimagelistbyproductID(productId);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "images": [
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069098.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069098.jpg",
          "sort": 1
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069099.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069099.jpg",
          "sort": 2
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069100.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069100.jpg",
          "sort": 3
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069101.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069101.jpg",
          "sort": 4
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069102.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069102.jpg",
          "sort": 5
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069103.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069103.jpg",
          "sort": 6
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069104.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069104.jpg",
          "sort": 7
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069105.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069105.jpg",
          "sort": 8
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069106.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069106.jpg",
          "sort": 9
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069107.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069107.jpg",
          "sort": 10
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069108.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069108.jpg",
          "sort": 11
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069109.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069109.jpg",
          "sort": 12
        }
      ]
    }
  ]
}

Deleteallimagesperproperty

This function allows logged in user to delete images.

async deleteallimagesperproperty(
  contentType: string,
  productId: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
productId string Template, Required ID of property for which you want to delete all images
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const contentType = 'Content-Type2';
const productId = 'productId6';
try {
  const { result, ...httpResponse } = await imagesController.deleteallimagesperproperty(contentType, productId);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Your request was received and put in queue",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": []
}

Createimages

This function allows the logged in user to upload images for the existing product. Every new image will be sorted to the end. The first image sent will be used as the “Main Image”. (Image re-ordering can also be done within the BookingPal platform manually by users)

async createimages(
  contentType: string,
  body: CreateimagesRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body CreateimagesRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const contentType = 'Content-Type2';
const bodyDataImageTags: ImageTagsEnum[] = [4, 5, 6];
const bodyDataImage: Image = {
  url: 'http://aff.bstatic.com/images/hotel/max500/110/11069097.jpg',
};
bodyDataImage.tags = bodyDataImageTags;

const bodyData: ImageUrlforCreate = {
  productId: 1235124634,
  image: bodyDataImage,
};

const body: CreateimagesRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await imagesController.createimages(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Your request was received and put in queue",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Deletelistofimages

This function allows the logged in user to delete image(s) from the existing product.

async deletelistofimages(
  contentType: string,
  body: DeletelistofimagesRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body DeletelistofimagesRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const contentType = 'Content-Type2';
const bodyDataImages: Image[] = [];

const bodyDataimages0: Image = {
  url: 'https://aff.bstatic.com/images/hotel/max500/110/11069102.jpg',
};

bodyDataImages[0] = bodyDataimages0;

const bodyData: ImageUrlList = {
  productId: 1235124634,
  images: bodyDataImages,
};

const body: DeletelistofimagesRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await imagesController.deletelistofimages(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Images are sent for processing!",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": []
}

Rates and Availability

Overview

Every API call in this section should be with PM credentials.

Getratesandavailabilityproduct ID

This function allows logged in users to get rates and availability for the specific product. Every API call in this section should be with PM credentials.

async getratesandavailabilityproductID(
  contentType: string,
  productId: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<RatesAvailabilityresponse>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
productId string Template, Required ID of the property
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

RatesAvailabilityresponse

Example Usage
const contentType = 'Content-Type2';
const productId = 'productId6';
try {
  const { result, ...httpResponse } = await ratesAndAvailabilityController.getratesandavailabilityproductID(contentType, productId);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "leadTime": 2,
      "rates": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-01-25",
          "amount": 137
        }
      ],
      "minStays": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-01-25",
          "minStay": 5
        }
      ],
      "maxStays": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-01-25",
          "maxStay": 20
        }
      ],
      "restrictions": [
        {
          "beginDate": "2020-03-23",
          "endDate": "2021-01-25",
          "checkIn": {
            "monday": false,
            "tuesday": false,
            "wednesday": false,
            "thursday": false,
            "friday": false,
            "saturday": true,
            "sunday": true
          },
          "checkOut": {
            "monday": false,
            "tuesday": false,
            "wednesday": false,
            "thursday": false,
            "friday": false,
            "saturday": true,
            "sunday": true
          }
        },
        {
          "beginDate": "2021-01-25",
          "endDate": "2021-02-01",
          "checkIn": {
            "monday": false,
            "tuesday": true,
            "wednesday": true,
            "thursday": true,
            "friday": true,
            "saturday": true,
            "sunday": true
          },
          "checkOut": {
            "monday": false,
            "tuesday": true,
            "wednesday": true,
            "thursday": true,
            "friday": true,
            "saturday": true,
            "sunday": true
          }
        },
        {
          "beginDate": "2020-03-16",
          "endDate": "2020-03-23",
          "checkIn": {
            "monday": true,
            "tuesday": false,
            "wednesday": false,
            "thursday": false,
            "friday": false,
            "saturday": true,
            "sunday": true
          },
          "checkOut": {
            "monday": true,
            "tuesday": false,
            "wednesday": false,
            "thursday": false,
            "friday": false,
            "saturday": true,
            "sunday": true
          }
        }
      ],
      "availabilities": [
        {
          "beginDate": "2020-04-20",
          "endDate": "2020-04-25",
          "availability": false
        }
      ]
    }
  ]
}

Createandupdateratesandavailability

Create and update calls are the same. When data is sent, if the data already exists in BookingPal - that data will be updated. Otherwise it will be created (inserted). If you want to update data for some period, you should just send data for these dates. All other data (for other dates) will remain untouched. This allows you to update only changed periods and we will not delete previously sent data for other periods.

In the case of a first data push, all data for one property should be sent in one request. When making updates or changes to existing data, then all changed data should be sent in one request.

Note: if property is set to use LOS rates (supportedLosRates) - only field leadTime, array availableCount and availability can be updated in this API call (for MLT property). For SGL property only leadTime and availability can be updated. This API call can not be used for OWN properties. Important: Maximum allowed end date in any data type is 3 years in future.

Every API call in this section should be with PM credentials.

async createandupdateratesandavailability(
  contentType: string,
  body: CreateandupdateratesandavailabilityRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<RatesAvailabilityresponse>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body CreateandupdateratesandavailabilityRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

RatesAvailabilityresponse

Example Usage
const contentType = 'Content-Type2';
const bodyDataRates: Rate[] = [];

const bodyDatarates0: Rate = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  amount: 137,
};

bodyDataRates[0] = bodyDatarates0;

const bodyDataMinStays: MinStayModel[] = [];

const bodyDataminStays0: MinStayModel = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  minStay: 5,
};

bodyDataMinStays[0] = bodyDataminStays0;

const bodyDataMaxStays: MaxStayModel[] = [];

const bodyDatamaxStays0: MaxStayModel = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  maxStay: 20,
};

bodyDataMaxStays[0] = bodyDatamaxStays0;

const bodyDataRestrictions: Restriction[] = [];

const bodyDatarestrictions0CheckIn: CheckIn = {
  monday: false,
  tuesday: false,
  wednesday: false,
  thursday: false,
  friday: false,
  saturday: true,
  sunday: true,
};

const bodyDatarestrictions0CheckOut: CheckOut = {
  monday: false,
  tuesday: false,
  wednesday: false,
  thursday: false,
  friday: false,
  saturday: true,
  sunday: true,
};

const bodyDatarestrictions0: Restriction = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  checkIn: bodyDatarestrictions0CheckIn,
  checkOut: bodyDatarestrictions0CheckOut,
};

bodyDataRestrictions[0] = bodyDatarestrictions0;

const bodyDataAvailabilities: AvailabilityModel[] = [];

const bodyDataavailabilities0: AvailabilityModel = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  availability: false,
};

bodyDataAvailabilities[0] = bodyDataavailabilities0;

const bodyDataavailabilities1: AvailabilityModel = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  availability: true,
};

bodyDataAvailabilities[1] = bodyDataavailabilities1;

const bodyDataAvailableCount: AvailableCount[] = [];

const bodyDataavailableCount0: AvailableCount = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  count: 3,
};

bodyDataAvailableCount[0] = bodyDataavailableCount0;

const bodyDataavailableCount1: AvailableCount = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  count: 4,
};

bodyDataAvailableCount[1] = bodyDataavailableCount1;

const bodyData: RatesAvailability = {
  productId: 1235124634,
};
bodyData.leadTime = 2;
bodyData.rates = bodyDataRates;
bodyData.minStays = bodyDataMinStays;
bodyData.maxStays = bodyDataMaxStays;
bodyData.restrictions = bodyDataRestrictions;
bodyData.availabilities = bodyDataAvailabilities;
bodyData.availableCount = bodyDataAvailableCount;

const body: CreateandupdateratesandavailabilityRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await ratesAndAvailabilityController.createandupdateratesandavailability(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "This product is SGL and can't have availableCount!",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "leadTime": 2,
      "rates": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-01-25",
          "amount": 137
        }
      ],
      "minStays": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-01-25",
          "minStay": 5
        }
      ],
      "maxStays": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-01-25",
          "maxStay": 20
        }
      ],
      "restrictions": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-01-25",
          "checkIn": {
            "monday": false,
            "tuesday": false,
            "wednesday": false,
            "thursday": false,
            "friday": false,
            "saturday": true,
            "sunday": true
          },
          "checkOut": {
            "monday": false,
            "tuesday": false,
            "wednesday": false,
            "thursday": false,
            "friday": false,
            "saturday": true,
            "sunday": true
          }
        }
      ],
      "availabilities": [
        {
          "beginDate": "2020-04-20",
          "endDate": "2020-04-25",
          "availability": false
        },
        {
          "beginDate": "2020-04-26",
          "endDate": "2020-04-28",
          "availability": true
        }
      ],
      "availableCount": [
        {
          "beginDate": "2020-04-20",
          "endDate": "2020-04-25",
          "count": 3
        },
        {
          "beginDate": "2020-04-26",
          "endDate": "2020-04-28",
          "count": 4
        }
      ]
    }
  ]
}

LOS Pricing

Overview

Every API call in this section should be with PM credentials.

Createandupdate LOS Lengthof Stay Pricing

Introduction: You can use this function if you would like to send BookingPal different prices for various Length of Stays with the same starting date.

LOS Pricing will be a different method in sending rates to BookingPal and is defined as pricing sent for a specific “Stay ranges”, In the LOS method you are setting specific rates based on the Length of Stay. (This is a different way to push rates to BookingPal. )

For date periods of 1 to 30 days a specific rate need to enter check-in date and a rate for every possible reservation starting at that date (i.e. 1 day, 2 days, up to 30 days, 30 days is the maximum value allowed for this field) you will need to send BookingPal total rate value for that period.

Maximum LOS number of days is 30. All other LOS values after 30 will not be saved. If you do not support reservation for some specific number of dates - send value 0.00 for this LOS number of days. Keep in mind that all values not sent for any specific check-in date will be considered as 0, and reservation for this number of days will not be possible. Field maxGuests allows you to set different rates per different number of guests. If you do not have different rate values per number of guests - you can send the value for maximum number of guests, and all others will have the same rate.

For MLT properties which supported LOS price for update number of count you can use it rates and availability API.

It is suggested to manage availability over “rates and availability” API call, and to close/open dates over this call.

Note: this API call can be used only if you set supportedLosRates = true on the product. Otherwise using this API for specific product is not possible.

async createandupdateLOSLengthofStayPricing(
  contentType: string,
  body: CreateandupdateLOSRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<LOSratesresponse>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body CreateandupdateLOSRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

LOSratesresponse

Example Usage
const contentType = 'Content-Type2';
const bodyDataLosRates: LosRate[] = [];

const bodyDatalosRates0LosValue: number[] = [100, 150, 200, 250, 300, 0, 0, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 550, 510, 570, 520, 500, 510, 590, 121, 122, 123];
const bodyDatalosRates0: LosRate = {
  checkInDate: '2016-03-13T12:52:32.123Z',
  maxGuests: 3,
  losValue: bodyDatalosRates0LosValue,
};

bodyDataLosRates[0] = bodyDatalosRates0;

const bodyDatalosRates1LosValue: number[] = [111, 112, 123, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 550, 510, 570, 520, 500, 510, 590, 580, 560, 540];
const bodyDatalosRates1: LosRate = {
  checkInDate: '2016-03-13T12:52:32.123Z',
  maxGuests: 4,
  losValue: bodyDatalosRates1LosValue,
};

bodyDataLosRates[1] = bodyDatalosRates1;

const bodyData: LosRatesProduct = {
  productId: 1235124634,
  losRates: bodyDataLosRates,
};

const body: CreateandupdateLOSRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await lOSPricingController.createandupdateLOSLengthofStayPricing(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "losRates": [
        {
          "checkInDate": "2020-05-21",
          "currency": "RSD",
          "maxGuests": 4,
          "losValue": [
            111,
            112,
            123,
            250,
            300,
            350,
            400,
            450,
            500,
            550,
            600,
            650,
            700,
            750,
            800,
            850,
            900,
            950,
            550,
            510,
            570,
            520,
            500,
            510,
            590,
            580,
            560,
            540,
            0,
            0
          ]
        },
        {
          "checkInDate": "2020-06-20",
          "currency": "RSD",
          "maxGuests": 3,
          "losValue": [
            100,
            150,
            200,
            250,
            300,
            0,
            0,
            450,
            500,
            550,
            600,
            650,
            700,
            750,
            800,
            850,
            900,
            950,
            550,
            510,
            570,
            520,
            500,
            510,
            590,
            121,
            122,
            123,
            0,
            0
          ]
        }
      ]
    }
  ]
}

Getlospriceslistbyproduct Id

This function allows the logged in user to get a LOS rate for property.

async getlospriceslistbyproductId(
  productId: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<LOSratesresponse>>
Parameters
Parameter Type Tags Description
productId string Template, Required Property ID in BookingPal
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

LOSratesresponse

Example Usage
const productId = 'productId6';
try {
  const { result, ...httpResponse } = await lOSPricingController.getlospriceslistbyproductId(productId);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "losRates": [
        {
          "checkInDate": "2020-05-21",
          "currency": "RSD",
          "maxGuests": 4,
          "losValue": [
            111,
            112,
            123,
            250,
            300,
            350,
            400,
            450,
            500,
            550,
            600,
            650,
            700,
            750,
            800,
            850,
            900,
            950,
            550,
            510,
            570,
            520,
            500,
            510,
            590,
            580,
            560,
            540,
            0,
            0
          ]
        },
        {
          "checkInDate": "2020-06-20",
          "currency": "RSD",
          "maxGuests": 3,
          "losValue": [
            100,
            150,
            200,
            250,
            300,
            0,
            0,
            450,
            500,
            550,
            600,
            650,
            700,
            750,
            800,
            850,
            900,
            950,
            550,
            510,
            570,
            520,
            500,
            510,
            590,
            121,
            122,
            123,
            0,
            0
          ]
        }
      ]
    }
  ]
}

Fee and Tax

Overview

Every API call in this section should be with PM credentials.

Getfeeandtaxlistbyproduct Id

This function allows the logged in user to get a fee list for the specific product.

async getfeeandtaxlistbyproductId(
  productId: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<FeeTaxResponse>>
Parameters
Parameter Type Tags Description
productId string Template, Required ID of the property
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

FeeTaxResponse

Example Usage
const productId = 'productId6';
try {
  const { result, ...httpResponse } = await feeAndTaxController.getfeeandtaxlistbyproductId(productId);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "fees": [
        {
          "beginDate": "2020-02-26",
          "endDate": "2020-12-12",
          "entityType": "OPTIONAL",
          "feeType": "GENERAL",
          "option": 3,
          "name": "RetestFeeHF",
          "taxType": "TAXABLE",
          "unit": "PER_DAY_PER_PERSON_EXTRA",
          "value": 88,
          "valueType": "PERCENT"
        }
      ],
      "taxes": [
        {
          "name": "Tax reTestAT",
          "type": "SalesTaxIncluded",
          "value": 55,
          "altId": "11"
        }
      ]
    }
  ]
}

Createfeeandtax

This function allows the logged in user to set fees (i.e. cleaning fee, damage waiver, extra bed, extra person etc.) and taxes for the specific product. Here, you always need to send all fees and taxes for one property. All fees or taxes which were in our system for that property and which are not in the new request will be deleted. Taxes in the BookingPal system will always have percent value.

If you want to delete all fees and/or taxes for one property (if you do not have fees and taxes in your system for one property) send an empty list of fees and.or taxes. In short when you use this request you need to always send us a full list of fees and taxes per property, since we will do a full update.

async createfeeandtax(
  contentType: string,
  body: CreatefeeandtaxRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<FeeTaxResponse>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body CreatefeeandtaxRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

FeeTaxResponse

Example Usage
const contentType = 'Content-Type2';
const bodyDataFees: Fee[] = [];

const bodyDatafees0: Fee = {
  entityType: 'OPTIONAL',
  feeType: 'GENERAL',
  name: 'RetestFeeHF',
  unit: 'PER_DAY_PER_PERSON_EXTRA',
  value: 178.13,
  valueType: 'PERCENT',
};
bodyDatafees0.beginDate = '2016-03-13T12:52:32.123Z';
bodyDatafees0.endDate = '2016-03-13T12:52:32.123Z';
bodyDatafees0.option = 3;
bodyDatafees0.taxType = 'TAXABLE';

bodyDataFees[0] = bodyDatafees0;

const bodyDataTaxes: Taxes[] = [];

const bodyDatataxes0: Taxes = {
  name: 'Tax reTestAT',
  value: 168.13,
};
bodyDatataxes0.type = 'SalesTaxIncluded';
bodyDatataxes0.altId = '11';

bodyDataTaxes[0] = bodyDatataxes0;

const bodyData: FeeTax = {
  productId: 1235124634,
};
bodyData.fees = bodyDataFees;
bodyData.taxes = bodyDataTaxes;

const body: CreatefeeandtaxRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await feeAndTaxController.createfeeandtax(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "fees": [
        {
          "beginDate": "2020-02-26",
          "endDate": "2020-12-12",
          "entityType": "OPTIONAL",
          "feeType": "GENERAL",
          "option": 3,
          "name": "RetestFeeHF",
          "taxType": "TAXABLE",
          "unit": "PER_DAY_PER_PERSON_EXTRA",
          "value": 88,
          "valueType": "PERCENT"
        }
      ],
      "taxes": [
        {
          "name": "Tax reTestAT",
          "type": "SalesTaxIncluded",
          "value": 55,
          "altId": "11"
        }
      ]
    }
  ]
}

Fee and Tax Mandatory at the Property Level

Overview

By default in BookingPal system fees and taxes are required. So if one property does not have at least one fee or tax, the property will be Incomplete and can not be distributed. We already have the possibility to set on Property Manager level (on create / update PM API call) if fees and taxes required. These API calls now allow the PMS to set this on property level in the event where you only have some of your properties with taxes and fees and others without. Keep in mind that if you have this setup on property level we will check this setting first before checking at Property Manager level. If you have not set this at property level then we will only check the setup at Property Manager level. These API calls should be used with PM credentials.

Getfeeandtaxmandatory

This function allows the logged in user to get info about current set for all PM properties are fees/taxes set to be mandatory or not.

async getfeeandtaxmandatory(
  requestOptions?: RequestOptions
): Promise<ApiResponse<FeeTaxValidationSettingResponse>>
Parameters
Parameter Type Tags Description
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

FeeTaxValidationSettingResponse

Example Usage
try {
  const { result, ...httpResponse } = await feeAndTaxMandatoryAtThePropertyLevelController.getfeeandtaxmandatory();
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "validationSettings": [
        {
          "productId": 1235124634,
          "isFeeMandatory": false,
          "isTaxMandatory": false
        },
        {
          "productId": 1235124636,
          "isFeeMandatory": true,
          "isTaxMandatory": true
        },
        {
          "productId": 1235124637,
          "isFeeMandatory": true,
          "isTaxMandatory": true
        }
      ]
    }
  ]
}

Importorupdatefeeandtaxmandatory

This function allows the logged in user to import or update a fee and tax mandatory.

async importorupdatefeeandtaxmandatory(
  contentType: string,
  body: SetfeeandtaxvalidationsettingRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body SetfeeandtaxvalidationsettingRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const contentType = 'Content-Type2';
const bodyDataValidationSettings: FeeTaxMandatorySetting[] = [];

const bodyDatavalidationSettings0: FeeTaxMandatorySetting = {
  productId: 1235124634,
  isFeeMandatory: false,
  isTaxMandatory: false,
};

bodyDataValidationSettings[0] = bodyDatavalidationSettings0;

const bodyData: FeeTaxValidationSettings = {
  validationSettings: bodyDataValidationSettings,
};

const body: SetfeeandtaxvalidationsettingRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await feeAndTaxMandatoryAtThePropertyLevelController.importorupdatefeeandtaxmandatory(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "For product ids [1235124634] the validation settings are imported!",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Remove Validation Settings

This function allows the logged in user to remove any setup on property level and to return on default (which is that fee/taxes are mandatory). This API call will accept a list of properties.

async removeValidationSettings(
  contentType: string,
  body: PropertyListRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body PropertyListRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const contentType = 'Content-Type2';
const bodyData: number[] = [1235124636, 1235124637];
const body: PropertyListRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await feeAndTaxMandatoryAtThePropertyLevelController.removeValidationSettings(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "For product ids [1235124634] the validation settings will be removed!",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Yields

Overview

Every API call in this section should be with PM credentials.

Warning: Do not enable the Yields API if not yet certified. BookingPal will no longer certify new partners on this API.

If you are already certified to use the Yields API, no changes are required.

If your system requires the modification of a base price, please include any yields in the per night price for the applicable dates. For more advance yields and pricing strategies, please consider using length-of-stay (LOS) pricing.

Get YM Rlistbyproduct ID

This function allows the logged in user to get yield management rules list of the specific product.

async getYMRlistbyproductID(
  productId: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<Yieldresponse>>
Parameters
Parameter Type Tags Description
productId string Template, Required ID of the property
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

Yieldresponse

Example Usage
const productId = 'productId6';
try {
  const { result, ...httpResponse } = await yieldsController.getYMRlistbyproductID(productId);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "weekend": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-02-15",
          "amount": 18,
          "modifier": "DECREASE_PERCENT",
          "weekendParam": "DAYS_OF_WEEKEND_SAT_SUN"
        }
      ],
      "lengthOfStay": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-02-15",
          "amount": 34,
          "modifier": "INCREASE_AMOUNT",
          "param": 7
        }
      ],
      "dateRange": [
        {
          "beginDate": "2020-04-10",
          "endDate": "2020-04-15",
          "amount": 35,
          "modifier": "INCREASE_AMOUNT"
        },
        {
          "beginDate": "2020-05-16",
          "endDate": "2020-05-25",
          "amount": 25,
          "modifier": "INCREASE_PERCENT"
        }
      ]
    }
  ]
}

Create YMR

This function allows the logged-in user to add yield management rules for the specific product. Yield management rules can affect the final price of the property depending on some special conditions (like the length of stay, early booking, etc.). These rules automate price manipulations, on an inquiry by inquiry basis. When set criteria are met, they help maximize revenue and occupancy.

How is the price calculated? The price for a night is calculated based on the basic price and the yield management rules.

  • If no YMR: {basic price per night} = price per night
  • If YMR is set it can Increase/decrease percent or increase/decrease amount: {basic price per night} + {yield amount} = {price per night} or {basic price per night} - {yield amount} = {price per night}

The below examples will use the scenario to walk you step by step and explain how the price is calculated based on different YMRs. Let’s say that the basic price per night for 2016 is 100 USD.

This function is used also for updating yield. So if you already create a specific yield for some date - and you send a new one - we will update the yield for this date. If you need to delete a specific yield type - you can send an empty list for that type.

Important: The maximum allowed end date is 3 years in the future.

async createYMR(
  contentType: string,
  body: CreateYieldRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<Yieldresponse>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body CreateYieldRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

Yieldresponse

Example Usage
const contentType = 'Content-Type2';
const bodyDataWeekend: Yield[] = [];

const bodyDataweekend0: Yield = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  amount: 18,
  modifier: 'DECREASE_PERCENT',
};
bodyDataweekend0.weekendParam = 'DAYS_OF_WEEKEND_SAT_SUN';

bodyDataWeekend[0] = bodyDataweekend0;

const bodyDataLengthOfStay: Yield[] = [];

const bodyDatalengthOfStay0: Yield = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  amount: 34,
  modifier: 'INCREASE_AMOUNT',
};
bodyDatalengthOfStay0.param = 7;

bodyDataLengthOfStay[0] = bodyDatalengthOfStay0;

const bodyDataDateRange: Yield[] = [];

const bodyDatadateRange0: Yield = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  amount: 35,
  modifier: 'INCREASE_AMOUNT',
};

bodyDataDateRange[0] = bodyDatadateRange0;

const bodyDatadateRange1: Yield = {
  beginDate: '2016-03-13T12:52:32.123Z',
  endDate: '2016-03-13T12:52:32.123Z',
  amount: 25,
  modifier: 'INCREASE_PERCENT',
};

bodyDataDateRange[1] = bodyDatadateRange1;

const bodyData: TransportYield = {
  productId: 1235124634,
};
bodyData.weekend = bodyDataWeekend;
bodyData.lengthOfStay = bodyDataLengthOfStay;
bodyData.dateRange = bodyDataDateRange;

const body: CreateYieldRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await yieldsController.createYMR(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "weekend": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-02-15",
          "amount": 18,
          "modifier": "DECREASE_PERCENT",
          "weekendParam": "DAYS_OF_WEEKEND_SAT_SUN"
        }
      ],
      "lengthOfStay": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-02-15",
          "amount": 34,
          "modifier": "INCREASE_AMOUNT",
          "param": 7
        }
      ],
      "dateRange": [
        {
          "beginDate": "2020-04-10",
          "endDate": "2020-04-15",
          "amount": 35,
          "modifier": "INCREASE_AMOUNT"
        },
        {
          "beginDate": "2020-05-16",
          "endDate": "2020-05-25",
          "amount": 25,
          "modifier": "INCREASE_PERCENT"
        }
      ]
    }
  ]
}

Validation

Booking Pal Validationjob-Full PM

This function will allow the PMC to call the BookingPal property validation job for all properties identified which belong to the current user. Authorization token should be on PM level. Also we will run validation only for properties which are activated. If you deactivate property - we will not validate this property.

After the request you will get a response indicating if messages were processed or not. If the request is good your request for the validator job will be put into a queue. Once the request is processed, BookingPal will send an async push message per property informing the user if a property is valid or not, and if it is not valid - with reasons why the validation failed. This message will be sent on the endpoint which was entered in section Push Notifications, field asyncPush.

Note: If the property is distributed already on some channel - this property will not be moved to an Incomplete state. Also if you have property on Incomplete state because of some reason, and you update this data which causes that property is on ‘Incomplete’ property will not be moved automatically to a valid state. Instead, you should run a Validation job manually for that property or wait for our automatic validation job which we are running once per day.

To make the property ready for Onboarding you should run validation first. if the property is valid - it will be ready for onboarding. Otherwise - the property will be in Incomplete state. Also, we will run validation only for properties that are activated. If you deactivate property - we will not validate this property.

async bookingPalValidationjobFullPM(
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
try {
  const { result, ...httpResponse } = await validationController.bookingPalValidationjobFullPM();
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Your request was received and put in queue",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Booking Pal Validationjob-Listofproperties

This function will allow the PMS to call the BookingPal property validation job for a list of properties from request. These properties must belong to the current user and authorization token should be on PM level. Also, we will run validation only for properties that are activated. If you deactivate property - we will not validate this property.

async bookingPalValidationjobListofproperties(
  contentType: string,
  body: ValidationforListofpropertiesRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body ValidationforListofpropertiesRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const contentType = 'Content-Type2';
const bodyDataProductIds: number[] = [1235124634, 1235124636];
const bodyData: ValidationPropertyIDsList = {
  productIds: bodyDataProductIds,
};

const body: ValidationforListofpropertiesRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await validationController.bookingPalValidationjobListofproperties(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Your request was received and put in queue",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Testing of Message API Calls

Overview

Since API calls for messages depend on channel connections and these values will exist in BookingPal only if guests on channel create some message, these calls can work only on production. So for testing purposes we’ve built an additional endpoint with the same API calls where you will be able to test these calls.

Get Testmessagethreads

This function allows the logged in user to get all message threads or message threads with an unresponded message from guest for the whole PM. You need to use PM credentials. There is also paging as optional values. If you do not pass this value, we will return the first page and 10 threads per page.

Since API calls for messages depend on channel connections and these values will exist in BookingPal only if guests on channel create some message, these calls can work only on production. So for testing purposes we’ve built an additional endpoint with the same API calls where you will be able to test these calls.

Note: To be able to test these calls, you need to have at least 1 property, since we will in response return you messages for 1 property from your PM.

async getTestmessagethreads(
  page: number,
  limit: number,
  threadType: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<GetmessagethreadsResponse>>
Parameters
Parameter Type Tags Description
page number Query, Required -
limit number Query, Required -
threadType string Template, Required Request all threads or only threads with unanswered message {new,all}
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

GetmessagethreadsResponse

Example Usage
const page = 30;
const limit = 172;
const threadType = 'threadType6';
try {
  const { result, ...httpResponse } = await testingOfMessageAPICallsController.getTestmessagethreads(page, limit, threadType);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "threads": [
        {
          "id": 68241,
          "lastMessageSentAt": "2019-12-03 00:00:00",
          "lastMessageText": "Message KHSroelMoR",
          "channelName": "AirBnB",
          "channelABB": "ABB",
          "guestName": "Test Guest Name 2 ",
          "guestEmailAddress": "autoeelcbl@atxjarv.uri",
          "productId": 1235124634,
          "reservationId": 119557886,
          "dateFrom": "2019-12-02",
          "dateTo": "2019-12-04"
        },
        {
          "id": 68257,
          "lastMessageSentAt": "2019-12-03 00:00:00",
          "lastMessageText": "Message ytgdVvQpQm",
          "channelName": "AirBnB",
          "channelABB": "ABB",
          "guestName": "Test Guest Name 1",
          "guestEmailAddress": "autoppresf@at81.sla",
          "productId": 1235124634,
          "dateFrom": "2019-12-02",
          "dateTo": "2019-12-04"
        }
      ]
    }
  ]
}

Get Testmessagelistforspecificthread

Since API calls for messages depend on channel connections and these values will exist in BookingPal only if guests on channel create some message, these calls can work only on production. So for testing purposes, we’ve built an additional endpoint with the same API calls where you will be able to test these calls.

This function allows the logged-in user to get a list of all messages from passed thread Id. You need to use PM credentials

Note: To be able to test these calls, you need to have at least 1 property, since we will in response return you messages for 1 property from your PM.

async getTestmessagelistforspecificthread(
  threadId: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<GetmessagelistforspecificthreadResponse>>
Parameters
Parameter Type Tags Description
threadId string Template, Required ID of thread
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

GetmessagelistforspecificthreadResponse

Example Usage
const threadId = 'threadId8';
try {
  const { result, ...httpResponse } = await testingOfMessageAPICallsController.getTestmessagelistforspecificthread(threadId);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "messages": [
        {
          "message": "Test message",
          "createdAt": "2019-11-25 12:32:39",
          "user": "PROPERTY_MANAGER"
        }
      ]
    }
  ]
}

Postnew Testmessageforspecificthread

This function will allow PM to post new messages in already existing threads. Since this call is only for testing - we will not actually save these passed values.

Since API calls for messages depend on channel connections and these values will exist in BookingPal only if guests on channel create some message, these calls can work only on production. So for testing purposes, we’ve built an additional endpoint with the same API calls where you will be able to test these calls.

Note: To be able to test these calls, you need to have at least 1 property, since we will in response return to you messages for 1 property from your PM.

async postnewTestmessageforspecificthread(
  body: PostnewmessageforspecificthreadRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
body PostnewmessageforspecificthreadRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const bodyData: MessageRequestFromSupplier = {
  threadId: 5656,
  message: 'New message',
};

const body: PostnewmessageforspecificthreadRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await testingOfMessageAPICallsController.postnewTestmessageforspecificthread(body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Your request was received and put in queue",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Messaging

Getmessagethreads

This function allows the logged in user to get all message threads or message threads with unresponded message from guest for whole PM. You need to use PM credentials. There is also paging as optional values. If you do not pass this value, we will return first page and 10 threads per page. And in heading you will get a link for the next page.

async getmessagethreads(
  page: number,
  limit: number,
  threadType: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<GetmessagethreadsResponse>>
Parameters
Parameter Type Tags Description
page number Query, Required Number of current page
limit number Query, Required Limit of how many threads will be showed at one page
threadType string Template, Required Request all threads or only threads with unanswered message {new,all}
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

GetmessagethreadsResponse

Example Usage
const page = 30;
const limit = 172;
const threadType = 'threadType6';
try {
  const { result, ...httpResponse } = await messagingController.getmessagethreads(page, limit, threadType);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "threads": [
        {
          "id": 68241,
          "lastMessageSentAt": "2019-12-03 00:00:00",
          "lastMessageText": "Message KHSroelMoR",
          "channelName": "AirBnB",
          "channelABB": "ABB",
          "guestName": "Test Guest Name 2 ",
          "guestEmailAddress": "autoeelcbl@atxjarv.uri",
          "productId": 1235124634,
          "reservationId": 119557886,
          "dateFrom": "2019-12-02",
          "dateTo": "2019-12-04"
        },
        {
          "id": 68257,
          "lastMessageSentAt": "2019-12-03 00:00:00",
          "lastMessageText": "Message ytgdVvQpQm",
          "channelName": "AirBnB",
          "channelABB": "ABB",
          "guestName": "Test Guest Name 1",
          "guestEmailAddress": "autoppresf@at81.sla",
          "productId": 1235124634,
          "dateFrom": "2019-12-02",
          "dateTo": "2019-12-04"
        }
      ]
    }
  ]
}

Getmessagelistforspecificthread

This function allows the logged in user to get a list of all messages from passed thread Id. You need to use PM credentials.

async getmessagelistforspecificthread(
  threadId: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<GetmessagelistforspecificthreadResponse>>
Parameters
Parameter Type Tags Description
threadId string Template, Required ID of the thread
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

GetmessagelistforspecificthreadResponse

Example Usage
const threadId = 'threadId8';
try {
  const { result, ...httpResponse } = await messagingController.getmessagelistforspecificthread(threadId);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "messages": [
        {
          "message": "Test message",
          "createdAt": "2019-11-25 12:32:39",
          "user": "PROPERTY_MANAGER"
        }
      ]
    }
  ]
}

Postnewmessageforspecificthread

This function will allow PM to post new messages in already existing threads.

async postnewmessageforspecificthread(
  contentType: string,
  body: PostnewmessageforspecificthreadRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body PostnewmessageforspecificthreadRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const contentType = 'Content-Type2';
const bodyData: MessageRequestFromSupplier = {
  threadId: 5656,
  message: 'New message',
};

const body: PostnewmessageforspecificthreadRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await messagingController.postnewmessageforspecificthread(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Your request was received and put in queue",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Request to Book

Overview

Some channels like Airbnb have an option for guests to use the “Request to book” possibility, where the Property Manager needs to approve or decline the booking within the next 24 hours. If the period expires - the booking will be automatically cancelled by Airbnb. Once this booking request is received from the channel side, it will be forwarded to the PMS over this API by sending a notification to the “requestToBook'' link, which can be set through the Push notification API. Corresponding dates will not be closed at that point in time and should be kept open. There’s a 24 hour window to either accept or avoid the reservation. If this reservation is avoided, it will be cancelled in both the mybookingpal system and on the channel. If the reservation is accepted, that information will be sent to the channel where a new reservation will be created, and then subsequent information sent back over regular New reservation notification flow. Bear in mind that once the requests to book are received (and more importantly, once they are accepted) – dates must remain open in your system, otherwise a real reservation creation will not be possible.

Requestto Book-Answerfrom PMS

This is an API call which you should use for accepting on avoiding requests to book.

async requesttoBookAnswerfromPMS(
  contentType: string,
  body: RequesttoBookAnswerfromPMSRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body RequesttoBookAnswerfromPMSRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const contentType = 'Content-Type2';
const bodyData: FunctionsRequestToBook = {
  requestToBookType: 'DENY',
  reservationId: 1235124634,
};
bodyData.requestToBookDeclineReasonType = 'DATES_NOT_AVAILABLE';
bodyData.declineMessageToGuest = 'these dates are not available any more. ';

const body: RequesttoBookAnswerfromPMSRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await requestToBookController.requesttoBookAnswerfromPMS(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Request to book answer accepted",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Requestto Book-Test

Since you can not get the request to book on our test environment (since this first needs to be created on the channel) We provide the possibility for PMS to test this request with some random filled data in our system. So when you call this API function - we will send you push notification for the request to book for a provided property ID.

async requesttoBookTest(
  body: RequesttoBookTestRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<APIResponsewithoutData>>
Parameters
Parameter Type Tags Description
body RequesttoBookTestRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

APIResponsewithoutData

Example Usage
const bodyData: FunctionsRequestToBookTest = {
  action: 'RESERVATION_REQUEST_VOIDED',
  productId: 1235124634,
};

const body: RequesttoBookTestRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await requestToBookController.requesttoBookTest(body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "Request to book test accepted",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": []
}

Requestto Book-Request

This will be a request which we will send to PMS when we get a request to book from the channel. So when BookingPal gets a new request to book request - we will push this POST request to the link which you set in BookingPal for your PMS (in Push Notification section - "requestToBook").

Important note: In this doc to be able to test this - you need to set a full URL on the Configure button in the right section.

ℹ️ Note This endpoint does not require authentication.

async requesttoBookRequest(
  body: RequestToBookRequestModel,
  requestOptions?: RequestOptions
): Promise<ApiResponse<ReservationpushResponse>>
Parameters
Parameter Type Tags Description
body RequestToBookRequestModel Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

ReservationpushResponse

Example Usage
const bodyRezcasterNotificationRequestFees: ReservationFeeNotificationModel[] = [];

const bodyRezcasterNotificationRequestfees0: ReservationFeeNotificationModel = {
  name: 'Cleaning Fee',
  value: 110,
};
bodyRezcasterNotificationRequestfees0.id = '937-4';

bodyRezcasterNotificationRequestFees[0] = bodyRezcasterNotificationRequestfees0;

const bodyRezcasterNotificationRequestfees1: ReservationFeeNotificationModel = {
  name: 'Limited Damage Waiver',
  value: 60,
};
bodyRezcasterNotificationRequestfees1.id = '355';

bodyRezcasterNotificationRequestFees[1] = bodyRezcasterNotificationRequestfees1;

const bodyRezcasterNotificationRequestfees2: ReservationFeeNotificationModel = {
  name: 'Processing Fee',
  value: 40,
};
bodyRezcasterNotificationRequestfees2.id = '1298';

bodyRezcasterNotificationRequestFees[2] = bodyRezcasterNotificationRequestfees2;

const bodyRezcasterNotificationRequestTaxes: ReservationTaxNotificationModel[] = [];

const bodyRezcasterNotificationRequesttaxes0: ReservationTaxNotificationModel = {
  name: 'State of Florida-Lake County State Tax',
  value: 5,
};
bodyRezcasterNotificationRequesttaxes0.id = '22';

bodyRezcasterNotificationRequestTaxes[0] = bodyRezcasterNotificationRequesttaxes0;

const bodyRezcasterNotificationRequesttaxes1: ReservationTaxNotificationModel = {
  name: 'Tax-Lake County County Tax',
  value: 15,
};
bodyRezcasterNotificationRequesttaxes1.id = '23';

bodyRezcasterNotificationRequestTaxes[1] = bodyRezcasterNotificationRequesttaxes1;

const bodyRezcasterNotificationRequestCommission: ReservationCommissionsNotificationModel = {
  channelCommission: 10,
  bpCommission: 12,
};

const bodyRezcasterNotificationRequestRate: ReservationRateNotifcationModel = {
  originalRackRate: 400,
  netRate: 400,
  newPublishedRackRate: 422,
};

const bodyRezcasterNotificationRequest: Reservationnotificationobject = {
  reservationId: '107',
  productId: '1234816374',
  supplierId: '3731837',
  agentName: 'TestAndrew',
  confirmationId: 'ZSC213123123A',
  uniqueKey: 'f207c4c029cb1ea1',
  newState: 'Provisional',
  customerName: 'dasdasd',
  fromDate: '2016-03-13T12:52:32.123Z',
  toDate: '2016-03-13T12:52:32.123Z',
  adult: 2,
  child: 0,
  email: 'andrewtesttest222@gmail.com',
  total: 652,
  fees: bodyRezcasterNotificationRequestFees,
  taxes: bodyRezcasterNotificationRequestTaxes,
  commission: bodyRezcasterNotificationRequestCommission,
  rate: bodyRezcasterNotificationRequestRate,
};
bodyRezcasterNotificationRequest.address = 'asdasd';
bodyRezcasterNotificationRequest.city = 'asdasd';
bodyRezcasterNotificationRequest.zip = 'asdasd';
bodyRezcasterNotificationRequest.country = 'US';
bodyRezcasterNotificationRequest.state = 'asdasda';
bodyRezcasterNotificationRequest.phone = '4234234';
bodyRezcasterNotificationRequest.notes = 'customer test message';
bodyRezcasterNotificationRequest.creditCardType = '1';
bodyRezcasterNotificationRequest.creditCardNumber = '4111111111111111';
bodyRezcasterNotificationRequest.creditCardExpirationMonth = '12';
bodyRezcasterNotificationRequest.creditCardExpirationYear = '2023';
bodyRezcasterNotificationRequest.creditCardCid = '123';

const body: RequestToBookRequestModel = {
  rezcasterNotificationRequest: bodyRezcasterNotificationRequest,
  action: 'RESERVATION_REQUEST',
  reservationId: 1234561234,
  expiresAt: '2016-03-13T12:52:32.123Z',
};
body.messageToHost = 'Test';

try {
  const { result, ...httpResponse } = await requestToBookController.requesttoBookRequest(body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "altId": "45717",
  "is_error": false,
  "code": "",
  "message": "Request to book is accepted."
}

Push Notification

Push Notification Links

Provide the links on which the requests about new reservation and cancel reservation will be sent. Links should be https. These links should be set on PMS level, so please use your PMS credentials.

async pushNotificationLinks(
  contentType: string,
  body: PushNotificationLinksRequest,
  requestOptions?: RequestOptions
): Promise<ApiResponse<PushNotificationLinksResponse>>
Parameters
Parameter Type Tags Description
contentType string Header, Required -
body PushNotificationLinksRequest Body, Required -
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

PushNotificationLinksResponse

Example Usage
const contentType = 'Content-Type2';
const bodyData: PushNotificationLinksModel = {
  bookLink: 'https://newreservationnotification.link',
  cancelLink: 'https://cancelreservation.link',
};
bodyData.asyncPush = 'https://asyncpush.link';
bodyData.requestToBook = 'https://requestToBook.link';

const body: PushNotificationLinksRequest = {
  data: bodyData,
};

try {
  const { result, ...httpResponse } = await pushNotificationController.pushNotificationLinks(contentType, body);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "bookLink": "https://newreservationnotification.link",
      "cancelLink": "https://cancelreservation.link",
      "asyncPush": "https://asyncpush.link",
      "requestToBook": "https://requestToBook.link"
    }
  ]
}

Get Notification Links

This will return all notification URLs which are set. It will work on PMS level, so use PMS credentials.

async getNotificationLinks(
  requestOptions?: RequestOptions
): Promise<ApiResponse<PushNotificationLinksResponse>>
Parameters
Parameter Type Tags Description
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

PushNotificationLinksResponse

Example Usage
try {
  const { result, ...httpResponse } = await pushNotificationController.getNotificationLinks();
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "bookLink": "https://newreservationnotification.link",
      "cancelLink": "https://cancelreservation.link",
      "asyncPush": "https://asyncpush.link",
      "requestToBook": "https://requestToBook.link"
    }
  ]
}

Reservation Notifications

Get Reservationby Product

This function allows logged-in users to get all reservations for the specific product.

async getReservationbyProduct(
  productId: string,
  requestOptions?: RequestOptions
): Promise<ApiResponse<ReservationGetResponse>>
Parameters
Parameter Type Tags Description
productId string Template, Required Product ID
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

ReservationGetResponse

Example Usage
const productId = 'productId6';
try {
  const { result, ...httpResponse } = await reservationNotificationsController.getReservationbyProduct(productId);
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "reservationId": "107",
      "productId": "1235124634",
      "supplierId": "61692799",
      "agentName": "TestAndrew",
      "confirmationId": "ZSC213123123A",
      "customerName": "dasdasd",
      "fromDate": "2019-05-17",
      "toDate": "2019-05-23",
      "adult": 2,
      "child": 0,
      "email": "apimaticTest@test.com",
      "phone": "4234234",
      "notes": "customer test message",
      "total": 200.0,
      "fees": [
        {
          "id": "937-4",
          "name": "Cleaning Fee",
          "value": 110.0
        },
        {
          "id": "355",
          "name": "Limited Damage Waiver",
          "value": 60.0
        },
        {
          "id": "1298",
          "name": "Processing Fee",
          "value": 40.0
        }
      ],
      "taxes": [
        {
          "id": "22",
          "name": "State of Florida-Lake County State Tax",
          "value": 5.0
        },
        {
          "id": "22",
          "name": "State of Florida-Lake County State Tax",
          "value": 5.0
        },
        {
          "id": "23",
          "name": "Tax-Lake County County Tax",
          "value": 15.0
        },
        {
          "id": "23",
          "name": "Tax-Lake County County Tax",
          "value": 10.0
        }
      ],
      "newState": "Provisional",
      "commission": {
        "channelCommission": 10.0,
        "bpCommission": 12.0
      },
      "rate": {
        "originalRackRate": 10.0,
        "netRate": 12.0,
        "newPublishedRackRate": 11.0
      },
      "uniqueKey": "f207c4c029cb1ea1"
    }
  ]
}

Get Reservationby PM

This API call will return a list of reservations that belong to the current user.

async getReservationbyPM(
  requestOptions?: RequestOptions
): Promise<ApiResponse<ReservationGetResponse>>
Parameters
Parameter Type Tags Description
requestOptions RequestOptions | undefined Optional Pass additional request options.
Response Type

ReservationGetResponse

Example Usage
try {
  const { result, ...httpResponse } = await reservationNotificationsController.getReservationbyPM();
  // Get more response info...
  // const { statusCode, headers } = httpResponse;
} catch(error) {
  if (error instanceof ApiError) {
    const errors = error.result;
    // const { statusCode, headers } = error;
  }
}
Example Response (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "reservationId": "107",
      "productId": "1234816374",
      "supplierId": "3731837",
      "agentName": "TestAndrew",
      "confirmationId": "ZSC213123123A",
      "customerName": "dasdasd",
      "fromDate": "2019-05-17",
      "toDate": "2019-05-23",
      "adult": 2,
      "child": 0,
      "email": "andrewtesttest222@gmail.com",
      "phone": "4234234",
      "notes": "customer test message",
      "total": 200.0,
      "fees": [
        {
          "id": "937-4",
          "name": "Cleaning Fee",
          "value": 110.0
        },
        {
          "id": "355",
          "name": "Limited Damage Waiver",
          "value": 60.0
        },
        {
          "id": "1298",
          "name": "Processing Fee",
          "value": 40.0
        }
      ],
      "taxes": [
        {
          "id": "22",
          "name": "State of Florida-Lake County State Tax",
          "value": 5.0
        },
        {
          "id": "22",
          "name": "State of Florida-Lake County State Tax",
          "value": 5.0
        },
        {
          "id": "23",
          "name": "Tax-Lake County County Tax",
          "value": 15.0
        },
        {
          "id": "23",
          "name": "Tax-Lake County County Tax",
          "value": 10.0
        }
      ],
      "newState": "Provisional",
      "commission": {
        "channelCommission": 10.0,
        "bpCommission": 12.0
      },
      "rate": {
        "originalRackRate": 10.0,
        "netRate": 12.0,
        "newPublishedRackRate": 11.0
      },
      "uniqueKey": "f207c4c029cb1ea1"
    }
  ]
}

Model Reference

Structures

Authorization

Authorization (Login) response

Class Name

Authorization

Fields
Name Type Tags Description
token string Required Generated token for authorization. It must be used in every request to API as param jwt. Token is valid for 1h
message string Required Message
isError boolean Required Is request success or not
errorMessage string[] Required Error Message(s) in Array format
code string | undefined Optional Response code
organizationId number Required Organization id - PMS ID
supplierId number Required Supplier ID (Property Manager ID - or PMS ID - depend on account on which you are logged in)
partyId number Required Deprecated field. It will be removed in version 3.3. Please use supplierId field instead
name string Required Account name
currency string Required Account currency
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "token": "a9eaf5b0-c433-450e-991d-8011fc4aa264",
  "partyId": 61692799,
  "organizationId": 61690131,
  "name": "Update Name",
  "currency": "USD",
  "supplierId": 61692799
}

Get P Mslist

Class Name

GetPMslist

Fields
Name Type Tags Description
message string Required Text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string | undefined Optional Code of message
data PMs[] | undefined Optional List of PMs models
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "id": 61690133,
      "name": "Test name",
      "extraName": "Test fullname",
      "emailAddress": "test001@gmail.com"
    },
    {
      "id": 61690517,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa002@gmail.com"
    },
    {
      "id": 61690534,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa003@gmail.com"
    },
    {
      "id": 61691075,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa004@gmail.com"
    },
    {
      "id": 61691076,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa005@gmail.com"
    },
    {
      "id": 61691729,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa103@gmail.com"
    },
    {
      "id": 61691731,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "te@gmail.com"
    },
    {
      "id": 61691732,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "testa026@gmail.com"
    },
    {
      "id": 61691733,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa027@gmail.com"
    },
    {
      "id": 61691734,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa028@gmail.com"
    },
    {
      "id": 61691735,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa029@gmail.com"
    },
    {
      "id": 61691736,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "testa0031@gmail.com"
    },
    {
      "id": 61691737,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "testa0032@gmail.com"
    },
    {
      "id": 61691803,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "testa035@gmail.com"
    },
    {
      "id": 61691852,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa036@gmail.com"
    },
    {
      "id": 61691861,
      "name": "Auto-lyxpz company name",
      "extraName": "Auto-dzvjr full name",
      "emailAddress": "wnvuyqfya213@pqclbzs.rli"
    },
    {
      "id": 61691868,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "testa038@gmail.com"
    },
    {
      "id": 61691875,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM001@gmail.com"
    },
    {
      "id": 61691876,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM002@gmail.com"
    },
    {
      "id": 61691877,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM003@gmail.com"
    },
    {
      "id": 61691878,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM004@gmail.com"
    },
    {
      "id": 61691879,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM005@gmail.com"
    },
    {
      "id": 61691880,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM006@gmail.com"
    },
    {
      "id": 61691881,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM007@gmail.com"
    },
    {
      "id": 61691882,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM008@gmail.com"
    },
    {
      "id": 61691883,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM009@gmail.com"
    },
    {
      "id": 61691884,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM010@gmail.com"
    },
    {
      "id": 61691885,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM011@gmail.com"
    },
    {
      "id": 61691886,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM012@gmail.com"
    },
    {
      "id": 61691887,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM014@gmail.com"
    },
    {
      "id": 61691888,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM015@gmail.com"
    },
    {
      "id": 61691889,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM016@gmail.com"
    },
    {
      "id": 61691896,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM017@gmail.com"
    },
    {
      "id": 61691897,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM018@gmail.com"
    },
    {
      "id": 61691898,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM019@gmail.com"
    },
    {
      "id": 61691899,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM020@gmail.com"
    },
    {
      "id": 61691900,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM021@gmail.com"
    },
    {
      "id": 61691903,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa0141234@gmail.com"
    },
    {
      "id": 61691904,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa01412345@gmail.com"
    },
    {
      "id": 61691905,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM022@gmail.com"
    },
    {
      "id": 61691906,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM023@gmail.com"
    },
    {
      "id": 61691907,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa014123452@gmail.com"
    },
    {
      "id": 61691908,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa0141234521@gmail.com"
    },
    {
      "id": 61691909,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM024@gmail.com"
    },
    {
      "id": 61691910,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM025@gmail.com"
    },
    {
      "id": 61691911,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM026@gmail.com"
    },
    {
      "id": 61691979,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM028@gmail.com"
    },
    {
      "id": 61692003,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM030@gmail.com"
    },
    {
      "id": 61692065,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM031@gmail.com"
    },
    {
      "id": 61692066,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM032@gmail.com"
    },
    {
      "id": 61692067,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM033@gmail.com"
    },
    {
      "id": 61692068,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "TestPM034@gmail.com"
    },
    {
      "id": 61692418,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM01130@gmail.com"
    },
    {
      "id": 61692455,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM035@gmail.com"
    },
    {
      "id": 61692456,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM036@gmail.com"
    },
    {
      "id": 61692457,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM037@gmail.com"
    },
    {
      "id": 61692552,
      "name": "Update Name",
      "extraName": "Update Full Name",
      "emailAddress": "TestPM038@gmail.com"
    },
    {
      "id": 61692554,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM999MJ@gmail.com"
    },
    {
      "id": 61692695,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "testa133@gmail.com"
    },
    {
      "id": 61692769,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM050@gmail.com"
    },
    {
      "id": 61692782,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPMCreateProduct@gmail.com"
    },
    {
      "id": 61692785,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM055@gmail.com"
    },
    {
      "id": 61692787,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM056@gmail.com"
    },
    {
      "id": 61692789,
      "name": "Test",
      "extraName": "Test",
      "emailAddress": "TestPM057@gmail.com"
    },
    {
      "id": 61692790,
      "name": "Test Wiz",
      "extraName": "Test Wiz",
      "emailAddress": "TestPM058@gmail.com"
    },
    {
      "id": 61692791,
      "name": "Test wiz1",
      "extraName": "Test wiz1",
      "emailAddress": "TestPM059@gmail.com"
    },
    {
      "id": 61692793,
      "name": "Test wiz1",
      "extraName": "Test wiz1",
      "emailAddress": "TestPM060@gmail.com"
    },
    {
      "id": 61692794,
      "name": "Test wiz1",
      "extraName": "Test wiz1",
      "emailAddress": "TestPM061@gmail.com"
    },
    {
      "id": 61692795,
      "name": "Test wiz",
      "extraName": "Test wiz",
      "emailAddress": "TestPM062@gmail.com"
    },
    {
      "id": 61692797,
      "name": "Wizard Demo",
      "extraName": "Wizard Demo",
      "emailAddress": "wizarddemo@gmail.com"
    },
    {
      "id": 61692799,
      "name": "Test PM",
      "extraName": "Test PM",
      "emailAddress": "apimaticTest@test.com"
    }
  ]
}

P Ms

Property Manager model

Class Name

PMs

Fields
Name Type Tags Description
id number Required ID of the property manager
name string Required Name of the property manager’s company
extraName string Required Contact person
emailAddress string Required Email of the property manager
Example (as JSON)
{
  "id": 61690133,
  "name": "Test name",
  "extraName": "Test fullname",
  "emailAddress": "test001@gmail.com"
}

Createnew Update Property Manager Request

Class Name

CreatenewUpdatePropertyManagerRequest

Fields
Name Type Tags Description
data Company Required Company model
Example (as JSON)
{
  "data": {
    "companyDetails": {
      "accountId": "132",
      "companyName": "Test PM",
      "language": "en",
      "fullName": "Test PM",
      "companyAddress": {
        "country": "US",
        "state": "Test State",
        "streetAddress": "Test Street",
        "city": "Test City",
        "zip": "13245"
      },
      "website": "www.testsite.com",
      "email": "apimaticPMemail@test.com",
      "phone": {
        "countryCode": "+321",
        "number": "132456"
      },
      "password": "password",
      "currency": "USD"
    },
    "policies": {
      "paymentPolicy": {
        "type": "SPLIT",
        "splitPayment": {
          "depositType": "FLAT",
          "value": 4.0,
          "secondPaymentDays": 30
        }
      },
      "cancellationPolicy": {
        "type": "MANUAL",
        "manualPolicy": {
          "type": "FLAT",
          "manualPolicies": [
            {
              "chargeValue": 20,
              "beforeDays": 34,
              "cancellationFee": 1.0
            },
            {
              "chargeValue": 12,
              "beforeDays": 45,
              "cancellationFee": 2.0
            }
          ]
        }
      },
      "feeTaxMandatory": {
        "isFeeMandatory": true,
        "isTaxMandatory": true
      },
      "terms": "www.test.com",
      "checkInTime": "10:00:00",
      "checkOutTime": "16:00:00",
      "leadTime": 2
    },
    "payment": {
      "paymentType": "MAIL_CHECK",
      "creditCard": {
        "creditCardType": "POST",
        "paymentGateways": {
          "paymentGatewaysType": "AUTHORIZE_NET",
          "user": "test",
          "secret": "test",
          "additionalField1": "",
          "additionalField2": ""
        },
        "creditCardList": [
          "AMERICAN_EXPRESS",
          "DINERS_CLUB"
        ]
      }
    }
  }
}

Company

Company model

Class Name

Company

Fields
Name Type Tags Description
companyDetails CompanyDetails Required -
policies Policies Required -
payment Payment Required -
id number | undefined Optional Supplier id. Not expected in any requests. Will be only in responses.
Example (as JSON)
{
  "companyDetails": {
    "accountId": "132",
    "companyName": "Test PM",
    "language": "en",
    "fullName": "Test PM",
    "companyAddress": {
      "country": "US",
      "state": "Test State",
      "streetAddress": "Test Street",
      "city": "Test City",
      "zip": "13245"
    },
    "website": "www.testsite.com",
    "email": "apimaticPMemail@test.com",
    "phone": {
      "countryCode": "+321",
      "number": "132456"
    },
    "password": "password",
    "currency": "USD"
  },
  "policies": {
    "paymentPolicy": {
      "type": "SPLIT",
      "splitPayment": {
        "depositType": "FLAT",
        "value": 4.0,
        "secondPaymentDays": 30
      }
    },
    "cancellationPolicy": {
      "type": "MANUAL",
      "manualPolicy": {
        "type": "FLAT",
        "manualPolicies": [
          {
            "chargeValue": 20,
            "beforeDays": 34,
            "cancellationFee": 1.0
          },
          {
            "chargeValue": 12,
            "beforeDays": 45,
            "cancellationFee": 2.0
          }
        ]
      }
    },
    "feeTaxMandatory": {
      "isFeeMandatory": true,
      "isTaxMandatory": true
    },
    "terms": "www.test.com",
    "checkInTime": "10:00:00",
    "checkOutTime": "16:00:00",
    "leadTime": 2
  },
  "payment": {
    "paymentType": "MAIL_CHECK",
    "creditCard": {
      "creditCardType": "POST",
      "paymentGateways": {
        "paymentGatewaysType": "AUTHORIZE_NET",
        "user": "test",
        "secret": "test",
        "additionalField1": "",
        "additionalField2": ""
      },
      "creditCardList": [
        "AMERICAN_EXPRESS",
        "DINERS_CLUB"
      ]
    }
  }
}

Company Details

Class Name

CompanyDetails

Fields
Name Type Tags Description
accountId string Required Unique ID of PM in PMS
companyName string Required Name of PM
language string Required Language 2 letter value as ISO 639-1 code
fullName string Required First and Last Name
companyAddress CompanyAddress Required -
website string Required Company (PM) website URL
email string Required Email of PM. Email need to be unique in BP system, so you might receive error if we already have this email in our system
phone Phone Required -
password string | undefined Optional Password for accessing PM. If the password is not passed in the request random password will be generated and returned in response. Password will be in response only on create and if it is manually generated. Special characters are not allowed, instead use UTF-8 codes, for example instead of # use %23
currency string Required PM default currency. ISO 4217 code is required
Example (as JSON)
{
  "accountId": "132",
  "companyName": "Test PM",
  "language": "en",
  "fullName": "Test PM",
  "companyAddress": {
    "country": "US",
    "state": "Test State",
    "streetAddress": "Test Street",
    "city": "Test City",
    "zip": "13245"
  },
  "website": "www.testsite.com",
  "email": "apimaticPMemail@test.com",
  "phone": {
    "countryCode": "+321",
    "number": "132456"
  },
  "password": "password",
  "currency": "USD"
}

Company Address

Class Name

CompanyAddress

Fields
Name Type Tags Description
country string Required Country of PM. Require 2 letter ISO code
state string Required State (Region) of PM. Required for US properties.
streetAddress string Required Street address of PM.
city string Required City of PM
zip string Required Zip code (postal code) of PM.
Example (as JSON)
{
  "country": "US",
  "state": "Test State",
  "streetAddress": "Test Street",
  "city": "Test City",
  "zip": "13245"
}

Phone

Class Name

Phone

Fields
Name Type Tags Description
countryCode string Required Country code prefix in phone number. For example “+1”.
number string Required Phone number
Example (as JSON)
{
  "countryCode": "+321",
  "number": "132456"
}

Policies

Class Name

Policies

Fields
Name Type Tags Description
paymentPolicy PaymentPolicy Required -
cancellationPolicy CancellationPolicy Required -
feeTaxMandatory FeeTaxMandatory Required -
terms string Required Full URL to PM terms and conditions
checkInTime string Required Time of Check in (HH:MM:SS)
checkOutTime string Required Time of Check out (HH:MM:SS)
leadTime number Required Minimum number of days before check-in for which reservation is allowed to be booked. Allowed values are 0-7.
Example (as JSON)
{
  "paymentPolicy": {
    "type": "SPLIT",
    "splitPayment": {
      "depositType": "FLAT",
      "value": 4.0,
      "secondPaymentDays": 30
    }
  },
  "cancellationPolicy": {
    "type": "MANUAL",
    "manualPolicy": {
      "type": "FLAT",
      "manualPolicies": [
        {
          "chargeValue": 20,
          "beforeDays": 34,
          "cancellationFee": 1.0
        },
        {
          "chargeValue": 12,
          "beforeDays": 45,
          "cancellationFee": 2.0
        }
      ]
    }
  },
  "feeTaxMandatory": {
    "isFeeMandatory": true,
    "isTaxMandatory": true
  },
  "terms": "www.test.com",
  "checkInTime": "10:00:00",
  "checkOutTime": "16:00:00",
  "leadTime": 2
}

Payment Policy

Class Name

PaymentPolicy

Fields
Name Type Tags Description
type PaymentPolicyTypeEnum Required Full or Split payment. In case of Split payment - it will be 2 payments. [SPLIT,FULL]
splitPayment SplitPayment Required -
Example (as JSON)
{
  "type": "SPLIT",
  "splitPayment": {
    "depositType": "FLAT",
    "value": 4.0,
    "secondPaymentDays": 30
  }
}

Split Payment

Class Name

SplitPayment

Fields
Name Type Tags Description
depositType DepositTypeEnum Required First payment deposit type.
value number Required First payment value
secondPaymentDays number Required Number of days before check-in when second payment is required.
Example (as JSON)
{
  "depositType": "FLAT",
  "value": 4.0,
  "secondPaymentDays": 30
}

Cancellation Policy

Class Name

CancellationPolicy

Fields
Name Type Tags Description
type CancellationPolicyTypeEnum Required -
manualPolicy ManualPolicy Required -
Example (as JSON)
{
  "type": "MANUAL",
  "manualPolicy": {
    "type": "FLAT",
    "manualPolicies": [
      {
        "chargeValue": 20,
        "beforeDays": 34,
        "cancellationFee": 1.0
      },
      {
        "chargeValue": 12,
        "beforeDays": 45,
        "cancellationFee": 2.0
      }
    ]
  }
}

Manual Policy

Class Name

ManualPolicy

Fields
Name Type Tags Description
type ManualPolicyTypeEnum Required -
manualPolicies ManualPolicies[] Required Model
Example (as JSON)
{
  "type": "FLAT",
  "manualPolicies": [
    {
      "chargeValue": 20,
      "beforeDays": 34,
      "cancellationFee": 1.0
    },
    {
      "chargeValue": 12,
      "beforeDays": 45,
      "cancellationFee": 2.0
    }
  ]
}

Manual Policies

Class Name

ManualPolicies

Fields
Name Type Tags Description
chargeValue number Required Percentage or flat value which will be charged in case of cancellation
beforeDays number Required Days before check-in when cancellation policy will be charged
cancellationFee number Required Cancellation transaction fee - additional fee on cancellation
Example (as JSON)
{
  "chargeValue": 20,
  "beforeDays": 34,
  "cancellationFee": 1.0
}

Fee Tax Mandatory

Class Name

FeeTaxMandatory

Fields
Name Type Tags Description
isFeeMandatory boolean Required Used in BookingPal validator. Info does property require any fee or not. Default value is TRUE. This setup can be overridden on property level with different API call, which is stronger.
isTaxMandatory boolean Required Used in BookingPal validator. Info does property require any tax or not. Default value is TRUE. This setup can be overridden on property level with different API call, which is stronger.
Example (as JSON)
{
  "isFeeMandatory": true,
  "isTaxMandatory": true
}

Payment

Class Name

Payment

Fields
Name Type Tags Description
paymentType PaymentTypeEnum Required -
creditCard CreditCard | undefined Optional -
Example (as JSON)
{
  "paymentType": "MAIL_CHECK",
  "creditCard": {
    "creditCardType": "POST",
    "paymentGateways": {
      "paymentGatewaysType": "AUTHORIZE_NET",
      "user": "test",
      "secret": "test",
      "additionalField1": "",
      "additionalField2": ""
    },
    "creditCardList": [
      "AMERICAN_EXPRESS",
      "DINERS_CLUB"
    ]
  }
}

Credit Card

Class Name

CreditCard

Fields
Name Type Tags Description
creditCardType CreditCardTypeEnum Required -
paymentGateways PaymentGateways | undefined Optional -
creditCardList CreditCardListEnum[] | undefined Optional List of acceptable credit cards. Allowed only if type is TRANSMIT. {MASTER_CARD,VISA,AMERICAN_EXPRESS,DINERS_CLUB,DISCOVER}. If POST method selected it will select all creditCardList.
Example (as JSON)
{
  "creditCardType": "POST",
  "paymentGateways": {
    "paymentGatewaysType": "AUTHORIZE_NET",
    "user": "test",
    "secret": "test",
    "additionalField1": "",
    "additionalField2": ""
  },
  "creditCardList": [
    "AMERICAN_EXPRESS",
    "DINERS_CLUB"
  ]
}

Payment Gateways

Class Name

PaymentGateways

Fields
Name Type Tags Description
paymentGatewaysType PaymentGatewaysTypeEnum Required -
user string | undefined Optional Value necessary for accessing payment gateway, values are different per payment gateway: PAYPAL - Client ID AUTHORIZE_NET - User ID BRIDGE_PAY - Username PAY_BOX - Site number DIBS - Login O_GONE - User ID DOC_DATA - ID PAY_GATE - ID Note: This value will not be returned in response.
secret string | undefined Optional Value necessary for accessing payment gateway, values are different per payment gateway: PAYPAL - Secret AUTHORIZE_NET - Transaction Key BRIDGE_PAY - Password PAY_BOX - Rank number DIBS - Password O_GONE - Password DOC_DATA - Password PAY_GATE - Password Note: This value will not be returned in response.
additionalField1 string | undefined Optional Additional value necessary for accessing some payment gateways, values are different per payment gateway: BRIDGE_PAY - Merchant Number PAY_BOX - An identifier DIBS - Merchant ID O_GONE - PSP ID Note: This value will not be returned in response.
additionalField2 string | undefined Optional Additional value necessary for accessing some payment gateways, values are different per payment gateway: BRIDGE_PAY - Merchant Number PAY_BOX - An identifier DIBS - Merchant ID O_GONE - PSP ID Note: This value will not be returned in response.
Example (as JSON)
{
  "paymentGatewaysType": "AUTHORIZE_NET",
  "user": "test",
  "secret": "test",
  "additionalField1": "",
  "additionalField2": ""
}

Property Managerdetailsresponse

Class Name

PropertyManagerdetailsresponse

Fields
Name Type Tags Description
message string Required text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string Required Code of message
data Company[] Required List of models
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "companyDetails": {
        "accountId": "132",
        "companyName": "Test PM",
        "language": "en",
        "fullName": "Test PM",
        "companyAddress": {
          "country": "US",
          "state": "Test State",
          "streetAddress": "Test Street",
          "city": "Test City",
          "zip": "13245"
        },
        "website": "www.testsite.com",
        "email": "apimaticTest@test.com",
        "phone": {
          "countryCode": "+321",
          "number": "132456"
        },
        "currency": "USD"
      },
      "policies": {
        "paymentPolicy": {
          "type": "SPLIT",
          "splitPayment": {
            "depositType": "FLAT",
            "value": 4,
            "secondPaymentDays": 30
          }
        },
        "cancellationPolicy": {
          "type": "MANUAL",
          "manualPolicy": {
            "type": "FLAT",
            "manualPolicies": [
              {
                "chargeValue": 20,
                "beforeDays": 34,
                "cancellationFee": 1
              },
              {
                "chargeValue": 12,
                "beforeDays": 45,
                "cancellationFee": 2
              }
            ]
          }
        },
        "feeTaxMandatory": {
          "isFeeMandatory": true,
          "isTaxMandatory": true
        },
        "terms": "www.test.com",
        "checkInTime": "10:00:00",
        "checkOutTime": "16:00:00",
        "leadTime": 2
      },
      "payment": {
        "paymentType": "MAIL_CHECK",
        "creditCard": {
          "creditCardType": "POST",
          "creditCardList": [
            "AMERICAN_EXPRESS",
            "DINERS_CLUB",
            "DISCOVER",
            "MASTER_CARD",
            "VISA"
          ],
          "paymentGateways": {
            "paymentGatewaysType": "AUTHORIZE_NET"
          }
        }
      },
      "id": 61692799
    }
  ]
}

Productresponse

Response for Get, Create or Update product API call

Class Name

Productresponse

Fields
Name Type Tags Description
message string Required text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string Required Code of message
data Property[] Required List of models
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "name": "Apimatic Test",
      "id": 1235124634,
      "supplierId": 61692799,
      "rooms": 5,
      "bathrooms": 4,
      "toilets": 2,
      "totalBeds": 6,
      "space": 111,
      "spaceUnit": "SQ_FT",
      "persons": 10,
      "childs": 2,
      "latitude": 41.886125,
      "longitude": -87.634233,
      "livingRoom": 2,
      "altId": 23556,
      "notes": {
        "description": {
          "texts": [
            {
              "language": "EN",
              "value": "Main description on EN!"
            },
            {
              "language": "ES",
              "value": "Main description on ES!"
            }
          ]
        },
        "houseRules": {
          "texts": [
            {
              "language": "EN",
              "value": "House Rules on EN!"
            },
            {
              "language": "SR",
              "value": "House Rules on SR!"
            }
          ]
        },
        "name": {
          "texts": [
            {
              "language": "EN",
              "value": "Name on EN!"
            },
            {
              "language": "SR",
              "value": "Name on SR!"
            }
          ]
        },
        "shortDescription": {
          "texts": [
            {
              "language": "EN",
              "value": "short desc on EN!"
            },
            {
              "language": "SR",
              "value": "short desc on SR!"
            }
          ]
        },
        "finePrint": {
          "texts": [
            {
              "language": "EN",
              "value": "fine prints on EN!"
            },
            {
              "language": "SR",
              "value": "fine prints on SR!"
            }
          ]
        }
      },
      "attributesWithQuantity": [
        {
          "attributeId": "HAC312",
          "quantity": 1
        },
        {
          "attributeId": "RMA107",
          "quantity": 1
        },
        {
          "attributeId": "RMA11",
          "quantity": 1
        },
        {
          "attributeId": "RMA149",
          "quantity": 1
        },
        {
          "attributeId": "RMA163",
          "quantity": 1
        },
        {
          "attributeId": "RMA18",
          "quantity": 1
        },
        {
          "attributeId": "RMA19",
          "quantity": 1
        },
        {
          "attributeId": "RMA251",
          "quantity": 1
        },
        {
          "attributeId": "RMA273",
          "quantity": 1
        },
        {
          "attributeId": "RMA32",
          "quantity": 1
        },
        {
          "attributeId": "RMA41",
          "quantity": 1
        },
        {
          "attributeId": "RMA5085",
          "quantity": 1
        },
        {
          "attributeId": "RMA59",
          "quantity": 1
        },
        {
          "attributeId": "RMA6058",
          "quantity": 1
        },
        {
          "attributeId": "RMA68",
          "quantity": 1
        },
        {
          "attributeId": "RMA88",
          "quantity": 1
        }
      ],
      "nearbyAmenities": [],
      "propertyType": "PCT34",
      "bedroomConfiguration": {
        "bedrooms": [
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                },
                {
                  "bedType": "RMA86",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA113",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": false
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Bedroom",
            "privateBathroom": true
          },
          {
            "beds": {
              "bed": [
                {
                  "bedType": "RMA58",
                  "count": 1
                }
              ]
            },
            "type": "Living Room",
            "privateBathroom": false
          }
        ]
      },
      "checkInTime": "16:00:00",
      "checkInToTime": "20:00:00",
      "checkOutTime": "10:00:00",
      "currency": "EUR",
      "policy": {
        "internetPolicy": {
          "accessInternet": true,
          "kindOfInternet": "WiFi",
          "availableInternet": "AllAreas",
          "chargeInternet": "Free"
        },
        "parkingPolicy": {
          "accessParking": true,
          "locatedParking": "OnSite",
          "privateParking": true,
          "chargeParking": "$ 150",
          "timeCostParking": "PerStay",
          "necessaryReservationParking": "NotPossible"
        },
        "petPolicy": {
          "allowedPets": "Allowed",
          "chargePets": "Free"
        },
        "childrenAllowed": true,
        "smokingAllowed": false
      },
      "location": {
        "postalCode": "60606",
        "country": "US",
        "region": "Illinois",
        "city": "Chicago",
        "street": "210 North Wells Street",
        "zipCode9": "60606-1330"
      },
      "supportedLosRates": false
    }
  ]
}

Property

Class Name

Property

Fields
Name Type Tags Description
name string Required Name of the property to display in the list
id number | undefined Optional Property ID in BookingPal
altId number | undefined Optional Alternative Id of the property (ID in your PMS system). Note: this field you can not update, so this field will not be used during update.
supplierId number | undefined Optional Id of the Property Manager (not be used for creating new property. Property will have ID of current authorized user)
rooms number Required Number of bedrooms. Number of bedrooms should be > 0. Value 0 is only allowed in case property type is Studio (PCT46 or PCT110)
bathrooms number Required Number of bathrooms
toilets number | undefined Optional Number of toilets
totalBeds number | undefined Optional Property’s total number of beds
space number | undefined Optional Property size
spaceUnit SpaceUnitEnum | undefined Optional -
persons number Required Maximum number of allowed adults
childs number | undefined Optional Number of allowed children (from 7 to 12 years)
latitude number | undefined Optional Latitude of the property (Must set field latitude and longitude or location)
longitude number | undefined Optional Longitude of the property (Must set field latitude and longitude or location)
livingRoom number | undefined Optional Number of Living rooms
notes Notes | undefined Optional Model where you can define different kinds of text values. If you need to delete some kind of texts, for example short description, you can do this on Update call (PUT), and you need to pass empty array for texts value, for example : "shortDescription": { "texts": [ ] }
attributesWithQuantity AttributesWithQuantity[] | undefined Optional Use this param instead of previous if you need to set quantity more than 1 of attributes. If use both in POST request this will overwrite the previous list (under param attributes).
nearbyAmenities NearbyAmenity[] | undefined Optional List of Nearby Attributes models. Check allowed values in Appendix.
propertyType PropertyTypesEnum Required -
bedroomConfiguration BedroomConfiguration | undefined Optional -
checkInTime string | undefined Optional Time of Check in (HH:MM:SS)
checkInToTime string | undefined Optional Time Check in to (HH:MM:SS)
checkOutTime string | undefined Optional Time of Check out (HH:MM:SS)
currency string Required Property currency. ISO 4217 code is required.
policy Policy | undefined Optional -
location Location | undefined Optional -
supportedLosRates boolean Required If true - means that the property supports only LOS rates. So daily rates can not be sent and updated. Default is false.
taxNumber string | undefined Optional Tax number for product
touristLicenseNumber string | undefined Optional Tourist license number
touristLicenseExpiryDate string | undefined Optional Tourist license expiry date. Correct date format is YYYY-MM-DD.
multiUnit MultiUnitEnum | undefined Optional Enum for product multyunit type.
parentId number | undefined Optional This fields should not be used unless your property is not MLT (check field multiunit). In this case you must set owner (parent) id property to which this property will belong. Also you can not update this property.
Example (as JSON)
{
  "name": "Apimatic Test",
  "id": 1235124634,
  "supplierId": 61692799,
  "rooms": 5,
  "bathrooms": 4,
  "toilets": 2,
  "totalBeds": 6,
  "space": 111,
  "spaceUnit": "SQ_FT",
  "persons": 10,
  "childs": 2,
  "latitude": 41.886125,
  "longitude": -87.634233,
  "livingRoom": 2,
  "notes": {
    "description": {
      "texts": [
        {
          "language": "EN",
          "value": "Main description on EN!"
        },
        {
          "language": "ES",
          "value": "Main description on ES!"
        }
      ]
    },
    "houseRules": {
      "texts": [
        {
          "language": "EN",
          "value": "House Rules on EN!"
        },
        {
          "language": "SR",
          "value": "House Rules on SR!"
        }
      ]
    }
  },
  "attributesWithQuantity": [
    {
      "attributeId": "HAC312",
      "quantity": 1
    },
    {
      "attributeId": "RMA107",
      "quantity": 1
    },
    {
      "attributeId": "RMA11",
      "quantity": 1
    },
    {
      "attributeId": "RMA149",
      "quantity": 1
    },
    {
      "attributeId": "RMA163",
      "quantity": 1
    },
    {
      "attributeId": "RMA18",
      "quantity": 1
    },
    {
      "attributeId": "RMA19",
      "quantity": 1
    },
    {
      "attributeId": "RMA251",
      "quantity": 1
    },
    {
      "attributeId": "RMA273",
      "quantity": 1
    },
    {
      "attributeId": "RMA32",
      "quantity": 1
    },
    {
      "attributeId": "RMA41",
      "quantity": 1
    },
    {
      "attributeId": "RMA5085",
      "quantity": 1
    },
    {
      "attributeId": "RMA59",
      "quantity": 1
    },
    {
      "attributeId": "RMA6058",
      "quantity": 1
    },
    {
      "attributeId": "RMA68",
      "quantity": 1
    },
    {
      "attributeId": "RMA88",
      "quantity": 1
    }
  ],
  "nearbyAmenities": [],
  "propertyType": "PCT34",
  "bedroomConfiguration": {
    "bedrooms": [
      {
        "beds": {
          "bed": [
            {
              "bedType": "RMA113",
              "count": 1
            },
            {
              "bedType": "RMA58",
              "count": 1
            }
          ]
        },
        "type": "Bedroom",
        "privateBathroom": false
      },
      {
        "beds": {
          "bed": [
            {
              "bedType": "RMA113",
              "count": 1
            },
            {
              "bedType": "RMA58",
              "count": 1
            }
          ]
        },
        "type": "Bedroom",
        "privateBathroom": false
      },
      {
        "beds": {
          "bed": [
            {
              "bedType": "RMA113",
              "count": 1
            },
            {
              "bedType": "RMA86",
              "count": 1
            }
          ]
        },
        "type": "Bedroom",
        "privateBathroom": false
      },
      {
        "beds": {
          "bed": [
            {
              "bedType": "RMA113",
              "count": 1
            }
          ]
        },
        "type": "Bedroom",
        "privateBathroom": false
      },
      {
        "beds": {
          "bed": [
            {
              "bedType": "RMA113",
              "count": 1
            }
          ]
        },
        "type": "Bedroom",
        "privateBathroom": false
      },
      {
        "beds": {
          "bed": [
            {
              "bedType": "RMA58",
              "count": 1
            }
          ]
        },
        "type": "Bedroom",
        "privateBathroom": true
      },
      {
        "beds": {
          "bed": [
            {
              "bedType": "RMA58",
              "count": 1
            }
          ]
        },
        "type": "Living Room",
        "privateBathroom": false
      }
    ]
  },
  "checkInTime": "16:00:00",
  "checkInToTime": "20:00:00",
  "checkOutTime": "10:00:00",
  "currency": "EUR",
  "policy": {
    "internetPolicy": {
      "accessInternet": true,
      "kindOfInternet": "WiFi",
      "availableInternet": "AllAreas",
      "chargeInternet": "Free"
    },
    "parkingPolicy": {
      "accessParking": true,
      "locatedParking": "OnSite",
      "privateParking": true,
      "chargeParking": "$ 150",
      "timeCostParking": "PerStay",
      "necessaryReservationParking": "NotPossible"
    },
    "petPolicy": {
      "allowedPets": "Allowed",
      "chargePets": "Free"
    },
    "childrenAllowed": true,
    "smokingAllowed": false
  },
  "location": {
    "postalCode": "60606",
    "country": "US",
    "region": "Illinois",
    "city": "Chicago",
    "street": "210 North Wells Street",
    "zipCode9": "60606-1330"
  },
  "supportedLosRates": false
}

Notes

Model where you can define different kinds of text values. If you need to delete some kind of texts, for example short description, you can do this on Update call (PUT), and you need to pass empty array for texts value, for example : "shortDescription": { "texts": [ ] }

Class Name

Notes

Fields
Name Type Tags Description
description DescriptionTextModel Required Model for any kind of description text in Property object
houseRules DescriptionTextModel | undefined Optional Model for any kind of description text in Property object
finePrint DescriptionTextModel | undefined Optional Model for any kind of description text in Property object
shortDescription DescriptionTextModel | undefined Optional Model for any kind of description text in Property object
name DescriptionTextModel | undefined Optional Model for any kind of description text in Property object
Example (as JSON)
{
  "description": {
    "texts": [
      {
        "language": "EN",
        "value": "Main description on EN!"
      },
      {
        "language": "ES",
        "value": "Main description on ES!"
      }
    ]
  },
  "houseRules": {
    "texts": [
      {
        "language": "EN",
        "value": "House Rules on EN!"
      },
      {
        "language": "SR",
        "value": "House Rules on SR!"
      }
    ]
  },
  "name": {
    "texts": [
      {
        "language": "EN",
        "value": "House Rules on EN!"
      },
      {
        "language": "SR",
        "value": "House Rules on SR!"
      }
    ]
  },
  "shortDescription": {
    "texts": [
      {
        "language": "EN",
        "value": "House Rules on EN!"
      },
      {
        "language": "SR",
        "value": "House Rules on SR!"
      }
    ]
  },
  "finePrint": {
    "texts": [
      {
        "language": "EN",
        "value": "House Rules on EN!"
      },
      {
        "language": "SR",
        "value": "House Rules on SR!"
      }
    ]
  }
}

Description Text Model

Model for any kind of description text in Property object

Class Name

DescriptionTextModel

Fields
Name Type Tags Description
texts Text[] Required Text value per languages
Example (as JSON)
{
  "texts": [
    {
      "language": "EN",
      "value": "Main description on EN!"
    },
    {
      "language": "ES",
      "value": "Main description on ES!"
    }
  ]
}

Text

Class Name

Text

Fields
Name Type Tags Description
language string Required Language 2 letter value as ISO 639-1 code (https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
value string Required Text value. Send here only plain text. Do not use HTML or any other characters.
Example (as JSON)
{
  "language": "EN",
  "value": "Main description on EN!"
}

Attributes With Quantity

Class Name

AttributesWithQuantity

Fields
Name Type Tags Description
attributeId string Required Text of main description Attributes given code in Appendix
quantity number Required Will be set to 1 by default
Example (as JSON)
{
  "attributeId": "HAC312",
  "quantity": 1
}

Bedroom Configuration

Class Name

BedroomConfiguration

Fields
Name Type Tags Description
bedrooms Bedroom[] Required Bedroom configuration for property
Example (as JSON)
{
  "bedrooms": [
    {
      "beds": {
        "bed": [
          {
            "bedType": "RMA113",
            "count": 1
          },
          {
            "bedType": "RMA58",
            "count": 1
          }
        ]
      },
      "type": "Bedroom",
      "privateBathroom": false
    },
    {
      "beds": {
        "bed": [
          {
            "bedType": "RMA113",
            "count": 1
          },
          {
            "bedType": "RMA58",
            "count": 1
          }
        ]
      },
      "type": "Bedroom",
      "privateBathroom": false
    },
    {
      "beds": {
        "bed": [
          {
            "bedType": "RMA113",
            "count": 1
          },
          {
            "bedType": "RMA86",
            "count": 1
          }
        ]
      },
      "type": "Bedroom",
      "privateBathroom": false
    },
    {
      "beds": {
        "bed": [
          {
            "bedType": "RMA113",
            "count": 1
          }
        ]
      },
      "type": "Bedroom",
      "privateBathroom": false
    },
    {
      "beds": {
        "bed": [
          {
            "bedType": "RMA113",
            "count": 1
          }
        ]
      },
      "type": "Bedroom",
      "privateBathroom": false
    },
    {
      "beds": {
        "bed": [
          {
            "bedType": "RMA58",
            "count": 1
          }
        ]
      },
      "type": "Bedroom",
      "privateBathroom": true
    },
    {
      "beds": {
        "bed": [
          {
            "bedType": "RMA58",
            "count": 1
          }
        ]
      },
      "type": "Living Room",
      "privateBathroom": false
    }
  ]
}

Bedroom

Class Name

Bedroom

Fields
Name Type Tags Description
beds Beds Required -
type BedroomTypeEnum Required -
privateBathroom boolean Required Room have private bathroom
Example (as JSON)
{
  "beds": {
    "bed": [
      {
        "bedType": "RMA113",
        "count": 1
      },
      {
        "bedType": "RMA58",
        "count": 1
      }
    ]
  },
  "type": "Bedroom",
  "privateBathroom": false
}

Beds

Class Name

Beds

Fields
Name Type Tags Description
bed Bed[] Required List beds per room
Example (as JSON)
{
  "bed": [
    {
      "bedType": "RMA113",
      "count": 1
    },
    {
      "bedType": "RMA58",
      "count": 1
    }
  ]
}

Bed

Class Name

Bed

Fields
Name Type Tags Description
bedType string Required Bed code BedTypes are given in Appendix.
count number Required Number of bed
Example (as JSON)
{
  "bedType": "RMA113",
  "count": 1
}

Policy

Class Name

Policy

Fields
Name Type Tags Description
internetPolicy InternetPolicy | undefined Optional -
parkingPolicy ParkingPolicy | undefined Optional -
petPolicy PetPolicy | undefined Optional -
childrenAllowed boolean Required Children policy
smokingAllowed boolean Required Smoking policy
Example (as JSON)
{
  "internetPolicy": {
    "accessInternet": true,
    "kindOfInternet": "WiFi",
    "availableInternet": "AllAreas",
    "chargeInternet": "Free"
  },
  "parkingPolicy": {
    "accessParking": true,
    "locatedParking": "OnSite",
    "privateParking": true,
    "chargeParking": "$ 150",
    "timeCostParking": "PerStay",
    "necessaryReservationParking": "NotPossible"
  },
  "petPolicy": {
    "allowedPets": "Allowed",
    "chargePets": "Free"
  },
  "childrenAllowed": true,
  "smokingAllowed": false
}

Internet Policy

Class Name

InternetPolicy

Fields
Name Type Tags Description
accessInternet boolean Required Access internet into properties
kindOfInternet KindofInternetTypeEnum | undefined Optional -
availableInternet AvailableInternetEnum | undefined Optional -
chargeInternet string | undefined Optional Charge internet. Example: “Free”, “$ 100”.
Example (as JSON)
{
  "accessInternet": true,
  "kindOfInternet": "WiFi",
  "availableInternet": "AllAreas",
  "chargeInternet": "Free"
}

Parking Policy

Class Name

ParkingPolicy

Fields
Name Type Tags Description
accessParking boolean Required Access parking into properties {true,false}
locatedParking LocatedParkingTypeEnum | undefined Optional -
privateParking boolean | undefined Optional Parking is private or no. {true,false}
chargeParking string | undefined Optional Charge parking. Example: “Free”, “$ 100”.
timeCostParking TimeCostParkingEnum | undefined Optional -
necessaryReservationParking ReservationParkingTypeEnum | undefined Optional -
Example (as JSON)
{
  "accessParking": true,
  "locatedParking": "OnSite",
  "privateParking": true,
  "chargeParking": "$ 150",
  "timeCostParking": "PerStay",
  "necessaryReservationParking": "NotPossible"
}

Pet Policy

Class Name

PetPolicy

Fields
Name Type Tags Description
allowedPets AllowedPetsTypeEnum Required -
chargePets string | undefined Optional Charge parking. Example: “Free”, “$ 100”.
Example (as JSON)
{
  "allowedPets": "Allowed",
  "chargePets": "Free"
}

Location

Class Name

Location

Fields
Name Type Tags Description
postalCode string Required Postal code of property (Zip code)
country string Required Country of property. Require 2 letter ISO code
region string Required State (Region) of PM. Required for US properties.
city string Required City of property
street string Required Street of property
zipCode9 string Required Set only for US properties (format should be zip5-xxxx)
Example (as JSON)
{
  "postalCode": "60606",
  "country": "US",
  "region": "Illinois",
  "city": "Chicago",
  "street": "210 North Wells Street",
  "zipCode9": "60606-1330"
}

Create Update Property Request

Request for Create or Update of Product

Class Name

CreateUpdatePropertyRequest

Fields
Name Type Tags Description
data Property Required -
Example (as JSON)
{
  "data": {
    "name": "Test product",
    "rooms": 5,
    "livingRoom": 2,
    "bathrooms": 4,
    "toilets": 2,
    "totalBeds": 6,
    "supportedLosRates": false,
    "space": 111,
    "spaceUnit": "SQ_FT",
    "persons": 10,
    "childs": 2,
    "latitude": 41.886125,
    "longitude": -87.634233,
    "currency": "EUR",
    "location": {
      "postalCode": "60606",
      "country": "US",
      "region": "Illinois",
      "city": "Chicago",
      "street": "210 North Wells Street",
      "zipCode9": "60606-1330"
    },
    "propertyType": "PCT34",
    "attributesWithQuantity": [
      {
        "attributeId": "HAC312",
        "quantity": 1
      },
      {
        "attributeId": "RMA107",
        "quantity": 1
      },
      {
        "attributeId": "RMA11",
        "quantity": 1
      },
      {
        "attributeId": "RMA149",
        "quantity": 1
      },
      {
        "attributeId": "RMA163",
        "quantity": 1
      },
      {
        "attributeId": "RMA18",
        "quantity": 1
      },
      {
        "attributeId": "RMA19",
        "quantity": 1
      },
      {
        "attributeId": "RMA251",
        "quantity": 1
      },
      {
        "attributeId": "RMA273",
        "quantity": 1
      },
      {
        "attributeId": "RMA32",
        "quantity": 1
      },
      {
        "attributeId": "RMA41",
        "quantity": 1
      },
      {
        "attributeId": "RMA5085",
        "quantity": 1
      },
      {
        "attributeId": "RMA59",
        "quantity": 1
      },
      {
        "attributeId": "RMA6058",
        "quantity": 1
      },
      {
        "attributeId": "RMA68",
        "quantity": 1
      },
      {
        "attributeId": "RMA88",
        "quantity": 1
      }
    ],
    "notes": {
      "description": {
        "texts": [
          {
            "language": "EN",
            "value": "Main description on EN!"
          },
          {
            "language": "ES",
            "value": "Main description on ES!"
          }
        ]
      },
      "houseRules": {
        "texts": [
          {
            "language": "EN",
            "value": "House Rules on EN!"
          },
          {
            "language": "SR",
            "value": "House Rules on SR!"
          }
        ]
      },
      "shortDescription": {
        "texts": [
          {
            "language": "EN",
            "value": "Short description on EN!"
          },
          {
            "language": "ES",
            "value": "short description on ES!"
          }
        ]
      }
    },
    "bedroomConfiguration": {
      "bedrooms": [
        {
          "beds": {
            "bed": [
              {
                "bedType": "RMA113",
                "count": 1
              },
              {
                "bedType": "RMA58",
                "count": 1
              }
            ]
          },
          "type": "Bedroom",
          "privateBathroom": false
        },
        {
          "beds": {
            "bed": [
              {
                "bedType": "RMA113",
                "count": 1
              },
              {
                "bedType": "RMA58",
                "count": 1
              }
            ]
          },
          "type": "Bedroom",
          "privateBathroom": false
        },
        {
          "beds": {
            "bed": [
              {
                "bedType": "RMA113",
                "count": 1
              },
              {
                "bedType": "RMA86",
                "count": 1
              }
            ]
          },
          "type": "Bedroom",
          "privateBathroom": false
        },
        {
          "beds": {
            "bed": [
              {
                "bedType": "RMA113",
                "count": 1
              }
            ]
          },
          "type": "Bedroom",
          "privateBathroom": false
        },
        {
          "beds": {
            "bed": [
              {
                "bedType": "RMA113",
                "count": 1
              }
            ]
          },
          "type": "Bedroom",
          "privateBathroom": false
        },
        {
          "beds": {
            "bed": [
              {
                "bedType": "RMA58",
                "count": 1
              }
            ]
          },
          "type": "Bedroom",
          "privateBathroom": true
        },
        {
          "beds": {
            "bed": [
              {
                "bedType": "RMA58",
                "count": 1
              }
            ]
          },
          "type": "Living Room",
          "privateBathroom": false
        }
      ]
    },
    "policy": {
      "internetPolicy": {
        "accessInternet": true,
        "kindOfInternet": "WiFi",
        "availableInternet": "AllAreas",
        "chargeInternet": "Free"
      },
      "parkingPolicy": {
        "accessParking": true,
        "locatedParking": "OnSite",
        "privateParking": true,
        "chargeParking": "$ 150",
        "timeCostParking": "PerStay",
        "necessaryReservationParking": "NotPossible"
      },
      "petPolicy": {
        "allowedPets": "Allowed",
        "chargePets": "Free"
      },
      "childrenAllowed": true,
      "smokingAllowed": false
    },
    "checkInTime": "16:00:00",
    "checkInToTime": "20:00:00",
    "checkOutTime": "10:00:00"
  }
}

Nearby Amenity

Class Name

NearbyAmenity

Fields
Name Type Tags Description
attributeId NearbyAmenitiesEnum Required List of allowed Nearby Amenities codes
distance number | undefined Optional Will be set to 0 by default
Example (as JSON)
{
  "attributeId": "ACC203",
  "distance": 3
}

API Responsewithout Data

Common response for most of functions - where 'data' element is not present.

Class Name

APIResponsewithoutData

Fields
Name Type Tags Description
message string Required text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string Required Code of message
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": ""
}

Property List Request

Request Model for list of properties

Class Name

PropertyListRequest

Fields
Name Type Tags Description
data number[] Required List of property IDs (ID from BookingPal system). At least one ID need to be present.
Example (as JSON)
{
  "data": [
    1235124636,
    1235124637
  ]
}

Getimagelistbyproduct ID

Class Name

GetimagelistbyproductID

Fields
Name Type Tags Description
message string Required text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string Required Code of message
data ImageUrlList[] Required List of Models
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "images": [
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069098.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069098.jpg",
          "sort": 1
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069099.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069099.jpg",
          "sort": 2
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069100.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069100.jpg",
          "sort": 3
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069101.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069101.jpg",
          "sort": 4
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069102.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069102.jpg",
          "sort": 5
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069103.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069103.jpg",
          "sort": 6
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069104.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069104.jpg",
          "sort": 7
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069105.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069105.jpg",
          "sort": 8
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069106.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069106.jpg",
          "sort": 9
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069107.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069107.jpg",
          "sort": 10
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069108.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069108.jpg",
          "sort": 11
        },
        {
          "url": "http://aff.bstatic.com/images/hotel/max500/110/11069109.jpg",
          "tags": [
            4,
            5,
            6
          ],
          "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069109.jpg",
          "sort": 12
        }
      ]
    }
  ]
}

Image

Class Name

Image

Fields
Name Type Tags Description
url string Required URL of the image
tags ImageTagsEnum[] | undefined Optional imagesText of main description. Tags codes are given in Appendix.
urlMbp string | undefined Optional URL of the image on MyBookingPal. This field will be only in response. You can not send this in request.
sort number | undefined Optional Sort of the image. Image with the lowest sort number will be set as main. This field will be only in response. You can not send this in request.
Example (as JSON)
{
  "url": "http://aff.bstatic.com/images/hotel/max500/110/11069098.jpg",
  "tags": [
    4,
    5,
    6
  ],
  "urlMbp": "https://s3.amazonaws.com/mybookingpal/pictures/n2ujn/n2ujn/1235124634/11069098.jpg",
  "sort": 1
}

Createimages Request

Class Name

CreateimagesRequest

Fields
Name Type Tags Description
data ImageUrlforCreate Required Model with one image URL for one property used for inserting new image
Example (as JSON)
{
  "data": {
    "productId": 1235124634,
    "image": {
      "url": "http://aff.bstatic.com/images/hotel/max500/110/11069097.jpg",
      "tags": [
        4,
        5,
        6
      ]
    }
  }
}

Image Urlfor Create

Model with one image URL for one property used for inserting new image

Class Name

ImageUrlforCreate

Fields
Name Type Tags Description
productId number Required Id of the product
image Image Required -
Example (as JSON)
{
  "productId": 1235124634,
  "image": {
    "url": "http://aff.bstatic.com/images/hotel/max500/110/11069097.jpg",
    "tags": [
      4,
      5,
      6
    ]
  }
}

Deletelistofimages Request

Class Name

DeletelistofimagesRequest

Fields
Name Type Tags Description
data ImageUrlList Required Model with list of URLs for one property
Example (as JSON)
{
  "data": {
    "productId": 1235124634,
    "images": [
      {
        "url": "https://aff.bstatic.com/images/hotel/max500/110/11069102.jpg"
      }
    ]
  }
}

Image Url List

Model with list of URLs for one property

Class Name

ImageUrlList

Fields
Name Type Tags Description
productId number Required Id of the product
images Image[] Required Images for property
Example (as JSON)
{
  "productId": 1235124634,
  "images": [
    {
      "url": "https://aff.bstatic.com/images/hotel/max500/110/11069102.jpg"
    }
  ]
}

Rates Availabilityresponse

Rates Availability response

Class Name

RatesAvailabilityresponse

Fields
Name Type Tags Description
message string Required text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string Required Code of message
data RatesAvailability[] Required List of models. This is a deprecated field. It will be removed in version 3.3. (This is only for Create and update requests, so you will not get this data in response). On GET request you will get data here.
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "leadTime": 2,
      "rates": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-01-25",
          "amount": 137
        }
      ],
      "minStays": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-01-25",
          "minStay": 5
        }
      ],
      "maxStays": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-01-25",
          "maxStay": 20
        }
      ],
      "restrictions": [
        {
          "beginDate": "2020-03-23",
          "endDate": "2021-01-25",
          "checkIn": {
            "monday": false,
            "tuesday": false,
            "wednesday": false,
            "thursday": false,
            "friday": false,
            "saturday": true,
            "sunday": true
          },
          "checkOut": {
            "monday": false,
            "tuesday": false,
            "wednesday": false,
            "thursday": false,
            "friday": false,
            "saturday": true,
            "sunday": true
          }
        },
        {
          "beginDate": "2021-01-25",
          "endDate": "2021-02-01",
          "checkIn": {
            "monday": false,
            "tuesday": true,
            "wednesday": true,
            "thursday": true,
            "friday": true,
            "saturday": true,
            "sunday": true
          },
          "checkOut": {
            "monday": false,
            "tuesday": true,
            "wednesday": true,
            "thursday": true,
            "friday": true,
            "saturday": true,
            "sunday": true
          }
        },
        {
          "beginDate": "2020-03-16",
          "endDate": "2020-03-23",
          "checkIn": {
            "monday": true,
            "tuesday": false,
            "wednesday": false,
            "thursday": false,
            "friday": false,
            "saturday": true,
            "sunday": true
          },
          "checkOut": {
            "monday": true,
            "tuesday": false,
            "wednesday": false,
            "thursday": false,
            "friday": false,
            "saturday": true,
            "sunday": true
          }
        }
      ],
      "availabilities": [
        {
          "beginDate": "2020-04-20",
          "endDate": "2020-04-25",
          "availability": false
        }
      ]
    }
  ]
}

Rates Availability

Rates Availability model

Class Name

RatesAvailability

Fields
Name Type Tags Description
productId number Required ID of the product
leadTime number | undefined Optional Number of days before reservation in which reservation couldn’t be made. Allowed values are 0-7. If this value is set on property level - it will be used before than value on PM level.
rates Rate[] | undefined Optional List of models
minStays MinStayModel[] | undefined Optional List of models
maxStays MaxStayModel[] | undefined Optional List of models
restrictions Restriction[] | undefined Optional List of models
availabilities AvailabilityModel[] | undefined Optional List of models
availableCount AvailableCount[] | undefined Optional List of models (Only for MLT properties)
Example (as JSON)
{
  "productId": 1235124634,
  "leadTime": 2,
  "rates": [
    {
      "beginDate": "2020-03-17",
      "endDate": "2021-01-25",
      "amount": 137
    }
  ],
  "minStays": [
    {
      "beginDate": "2020-03-17",
      "endDate": "2021-01-25",
      "minStay": 5
    }
  ],
  "maxStays": [
    {
      "beginDate": "2020-03-17",
      "endDate": "2021-01-25",
      "maxStay": 20
    }
  ],
  "restrictions": [
    {
      "beginDate": "2020-03-23",
      "endDate": "2021-01-25",
      "checkIn": {
        "monday": false,
        "tuesday": false,
        "wednesday": false,
        "thursday": false,
        "friday": false,
        "saturday": true,
        "sunday": true
      },
      "checkOut": {
        "monday": false,
        "tuesday": false,
        "wednesday": false,
        "thursday": false,
        "friday": false,
        "saturday": true,
        "sunday": true
      }
    },
    {
      "beginDate": "2021-01-25",
      "endDate": "2021-02-01",
      "checkIn": {
        "monday": false,
        "tuesday": true,
        "wednesday": true,
        "thursday": true,
        "friday": true,
        "saturday": true,
        "sunday": true
      },
      "checkOut": {
        "monday": false,
        "tuesday": true,
        "wednesday": true,
        "thursday": true,
        "friday": true,
        "saturday": true,
        "sunday": true
      }
    },
    {
      "beginDate": "2020-03-16",
      "endDate": "2020-03-23",
      "checkIn": {
        "monday": true,
        "tuesday": false,
        "wednesday": false,
        "thursday": false,
        "friday": false,
        "saturday": true,
        "sunday": true
      },
      "checkOut": {
        "monday": true,
        "tuesday": false,
        "wednesday": false,
        "thursday": false,
        "friday": false,
        "saturday": true,
        "sunday": true
      }
    }
  ],
  "availabilities": [
    {
      "beginDate": "2020-04-20",
      "endDate": "2020-04-25",
      "availability": false
    }
  ]
}

Rate

Class Name

Rate

Fields
Name Type Tags Description
beginDate string Required Beginning date of date range for which rate is applied. Date should be in format "yyyy-MM-dd"
endDate string Required End date of date range for which rate is applied. Date should be in format "yyyy-MM-dd"
amount number Required Value of rate, needs to be higher than 0, otherwise it will not be imported
Example (as JSON)
{
  "beginDate": "2020-03-17",
  "endDate": "2021-01-25",
  "amount": 137
}

Min Stay Model

MinStay model

Class Name

MinStayModel

Fields
Name Type Tags Description
beginDate string Required Beginning date of date range for which min stay is applied. Date should be in format "yyyy-MM-dd"
endDate string Required End date of date range for which min stay is applied. Date should be in format "yyyy-MM-dd"
minStay number Required Number of days that will be applied for min stay
Example (as JSON)
{
  "beginDate": "2020-03-17",
  "endDate": "2021-01-25",
  "minStay": 5
}

Max Stay Model

Class Name

MaxStayModel

Fields
Name Type Tags Description
beginDate string Required Beginning date of date range for which max stay is applied. Date should be in format "yyyy-MM-dd"
endDate string Required End date of date range for which max stay is applied. Date should be in format "yyyy-MM-dd"
maxStay number Required Number of days that will be applied for max stay
Example (as JSON)
{
  "beginDate": "2020-03-17",
  "endDate": "2021-01-25",
  "maxStay": 20
}

Restriction

Class Name

Restriction

Fields
Name Type Tags Description
beginDate string Required Beginning date of date range for which restriction is applied. Date should be in format "yyyy-MM-dd"
endDate string Required End date of date range for which restriction is applied. Date should be in format "yyyy-MM-dd"
checkIn CheckIn Required -
checkOut CheckOut Required -
Example (as JSON)
{
  "beginDate": "2020-03-23",
  "endDate": "2021-01-25",
  "checkIn": {
    "monday": false,
    "tuesday": false,
    "wednesday": false,
    "thursday": false,
    "friday": false,
    "saturday": true,
    "sunday": true
  },
  "checkOut": {
    "monday": false,
    "tuesday": false,
    "wednesday": false,
    "thursday": false,
    "friday": false,
    "saturday": true,
    "sunday": true
  }
}

Check In

Class Name

CheckIn

Fields
Name Type Tags Description
monday boolean Required Determines if check in could be made on monday
tuesday boolean Required Determines if check in could be made on tuesday
wednesday boolean Required Determines if check in could be made on wednesday
thursday boolean Required Determines if check in could be made on thursday
friday boolean Required Determines if check in could be made on friday
saturday boolean Required Determines if check in could be made on saturday
sunday boolean Required Determines if check in could be made on sunday
Example (as JSON)
{
  "monday": false,
  "tuesday": false,
  "wednesday": false,
  "thursday": false,
  "friday": false,
  "saturday": true,
  "sunday": true
}

Check Out

Class Name

CheckOut

Fields
Name Type Tags Description
monday boolean Required Determines if check out could be made on monday
tuesday boolean Required Determines if check out could be made on tuesday
wednesday boolean Required Determines if check out could be made on wednesday
thursday boolean Required Determines if check out could be made on thursday
friday boolean Required Determines if check out could be made on friday
saturday boolean Required Determines if check out could be made on saturday
sunday boolean Required Determines if check out could be made on sunday
Example (as JSON)
{
  "monday": false,
  "tuesday": false,
  "wednesday": false,
  "thursday": false,
  "friday": false,
  "saturday": true,
  "sunday": true
}

Availability Model

Class Name

AvailabilityModel

Fields
Name Type Tags Description
beginDate string Required Beginning date of date range for which availability is applied. Date should be in format "yyyy-MM-dd"
endDate string Required End date of date range for which availability is applied. Additional clarification: If you have reservation from 2020/08/05 - 2020/08/09, so checkout is on 2020/08/09 - you should send end date 2020/08/08, since 2020/08/09 is actually open for new reservation. Date should be in format "yyyy-MM-dd"
availability boolean Required Determines if the dates are available or not. Our system saves only not available dates, so it is enough that you sent only not available dates. But if you want to open dates that you previously sent that are not available, you need to send that these dates are available over API.
Example (as JSON)
{
  "beginDate": "2020-04-20",
  "endDate": "2020-04-25",
  "availability": false
}

Createandupdateratesandavailability Request

Class Name

CreateandupdateratesandavailabilityRequest

Fields
Name Type Tags Description
data RatesAvailability Required Rates Availability model
Example (as JSON)
{
  "data": {
    "productId": 1235124634,
    "leadTime": 2,
    "rates": [
      {
        "beginDate": "2020-01-20",
        "endDate": "2021-01-25",
        "amount": 137.0
      }
    ],
    "minStays": [
      {
        "beginDate": "2020-01-20",
        "endDate": "2021-01-25",
        "minStay": 5
      }
    ],
    "maxStays": [
      {
        "beginDate": "2020-01-20",
        "endDate": "2021-01-25",
        "maxStay": 20
      }
    ],
    "restrictions": [
      {
        "beginDate": "2020-01-20",
        "endDate": "2021-01-25",
        "checkIn": {
          "monday": false,
          "tuesday": false,
          "wednesday": false,
          "thursday": false,
          "friday": false,
          "saturday": true,
          "sunday": true
        },
        "checkOut": {
          "monday": false,
          "tuesday": false,
          "wednesday": false,
          "thursday": false,
          "friday": false,
          "saturday": true,
          "sunday": true
        }
      }
    ],
    "availabilities": [
      {
        "beginDate": "2020-04-20",
        "endDate": "2020-04-25",
        "availability": false
      },
      {
        "beginDate": "2020-04-26",
        "endDate": "2020-04-28",
        "availability": true
      }
    ],
    "availableCount": [
      {
        "beginDate": "2020-04-20",
        "endDate": "2020-04-25",
        "count": 3
      },
      {
        "beginDate": "2020-04-26",
        "endDate": "2020-04-28",
        "count": 4
      }
    ]
  }
}

Available Count

Class Name

AvailableCount

Fields
Name Type Tags Description
beginDate string Required Beginning date of date range for which count is applied. Date should be in format "yyyy-MM-dd"
endDate string Required End date of date range for which count is applied. Date should be in format "yyyy-MM-dd"
count number Required Number of available rooms
Example (as JSON)
{
  "beginDate": "2020-04-20",
  "endDate": "2020-04-25",
  "count": 3
}

Createandupdate LOS Request

Class Name

CreateandupdateLOSRequest

Fields
Name Type Tags Description
data LosRatesProduct Required Model for product LOS rates
Example (as JSON)
{
  "data": {
    "productId": 1235124634,
    "losRates": [
      {
        "checkInDate": "2020-06-20",
        "maxGuests": 3,
        "losValue": [
          100.0,
          150.0,
          200.0,
          250.0,
          300.0,
          0.0,
          0.0,
          450.0,
          500.0,
          550.0,
          600.0,
          650.0,
          700.0,
          750.0,
          800.0,
          850.0,
          900.0,
          950.0,
          550.0,
          510.0,
          570.0,
          520.0,
          500.0,
          510.0,
          590.0,
          121.0,
          122.0,
          123.0
        ]
      },
      {
        "checkInDate": "2020-05-21",
        "maxGuests": 4,
        "losValue": [
          111.0,
          112.0,
          123.0,
          250.0,
          300.0,
          350.0,
          400.0,
          450.0,
          500.0,
          550.0,
          600.0,
          650.0,
          700.0,
          750.0,
          800.0,
          850.0,
          900.0,
          950.0,
          550.0,
          510.0,
          570.0,
          520.0,
          500.0,
          510.0,
          590.0,
          580.0,
          560.0,
          540.0
        ]
      }
    ]
  }
}

Los Rates Product

Model for product LOS rates

Class Name

LosRatesProduct

Fields
Name Type Tags Description
productId number Required ID of the product
losRates LosRate[] Required List of models. Max size array for LosRates object 1000
Example (as JSON)
{
  "productId": 1235124634,
  "losRates": [
    {
      "checkInDate": "2020-06-20",
      "maxGuests": 3,
      "losValue": [
        100.0,
        150.0,
        200.0,
        250.0,
        300.0,
        0.0,
        0.0,
        450.0,
        500.0,
        550.0,
        600.0,
        650.0,
        700.0,
        750.0,
        800.0,
        850.0,
        900.0,
        950.0,
        550.0,
        510.0,
        570.0,
        520.0,
        500.0,
        510.0,
        590.0,
        121.0,
        122.0,
        123.0
      ]
    },
    {
      "checkInDate": "2020-05-21",
      "currency": "USD",
      "maxGuests": 4,
      "losValue": [
        111.0,
        112.0,
        123.0,
        250.0,
        300.0,
        350.0,
        400.0,
        450.0,
        500.0,
        550.0,
        600.0,
        650.0,
        700.0,
        750.0,
        800.0,
        850.0,
        900.0,
        950.0,
        550.0,
        510.0,
        570.0,
        520.0,
        500.0,
        510.0,
        590.0,
        580.0,
        560.0,
        540.0
      ]
    }
  ]
}

Los Rate

Model for LOS (Length of stay) rates

Class Name

LosRate

Fields
Name Type Tags Description
checkInDate string Required Check-in Date. Date should be in format "yyyy-MM-dd"
maxGuests number Required Max guests for check in date
losValue number[] Required List rates value per day. First value is for reservation for 1 day. Secoon. If you do not support booking for some specific number of days, set value 0 for that element in array.nd value is for reservation for 2 days, and so on. If you do not support booking for some specific number of days, set value 0 for that element in array.
currency string | undefined Optional Currency for rates. It will be visiable only in GET response. You should not set this field in request since we will use product currency for every rate.
Example (as JSON)
{
  "checkInDate": "2020-06-20",
  "maxGuests": 3,
  "losValue": [
    100.0,
    150.0,
    200.0,
    250.0,
    300.0,
    0.0,
    0.0,
    450.0,
    500.0,
    550.0,
    600.0,
    650.0,
    700.0,
    750.0,
    800.0,
    850.0,
    900.0,
    950.0,
    550.0,
    510.0,
    570.0,
    520.0,
    500.0,
    510.0,
    590.0,
    121.0,
    122.0,
    123.0
  ]
}

LO Sratesresponse

Class Name

LOSratesresponse

Fields
Name Type Tags Description
message string Required text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string Required Code of message
data LosRatesProduct[] Required List of models
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "losRates": [
        {
          "checkInDate": "2020-05-21",
          "currency": "RSD",
          "maxGuests": 4,
          "losValue": [
            111,
            112,
            123,
            250,
            300,
            350,
            400,
            450,
            500,
            550,
            600,
            650,
            700,
            750,
            800,
            850,
            900,
            950,
            550,
            510,
            570,
            520,
            500,
            510,
            590,
            580,
            560,
            540,
            0,
            0
          ]
        },
        {
          "checkInDate": "2020-06-20",
          "currency": "RSD",
          "maxGuests": 3,
          "losValue": [
            100,
            150,
            200,
            250,
            300,
            0,
            0,
            450,
            500,
            550,
            600,
            650,
            700,
            750,
            800,
            850,
            900,
            950,
            550,
            510,
            570,
            520,
            500,
            510,
            590,
            121,
            122,
            123,
            0,
            0
          ]
        }
      ]
    }
  ]
}

Fee Tax Response

Response for Create or Get FeeTax API call

Class Name

FeeTaxResponse

Fields
Name Type Tags Description
message string Required Text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string Required Code of message
data FeeTax[] Required List of models
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "fees": [
        {
          "beginDate": "2020-02-26",
          "endDate": "2020-12-12",
          "entityType": "OPTIONAL",
          "feeType": "GENERAL",
          "option": 3,
          "name": "RetestFeeHF",
          "taxType": "TAXABLE",
          "unit": "PER_DAY_PER_PERSON_EXTRA",
          "value": 88,
          "valueType": "PERCENT"
        }
      ],
      "taxes": [
        {
          "name": "Tax reTestAT",
          "type": "SalesTaxIncluded",
          "value": 55,
          "altId": "11"
        }
      ]
    }
  ]
}

Fee Tax

Class Name

FeeTax

Fields
Name Type Tags Description
productId number Required ID of the product
fees Fee[] | undefined Optional List of models
taxes Taxes[] | undefined Optional List of models
Example (as JSON)
{
  "productId": 1235124634,
  "fees": [
    {
      "beginDate": "2020-02-26",
      "endDate": "2020-12-12",
      "entityType": "OPTIONAL",
      "feeType": "GENERAL",
      "option": 3,
      "name": "RetestFeeHF",
      "taxType": "TAXABLE",
      "unit": "PER_DAY_PER_PERSON_EXTRA",
      "value": 88,
      "valueType": "PERCENT"
    }
  ],
  "taxes": [
    {
      "name": "Tax reTestAT",
      "type": "SalesTaxIncluded",
      "value": 55,
      "altId": "11"
    }
  ]
}

Fee

Class Name

Fee

Fields
Name Type Tags Description
beginDate string | undefined Optional Fee applies from Date. Date should be in format "yyyy-MM-dd"
endDate string | undefined Optional Fee applies to Date. Date should be in format "yyyy-MM-dd"
entityType FeeEntityTypeEnum Required -
feeType FeeTypeEnum Required -
option number | undefined Optional Number of guests when set extra person fee. Only values >0 are allowed.
name string Required Fee name. For example: Extra person, Cleaning fee, Parking etc.
taxType FeetaxTypeEnum | undefined Optional -
unit FeeUnitEnum Required -
value number Required Fee value
valueType FeeValueTypeEnum Required Value Type {FLAT, PERCENT}
altId string | undefined Optional Alternative Id of the fee (fee id in your system)
Example (as JSON)
{
  "beginDate": "2020-02-26",
  "endDate": "2020-12-12",
  "entityType": "OPTIONAL",
  "feeType": "GENERAL",
  "option": 3,
  "name": "RetestFeeHF",
  "taxType": "TAXABLE",
  "unit": "PER_DAY_PER_PERSON_EXTRA",
  "value": 88,
  "valueType": "PERCENT"
}

Taxes

Class Name

Taxes

Fields
Name Type Tags Description
name string Required Tax name
type TaxisTypeEnum | undefined Optional -
value number Required Tax value
altId string | undefined Optional Alternative Id of the tax (tax id in your system)
Example (as JSON)
{
  "name": "Tax reTestAT",
  "type": "SalesTaxIncluded",
  "value": 55,
  "altId": "11"
}

Createfeeandtax Request

Class Name

CreatefeeandtaxRequest

Fields
Name Type Tags Description
data FeeTax Required -
Example (as JSON)
{
  "data": {
    "productId": 1235124634,
    "fees": [
      {
        "entityType": "OPTIONAL",
        "feeType": "GENERAL",
        "option": 3,
        "name": "RetestFeeHF",
        "beginDate": "2020-02-26",
        "endDate": "2020-12-12",
        "taxType": "TAXABLE",
        "unit": "PER_DAY_PER_PERSON_EXTRA",
        "value": 88,
        "valueType": "PERCENT"
      }
    ],
    "taxes": [
      {
        "name": "Tax reTestAT",
        "type": "SalesTaxIncluded",
        "value": 55,
        "altId": "11"
      }
    ]
  }
}

Fee Tax Validation Setting Response

Class Name

FeeTaxValidationSettingResponse

Fields
Name Type Tags Description
message string Required Text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string Required Code of message
data FeeTaxValidationSettings[] Required List of Models
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "validationSettings": [
        {
          "productId": 1235124634,
          "isFeeMandatory": false,
          "isTaxMandatory": false
        },
        {
          "productId": 1235124636,
          "isFeeMandatory": true,
          "isTaxMandatory": true
        },
        {
          "productId": 1235124637,
          "isFeeMandatory": true,
          "isTaxMandatory": true
        }
      ]
    }
  ]
}

Fee Tax Validation Settings

Class Name

FeeTaxValidationSettings

Fields
Name Type Tags Description
validationSettings FeeTaxMandatorySetting[] Required Model
Example (as JSON)
{
  "validationSettings": [
    {
      "productId": 1235124634,
      "isFeeMandatory": false,
      "isTaxMandatory": false
    },
    {
      "productId": 1235124636,
      "isFeeMandatory": true,
      "isTaxMandatory": true
    },
    {
      "productId": 1235124637,
      "isFeeMandatory": true,
      "isTaxMandatory": true
    }
  ]
}

Fee Tax Mandatory Setting

Class Name

FeeTaxMandatorySetting

Fields
Name Type Tags Description
productId number Required Product id
isFeeMandatory boolean Required Fee is mandatory
isTaxMandatory boolean Required Tax is mandatory
Example (as JSON)
{
  "productId": 1235124634,
  "isFeeMandatory": false,
  "isTaxMandatory": false
}

Setfeeandtaxvalidationsetting Request

This is a request for setting or updating fee and tax validation setting per property

Class Name

SetfeeandtaxvalidationsettingRequest

Fields
Name Type Tags Description
data FeeTaxValidationSettings Required -
Example (as JSON)
{
  "data": {
    "validationSettings": [
      {
        "productId": 1235124634,
        "isFeeMandatory": false,
        "isTaxMandatory": false
      }
    ]
  }
}

Yieldresponse

Class Name

Yieldresponse

Fields
Name Type Tags Description
message string Required text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string Required Code of message
data TransportYield[] Required List of Models
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "productId": 1235124634,
      "weekend": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-02-15",
          "amount": 18,
          "modifier": "DECREASE_PERCENT",
          "weekendParam": "DAYS_OF_WEEKEND_SAT_SUN"
        }
      ],
      "lengthOfStay": [
        {
          "beginDate": "2020-03-17",
          "endDate": "2021-02-15",
          "amount": 34,
          "modifier": "INCREASE_AMOUNT",
          "param": 7
        }
      ],
      "dateRange": [
        {
          "beginDate": "2020-04-10",
          "endDate": "2020-04-15",
          "amount": 35,
          "modifier": "INCREASE_AMOUNT"
        },
        {
          "beginDate": "2020-05-16",
          "endDate": "2020-05-25",
          "amount": 25,
          "modifier": "INCREASE_PERCENT"
        }
      ]
    }
  ]
}

Transport Yield

Class Name

TransportYield

Fields
Name Type Tags Description
productId number Required ID of the product
weekend Yield[] | undefined Optional Set a specific date range in which you would like to manipulate the basic price per night on weekends. For example you will set the YMR date range from 01.07.2016-31.07.2016 param - (Friday, Saturday=0; Saturday, Sunday=1) yield amount = 20 modifier - Increase Percent Price per night in the period from 01.07.2016 to 31.07.2016 will be 100 USD in working days and 100 + 20% = 120 USD in weekends (Friday, Saturday or Saturday, Sunday, depending on what was selected).
lengthOfStay Yield[] | undefined Optional Automatically applies price modifications to inquiries based on the number of nights the inquiries are for. For example you will set the YMR date range from 01.07.2016-31.07.2017 param - {Length of Stay}. Let’s say you set 15 days. yield amount = 5 modifier - Decrease Percent Price per night if you made a reservation for 15 or more days will be 100 - 5% = 95 USD
dateRange Yield[] | undefined Optional Set a specific date range in which you would like to manipulate the basic price per night. For example you will set the YMR date range from 01.07.2016-31.07.2016 yield amount = 20 modifier - Increase Percent Price per night in the period from 01.07.2016 to 31.07.2016 will be 100 + 20% = 120 USD
Example (as JSON)
{
  "productId": 1235124634,
  "weekend": [
    {
      "beginDate": "2020-03-17",
      "endDate": "2021-02-15",
      "amount": 18,
      "modifier": "DECREASE_PERCENT",
      "weekendParam": "DAYS_OF_WEEKEND_SAT_SUN"
    }
  ],
  "lengthOfStay": [
    {
      "beginDate": "2020-03-17",
      "endDate": "2021-02-15",
      "amount": 34,
      "modifier": "INCREASE_AMOUNT",
      "param": 7
    }
  ],
  "dateRange": [
    {
      "beginDate": "2020-04-10",
      "endDate": "2020-04-15",
      "amount": 35,
      "modifier": "INCREASE_AMOUNT"
    },
    {
      "beginDate": "2020-05-16",
      "endDate": "2020-05-25",
      "amount": 25,
      "modifier": "INCREASE_PERCENT"
    }
  ]
}

Yield

Class Name

Yield

Fields
Name Type Tags Description
beginDate string Required From date. Date should be in format "yyyy-MM-dd"
endDate string Required To date. Date should be in format "yyyy-MM-dd"
amount number Required Yield amount
modifier YieldmodifierEnum Required -
weekendParam WeekendParamEnum | undefined Optional -
param number | undefined Optional Parameter. It can verify depending on what YMR was set. More details about params you can see in the description above.
Example (as JSON)
{
  "beginDate": "2020-03-17",
  "endDate": "2021-02-15",
  "amount": 18,
  "modifier": "DECREASE_PERCENT",
  "weekendParam": "DAYS_OF_WEEKEND_SAT_SUN"
}

Create Yield Request

Class Name

CreateYieldRequest

Fields
Name Type Tags Description
data TransportYield Required -
Example (as JSON)
{
  "data": {
    "productId": 1235124634,
    "weekend": [
      {
        "beginDate": "2020-02-10",
        "endDate": "2021-02-15",
        "amount": 18.0,
        "modifier": "DECREASE_PERCENT",
        "weekendParam": "DAYS_OF_WEEKEND_SAT_SUN"
      }
    ],
    "lengthOfStay": [
      {
        "beginDate": "2020-02-10",
        "endDate": "2021-02-15",
        "amount": 34.0,
        "modifier": "INCREASE_AMOUNT",
        "param": 7
      }
    ],
    "dateRange": [
      {
        "beginDate": "2020-04-10",
        "endDate": "2020-04-15",
        "amount": 35.0,
        "modifier": "INCREASE_AMOUNT"
      },
      {
        "beginDate": "2020-05-16",
        "endDate": "2020-05-25",
        "amount": 25.0,
        "modifier": "INCREASE_PERCENT"
      }
    ]
  }
}

Validationfor Listofproperties Request

Class Name

ValidationforListofpropertiesRequest

Fields
Name Type Tags Description
data ValidationPropertyIDsList Required -
Example (as JSON)
{
  "data": {
    "productIds": [
      1235124634,
      1235124636
    ]
  }
}

Validation-Property I Ds List

Class Name

ValidationPropertyIDsList

Fields
Name Type Tags Description
productIds number[] Required List of properties for validation
Example (as JSON)
{
  "productIds": [
    1235124634,
    1235124636
  ]
}

Threads Model

Class Name

ThreadsModel

Fields
Name Type Tags Description
threads Thread[] Required List of models
Example (as JSON)
{
  "threads": [
    {
      "id": 68241,
      "lastMessageSentAt": "2019-12-03 00:00:00",
      "lastMessageText": "Message KHSroelMoR",
      "channelName": "AirBnB",
      "channelABB": "ABB",
      "guestName": "Test Guest Name 2 ",
      "guestEmailAddress": "autoeelcbl@atxjarv.uri",
      "productId": 1235124634,
      "reservationId": 119557886,
      "dateFrom": "2019-12-02",
      "dateTo": "2019-12-04"
    },
    {
      "id": 68257,
      "lastMessageSentAt": "2019-12-03 00:00:00",
      "lastMessageText": "Message ytgdVvQpQm",
      "channelName": "AirBnB",
      "channelABB": "ABB",
      "guestName": "Test Guest Name 1",
      "guestEmailAddress": "autoppresf@at81.sla",
      "productId": 1235124634,
      "dateFrom": "2019-12-02",
      "dateTo": "2019-12-04"
    }
  ]
}

Thread

Class Name

Thread

Fields
Name Type Tags Description
id number Required Thread ID
lastMessageSentAt string Required Time when last message was sent
lastMessageText string Required Last message text
channelName string Required Channel from where come reservation
channelABB ChannelABBEnum Required -
guestName string Required Name of guest
guestEmailAddress string Required Email of guest
productId number Required ID of product in BookingPal database
reservationId number | undefined Optional ID of reservation
dateFrom string Required Start date of reservation. Date is in format "yyyy-MM-dd"
dateTo string Required End date of reservation. Date is in format "yyyy-MM-dd"
Example (as JSON)
{
  "id": 68241,
  "lastMessageSentAt": "2019-12-03 00:00:00",
  "lastMessageText": "Message KHSroelMoR",
  "channelName": "AirBnB",
  "channelABB": "ABB",
  "guestName": "Test Guest Name 2 ",
  "guestEmailAddress": "autoeelcbl@atxjarv.uri",
  "productId": 1235124634,
  "reservationId": 119557886,
  "dateFrom": "2019-12-02",
  "dateTo": "2019-12-04"
}

Message Request From Supplier

Class Name

MessageRequestFromSupplier

Fields
Name Type Tags Description
threadId number Required ID of thread
message string Required Message text
Example (as JSON)
{
  "threadId": 5656,
  "message": "new message"
}

Getmessagethreads Response

Class Name

GetmessagethreadsResponse

Fields
Name Type Tags Description
message string Required Text info message
errorMessage string[] Required Text info message
isError boolean Required Is error (default = false)
code string Required Code of message
data ThreadsModel[] Required List of Models
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "threads": []
    }
  ]
}

Getmessagelistforspecificthread Response

Class Name

GetmessagelistforspecificthreadResponse

Fields
Name Type Tags Description
message string Required Text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string Required Code of message
data MessagesModel[] Required List of Models
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "messages": [
        {
          "message": "Test message",
          "createdAt": "2019-11-25 12:32:39",
          "user": "PROPERTY_MANAGER"
        }
      ]
    }
  ]
}

Messages Model

List of messages Model

Class Name

MessagesModel

Fields
Name Type Tags Description
messages MessageModel[] Required List of models
Example (as JSON)
{
  "messages": [
    {
      "message": "Test message",
      "createdAt": "2019-11-25 12:32:39",
      "user": "PROPERTY_MANAGER"
    }
  ]
}

Message Model

Model for one message

Class Name

MessageModel

Fields
Name Type Tags Description
message string Required Message text
createdAt string Required Time when message created
user UserEnum Required -
Example (as JSON)
{
  "message": "Test message",
  "createdAt": "2019-11-25 12:32:39",
  "user": "PROPERTY_MANAGER"
}

Postnewmessageforspecificthread Request

Class Name

PostnewmessageforspecificthreadRequest

Fields
Name Type Tags Description
data MessageRequestFromSupplier Required -
Example (as JSON)
{
  "data": {
    "threadId": 5656,
    "message": "New message"
  }
}

Requestto Book-Answerfrom PMS Request

Class Name

RequesttoBookAnswerfromPMSRequest

Fields
Name Type Tags Description
data FunctionsRequestToBook Required Request to book answer model
Example (as JSON)
{
  "data": {
    "requestToBookType": "DENY",
    "requestToBookDeclineReasonType": "DATES_NOT_AVAILABLE",
    "declineMessageToGuest": "these dates are not available any more. ",
    "reservationId": 1235124634
  }
}

Functions Request to Book

Request to book answer model

Class Name

FunctionsRequestToBook

Fields
Name Type Tags Description
requestToBookType RequestToBookTypeEnum Required -
requestToBookDeclineReasonType RequestToBookDeclineReasonTypeEnum | undefined Optional -
declineMessageToGuest string | undefined Optional Message to guest
reservationId number Required Reservation for request to book
Example (as JSON)
{
  "requestToBookType": "DENY",
  "requestToBookDeclineReasonType": "DATES_NOT_AVAILABLE",
  "declineMessageToGuest": "these dates are not available any more. ",
  "reservationId": 1235124634
}

Requestto Book-Test Request

Class Name

RequesttoBookTestRequest

Fields
Name Type Tags Description
data FunctionsRequestToBookTest Required -
Example (as JSON)
{
  "data": {
    "action": "RESERVATION_REQUEST_VOIDED",
    "productId": 1235124634
  }
}

Functions Request to Book Test

Class Name

FunctionsRequestToBookTest

Fields
Name Type Tags Description
action RequesttoBookTestActionEnum Required Allowed values for request to book Test action
productId number Required Product id for test request to book
Example (as JSON)
{
  "action": "RESERVATION_REQUEST_VOIDED",
  "productId": 1235124634
}

Push Notification Links Request

Class Name

PushNotificationLinksRequest

Fields
Name Type Tags Description
data PushNotificationLinksModel Required Model for push notification links
Example (as JSON)
{
  "data": {
    "bookLink": "https://newreservationnotification.link",
    "cancelLink": "https://cancelreservation.link",
    "asyncPush": "https://asyncpush.link",
    "requestToBook": "https://requestToBook.link"
  }
}

Push Notification Links Model

Model for push notification links

Class Name

PushNotificationLinksModel

Fields
Name Type Tags Description
bookLink string Required Link for getting notifications about new reservations
cancelLink string Required Link for getting notification about cancel reservation
asyncPush string | undefined Optional Link for push data for async messages
requestToBook string | undefined Optional Link for request to book for AirBnb
Example (as JSON)
{
  "bookLink": "https://newreservationnotification.link",
  "cancelLink": "https://cancelreservation.link",
  "asyncPush": "https://asyncpush.link",
  "requestToBook": "https://requestToBook.link"
}

Push Notification Links Response

Class Name

PushNotificationLinksResponse

Fields
Name Type Tags Description
message string Required text info message
errorMessage string[] Required List of error messages
isError boolean Required Is error (default = false)
code string Required Code of message
data PushNotificationLinksModel[] Required List of Models
Example (as JSON)
{
  "message": "",
  "errorMessage": [],
  "is_error": false,
  "code": "",
  "data": [
    {
      "bookLink": "https://newreservationnotification.link",
      "cancelLink": "https://cancelreservation.link",
      "asyncPush": "https://asyncpush.link",
      "requestToBook": "https://requestToBook.link"
    }
  ]
}

Reservationnotificationobject

Class Name

Reservationnotificationobject

Fields
Name Type Tags Description
reservationId string Required Id of the reservation in BookingPal
productId string Required Id of the product in BookingPal
supplierId string Required Id of the property manager
agentName string Required Agent name/Channel name
confirmationId string Required Channel confirmation code
uniqueKey string Required Unique code to identify that the request is from BookingPal. This value is unique for every PMS (and it will be different in different environments).
newState string Required Reservation state
customerName string Required Guest full name (in format firstName, lastName)
fromDate string Required Reservation date from. Date is in format "yyyy-MM-dd"
toDate string Required Reservation date to. Date is in format "yyyy-MM-dd"
adult number Required number of adults
child number Required number of children
address string | undefined Optional Guest address
city string | undefined Optional Guest city
zip string | undefined Optional Guest zip code
country string | undefined Optional Guest country
state string | undefined Optional Guest state
email string Required Guest email
phone string | undefined Optional Guest phone
notes string | undefined Optional Guest notes
creditCardType string | undefined Optional Credit card type
creditCardNumber string | undefined Optional Credit card number
creditCardExpirationMonth string | undefined Optional Credit card expiration month
creditCardExpirationYear string | undefined Optional Credit card expiration yea
creditCardCid string | undefined Optional Credit card cid
total number Required Best available rate (This is the total value that guests will pay, including rate, fees, taxes, and all commissions. )
fees ReservationFeeNotificationModel[] Required List of models
taxes ReservationTaxNotificationModel[] Required List of models
commission ReservationCommissionsNotificationModel Required -
rate ReservationRateNotifcationModel Required -
Example (as JSON)
{
  "reservationId": "107",
  "productId": "1234816374",
  "supplierId": "3731837",
  "agentName": "TestAndrew",
  "confirmationId": "ZSC213123123A",
  "customerName": "dasdasd",
  "fromDate": "2019-05-17",
  "toDate": "2019-05-23",
  "adult": 2,
  "child": 0,
  "address": "asdasd",
  "city": "asdasd",
  "zip": "asdasd",
  "email": "andrewtesttest222@gmail.com",
  "phone": "4234234",
  "notes": "customer test message",
  "creditCardType": "1",
  "creditCardNumber": "4111111111111111",
  "creditCardExpirationMonth": "12",
  "creditCardExpirationYear": "2023",
  "creditCardCid": "123",
  "total": 652.0,
  "fees": [
    {
      "id": "937-4",
      "name": "Cleaning Fee",
      "value": 110.0
    },
    {
      "id": "355",
      "name": "Limited Damage Waiver",
      "value": 60.0
    },
    {
      "id": "1298",
      "name": "Processing Fee",
      "value": 40.0
    }
  ],
  "taxes": [
    {
      "id": "22",
      "name": "State of Florida-Lake County State Tax",
      "value": 5.0
    },
    {
      "id": "23",
      "name": "Tax-Lake County County Tax",
      "value": 15.0
    }
  ],
  "newState": "Provisional",
  "commission": {
    "channelCommission": 10.0,
    "bpCommission": 12.0
  },
  "rate": {
    "originalRackRate": 400.0,
    "netRate": 400.0,
    "newPublishedRackRate": 422.0
  },
  "country": "US",
  "state": "asdasda",
  "uniqueKey": "f207c4c029cb1ea1"
}

Reservationpush Response

This is response which the BookingPal expect to get on from PMS on push POST request for create/cancel reservation

Class Name

ReservationpushResponse

Fields
Name Type Tags Description
altId string Required Id of reservation in your system
isError boolean Required Did you have error during processing of request (true) or not (false)
Default: false
Default: false
code string Required Code of message
message string Required Text info message. If you have any error please put here detail message.
transactionState string | undefined Optional This field should be returned only if you are processing payment. With information did you process payment or not. Allowed values [Accepted, Failed].
Example (as JSON)
{
  "altId": "45717",
  "is_error": false,
  "code": "",
  "message": "Reservation is processed.",
  "transactionState": "Accepted"
}

Reservation Fee Notification Model

Model used for fees in reservation push notification

Class Name

ReservationFeeNotificationModel

Fields
Name Type Tags Description
id string | undefined Optional Fee altID (alt ID which PMS sent over API)
name string Required Fee name
value number Required Fee value
Example (as JSON)
{
  "id": "937-4",
  "name": "Cleaning Fee",
  "value": 110.0
}

Reservation Tax Notification Model

Model used for taxes in reservation push notification

Class Name

ReservationTaxNotificationModel

Fields
Name Type Tags Description
id string | undefined Optional Tax altID (alt ID which PMS sent over API)
name string Required Tax name
value number Required Tax value
Example (as JSON)
{
  "id": "22",
  "name": "State of Florida-Lake County State Tax",
  "value": 5.0
}

Reservation Rate Notifcation Model

Class Name

ReservationRateNotifcationModel

Fields
Name Type Tags Description
originalRackRate number Required Original rack rate. Rate received from PMS (rate without additional channel commission or any additional markup)
netRate number Required Net rate (rate which PM will get - so without any additional commissions).
newPublishedRackRate number Required New published rack rate (rate which guest paid - rate with all commissions).
Example (as JSON)
{
  "originalRackRate": 400.0,
  "netRate": 400.0,
  "newPublishedRackRate": 422.0
}

Reservation Commissions Notification Model

Class Name

ReservationCommissionsNotificationModel

Fields
Name Type Tags Description
channelCommission number Required Channel commission
bpCommission number Required BookingPal commission
Example (as JSON)
{
  "channelCommission": 10.0,
  "bpCommission": 12.0
}

Cancel Reservationnotificationobject

Class Name

CancelReservationnotificationobject

Fields
Name Type Tags Description
reservationId string Required Id of the reservation in BookingPal
productId string Required Id of the product in BookingPal
supplierId number Required Id of the property manager
agentName string Required Agent name/Channel name
confirmationId string Required Channel confirmation code
uniqueKey string Required Unique code to identify that the request is from BookingPal. This value is unique for every PMS (and it will be different in different environments).
newState string Required It will always be "Cancelled" in this request
customerName string Required Guest full name (in format firstName, lastName)
fromDate string Required Reservation date from. Date is in format "yyyy-MM-dd"
toDate string Required Reservation date to. Date is in format "yyyy-MM-dd"
adult number Required Number of adults
child number Required Number of children
email string Required Guest email
phone string | undefined Optional Guest phone
notes string | undefined Optional Guest notes
creditCardType string | undefined Optional Credit card type
total number Required Best available rate (This is the total value that guests will pay, including rate, fees, taxes, and all commissions. )
Example (as JSON)
{
  "reservationId": "7534",
  "productId": "12969",
  "supplierId": 161637256,
  "agentName": "Test Channel m9iPCxJ6h3",
  "confirmationId": "ZSC213123123A",
  "customerName": "Michael, Johnson",
  "fromDate": "2020-02-26",
  "toDate": "2020-02-27",
  "adult": 1,
  "child": 0,
  "email": "autoorlu@atvc.gen",
  "phone": "+384135213",
  "notes": "test notes",
  "total": 28.16,
  "uniqueKey": "227317348c176f71a502d2c65c2f75d3",
  "newState": "Cancelled"
}

Reservation Get Response

Response for Get reservation calls

Class Name

ReservationGetResponse

Fields
Name Type Tags Description
message string Required text info message
errorMessage string[] Required List of all errors occurred.
isError boolean Required Is error (default = false)
code string Required Code of message
data Reservationnotificationobject[] Required List of Reservation models
Example (as JSON)
{
  "message": null,
  "errorMessage": null,
  "is_error": null,
  "code": null,
  "data": {
    "reservationId": "107",
    "productId": "1234816374",
    "supplierId": "3731837",
    "agentName": "TestAndrew",
    "confirmationId": "ZSC213123123A",
    "customerName": "dasdasd",
    "fromDate": "2019-05-17",
    "toDate": "2019-05-23",
    "adult": 2,
    "child": 0,
    "address": "asdasd",
    "city": "asdasd",
    "zip": "asdasd",
    "email": "andrewtesttest222@gmail.com",
    "phone": "4234234",
    "notes": "customer test message",
    "creditCardType": "1",
    "creditCardNumber": "4111111111111111",
    "creditCardExpirationMonth": "12",
    "creditCardExpirationYear": "2023",
    "creditCardCid": "123",
    "total": 652.0,
    "fees": [
      {
        "id": "937-4",
        "name": "Cleaning Fee",
        "value": 110.0
      },
      {
        "id": "355",
        "name": "Limited Damage Waiver",
        "value": 60.0
      },
      {
        "id": "1298",
        "name": "Processing Fee",
        "value": 40.0
      }
    ],
    "taxes": [
      {
        "id": "22",
        "name": "State of Florida-Lake County State Tax",
        "value": 5.0
      },
      {
        "id": "23",
        "name": "Tax-Lake County County Tax",
        "value": 15.0
      }
    ],
    "newState": "Provisional",
    "commission": {
      "channelCommission": 10.0,
      "bpCommission": 12.0
    },
    "rate": {
      "originalRackRate": 400.0,
      "netRate": 400.0,
      "newPublishedRackRate": 422.0
    },
    "country": "US",
    "state": "asdasda",
    "uniqueKey": "f207c4c029cb1ea1"
  }
}

Validation Asynchronouspushmessagerequest

Request for validation messages which BookingPal push asynchronous (webhooks request)

Class Name

ValidationAsynchronouspushmessagerequest

Fields
Name Type Tags Description
supplierId number Required Id of supplier in BookingPal
type string Required Default: 'BP_VALIDATION'
Default: 'BP_VALIDATION'
validation AsynchronousValidationmodel[] Required Validation Model
Example (as JSON)
{
  "supplierId": 636753,
  "type": "BP_VALIDATION",
  "validation": [
    {
      "productId": 291358,
      "validationErrors": "null",
      "valid": true
    },
    {
      "productId": 291356,
      "validationErrors": "noPrice;",
      "valid": false
    }
  ]
}

Asynchronous Validationmodel

Model for Validation messages

Class Name

AsynchronousValidationmodel

Fields
Name Type Tags Description
productId number Required Id of product in BookingPal
validationErrors string | undefined Optional Error message - explanation what are problems if validation failed.
valid boolean Required Is product valid
Example (as JSON)
{
  "productId": 291356,
  "validationErrors": "noPrice;",
  "valid": false
}

Request to Book Request Model

Model for request to book API request

Class Name

RequestToBookRequestModel

Fields
Name Type Tags Description
rezcasterNotificationRequest Reservationnotificationobject Required -
action string Required RESERVATION_REQUEST
reservationId number Required ID of reservation in BookingPal
messageToHost string | undefined Optional Message from Guest to host
expiresAt string Required expires time. Date is in format "yyyy-MM-dd"
Example (as JSON)
{
  "rezcasterNotificationRequest": {
    "reservationId": "107",
    "productId": "1234816374",
    "supplierId": "3731837",
    "agentName": "TestAndrew",
    "confirmationId": "ZSC213123123A",
    "customerName": "dasdasd",
    "fromDate": "2019-05-17",
    "toDate": "2019-05-23",
    "adult": 2,
    "child": 0,
    "address": "asdasd",
    "city": "asdasd",
    "zip": "asdasd",
    "email": "andrewtesttest222@gmail.com",
    "phone": "4234234",
    "notes": "customer test message",
    "creditCardType": "1",
    "creditCardNumber": "4111111111111111",
    "creditCardExpirationMonth": "12",
    "creditCardExpirationYear": "2023",
    "creditCardCid": "123",
    "total": 652.0,
    "fees": [
      {
        "id": "937-4",
        "name": "Cleaning Fee",
        "value": 110.0
      },
      {
        "id": "355",
        "name": "Limited Damage Waiver",
        "value": 60.0
      },
      {
        "id": "1298",
        "name": "Processing Fee",
        "value": 40.0
      }
    ],
    "taxes": [
      {
        "id": "22",
        "name": "State of Florida-Lake County State Tax",
        "value": 5.0
      },
      {
        "id": "23",
        "name": "Tax-Lake County County Tax",
        "value": 15.0
      }
    ],
    "newState": "Provisional",
    "commission": {
      "channelCommission": 10.0,
      "bpCommission": 12.0
    },
    "rate": {
      "originalRackRate": 400.0,
      "netRate": 400.0,
      "newPublishedRackRate": 422.0
    },
    "country": "US",
    "state": "asdasda",
    "uniqueKey": "f207c4c029cb1ea1"
  },
  "action": "RESERVATION_REQUEST",
  "reservationId": 1234561234,
  "expires_at": "2020-03-17",
  "messageToHost": "Test"
}

Request to Book Cancel Request Model

Model for request to book cancel API request

Class Name

RequestToBookCancelRequestModel

Fields
Name Type Tags Description
action string Required RESERVATION_REQUEST_VOIDED
reservationId number Required ID of reservation in BookingPal
Example (as JSON)
{
  "action": "RESERVATION_REQUEST_VOIDED",
  "reservationId": 12345612345
}

Enumerations

Payment Policy Type Enum

Full or Split payment. In case of Split payment - it will be 2 payments. [SPLIT,FULL]

Class Name

PaymentPolicyTypeEnum

Fields
Name
sPLIT
fULL

Deposit Type Enum

First payment deposit type.

Class Name

DepositTypeEnum

Fields
Name
pERCENTAGE
fLAT
nON

Type Enum

Cancellation policy type. [FULLY_REFUNDABLE,NON_REFUNDABLE,MANUAL]

Class Name

TypeEnum

Fields
Name
fULLYREFUNDABLE
nONREFUNDABLE
mANUAL

Cancellation Policy Type Enum

Class Name

CancellationPolicyTypeEnum

Fields
Name
fULLYREFUNDABLE
nONREFUNDABLE
mANUAL

Manual Policy Type Enum

Class Name

ManualPolicyTypeEnum

Fields
Name
pERCENTAGE
fLAT

Payment Type Enum

Class Name

PaymentTypeEnum

Fields
Name
cREDITCARD
mAILCHECK
bOOKINGPALMOR

Credit Card Type Enum

Class Name

CreditCardTypeEnum

Fields
Name
tRANSMIT
pOST

Credit Card List Enum

Class Name

CreditCardListEnum

Fields
Name
mASTERCARD
vISA
aMERICANEXPRESS
dINERSCLUB
dISCOVER

Payment Gateways Type Enum

Class Name

PaymentGatewaysTypeEnum

Fields
Name
pAYPAL
aUTHORIZENET
bRIDGEPAY
pAYBOX
dIBS
oGONE
dOCDATA
pAYGATE

Bedroom Type Enum

Class Name

BedroomTypeEnum

Fields
Name
bedroom
enumLivingRoom

Kindof Internet Type Enum

Class Name

KindofInternetTypeEnum

Fields
Name
wiFi
wired

Available Internet Enum

Class Name

AvailableInternetEnum

Fields
Name
allAreas
businessCenter
someRooms

Located Parking Type Enum

Class Name

LocatedParkingTypeEnum

Fields
Name
onSite
nearby

Time Cost Parking Enum

Class Name

TimeCostParkingEnum

Fields
Name
perHour
perWeek
perStay
perDay

Reservation Parking Type Enum

Class Name

ReservationParkingTypeEnum

Fields
Name
noReservationNeeded
notPossible
reservationNeeded

Allowed Pets Type Enum

Class Name

AllowedPetsTypeEnum

Fields
Name
allowed
allowedOnRequest
notAllowed

Feetax Type Enum

Class Name

FeetaxTypeEnum

Fields
Name
tAXABLE
nOTTAXABLE

Fee Unit Enum

Class Name

FeeUnitEnum

Fields
Name
pERSTAY
pERDAY
pERPERSON
pERDAYPERPERSON
pERDAYPERPERSONEXTRA

Fee Entity Type Enum

Class Name

FeeEntityTypeEnum

Fields
Name
mANDATORY
oPTIONAL
mANDATORYPAL

Fee Type Enum

Class Name

FeeTypeEnum

Fields
Name
gENERAL
pETFEE
dEPOSIT

Taxis Type Enum

Class Name

TaxisTypeEnum

Fields
Name
salesTaxIncluded
salesTaxExcluded

Weekend Param Enum

Class Name

WeekendParamEnum

Fields
Name
dAYSOFWEEKENDSATSUN
dAYSOFWEEKENDFRISAT
dAYSOFWEEKENDFRISATSUN
dAYSOFWEEKENDTHUFRISAT
dAYSOFWEEKENDTHUFRISATSUN

Yieldmodifier Enum

Class Name

YieldmodifierEnum

Fields
Name
iNCREASEPERCENT
dECREASEPERCENT
iNCREASEAMOUNT
dECREASEAMOUNT

Fee Value Type Enum

Value Type {FLAT, PERCENT}

Class Name

FeeValueTypeEnum

Fields
Name
fLAT
pERCENT

Channel ABB Enum

Class Name

ChannelABBEnum

Fields
Name
bKG
aBB
eXP
eXPHC
hAC

Space Unit Enum

Class Name

SpaceUnitEnum

Fields
Name
sQM
sQFT

User Enum

Class Name

UserEnum

Fields
Name
pROPERTYMANAGER
gUEST

Request to Book Type Enum

Class Name

RequestToBookTypeEnum

Fields
Name
aCCEPT
dENY

Request to Book Decline Reason Type Enum

Class Name

RequestToBookDeclineReasonTypeEnum

Fields
Name
dATESNOTAVAILABLE
nOTAGOODFIT
wAITINGFORBETTERRESERVATION
nOTCOMFORTABLE

Requestto Book Test Action Enum

Allowed values for request to book Test action

Class Name

RequesttoBookTestActionEnum

Fields
Name
rESERVATIONREQUESTVOIDED
rESERVATIONREQUEST

Nearby Amenities Enum

List of allowed Nearby Amenities codes

Class Name

NearbyAmenitiesEnum

Fields
Name
aCC1
aCC203
aCC65
hAC199
rST5

Property Types Enum

Class Name

PropertyTypesEnum

Fields
Name
pCT101
pCT102
pCT103
pCT104
pCT105
pCT106
pCT107
pCT108
pCT109
pCT110
pCT111
pCT112
pCT113
pCT114
pCT115
pCT116
pCT117
pCT118
pCT119
pCT12
pCT120
pCT121
pCT122
pCT123
pCT124
pCT125
pCT126
pCT127
pCT128
pCT14
pCT15
pCT16
pCT18
pCT19
pCT20
pCT21
pCT22
pCT23
pCT25
pCT26
pCT27
pCT28
pCT29
pCT3
pCT30
pCT31
pCT32
pCT33
pCT34
pCT35
pCT36
pCT37
pCT4
pCT40
pCT41
pCT44
pCT45
pCT46
pCT5
pCT50
pCT51
pCT52
pCT6
pCT7
pCT8

Amenity Types Enum

Class Name

AmenityTypesEnum

Fields
Name
aCC111
aCC112
aCC113
aCC114
aCC115
aCC116
aCC117
aCC118
aCC119
aCC120
aCC123
aCC14
aCC24
aCC25
aCC27
aCC28
aCC29
aCC31
aCC32
aCC33
aCC39
aCC40
aCC41
aCC42
aCC45
aCC47
aCC5
aCC50
aCC54
aCC55
aCC56
aCC57
aCC59
aCC73
aCC74
aCC82
aCC90
aCC95
hAC1
hAC101
hAC116
hAC122
hAC14
hAC149
hAC15
hAC154
hAC156
hAC157
hAC159
hAC16
hAC160
hAC165
hAC168
hAC173
hAC176
hAC186
hAC193
hAC195
hAC196
hAC197
hAC198
hAC202
hAC204
hAC21
hAC22
hAC226
hAC228
hAC230
hAC231
hAC232
hAC233
hAC234
hAC236
hAC237
hAC238
hAC239
hAC241
hAC242
hAC246
hAC25
hAC254
hAC26
hAC262
hAC265
hAC269
hAC272
hAC273
hAC280
hAC282
hAC283
hAC29
hAC292
hAC301
hAC309
hAC310
hAC312
hAC316
hAC32
hAC327
hAC33
hAC334
hAC34
hAC342
hAC345
hAC348
hAC36
hAC37
hAC41
hAC42
hAC44
hAC45
hAC49
hAC5
hAC50
hAC5033
hAC51
hAC53
hAC54
hAC55
hAC60
hAC6002
hAC6008
hAC6010
hAC6013
hAC6014
hAC6019
hAC6020
hAC6024
hAC6025
hAC6026
hAC6027
hAC6028
hAC6029
hAC6030
hAC6031
hAC6032
hAC6033
hAC6034
hAC6035
hAC6036
hAC6037
hAC6038
hAC6039
hAC6040
hAC6041
hAC6042
hAC6043
hAC6044
hAC6045
hAC6046
hAC6047
hAC6048
hAC6049
hAC6050
hAC6051
hAC6052
hAC6053
hAC6054
hAC6055
hAC6056
hAC6057
hAC6058
hAC6059
hAC6060
hAC6061
hAC6062
hAC6063
hAC6064
hAC6065
hAC6066
hAC6067
hAC6068
hAC6069
hAC6070
hAC6072
hAC6073
hAC6074
hAC6075
hAC6076
hAC6077
hAC6078
hAC6079
hAC6080
hAC6081
hAC6082
hAC6084
hAC6085
hAC6086
hAC6087
hAC6088
hAC6089
hAC6090
hAC6091
hAC6092
hAC6093
hAC6095
hAC6096
hAC6097
hAC6098
hAC6099
hAC61
hAC6100
hAC6101
hAC6102
hAC6103
hAC6104
hAC6105
hAC6106
hAC6107
hAC6108
hAC6109
hAC6110
hAC6111
hAC6113
hAC6114
hAC6115
hAC6116
hAC6117
hAC6118
hAC6119
hAC6120
hAC6121
hAC6122
hAC6123
hAC6124
hAC6125
hAC6126
hAC6127
hAC6128
hAC6129
hAC6130
hAC6131
hAC6132
hAC6133
hAC6134
hAC6135
hAC6136
hAC6137
hAC6138
hAC62
hAC66
hAC7
hAC71
hAC76
hAC77
hAC78
hAC79
hAC8
hAC81
hAC83
hAC86
hAC9
hAC91
hAC94
hAC96
hAC97
hAC98
rMA1
rMA10
rMA100
rMA102
rMA103
rMA104
rMA105
rMA107
rMA108
rMA11
rMA111
rMA113
rMA115
rMA117
rMA119
rMA126
rMA127
rMA129
rMA13
rMA133
rMA135
rMA138
rMA139
rMA14
rMA141
rMA142
rMA143
rMA144
rMA146
rMA147
rMA149
rMA15
rMA151
rMA155
rMA157
rMA158
rMA16
rMA161
rMA162
rMA163
rMA164
rMA166
rMA167
rMA170
rMA175
rMA18
rMA186
rMA19
rMA190
rMA191
rMA192
rMA193
rMA194
rMA195
rMA2
rMA20
rMA200
rMA201
rMA203
rMA204
rMA205
rMA207
rMA21
rMA210
rMA214
rMA217
rMA218
rMA22
rMA220
rMA223
rMA224
rMA227
rMA228
rMA230
rMA231
rMA234
rMA242
rMA245
rMA246
rMA25
rMA251
rMA254
rMA256
rMA258
rMA259
rMA26
rMA260
rMA262
rMA265
rMA268
rMA269
rMA270
rMA271
rMA273
rMA276
rMA279
rMA28
rMA280
rMA29
rMA3
rMA32
rMA33
rMA38
rMA41
rMA45
rMA46
rMA47
rMA49
rMA5
rMA50
rMA5005
rMA5020
rMA5085
rMA5086
rMA5091
rMA5126
rMA5145
rMA55
rMA56
rMA57
rMA58
rMA59
rMA6
rMA60
rMA6001
rMA6003
rMA6004
rMA6005
rMA6010
rMA6012
rMA6013
rMA6017
rMA6018
rMA6021
rMA6027
rMA6028
rMA6029
rMA6030
rMA6031
rMA6032
rMA6033
rMA6034
rMA6035
rMA6036
rMA6037
rMA6038
rMA6039
rMA6040
rMA6042
rMA6045
rMA6046
rMA6051
rMA6052
rMA6053
rMA6054
rMA6055
rMA6056
rMA6057
rMA6058
rMA6059
rMA6060
rMA6061
rMA6062
rMA6063
rMA6064
rMA6065
rMA6066
rMA6067
rMA6068
rMA6071
rMA6072
rMA6073
rMA6074
rMA6075
rMA6076
rMA6077
rMA6078
rMA6079
rMA6080
rMA6081
rMA6082
rMA6083
rMA6084
rMA6085
rMA6086
rMA6087
rMA6088
rMA6089
rMA6090
rMA6091
rMA6092
rMA6093
rMA6094
rMA6095
rMA6096
rMA6097
rMA6098
rMA6099
rMA61
rMA6100
rMA6101
rMA6102
rMA6103
rMA6104
rMA6105
rMA6106
rMA6107
rMA6108
rMA6109
rMA6110
rMA6111
rMA6112
rMA6113
rMA6114
rMA6115
rMA6116
rMA6117
rMA6118
rMA6119
rMA6120
rMA6121
rMA6122
rMA6123
rMA6124
rMA6125
rMA6126
rMA6127
rMA6128
rMA6129
rMA6130
rMA6131
rMA6132
rMA6133
rMA6134
rMA6135
rMA6136
rMA6137
rMA6138
rMA6139
rMA6140
rMA6141
rMA6142
rMA6144
rMA6145
rMA6146
rMA6147
rMA6148
rMA6149
rMA6150
rMA6151
rMA6152
rMA6153
rMA6154
rMA6155
rMA6156
rMA6157
rMA6158
rMA63
rMA64
rMA67
rMA68
rMA69
rMA7
rMA72
rMA77
rMA78
rMA8
rMA80
rMA81
rMA85
rMA86
rMA88
rMA89
rMA9
rMA91
rMA92
rMA94
rMA97
rMA98
rMA99
rST101
rST104
rST105
rST108
rST111
rST112
rST116
rST117
rST120
rST123
rST127
rST129
rST13
rST133
rST134
rST137
rST14
rST149
rST151
rST156
rST157
rST160
rST161
rST169
rST170
rST171
rST172
rST173
rST174
rST175
rST176
rST177
rST178
rST179
rST180
rST181
rST182
rST183
rST184
rST185
rST186
rST187
rST20
rST25
rST34
rST35
rST4
rST5028
rST60
rST63
rST65
rST67
rST68
rST7
rST71
rST73
rST74
rST79
rST80
rST82
rST86
rST87
rST9
rST92
rST96

Bed Configuration Enum

Class Name

BedConfigurationEnum

Fields
Name
rMA58
rMA86
rMA102
rMA113
rMA200
rMA201
rMA203
rMA6032
rMA33
rMA26
rMA6038
rMA6118
rMA6119
rMA6120
rMA6121
rMA6122

Image Tags Enum

Class Name

ImageTagsEnum

Fields
Name
enum1
enum2
enum3
enum4
enum5
enum6
enum7
enum8
enum10
enum43
enum11
enum13
enum14
enum37
enum41
enum42
enum50
enum55
enum61
enum70
enum74
enum81
enum82
enum87
enum89
enum90
enum94
enum95
enum96
enum97
enum100
enum102
enum103
enum104
enum106
enum107
enum141
enum108
enum112
enum113
enum114
enum115
enum116
enum124
enum125
enum128
enum131
enum137
enum133
enum134
enum143
enum153
enum154
enum155
enum156
enum157
enum158
enum159
enum160
enum161
enum164
enum165
enum167
enum172
enum173
enum177
enum178
enum179
enum182
enum183
enum184
enum185
enum186
enum187
enum188
enum189
enum190
enum191
enum192
enum193
enum194
enum197
enum198
enum199
enum204
enum205
enum240
enum241
enum242
enum245
enum246
enum247
enum248
enum249
enum250
enum251
enum252
enum253
enum254
enum255
enum256
enum257
enum258
enum259
enum260
enum261
enum262
enum263
enum264
enum265
enum266
enum267
enum268
enum269
enum270
enum271
enum272
enum273
enum274
enum275
enum276
enum277
enum278
enum279
enum280
enum281
enum282
enum283
enum284
enum285
enum286
enum287
enum288
enum289
enum290
enum291
Example
1

Asynchronouspushmessagetype Enum

Class Name

AsynchronouspushmessagetypeEnum

Fields
Name
bPVALIDATION

Multi Unit Enum

Enum for product multyunit type.

Class Name

MultiUnitEnum

Fields
Name
mLT
oWN

Common Code Documentation

ApiResponse

An interface for the result of an API call.

Properties

Name Type Description
request HttpRequest Original request that resulted in this response.
statusCode number Response status codee.
headers Record<string, string> Response headers.
result T Response data.
body string | Blob | NodeJS.ReadableStream Original body from the response.

ApiError

Thrown when the HTTP status code is not okay.

The ApiError extends the ApiResponse interface, so all ApiResponse properties are available.

Properties

Name Type Description
request HttpRequest Original request that resulted in this response.
statusCode number Response status codee.
headers Record<string, string> Response headers.
result T Response data.
body string | Blob | NodeJS.ReadableStream Original body from the response.

Readme

Keywords

none

Package Sidebar

Install

npm i derrick-florence

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

522 kB

Total Files

166

Last publish

Collaborators

  • mujjazi