ARI Push
Modified on: 2024-03-21 17:24
As part of our design update, the screenshots are currently being revised.
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.
- Daily Push (/ari/daily/push) - Push daily ARI of one hotel to one distributor.
- LOS Push (/ari/los/push) - Push LOS ARI of one hotel to one distributor.
Daily Push
Daily Push API is used to push ARI in daily to the distributors' system.
POST /ari/daily/push HTTP/1.1URL: {{endpoint}}/ari/daily/pushAuthorization:Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fcAccept-Encoding: gzipContent-Encoding: gzipContent-Type: application/json;charset=utf-8
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", "corpCodes": [ "IBM" ], "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 ] } ] }
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 |
@corpCodes | array [string] | Yes | Distributor corpCodes | IBM |
@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)
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "hotelId": "GATHI", "updateDateRange": { "startDate": "2024-01-01", "endDate": "2024-01-04" } }
- Error Response (HTTP Status 401)
{ "errorCode": "string", "supplierErrorCode": "string", "errorMessage": "string" }
- Error Response (HTTP Status 500)
{ "errorCode": "string", "supplierErrorCode": "string", "errorMessage": "string" }
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.1URL: {{endpoint}}/ari/los/push Authorization:Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc Accept-Encoding: gzip Content-Encoding: gzip Content-Type: application/json;charset=utf-8
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", "corpCodes": [ "IBM" ], "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 ] } ] } } ] }
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 |
@corpCodes | array[string] | Yes | Corp codes used in distributor's system | IBM |
@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)
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "hotelId": "GATHI", "updateDateRange": { "startDate": "2024-01-01", "endDate": "2024-01-04" } }
- Error Response (HTTP Status 401)
{ "errorCode": "string", "supplierErrorCode": "string", "errorMessage": "string" }
- Error Response (HTTP Status 500)
{ "errorCode": "string", "supplierErrorCode": "string", "errorMessage": "string" }
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 |
Did you find it helpful? Yes No
Send feedback