Overview

There are three types of messages to exchange ARI(Availability, Rates, and Inventory) data between your PMS and DerbySoft Property Connector, and all of them are mandatory to be implemented.


  1. Update Rate: to receive updates for rate from your PMS.
  2. Update Inventory: to receive updates for inventory from your PMS.
  3. Update Availability: to receive updates for availability from your PMS. There are four levels of availabilities as design. Product level is mandatory, and others are optional. You should develop them according to how your PMS manages availability.
Notes:
① The request for updating messages is pushed out from PMS to DerbySoft Property Connector, and DerbySoft Property Connector will return back the response for the messages. Please keep in mind that DerbySoft will process the messages in the async model to acquire the best performance of throughput, and the messages are consumed by the sequence of receiving time in a FIFO queue. If you meet any errors during the pushing, it mostly because of a network issue, please retry your request to ensure every ARI updating message can be received by DerbySoft.

② To optimize the performance and reduce the message bytes, DerbySoft servers do support GZIP compression. It's recommended that your PMS application enable the GZIP compression while pushing messages to DerbySoft Property Connector. In this way, you need to add "Content-Encoding: gzip" in the HTTP request header, so that our servers are aware that the request messages are in GZIP format and will decode it automatically.


TABLE OF CONTENTS


Update Rate

This API is used to update the rates for a combination of one room type and one rate plan for a single property. If there are multiple rate plans modified at the same time, your PMS has to split them into batch messages and send them to DerbySoft to avoid a large-size single message.

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


Request Schema

Element

Type

Occurrence

Description

Comment

hotelId

String

Mandatory

Hotel unique id of PMS

/

roomId

String

Mandatory

Room type id of PMS

/

rateId

String

Mandatory

Rate plan id of PMS

/

startDate

Date: yyyy-MM-dd

Mandatory

Start date of the affected rates to be applied in the database

/

endDate

Date: yyyy-MM-dd

Mandatory

End date of the affected rates to be applied in the database

/

type

Enum
- Delta
- Overlay

Mandatory

  1. Delta: DerbySoft only update the rates in the message, and keep other rates in the database without change. It normally used for pushing rate changes to DerbySoft.

  2. Overlay: DerbySoft will perform delete and insert operations into the database. It normally used for a full refresh from PMS while launching a new property or manual refresh by property in the PMS system.

Please refer to the section for more details

currencyCode

String

Mandatory

Currency code with ISO 4217 standard

/

rates

List [DailyRate]

Mandatory

//

DailyRate/startDate

Date: yyyy-MM-dd

Mandatory

Start date

/

DailyRate/endDate

Date: yyyy-MM-dd

Mandatory

End date

/

DailyRate/baseByGuestAmts

List[BaseByGuestAmt]

Mandatory

//

BaseByGuestAmt/ageQualifyingCode

Integer

Mandatory

/

“8”=Child
“10” = Adult

BaseByGuestAmt/numberOfGuests

Integer

Mandatory

Number of guests


BaseByGuestAmt/amountAfterTax

BigDecimal

Optional

Price including tax & fee

amountBeforeTax and amountAfterTax are either required

BaseByGuestAmt/amountBeforeTax

BigDecimal

Optional

Price excluding tax & fee

rates/additionalGuestAmountsList[additionalGuestAmounts]Optional

additionalGuestAmounts/ageQualifyingCodeIntegerMandatory

“8”=Child

“10” = Adult


additionalGuestAmounts/amountAfterTaxBigDecimalOptionalPrice including tax & fee
Either amountBeforeTax or amountAfterTax is required
additionalGuestAmounts/amountBeforeTaxBigDecimalOptionalPrice including tax & fee


Example

1.1 Update rate changes which include tax

There is a rate change which includes tax for King from 3/1 to 3/31, the rate plan is BARN.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BARN",
  "startDate": "2021-03-01",
  "endDate": "2021-03-31",
  "type": "Delta",
  "currencyCode": "USD",
  "rates": [
    {
      "startDate": "2021-03-01",
      "endDate": "2021-03-31",
      "baseByGuestAmts": [
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 1,
          "amountAfterTax": 120
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 2,
          "amountAfterTax": 120
        }
      ]
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


1.2 Update rate changes which exclude tax

There is a rate change which excludes tax for King (2 persons) from 3/1 to 3/31, the rate plan is BAR.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-03-01",
  "endDate": "2021-03-31",
  "type": "Delta",
  "currencyCode": "USD",
  "rates": [
    {
      "startDate": "2021-03-01",
      "endDate": "2021-03-31",
      "baseByGuestAmts": [
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 1,
          "amountBeforeTax": 100
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 2,
          "amountBeforeTax": 100
        }
      ]
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


1.3 Update rate changes and upload both rate include tax and rate exclude tax

There is a rate change and uploads both rate include tax and rate exclude tax for King (2 persons) from 3/1 to 3/31, the rate plan is BAR and room service charge and tax is 10%.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-03-01",
  "endDate": "2021-03-31",
  "type": "Delta",
  "currencyCode": "USD",
  "rates": [
    {
      "startDate": "2021-03-01",
      "endDate": "2021-03-31",
      "baseByGuestAmts": [
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 1,
          "amountAfterTax": 132,
          "amountBeforeTax": 120
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 2,
          "amountAfterTax": 132,
          "amountBeforeTax": 120
        }
      ]
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


1.4 Update rate changes on specific room type which max occupancy is three persons

There is a rate change for King (3 persons) from 3/1 to 3/31, the rate plan is BARN, the rate is based on 3 persons and includes tax.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BARN",
  "startDate": "2021-03-01",
  "endDate": "2021-03-31",
  "type": "Delta",
  "currencyCode": "USD",
  "rates": [
    {
      "startDate": "2021-03-01",
      "endDate": "2021-03-31",
      "baseByGuestAmts": [
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 1,
          "amountAfterTax": 132
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 2,
          "amountAfterTax": 132
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 3,
          "amountAfterTax": 132
        }
      ]
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}

There is a rate change for King (3 persons) from 3/1 to 3/31, the rate plan is BARN, the rate is based on occupancy and includes tax.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BARN",
  "startDate": "2021-03-01",
  "endDate": "2021-03-31",
  "type": "Delta",
  "currencyCode": "USD",
  "rates": [
    {
      "startDate": "2021-03-01",
      "endDate": "2021-03-31",
      "baseByGuestAmts": [
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 1,
          "amountAfterTax": 132
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 2,
          "amountAfterTax": 137.5
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 3,
          "amountAfterTax": 143
        }
      ]
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


1.5 Update rate changes which include additional person rate

There is a rate change for King (3 persons) from 3/1 to 3/31, the rate plan is BARN, the rate is based on 2 persons and includes tax, and 3rd person will be charges as additional person rate.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BARN",
  "startDate": "2021-03-01",
  "endDate": "2021-03-31",
  "type": "Delta",
  "currencyCode": "USD",
  "rates": [
    {
      "startDate": "2021-03-01",
      "endDate": "2021-03-31",
      "baseByGuestAmts": [
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 1,
          "amountAfterTax": 132
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 2,
          "amountAfterTax": 132
        }
      ],
      "additionalGuestAmounts": [
        {
          "ageQualifyingCode": 10,
          "amountAfterTax": 7.5
        }
      ]
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


1.6 Full refresh rate

The whole rates for King from 1/10 to 3/31 will be pushed out to DerbySoft. There are two rates, one is from 1/10 to 2/28 and another one is from 3/1 to 3/31. The rate plan is BARN, the rate is based on 3 persons and includes tax.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BARN",
  "startDate": "2021-01-10",
  "endDate": "2021-03-31",
  "type": "Overlay",
  "currencyCode": "USD",
  "rates": [
    {
      "startDate": "2021-01-10",
      "endDate": "2021-02-28",
      "baseByGuestAmts": [
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 1,
          "amountAfterTax": 120
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 2,
          "amountAfterTax": 120
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 3,
          "amountAfterTax": 120
        }
      ]
    },
    {
      "startDate": "2021-03-01",
      "endDate": "2021-03-31",
      "baseByGuestAmts": [
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 1,
          "amountAfterTax": 130
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 2,
          "amountAfterTax": 130
        },
        {
          "ageQualifyingCode": 10,
          "numberOfGuests": 3,
          "amountAfterTax": 130
        }
      ]
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


1.7 Delete rates

The rates of King and BAR from 1/23 to 2/23 will be removed in DerbySoft Property Connect.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-01-23",
  "endDate": "2021-02-23",
  "type": "Overlay",
  "currencyCode": "USD",
  "rates": []
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


Update Inventory

This API is used to update the inventories for one room type of a single property. If there are multiple room types modified at the same time, your PMS has to split them into batch messages and send them to DerbySoft to avoid a large-size single message.

POST /pcapigateway/tunnel/{acountId}/inventory HTTP/1.1
Authorization: Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8


Request Schema

Element

Type

Occurrence

Description

Comment

hotelId

String

Mandatory

Hotel unique id of PMS

/

roomId

String

Mandatory

Room type id of PMS

/

startDate

Date: yyyy-MM-dd

Mandatory

Start date of the affected inventories to be applied in the database

/

endDate

Date: yyyy-MM-dd

Mandatory

Start date of the affected inventories to be applied in the database

/

type

Enum
- Delta
- Overlay

Mandatory

  1. Delta: DerbySoft only update the inventories in the message, and keep other inventories in the database without change. It normally used for pushing inventory changes to DerbySoft.

  2. Overlay: DerbySoft will perform delete and insert operations into the database. It normally used for a full refresh from PMS while launching a new property or manual refresh by property in PMS system.

Please refer the section for more details

inventories

List[inventories]

Mandatory

Daily Inventory List/

inventories/startDate

Date: yyyy-MM-dd

Mandatory

Start date

/

inventories/endDate

Date: yyyy-MM-dd

Mandatory

End date

/

inventories/availableInvCount

Integer

Mandatory

Avail inventory count

/


Example

2.1 Update inventory changes from 1/23 to 2/23.

There are inventory changes that occurred on the room type King from 1/23 to 2/23. Inside this date range, It’s changed on two date ranges of 1/23 to 1/25 and 2/3 to 2/23. The other dates are not changed.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "startDate": "2021-01-23",
  "endDate": "2021-02-23",
  "type": "Delta",
  "inventories": [
    {
      "startDate": "2021-01-23",
      "endDate": "2021-01-25",
      "availableInvCount": 10
    },
    {
      "startDate": "2021-02-03",
      "endDate": "2021-02-23",
      "availableInvCount": 50
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


2.2 Full refresh inventory from 1/23 to 2/23.

The whole inventories of room type King from 1/23 to 2/23 will be pushed out to DerbySoft. There are two inventories on two date ranges: one is from 1/23 to 2/20 and another one is from 2/21 to 2/23.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "startDate": "2021-01-23",
  "endDate": "2021-02-23",
  "type": "Overlay",
  "inventories": [
    {
      "startDate": "2021-01-23",
      "endDate": "2021-02-20",
      "availableInvCount": 10
    },
    {
      "startDate": "2021-02-21",
      "endDate": "2021-02-23",
      "availableInvCount": 50
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


2.3 Delete inventories from 1/23 to 2/23 on specific room type.

The inventories of King from 1/23 to 2/23 will be removed in DerbySoft Property Connector.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "startDate": "2021-01-23",
  "endDate": "2021-02-23",
  "type": "Overlay",
  "inventories": []
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}



Update Availability

This API is used to update the availabilities by four levels for a single property. If there are multiple availabilities modified at the same time, your PMS has to split them into batch messages and send them to DerbySoft to avoid a large-size single message.

POST /pcapigateway/tunnel/{acountId}/availability HTTP/1.1
Authorization: Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8


Request Schema

Element

Type

Occurrence

Description

Comment

hotelId

String

Mandatory

Hotel unique id of PMS

/

roomId

String

Optional

Room type id of PMS

/

rateId

String

Optional

Rate plan id of PMS

/

startDate

Date:yyyy-MM-dd

Mandatory

Start date

/

endDate

Date:yyyy-MM-dd

Mandatory

End date

Include end date

type

Enum
- Delta
- Overlay

Mandatory

  1. Delta: DerbySoft only update the availabilities in the message, and keep other availabilities in the database without change. It normally used for pushing availability changes to DerbySoft.

  2. Overlay: DerbySoft will perform delete and insert operations into the database. It normally used for a full refresh from PMS while launching a new property or manual refresh by property in PMS system.

Please refer the section for more details

restrictions

List[restrictions]

Mandatory

Daily Restriction List/

restrictions

/startDate

Date: yyyy-MM-dd

Mandatory

//

restrictions

/endDate

Date: yyyy-MM-dd

Mandatory

//

restrictions

/restriction

Object[restriction]

//

restrictions

/masterClose

Boolean

Mandatory

A boolean value indicates open or close

/

restrictions

/closedToArrival

Boolean

Optional

A boolean value of closed to arrival, which indicates whether available on the checkin

/

restrictions

/closedToDeparture

Boolean

Optional

A boolean value of closed to departure, which indicates whether available on the checkout

/

restrictions

/maxStayThrough

Integer

Optional

The maximum number of nights the guest may stay if any part of the reservation touches the specific date.

0 by default means no restriction on this.

/

restrictions

/minStayThrough

Integer

Optional

The minimum number of nights the guest must stay if any part of the reservation touches the specific date.

0 by default means no restriction on this.

/

restrictions

/maxStayArrival

Integer

Optional

The maximum number of nights the guest can stay if this date is the requested arrival date.

0 by default means no restriction on this.

/

restrictions

/minStayArrival

Integer

Optional

The minimum number of nights the guest must stay if this date is the requested arrival date.

0 by default means no restriction on this.

/

restrictions

/maxAdvanceDay

Integer

Optional

The maximum number of days that a reservation arriving on this date can be booked in advance.

0 by default means no restriction on this.

/

Restriction/minAdvanceDay

Integer

Optional

The minimum number of days that a reservation arriving on this date must be booked in advance.

0 by default means no restriction on this.

/


The four levels of availability are listed below:

  • Hotel level: The only hotelId is specific in the message, roomId and rateId are empty. It’s optional if your PMS doesn’t support this level.

  • Rate plan level: HotelId and rateId are specific in the message, and the roomId is empty. It’s optional if your PMS doesn’t support this level.

  • Room type level: HotelId and roomId are specific in the message, and rateId is empty. It’s optional if your PMS doesn’t support this level.

  • Product level: HotelId, roomId, and rateId are all specific in the message. It’s mandatory to implement.
Note:
DerbySoft Property Connector store all the availabilities by the four levels separately, but calculate them to the final ones. You could refer to the logic below for each restriction). 

This design is base on some PMS systems can manage the availabilities in a complicated way, and it’s NOT necessary for you to implement them all. You should pick them up if your PMS has the same way.

Restriction

Hotel level

Rate plan level

Room type  level

Product (Room type x Rate plan) level

Expression (Room type x Rate plan)

masterClose

$1

$2

$3

$4

masterClose = $1 || $2 || $3 || $4

closedToArrival

$1

$2

$3

$4

closedToArrival = $1 || $2 || $3 || $4

closedToDeparture

$1

$2

$3

$4

closedToDeparture = $1 || $2 || $3 || $4

maxStayThrough

$1

$2

$3

$4

maxStayThrough = Min($1, $2, $3, $4)

minStayThrough

$1

$2

$3

$4

minStayThrough = Max($1, $2, $3, $4)

maxStayArrival

$1

$2

$3

$4

maxStayArrival = Min($1, $2, $3, $4)

minStayArrival

$1

$2

$3

$4

minStayArrival = Max($1, $2, $3, $4)

maxAdvanceDay

$1

$2

$3

$4

maxAdvanceDay = Min($1, $2, $3, $4)

minAdvanceDay

$1

$2

$3

$4

minAdvanceDay = Max($1, $2, $3, $4)


Example

3.1 Update availability changes (Close) on the product level

There is an availability change that ocurred on King + BAR from 1/23 to 1/25, the restriction is close.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-01-23",
  "endDate": "2021-01-25",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-01-23",
      "endDate": "2021-01-25",
      "restriction": {
        "masterClose": true
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.2 Update availability change (Open) on the product level

There is an availability change that occured on King + BAR from 1/26 to 1/28, the restriction is open.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-01-26",
  "endDate": "2021-01-28",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-01-26",
      "endDate": "2021-01-28",
      "restriction": {
        "masterClose": false
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.3 Update availability change (ClosedToArrival) on the product level

There is an availability change that occured on King + BAR from 1/29 to 1/31, the restriction is closed to arrival.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-01-29",
  "endDate": "2021-01-31",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-01-29",
      "endDate": "2021-01-31",
      "restriction": {
        "masterClose": false,
        "closedToArrival": true
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.4 Update availability change (ClosedToDeparture) on the product level

There is an availability change that occured on King + BAR from 2/1 to 2/3, the restriction is closed to departure.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-02-01",
  "endDate": "2021-02-03",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-02-01",
      "endDate": "2021-02-03",
      "restriction": {
        "masterClose": false,
        "closedToDeparture": true
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.5 Update availability change (Minimum Stay Arrival) on the product level

There is an availability change that occured on King + BAR from 2/4 to 2/6, the restriction is minimum stay arrival 3 days.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-02-04",
  "endDate": "2021-02-06",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-02-04",
      "endDate": "2021-02-06",
      "restriction": {
        "masterClose": false,
        "minStayArrival": 3
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.6 Update availability change (Maximum Stay Arrival) on the product level

There is an availability change that occured on King + BAR from 2/7 to 2/9, the restriction is maximum stay arrival 5 days.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-02-07",
  "endDate": "2021-02-09",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-02-07",
      "endDate": "2021-02-09",
      "restriction": {
        "masterClose": false,
        "maxStayArrival": 5
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.7 Update availability changes (Minimum Stay Through) on the product level

There is an availability change that occured on King + BAR from 2/10 to 2/12, the restriction is minimum stay through 3 days.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-02-10",
  "endDate": "2021-02-12",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-02-10",
      "endDate": "2021-02-12",
      "restriction": {
        "masterClose": false,
        "minStayThrough": 3
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.8 Update availability change (Maximum Stay Through) on the product level

There is an availability change that occured on King + BAR from 2/13 to 2/15, the restriction is maximum stay through 7 days.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-02-13",
  "endDate": "2021-02-15",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-02-13",
      "endDate": "2021-02-15",
      "restriction": {
        "masterClose": false,
        "maxStayThrough": 7
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.9 Update availability change (Minimum Advance Booking Day) on the product level

There is an availability change that occurred on King + BAR from 2/16 to 2/18. the restriction is minimum advance booking 3 days.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-02-16",
  "endDate": "2021-02-19",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-02-16",
      "endDate": "2021-02-19",
      "restriction": {
        "masterClose": false,
        "minAdvanceDay": 3
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.10 Update availability change (Maximum Advance Booking Day) on the product level

There is an availability change that occured on King + BAR from 2/19 to 2/20, the restriction is maximum advance booking 5 days.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-02-19",
  "endDate": "2021-02-20",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-02-19",
      "endDate": "2021-02-20",
      "restriction": {
        "masterClose": false,
        "maxAdvanceDay": 5
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.11 Full refresh product level availability

The whole availability of room type King and rate plan BAR from 1/23 to 2/20 will be pushed out to DerbySoft.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "rateId": "BAR",
  "startDate": "2021-01-23",
  "endDate": "2021-02-20",
  "type": "Overlay",
  "restrictions": [
    {
      "startDate": "2021-01-23",
      "endDate": "2021-01-25",
      "restriction": {
        "masterClose": true
      }
    },
    {
      "startDate": "2021-01-26",
      "endDate": "2021-01-28",
      "restriction": {
        "masterClose": false
      }
    },
    {
      "startDate": "2021-01-29",
      "endDate": "2021-01-31",
      "restriction": {
        "masterClose": false,
        "closedToArrival": true
      }
    },
    {
      "startDate": "2021-02-01",
      "endDate": "2021-02-03",
      "restriction": {
        "masterClose": false,
        "closedToDeparture": true
      }
    },
    {
      "startDate": "2021-02-04",
      "endDate": "2021-02-06",
      "restriction": {
        "masterClose": false,
        "minStayArrival": 3
      }
    },
    {
      "startDate": "2021-02-07",
      "endDate": "2021-02-09",
      "restriction": {
        "masterClose": false,
        "maxStayArrival": 5
      }
    },
    {
      "startDate": "2021-02-10",
      "endDate": "2021-02-12",
      "restriction": {
        "masterClose": false,
        "minStayThrough": 3
      }
    },
    {
      "startDate": "2021-02-13",
      "endDate": "2021-02-15",
      "restriction": {
        "masterClose": false,
        "maxStayThrough": 7
      }
    },
    {
      "startDate": "2021-02-16",
      "endDate": "2021-02-18",
      "restriction": {
        "masterClose": false,
        "minAdvanceDay": 3
      }
    },
    {
      "startDate": "2021-02-19",
      "endDate": "2021-02-20",
      "restriction": {
        "masterClose": false,
        "maxAdvanceDay": 5
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.12 Update availability change (Close) on the hotel level

There is an availability change that occurred on the hotel level from 2/19 to 2/20. the restriction is close.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "startDate": "2021-02-19",
  "endDate": "2021-02-20",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-02-19",
      "endDate": "2021-02-20",
      "restriction": {
        "masterClose": true
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.13 Full refresh hotel level availability

The whole hotel level availability from 1/23 to 2/23 will be pushed out to DerbySoft. This case will show you how to close out all availability by two date range: one is from 1/23 to 1/25, another is from 2/22 to 2/23.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "startDate": "2021-01-23",
  "endDate": "2021-02-23",
  "type": "Overlay",
  "restrictions": [
    {
      "startDate": "2021-01-23",
      "endDate": "2021-01-25",
      "restriction": {
        "masterClose": true
      }
    },
    {
      "startDate": "2021-01-26",
      "endDate": "2021-02-21",
      "restriction": {
        "masterClose": false
      }
    },
    {
      "startDate": "2021-02-22",
      "endDate": "2021-02-23",
      "restriction": {
        "masterClose": true
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}

3.14 Update availability change (ClosedToArrival) on the room type level

There is an availability change that occurred on the room type level from 1/26 to 1/28. the restriction is closed to arrival.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "startDate": "2021-01-26",
  "endDate": "2021-01-28",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-01-26",
      "endDate": "2021-01-28",
      "restriction": {
        "masterClose": false,
        "closedToArrival": true
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.15 Full refresh room type level availability

The whole room level availability from 1/23 to 2/23 will be pushed out to DerbySoft. This case will show you how to set closed to arrival for specific room type by two date range: one is from 1/26 to 1/28, another is from 2/7 to 2/8 and how to close out avaiability for specific room type on 2/5.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "roomId": "King",
  "startDate": "2021-01-23",
  "endDate": "2021-02-23",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-01-23",
      "endDate": "2021-01-25",
      "restriction": {
        "masterClose": false
      }
    },
    {
      "startDate": "2021-01-26",
      "endDate": "2021-01-28",
      "restriction": {
        "masterClose": false,
        "closedToArrival": true
      }
    },
    {
      "startDate": "2021-01-29",
      "endDate": "2021-02-04",
      "restriction": {
        "masterClose": false
      }
    },
    {
      "startDate": "2021-02-05",
      "endDate": "2021-02-05",
      "restriction": {
        "masterClose": true
      }
    },
    {
      "startDate": "2021-02-06",
      "endDate": "2021-02-06",
      "restriction": {
        "masterClose": false
      }
    },
    {
      "startDate": "2021-02-07",
      "endDate": "2021-02-08",
      "restriction": {
        "masterClose": false,
        "closedToArrival": true
      }
    },
    {
      "startDate": "2021-02-09",
      "endDate": "2021-02-23",
      "restriction": {
        "masterClose": false
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.16 Update availability change (both Minimum Stay Arrival and Maximum Stay Arrival) on the rate plan level

There is an availability change that occurred on the rate level from 2/1 to 2/10. the restrictions are minimum stay arrival 2 days and maximum stay arrival 7 days.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "rateId": "BAR",
  "startDate": "2021-02-01",
  "endDate": "2021-02-10",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-02-01",
      "endDate": "2021-02-10",
      "restriction": {
        "masterClose": false,
        "minStayArrival": 2,
        "maxStayArrival": 7
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}


3.17 Full refresh rate plan level availability

The whole rate plan level availability from 1/23 to 2/23 will be pushed out to DerbySoft. This case will show you how to set both minimum stay arrival 2 days and maximum stay arrival 7 days from 2/1 to 2/10 for a specivic rate plan.


Request

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "hotelId": "FSDH",
  "rateId": "BAR",
  "startDate": "2021-01-23",
  "endDate": "2021-02-23",
  "type": "Delta",
  "restrictions": [
    {
      "startDate": "2021-01-23",
      "endDate": "2021-01-31",
      "restriction": {
        "masterClose": false
      }
    },
    {
      "startDate": "2021-02-01",
      "endDate": "2021-02-10",
      "restriction": {
        "masterClose": false,
        "minStayArrival": 2,
        "maxStayArrival": 7
      }
    },
    {
      "startDate": "2021-02-11",
      "endDate": "2021-02-23",
      "restriction": {
        "masterClose": false
      }
    }
  ]
}

Response-Success

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  }
}

Response-Error

{
  "header": {
    "echoToken": "25c8cb40-52a0-449f-8fc9-0187c6f3f19e",
    "timeStamp": "2021-01-10T17:09:04.674Z",
    "version": "0.1"
  },
  "errorCode": "InvalidField",
  "errorMessage": "Invalid token"
}




Delta vs Overlay

There are two major scenarios for the ARI messages exchanging between your PMS and DerbySoft Property Connector.

  •  Overlay focus on a full refresh trigger by your PMS such as launching a new property to our product or fixing an out-of-sync issue. In this case, DerbySoft Property Connector will clean all data by the specific date range and store the messages into our database. 
  • Delta is mostly used for a regular process to receive the ARI changes from your PMS.
    For example, there are three products A, B and C in our database. If your PMS pushes us A and D with Overlay indicator, our system will clean A, B and C but only store A and D into the database, so that we only have A and D after the updating. If you push us A and D with the Delta indicator, our system will update A and insert D into the database, so that we have A, B, C and D in the database.