DEPRECATED DO NOT USE
The PUSH method is aimed at accounts who for different reasons cannot work with the default PULL mechanism. Due to the high cost of this method, it will be enabled for high-volume accounts only, and with a setup fee and a monthly fee, as well as a high monthly minimum booking threshold.
The flow can work in 2 ways: 1. Innstant will initiate a call to tell you when a new file is ready for you, calling a URL you specify. for example: http://yourdomain.com/notify?product=events&filename=http%3A%2F%2Fexample.com%2Fevents%2Fsomefilename.xml.zip
2. You can send an XML request using your regular Mishor credentials and get the latest available file: Request: <request version="4.0"> <auth> <username>example</username> <password>example</password> <agent>example</agent> <language>en</language> </auth> <get-cache-files /> </request>
Response:
<?xml version="1.0"?> <response success="1" time="2015-01-21 10:06:05" session="xx.1234567"> <get-cache-files> <files product="hotels"> <file>http://example2.com/hotels/somefile.xml.zip</file> </files> </get-cache-files> </response>
for each service opened on your account for static handling, you will get a node with a url to download a zip file containing an XML with the static data.
The rates and availability files are CSV files, and the content is based on the client account setup. every few hours a new .zip file is generated with a CSV file for each city, so if for example your account is set up with 1,000 cities - you will get a .zip file with 1,000 csv files inside. The structure of the files is as follows:
rooms.csv file, lists all rooms available for booking:
Field | Type | Comments | RateTypeCode | string | The rate type of the specific room, the same rate type can be used for multiple rooms and is mainly used to calculate the supplement and board prices | RoomID | string | Unique room id | Room Name | string | The name of the room | Room Description | string | The description of the room | CityID | int | The city id, city information can be found in the static data | HotelID | int | The hotel id, full hotel information can be found in the static data | On Request | Boolean | Will the room have immediate confirmation (0 means immediate confirmation, 1 means on request) | Date | Date | YYYY-MM-DD date of the room offer. for multiple dates you will have to combine multiple rows | Check-In Allowed | Boolean | Is check-in allowed at this date | Check-Out Allowed | Boolean | Is check-out allowed at this date | Min Nights | Int | Minimum number of nights allowed | Rate Description | String | Description of the rate for the specific offer | Adult Price | Price | Price in the original currency for an adult (see "Currency" field for the relevant currency) | Child Price | Price | Price in the original currency for a child (see "Currency" field for the relevant currency) | Adult Price [cur] | Price | The field name will be based on the account default currency setup. for example, an EUR account will have "Adult Price EUR" as the field name. The value will be the normalized price to this currency. | Child Price [cur] | Price | The field name will be based on the account default currency setup. for example, an EUR account will have "Child Price EUR" as the field name. The value will be the normalized price to this currency. | Currency | Currency | 3 letter ISO code for the original prices | Max Adults | Int | The maximum number of adults allowed in the room | Max Children | Int | The maximum number of children allowed in the room | Max Pax | Int | The maximum number of adults + children allowed in the room, this number should never be exceeded | Min Adults | Int | The minimum number of adults allowed in the room | Min Children | Int | The minimum number of children allowed in the room | Max Child Age | Int | The maximum age of what the hotel considers as a "child". above this age the person is considered an "adult" | Min Child Age | Int | The minimum age of what the hotel considers as a "child". below that age the person is considered an "infant" | Board Name | String | The name of the board included in the room offer | Board Code | Board code | 2 letter board code | Is Per Room | Boolean | If this field is set to 1 the price is for the entire room and should not be calculated per pax | Is Per Pax | Boolean | If this field is set to 1 the price is calculated per pax | Provider | String | The name of the provider selling the room | Canellation Days | Int | The number of days before the check-in date where canellation is free of charge, -1 means "unknown" | Availability Count | Int | The current availability for this specific room type |
additional_board.csv file, lists available board upgrades for the specific rate type: Field | Type | Comments | RateTypeCode | String | The rate type of the specific room, the same rate type can be used for multiple rooms, and is related to the "rooms.csv" file | Rate Description | String | Description of the rate for the specific offer | Board Code | Board code | 2 letter board code | Board Name | String | The name of the board included in the room offer | Price | Float | The price of the board that needs to be added to the room price. note that in some cases, the price can be negative | Currency | Currency | 3 letter currency ISO code | Price [cur] | Float | The field name will be based on the account default currency setup. for example, an EUR account will have Price EUR" as the field name. The value will be the normalized price to this currency. | Date | Date | format YYYY-MM-DD - the date for which the board price is applicable | Is Per Pax | Boolean | Is the board price per pax | Is Per Room | Boolean | Is the board price per room | Min Age | Int | The minimum age for which the board option is available | Max Age | Int | The maximum age for which the board option is available |
supplements.csv file, lists available supplements for each room. the supplement will impact the booking price, so handling them is mandatory Field | Type | Comments | RateTypeCode | String | The rate type of the specific room, the same rate type can be used for multiple rooms, and is related to the "rooms.csv" file | Rate Description | String | Description of the rate for the specific offer | Initial Date | Date | format YYYY-MM-DD - the date from which the supplement is valid (the check-in date) | Final Date | Date | format YYYY-MM-DD - the date until which the supplement is valid | Application Initial Date | Date | format YYYY-MM-DD - the booking date from which the supplement is valid (i.e. when the booking is made) | Application Final Date | Date | format YYYY-MM-DD - the booking date until which the supplement is valid (i.e. when the booking is made) | Supplement Description | String | A description of the supplement | Minimum Adults | Int | The minimum of adults the supplement applies to | Limit Date | Date | format YYYY-MM-DD - the date from/until which the supplement applies, depends on the "Limit Date Type" | Limit Date Type | String | available values: "earlier or equal", "greater or equal" | Pax Order | Int | the guest ordinal number from which the supplement applies, correlates with "Pax Type" to indicate which pax type (adult/child) is affected by this field. see note #1 for usage example | Days In Advance | Int | The number of days before the check-in that the supplement applies. Correlates with "days in advance type", see note #2 for usage example | Days In Advance Type | String | available values: "earlier or equal", "greater or equal" | Days Of Stay | Int | Length of stay in days | Days Of Stay Type | String | available values "greater", "lower" | Supplement Position | Int | The order in which to add the supplements on top of all other applicable supplements. The lower this number the earlier it needs to be applied (i.e. 1 is applied first, 2 after, etc.) | Maximum Age | Int | The maximum pax age for which the supplement applies | Minimum Age | Int | The minimum pax age for which the supplement applies | Board Code | Board code | 2 letter board code | Pax Type | String | possible values: "adult", "child", "infant" | Application Type | String | possible values: "base price", "board price", "nightly price", "overwrite price", "first night price" | Price | Float | The price of the supplement (can be negative or positive) | Bar Price | Float | The BAR price of the supplement (public rate for b2c) | Currency | Currency | 3 letter ISO code | Price [cur] | Float | Normalized price in the [cur] currency based on the default account currency | Percent | Float | Percent change value (can be negative or positive) | Days Of The Week | String | Comma separated list of days when this supplement is active. Example: "Mon,Tue,Fri,Sat,Sun" | Is Per Pax | Boolean | Should the supplement be applied per pax | Is Per Room | Boolean | Should the supplement be applied per room | Is cumulative | Boolean | Is the supplement cumulative on top of other supplements. for example, is the Percent value applied on the base price or on top of the base + other supplements based on the supplement position. |
Notes: 1. Pax Order / Pax type usage example: If the Pax Type = Adult and the Pax Order = 2, it means that the supplement applies to the 2nd adult only. 2. Days in advance: If the Days in advance attribute = 5 and the Days in advance type = "greater or equal", it means that the supplement applies if the booking is made more than 5 days from the check-in date
|