Overview

There are three types of messages to exchange property data between your PMS and Derbysoft Property Connector. All of them are optional to be implemented.

  1. Property Update: To Update/Create the Property information to Derbysoft Property Connector.
  2. Property Query: Query the Property information from Derbysoft Property Connector.
  3. PMS property Query: Query all property information under one account. 


TABLE OF CONTENTS

Property Update

This API is used to Create or Update Property information to Derbysoft Property Connector. If the Hotel ID does not exist in Derbysoft Property Connector, the Property will be created based, otherwise the Property information will be updated.

POST /pcapigateway/profile/{accountId}/hotels/{hotelId} HTTP/1.1
Authorization: Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8


Schema


Element

Type

Occurrence

Description

Comment

hotelId

String

Mandatory

Hotel unique id of PMS

 

hotelName

String

Mandatory

 

 

timezone

String

Mandatory

 

List of tz database time zones 

defaultLanguage

String

Mandatory

 

Refer to Language code

countryCode

String

Mandatory

 

Please refer to Country Codes, Phone Codes, Dialing Codes, Telephone Codes, ISO Country Codes

provinceName
String
Optional

Please refer to Country, Province, City List

cityName

String

Optional

 

 Please refer to Country, Province, City List

address

String

Optional

 

 

longitude

String

Mandatory

 

 

latitude

String

Mandatory

 

 

shortDescription

String

Optional

 

 

longDescription

String

Optional

 

 

roomCount
Number
Optional
Total number of hotel rooms

propertyType

Enum

  • HOTEL

  • HOMESTAY

  • OTHER


Mandatory




postalCode
String
Optional


officialPhoneNumber
String
Optional


officialWebsite
String
Optional


contactEmail
String
Optional


contactPhoneNumber
String
Optional


status

Enum

  • Bookable

  • Presale

  • Suspend

  • Stopsell

  • UnderConstruction

Mandatory

 

 

childPolicy

Enum

  • childAsAdult

  • free

Mandatory

 

 

rateType

Enum

  • AmountBeforeTax

  • AmountAfterTax

  • Both

Mandatory

 

The rate Type value here must match the rate type value in Rate Plan.

resNotifyMailList

List[String]

Optional

 

 

resFailedNotifyMailList

List[String]

Optional

 

 



Example

Create/Update a new Property


Request

{
	"header": {
		"echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
		"timeStamp": "2018-06-27T17:09:04.674Z",
		"version": "0.1"
	},
	"hotelId": "CATNT0001",
	"hotelName": "Pan Pacific Toronto",
	"timezone": "Canada/Eastern",
	"defaultLanguage": "zh-CN",
	"countryCode": "CA",
	"provinceName": "TOR",
	"cityName": "TOR",
	"address": "XXXX street",
	"longitude": "43.75694536080885",
	"latitude": "-79.35038028630848",
	"shortDescription": "short desc",
	"longDescription": "long desc",
	"roomCount": 100,
	"propertyType": "HOTEL",
	"officialPhoneNumber": "X-XXX-XXXXXXX",
	"officialWebsite": "www.xxx.com",
	"postalCode": "XXXXXX",
	"contactEmail": "xxx@xxx.com",
	"contactPhoneNumber": "X-XXX-XXXXXXX",
	"status": "Bookable",
	"childPolicy": "free",
	"rateType": "AmountBeforeTax",
	"resNotifyMail": ["xxx@xxx.com","xxx@xxx.com"],
	"resFailedNotifyMail": ["xxx@xxx.com","xxx@xxx.com"]
}

Response-Success

{
	"header": {
		"echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
		"timeStamp": "2018-06-27T17:09:04.674Z",
		"version": "0.1"
	},
	"hotelId": "CATNT0001",
	"hotelName": "Pan Pacific Toronto",
	"derbyHotelId": "XXXX",
	"timezone": "Canada/Eastern",
	"defaultLanguage": "zh-CN",
	"countryCode": "CA",
	"provinceName": "TOR",
	"cityName": "TOR",
	"address": "XXXX street",
	"longitude": "43.75694536080885",
	"latitude": "-79.35038028630848",
	"shortDescription": "short desc",
	"longDescription": "long desc",
	"roomCount": 100,
	"propertyType": "HOTEL",
	"officialPhoneNumber": "X-XXX-XXXXXXX",
	"officialWebsite": "www.xxx.com",
	"postalCode": "XXXXXX",
	"contactEmail": "xxx@xxx.com",
	"contactPhoneNumber": "X-XXX-XXXXXXX",
	"status": "Bookable",
	"childPolicy": "free",
	"rateType": "AmountBeforeTax",
	"resNotifyMail": ["xxx@xxx.com","xxx@xxx.com"],
	"resFailedNotifyMail": ["xxx@xxx.com","xxx@xxx.com"]
}

Response-Error

{
	"header": {
		"echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
		"timeStamp": "2018-06-27T17:09:04.674Z",
		"version": "0.2"
	},
	"errorCode": "InvalidField",
	"errorMessage": "Invalid token"
}



Property  Query

This API is used to query specific property information within Property Connector.

GET /pcapigateway/profile/{accountId}/hotels/{hotelId} HTTP/1.1
Authorization: Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8

Example:

Query specific property information from Property Connector.


Response-Success

{
	"header": {
		"echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
		"timeStamp": "2018-06-27T17:09:04.674Z",
		"version": "0.1"
	},
	"hotelId": "CATNT0001",
	"hotelName": "Pan Pacific Toronto",
	"derbyHotelId": "XXXX",
	"timezone": "Canada/Eastern",
	"defaultLanguage": "zh-CN",
	"countryCode": "CA",
	"provinceName": "TOR",
	"cityName": "TOR",
	"address": "XXXX street",
	"longitude": "43.75694536080885",
	"latitude": "-79.35038028630848",
	"shortDescription": "short desc",
	"longDescription": "long desc",
	"roomCount": 100,
	"propertyType": "HOTEL",
	"officialPhoneNumber": "X-XXX-XXXXXXX",
	"officialWebsite": "www.xxx.com",
	"postalCode": "XXXXXX",
	"contactEmail": "xxx@xxx.com",
	"contactPhoneNumber": "X-XXX-XXXXXXX",
	"status": "Bookable",
	"childPolicy": "free",
	"rateType": "AmountBeforeTax",
	"resNotifyMail": ["xxx@xxx.com","xxx@xxx.com"],
	"resFailedNotifyMail": ["xxx@xxx.com","xxx@xxx.com"]
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2018-06-27T17:09:04.674Z",
    "version": "0.2"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}



PMS Property Query

This API is used to query all property information under one account.

GET /pcapigateway/profile/{accountId}/hotels HTTP/1.1
Authorization: Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8


Response-Success

{
	"header": {
		"echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
		"timeStamp": "2018-06-27T17:09:04.674Z",
		"version": "0.1"
	},
	"hotelList": [
		{
			"hotelId": "CATNT0001",
			"derbyHotelId": "XXXX",
			"hotelName": "Pan Pacific Toronto",
			"timezone": "Canada/Eastern",
			"defaultLanguage": "zh-CN",
			"countryCode": "CA",
			"provinceName": "TOR",
			"cityName": "TOR",
			"address": "XXXX street",
			"longitude": "43.75694536080885",
			"latitude": "-79.35038028630848",
			"shortDescription": "short desc",
			"longDescription": "long desc",
			"roomCount": 100,
			"propertyType": "HOTEL",
			"officialPhoneNumber": "X-XXX-XXXXXXX",
			"officialWebsite": "www.xxx.com",
			"postalCode": "XXXXXX",
			"contactEmail": "xxx@xxx.com",
			"contactPhoneNumber": "X-XXX-XXXXXXX",
			"status": "Bookable",
			"childPolicy": "free",
			"rateType": "AmountBeforeTax",
			"resNotifyMail": ["xxx@xxx.com","xxx@xxx.com"],
			"resFailedNotifyMail": ["xxx@xxx.com","xxx@xxx.com"]
		},
		{
			"hotelId": "CATNT0002",
			"derbyHotelId": "XXXX",
			"hotelName": "Pan Pacific Toronto2",
			"timezone": "Canada/Eastern",
			"defaultLanguage": "zh-CN",
			"countryCode": "CA",
			"provinceName": "TOR",
			"cityName": "TOR",
			"address": "XXXX street",
			"longitude": "43.75694536080885",
			"latitude": "-79.35038028630848",
			"shortDescription": "short desc",
			"longDescription": "long desc",
			"roomCount": 100,
			"propertyType": "HOTEL",
			"officialPhoneNumber": "X-XXX-XXXXXXX",
			"officialWebsite": "www.xxx.com",
			"postalCode": "XXXXXX",
			"contactEmail": "xxx@xxx.com",
			"contactPhoneNumber": "X-XXX-XXXXXXX",
			"status": "Bookable",
			"childPolicy": "free",
			"rateType": "AmountBeforeTax",
			"resNotifyMail": ["xxx@xxx.com","xxx@xxx.com"],
			"resFailedNotifyMail": ["xxx@xxx.com","xxx@xxx.com"]
		}
	]
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2018-06-27T17:09:04.674Z",
    "version": "0.2"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}