TABLE OF CONTENTS

Daily Push

This API enables us to send Daily ARI to distributors for a hotel within a specified date range. The Daily Push Model provides a detailed breakdown of rates and availability for each day, ensuring that distributors receive up-to-date information every time the supplier updates the prices or availability for the hotels and products that have been activated by the distributor.


When a supplier changes the prices or availability, we will push the updated ARI data, ensuring that the distributor always has the most current information. This data can be grouped for consecutive days that share the same rates and restrictions, optimizing the data flow and making it easier to process.


With this model, distributors are ensured that their systems remain accurate with the latest pricing and availability updates, without the need for constant polling.


In the following sections, we will provide the schemas and examples for the Daily Push Model, outlining how the ARI data is structured and how to integrate it seamlessly into your systems.

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


Daily Push Request Schema

Level

Field Name

Data Type

Required

Description

Example

1

header

object

Y

 /

 /

2

@supplierId

string

Y

The ID of hotel suppliers in DerbySoft's system.

MaxLength: 32

ABCDE

2

@distributorId

string

Y

The ID of distributor in DerbySoft's system.

MaxLength: 32

GTA

2

@version

string

Y

Version of API. MaxLength: 20

v4

2

@token

string

Y

A unique identifier is used for requests and responses, typically a UUID. MaxLength: 64

Note that this is an echo token, not an access token.

18393849028490234

1messageTypeenumNEnum: [ Delta, Overlay ]

Omit the attributor means the Message Type is Overlay.

Refer to Delta vs. Overlay for more information

Delta
1

hotelId

string

Y

ID of the hotel in the supplier's system

GATHI

1

dateRange

object

Y

 /

 /

2

@startDate

string

Y

Start date of date range expressed as YYYY-MM-DD

2028-01-01

2

@endDate

string

Y

End date of the date range expressed as YYYY-MM-DD

2028-01-04

1

currency

string

Y

Currency code [ISO-4217]

USD

1

dailyAris

array

Y

Daily rate and inventory within a date range

 /

2

@roomId

string

Y

Room ID in supplier's system

10000101

2

@rateId

string

Y

Rate ID in supplier's system

123456

2@connectionTypeenumN

Enum: [Exchange, Standard]

Indicates the connection type of products. 

Notes: If the field is omitted, it means the Connection Type is Standard.

Standard
2

@mealPlans

array[string]

N

Meal plan for each date

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

2

@inventories

array[integer]

Y

Room inventory for each date

[ 9, 0, 9, 9 ]

2

rates

 /

Y

 /

 /

3

@type

enum

Y

Enum: [ OccupancyRate, CommonRate ]

Indicates which rate model to be used: OccupancyRate or CommonRate. Refer to Occupancy Rate vs. Common Rate to get to know the differences.  

 /

3

rates

array[object]

C

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

 /

4

@adultCount

integer

C

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

 /

4

@childCount

integer

N

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

 /

4

@amountBeforeTax

array[number]

C

Mandatory if AAT is not provided

[ 502.19, 502.19, 502.19, 502.19 ]

4

@amountAfterTax

array[number]

C

Mandatory if ABT is not provided

[ 623.23, 623.23, 623.23, 623.23 ]

4@suggestedSellingPriceBeforeTaxarray[number]C
Amount of rate without tax & fee for exchange


Notes: If the connection type is "Exchange" and the "Net" Rate Model, the field will be visible; otherwise, it will not appear.

[100, 100, 100]
4@suggestedSellingPriceAfterTaxarry[number]C
Amount of rate with tax & fee for exchange


Notes: If the connection type is "Exchange" and the "Net" Rate Model, the field will be visible; otherwise, it will not appear.

[110, 110, 110]
2

availStatuses

 /

 /

For more clarification on the following restrictions, please refer to the article.

 /

3

@close

array[boolean]

Y

Closed or not for each date

[false, false, false, false]

3

@minStayArrival

array[integer]

N

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

[ 0, 2, 0, 0 ]

3

@maxStayArrival

array[integer]

N

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

[ 0, 2, 0, 0 ]

3

@minStayThrough

array[integer]

N

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

[ 0, 2, 0, 0 ]

3

@maxStayThrough

array[integer]

N

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

[ 0, 2, 0, 0 ]

3

@minAdvanceDay

array[integer]

N

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

[ 0, 2, 0, 0 ]

3

@maxAdvanceDay

array[integer]

N

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

[ 365, 365, 365, 365 ]

3

@cta

array[boolean]

N

Closed to arrival for each date

[ false, false, false, true ]

3

@ctd

array[boolean]

N

Closed to departure for each date

[ false, false, false, true ]

3

@fplos

array[string]

N

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

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

Daily Push Request Example

Occupancy Rate
{
  "header": {
    "supplierId": "ABCDE",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "messageType": "Delta",
  "hotelId": "ABC123",
  "dateRange": {
    "startDate": "2028-01-01",
    "endDate": "2028-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"
        ]
      }
    }
  ]
}
Occupancy Rate from Exchange Supplier and Net Rate Model
{
  "header": {
    "supplierId": "HILTON",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "messageType": "Delta",
  "hotelId": "GATHI",
  "dateRange": {
    "startDate": "2028-01-01",
    "endDate": "2028-01-04"
  },
  "currency": "USD",
  "dailyAris": [
    {
      "roomId": "K1",
      "rateId": "BARB",
      "connectionType": "Exchange",
      "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
            ],
            "suggestedSellingPriceBeforeTax": [
              100,
              100,
              120,
              120
            ],
            "suggestedSellingPriceAfterTax": [
              110,
              110,
              130,
              130
            ]
          }
        ]
      },
      "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"
        ]
      }
    }
  ]
}
Occupancy Rate with Child Pricing based on age bands
{
    "header": {
        "supplierId": "ABCDE",
        "distributorId": "GTA",
        "version": "v4",
        "token": "18393849028490234"
    },
    "messageType": "Delta",
    "hotelId": "ABC123",
    "dateRange": {
        "startDate": "2028-01-01",
        "endDate": "2028-01-04"
    },
    "currency": "USD",
    "dailyAris": [
        {
            "roomId": "K1",
            "rateId": "BARB",
            "mealPlans": [
                "BB",
                "BB",
                "BB",
                "BB"
            ],
            "inventories": [
                9,
                0,
                9,
                9
            ],
            "rates": {
                "extraChildRates": [
                    {
                        "amountAfterTax": [
                            50.00,
                            50.00,
                            50.00,
                            50.00
                        ],
                        "amountBeforeTax": [
                            40.00,
                            40.00,
                            40.00,
                            40.00
                        ],
                        "maxAge": 2,
                        "minAge": 0
                    },
                    {
                        "amountAfterTax": [
                            60.00,
                            60.00,
                            60.00,
                            60.00
                        ],
                        "amountBeforeTax": [
                            50.00,
                            50.00,
                            50.00,
                            50.00
                        ],
                        "maxAge": 8,
                        "minAge": 3
                    },
                    {
                        "amountAfterTax": [
                            70.00,
                            70.00,
                            70.00,
                            70.00
                        ],
                        "amountBeforeTax": [
                            60.00,
                            60.00,
                            60.00,
                            60.00
                        ],
                        "maxAge": 17,
                        "minAge": 9
                    }
                ],
                "type": "OccupancyRate",
                "rates": [
                    {
                        "adultCount": 1,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            623.23,
                            623.23,
                            623.23,
                            623.23
                        ]
                    },
                    {
                        "adultCount": 2,
                        "amountBeforeTax": [
                            520.19,
                            520.19,
                            520.19,
                            520.19
                        ],
                        "amountAfterTax": [
                            641.23,
                            641.23,
                            641.23,
                            641.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"
                ]
            }
        }
    ]
}
All possible occupancy combinations
Note:GO supports completing possible occupancy combinations up to the maximum occupancy supported by each hotel in cases where children will be free of charge by hotel suppliers. Example as follow: Max occupancy = 4, max adult = 3, max children = 2, child pricing = 0. But suppliers don't provide occupancy rates for adult plus child combinations. GO supports to complele it for 3A1C, 3A0C, 2A2C, 2A1C, 2A0C, 1A1C and 1A0C.

*** The feature increases the ARI pushing traffic volume, and is turned off as a default setting. If you wish to enable it, please reach out to your Client Manager for more details.
{
    "header": {
        "supplierId": "ABCDE",
        "distributorId": "GTA",
        "version": "v4",
        "token": "18393849028490234"
    },
    "messageType": "Delta",
    "hotelId": "ABC123",
    "dateRange": {
        "startDate": "2028-01-01",
        "endDate": "2028-01-04"
    },
    "currency": "USD",
    "dailyAris": [
        {
            "roomId": "K1",
            "rateId": "BARB",
            "mealPlans": [
                "BB",
                "BB",
                "BB",
                "BB"
            ],
            "inventories": [
                9,
                0,
                9,
                9
            ],
            "rates": {
                "type": "OccupancyRate",
                "rates": [
                    {
                        "adultCount": 1,
                        "childCount": 0,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 1,
                        "childCount": 1,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 2,
                        "childCount": 0,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 2,
                        "childCount": 1,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 2,
                        "childCount": 2,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 3,
                        "childCount": 0,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.23
                        ]
                    },
                    {
                        "adultCount": 3,
                        "childCount": 1,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            523.23,
                            523.23,
                            523.23,
                            523.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"
                ]
            }
        }
    ]
}

Daily Push Response Schema

Level

Field Name

Data Type

Required

Description

Example

1

header

object

Y

 /

 /

2

@supplierId

string

Y

The ID of hotel suppliers in DerbySoft's system.

MaxLength: 32

ABCDE

2

@distributorId

string

Y

The ID of distributor in DerbySoft's system.

MaxLength: 32

GTA

2

@version

string

Y

Version of API. MaxLength: 20

v4

2

@token

string

Y

A unique identifier is used for requests and responses, typically a UUID. MaxLength: 64

Note that this is an echo token, not an access token.

18393849028490234

1

hotelId

string

Y

The ID of a hotel in the supplier's system

ABC123

1

updateDateRange

object

Y

 /

 /

2

@startDate

string

Y

Start date of date range expressed as YYYY-MM-DD

2028-01-01

2

@endDate

string

Y

End date of the date range expressed as YYYY-MM-DD

2028-01-04

1errorstringNerror responseKey not authorized
1errorCodestringCerror responseInvalidField
1errorMessagestringCerror responseInvalid Message

Daily Push Response Example

Success Response(HTTP Status 200)
{
  "header": {
    "supplierId": "ABCDE",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "hotelId": "ABC123",
  "updateDateRange": {
    "startDate": "2028-01-01",
    "endDate": "2028-01-04"
  }
}
Error Response (HTTP Status 403)
{
  "errorCode": "InvalidField",
  "errorMessage": "  Unauthorized token"
}
Error Response (HTTP Status 500)
{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}