Getting Started with Channel Management API
Getting Started
Introduction
Before beginning work it is necessary that:
- Your organization is registered and activated
- You have participated in a kickoff 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 paramjwt
)
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 maud-luella@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
- Property Managers
- Product
- Images
- Rates and Availability
- LOS Pricing
- Fee and Tax
- Fee and Tax Mandatory at the Property Level
- Yields
- Validation
- Testing of Message API Calls
- Messaging
- Request to Book
- Push Notification
- Reservation Notifications
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
- Get P Mslist
- P Ms
- Createnew Update Property Manager Request
- Company
- Company Details
- Company Address
- Phone
- Policies
- Payment Policy
- Split Payment
- Cancellation Policy
- Manual Policy
- Manual Policies
- Fee Tax Mandatory
- Payment
- Credit Card
- Payment Gateways
- Property Managerdetailsresponse
- Productresponse
- Property
- Notes
- Description Text Model
- Text
- Attributes With Quantity
- Bedroom Configuration
- Bedroom
- Beds
- Bed
- Policy
- Internet Policy
- Parking Policy
- Pet Policy
- Location
- Create Update Property Request
- Nearby Amenity
- API Responsewithout Data
- Property List Request
- Getimagelistbyproduct ID
- Image
- Createimages Request
- Image Urlfor Create
- Deletelistofimages Request
- Image Url List
- Rates Availabilityresponse
- Rates Availability
- Rate
- Min Stay Model
- Max Stay Model
- Restriction
- Check In
- Check Out
- Availability Model
- Createandupdateratesandavailability Request
- Available Count
- Createandupdate LOS Request
- Los Rates Product
- Los Rate
- LO Sratesresponse
- Fee Tax Response
- Fee Tax
- Fee
- Taxes
- Createfeeandtax Request
- Fee Tax Validation Setting Response
- Fee Tax Validation Settings
- Fee Tax Mandatory Setting
- Setfeeandtaxvalidationsetting Request
- Yieldresponse
- Transport Yield
- Yield
- Create Yield Request
- Validationfor Listofproperties Request
- Validation-Property I Ds List
- Threads Model
- Thread
- Message Request From Supplier
- Getmessagethreads Response
- Getmessagelistforspecificthread Response
- Messages Model
- Message Model
- Postnewmessageforspecificthread Request
- Requestto Book-Answerfrom PMS Request
- Functions Request to Book
- Requestto Book-Test Request
- Functions Request to Book Test
- Push Notification Links Request
- Push Notification Links Model
- Push Notification Links Response
- Reservationnotificationobject
- Reservationpush Response
- Reservation Fee Notification Model
- Reservation Tax Notification Model
- Reservation Rate Notifcation Model
- Reservation Commissions Notification Model
- Cancel Reservationnotificationobject
- Reservation Get Response
- Validation Asynchronouspushmessagerequest
- Asynchronous Validationmodel
- Request to Book Request Model
- Request to Book Cancel Request Model
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
- Deposit Type Enum
- Type Enum
- Cancellation Policy Type Enum
- Manual Policy Type Enum
- Payment Type Enum
- Credit Card Type Enum
- Credit Card List Enum
- Payment Gateways Type Enum
- Bedroom Type Enum
- Kindof Internet Type Enum
- Available Internet Enum
- Located Parking Type Enum
- Time Cost Parking Enum
- Reservation Parking Type Enum
- Allowed Pets Type Enum
- Feetax Type Enum
- Fee Unit Enum
- Fee Entity Type Enum
- Fee Type Enum
- Taxis Type Enum
- Weekend Param Enum
- Yieldmodifier Enum
- Fee Value Type Enum
- Channel ABB Enum
- Space Unit Enum
- User Enum
- Request to Book Type Enum
- Request to Book Decline Reason Type Enum
- Requestto Book Test Action Enum
- Nearby Amenities Enum
- Property Types Enum
- Amenity Types Enum
- Bed Configuration Enum
- Image Tags Enum
- Asynchronouspushmessagetype Enum
- Multi Unit Enum
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. |