TABLE OF CONTENTS


Introduction

ARI Push is a set of outbound API's for distributors to receive the ARI data of hotels. ARI Push will push rates and availabilities to the distributor's system with an indicator of the corpCodes.  ARI Push should be used in combination with /Hotels and /Hotel. Distributors are recommended to regularly get the active hotel and hotel product list. 


ARI Push is able to support 2 types of rate models: Daily and LOS. It will push the corresponding rates to distribution which is based on the type of hotel rate model.


ARI Push API - ARI API is used by DerbySoft to push ARI to distributors periodically.

  1. Daily Push (/ari/daily/push) - Push daily ARI of one hotel to one distributor.
  2. LOS Push (/ari/los/push) - Push LOS ARI of one hotel to one distributor.


Activate Hotels

BTS will activate the hotels and hotel products on behalf of distributors.  The distributor hotels and hotel products will be set up based on the status in the suppliers' system.  ARI will be pushed for all the activated hotels and products.


Daily Push

Daily Push API should be used if the supplier ARI mode is daily.

POST /ari/daily/push HTTP/1.1
URL: {{endpoint}}/ari/daily/push
Authorization:Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8
JavaScript

Request Example

  • Occupancy Rate
{
  "header": {
    "supplierId": "HILTON",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "messageType": "Delta",
  "hotelId": "GATHI",
  "dateRange": {
    "startDate": "2024-01-01",
    "endDate": "2024-01-04"
  },
  "currency": "USD",
  "dailyAris": [
    {
      "roomId": "K1",
      "rateId": "BARB",
      "mealPlans": [
        "BB",
        "BB",
        "BB",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 2,
            "childCount": 1,
            "amountBeforeTax": [
              502.19,
              502.19,
              502.19,
              502.19
            ],
            "amountAfterTax": [
              623.23,
              623.23,
              623.23,
              623.23
            ]
          }
        ]
      },
      "availStatuses": {
        "close": [
          false,
          false,
          false,
          false
        ],
        "minStayArrival": [
          0,
          2,
          0,
          0
        ],
        "maxStayArrival": [
          0,
          2,
          0,
          0
        ],
        "minStayThrough": [
          0,
          2,
          0,
          0
        ],
        "maxStayThrough": [
          0,
          2,
          0,
          0
        ],
        "minAdvanceDay": [
          0,
          2,
          0,
          0
        ],
        "maxAdvanceDay": [
          365,
          365,
          365,
          365
        ],
        "cta": [
          false,
          false,
          false,
          true
        ],
        "ctd": [
          false,
          false,
          false,
          true
        ],
        "fplos": [
          "1111111",
          "1001111",
          "1000001",
          "0000000"
        ]
      },
      "rateChangeIndicators": [
        true,
        false,
        true,
        false
      ]
    }
  ]
}
JavaScript


JavaScri

Request Specification

Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@supplierId

string

Yes

MaxLength: 32

The ID of hotel suppliers in DerbySoft's system.

HILTON

@distributorId

string

Yes

MaxLength: 32

The ID of the distributor in DerbySoft's system

MOCK_DISTRIBUTOR

@version

string

Yes

MaxLength: 20

Version of API

v1.0.0

@token

string

Yes

MaxLength: 64

A unique ID to identify request and response, normally it should be UUID.

18393849028490234

messageType

enum

No

Enum: [ Delta, Overlay ]

Omit the attributor means  the Message Type is Overlay

Delta

hotelId

string

Yes

ID of the hotel in the supplier's system

GATHI

dateRange

object

Yes

 /

 /

@startDate

string

Yes

Start date of date range, format with yyyy-MM-dd

2024-01-01

@endDate

string

Yes

End date of date range, format with yyyy-MM-dd

2024-01-04

currency

string

Yes

Currency code [ISO-4217]

USD

dailyAris

array

Yes

Daily rate and inventory within a date range

 /

@roomId

string

Yes

Room ID in supplier's system

10000101

@rateId

string

Yes

Rate ID in supplier's system

123456

@corpCodesarray [string]YesDistributor corpCodesIBM

@mealPlans

array[string]

No

Meal plan for each date

[ "BB", "BB", "BB", "BB" ]

@inventories

array[integer]

Yes

Room inventory for each date

[ 9, 0, 9, 9 ]

dailyAris.rates

 /

Yes

 /

 /

@type

enum

Yes

Enum: [ OccupancyRate, CommonRate ]

Indicates which rate model to be used: OccupancyRate or CommonRate.

 /

rates.rates

array[object]

Yes

This node will not display if it’s the Common Rate Model.

 /

@adultCount

integer

No

The attribute will not display if it’s the Common Rate Model.

 /

@childCount

integer

No

The attribute will not display if it’s the Common Rate Model.

 /

@amountBeforeTax

array[number]

No

 /

[ 502.19, 502.19, 502.19, 502.19 ]

@amountAfterTax

array[number]

No

 /

[ 623.23, 623.23, 623.23, 623.23 ]

dailyAris.availStatuses

 /

 /

 /

 /

@close

array[boolean]

Yes

Closed or not for each date

[ false, false, false, false ]

@minStayArrival

array[integer]

No

Minimum length of stay based on check-in for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@maxStayArrival

array[integer]

No

Maximum length of stay based on check-in for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@minStayThrough

array[integer]

No

Minimum length of stay based on a date through for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@maxStayThrough

array[integer]

No

Maximum length of stay based on a date for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@minAdvanceDay

array[integer]

No

Minimum days to book in advance for each date, zero means no restriction.

[ 0, 2, 0, 0 ]

@maxAdvanceDay

array[integer]

No

Maximum days to book in advance for each date, zero means no restriction.

[ 365, 365, 365, 365 ]

@cta

array[boolean]

No

Closed to arrival for each date

[ false, false, false, true ]

@ctd

array[boolean]

No

Closed to departure for each date

[ false, false, false, true ]

@fplos

array[string]

No

Full pattern length of stay to indicate if the stay is available.

[ "1111111", "1001111", "1000001", "0000000" ]

dailyAris. rateChangeIndicators

array[boolean]

No

Rate change indicator of each date. Please refer to this article.

[ true, false, true, false ]


Response Example

  • Success Response (HTTP Status 200) - OK
{
  "header": {
    "supplierId": "HILTON",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "GATHI",
  "updateDateRange": {
    "startDate": "2024-01-01",
    "endDate": "2024-01-04"
  }
}
JavaScript
  • Error Response (HTTP Status 403) - Unauthorized token
{
  "errorCode": "string",
  "supplierErrorCode": "string",
  "errorMessage": "string"
}
JavaScript
  • Error Response (HTTP Status 500) - Internal system erro
{
  "errorCode": "string",
  "supplierErrorCode": "string",
  "errorMessage": "string"
}
JavaScript


Response Specification

Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@supplierId

string

Yes

MaxLength: 32

The ID of the hotel supplier in DerbySoft's system

HILTON

@distributorId

string

Yes

MaxLength: 32

The ID of the distributor in DerbySoft's system

MOCK_DISTRIBUTOR

@version

string

Yes

MaxLength: 20

Version of API

v1.0.0

@token

string

Yes

MaxLength: 64

A unique ID to identify request and response, normally it should be UUID.

18393849028490234

hotelId

string

Yes

The ID of a hotel in the supplier's system

GATHI

updateDateRange

object

 Yes

 /

 /

@startDate

string

Yes

start date of date range, format with yyyy-MM-dd

2024-01-01

@endDate

string

Yes

end date of date range, format with yyyy-MM-dd

2024-01-04


LOS Push

LOS Push API should be used if the supplier ARI mode is LOS. 

 

POST /ari/los/push HTTP/1.1
URL: {{endpoint}}/ari/los/push 
Authorization:Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc Accept-Encoding: gzip 
Content-Encoding: gzip 
Content-Type: application/json;charset=utf-8
JavaScript


Request Example

  • Occupancy Rate
{
  "header": {
    "supplierId": "HILTON",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "messageType": "Delta",
  "hotelId": "GATHI",
  "dateRange": {
    "startDate": "2024-01-01",
    "endDate": "2024-01-04"
  },
  "currency": "USD",
  "losAris": [
    {
      "roomId": "K1",
      "rateId": "BARB",
      "los": 1,
      "mealPlans": [
        "BB",
        "BB",
        "RO",
        "BB"
      ],
      "inventories": [
        9,
        0,
        9,
        9
      ],
      "rates": {
        "type": "OccupancyRate",
        "rates": [
          {
            "adultCount": 2,
            "childCount": 1,
            "amountBeforeTax": [
              502.19,
              502.19,
              502.19,
              502.19
            ],
            "amountAfterTax": [
              623.23,
              623.23,
              623.23,
              623.23
            ]
          }
        ]
      }
    }
  ]
}
JavaScript


JavaScript


Request Specification

Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@supplierId

string

Yes

MaxLength: 32

The ID of hotel suppliers in DerbySoft's system

HILTON

@distributorId

string

Yes

MaxLength: 32

ID of distributor in DerbySoft's system

MOCK_DISTRIBUTOR

@version

string

Yes

MaxLength: 20

Version of API

v1.0.0

@token

string

Yes

MaxLength: 64

A unique ID to identify request and response, normally it should be UUID.

18393849028490234

messageType

enum

No

Enum: [ Delta, Overlay ]

Omit the attributor means the Message Type is Overlay

Delta

hotelId

string

Yes

The ID of a hotel in the supplier's system

GATHI

dateRange

object

Yes

 /

 /

@startDate

string

Yes

Start date of date range, format with yyyy-MM-dd

2024-01-01

@endDate

string

Yes

End date of date range, format with yyyy-MM-dd

2024-01-04

currency

string

Yes

Currency code[ISO-4217]

USD

losAris

array

Yes

Length of stay rate and inventory within a date range.  If no available rates, it means the hotel was closed.  If the available rates are only for certain room types, it means other room types are closed.

 /

@roomId

string

Yes

Room ID in supplier's system

10000101

@rateId

string

Yes

Rate ID in supplier's system

123456

@corpCodesarray[string]YesCorp codes used in distributor's systemIBM

@los

integer

Yes

Length of stay

1

@mealPlans

array[string]

No

Please refer to the meal plan appendix

[ "BB", "BB", "BB", "BB" ]

@inventories

array[integer]

Yes

Room inventory for each date

[ 9, 0, 9, 9 ]

losAris.rates

 /

Yes

 /

 /

@type

enum

Yes

Enum: [ OccupancyRate, CommonRate ]

Indicates which rate model to be used: OccupancyRate or CommonRate.

 /

rates.rates

array[object]

Yes

This node will not display if it’s the Common Rate Model.

 /

@adultCount

integer

No

This node will not display if it’s the Common Rate Model.

 /

@childCount

integer

No

The node will not display if it’s the Common Rate Model.

 /

@amountBeforeTax

array[number]

No

 /

[ 502.19, 502.19, 502.19, 502.19 ]

@amountAfterTax

array[number]

No

 /

[ 623.23, 623.23, 623.23, 623.23 ]

extensions

object

No

A common extension object for extra attributes like account, extra setting required by a distributor, etc.

 /


Response Example

  • Success Response (HTTP Status 200) - OK
{
  "header": {
    "supplierId": "HILTON",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "GATHI",
  "updateDateRange": {
    "startDate": "2024-01-01",
    "endDate": "2024-01-04"
  }
}
JavaScript
  • Error Response (HTTP Status 403) - Unauthorized token
{
  "errorCode": "string",
  "supplierErrorCode": "string",
  "errorMessage": "string"
}
JavaScript
  • Error Response (HTTP Status 500) - Internal sys
{
  "errorCode": "string",
  "supplierErrorCode": "string",
  "errorMessage": "string"
}
JavaScript


Response Specification

Attribute

Type

Required

Description

Example

header

object

Yes

 /

 /

@supplierId

string

Yes

MaxLength: 32

The ID of the hotel supplier in DerbySoft's system

HILTON

@distributorId

string

Yes

MaxLength: 32

The ID of distributor in DerbySoft's system

MOCK_DISTRIBUTOR

@version

string

Yes

MaxLength: 20

Version of API

v1.0.0

@token

string

Yes

MaxLength: 64

A unique ID to identify request and response, normally it should be UUID.

18393849028490234

hotelId

string

Yes

ID of a hotel in supplier's system

GATHI

updateDateRange

object

 Yes

 /

 /

@startDate

string

Yes

Start date of date range, format with yyyy-MM-dd

2024-01-01

@endDate

string

Yes

End date of date range, format with yyyy-MM-dd

2024-01-04