Introduction
The OTS FlatFile is developed to allow customers to store a limited set of prices and availability without any calculation logic. As portfolio is client-specific and client-specific, marketing actions, guarantees, etc. need to be considered, the OTS FlatFile can only be used for the ClientID it has been generated for. It is meant as an immediately searchable cache file. Three versions available:- Version 1: Without RatePlans.
- Version 2: Accommodates RatePlans.
- Version 3: Extended RoomCodes (30 chars) and RateplanCodes (20 chars).
- 5,000 hotels
- Average 3 room types
- Average 3 boards
- Lengths of stay: 25 (3–28)
- Arrival days: 330 (not all hotels have a valid contract for a full year)
- Adults: 1–3 (2.6 used for calculation)
- Children: 1 of 5 years old (1.7 used for calculation)
FlatFile is not suitable for systems that must produce search results for any occupancy or child age outside the agreed parameters. For more flexibility, use the Notification based model.
FlatFile Schedule Parameters
| Parameter | Value | Description |
|---|---|---|
| JobName | NOTIFY_OTSFF_CLIENTID | |
| Client | TEST | ClientID |
| Version | 01 or 02 or 03 | 01: no RatePlans, 02: Roomcode 20 chars + RatePlan 10 chars, 03: RoomCode 35 chars + RatePlan 20 chars |
| StartDate | Today+1 | First arrival date included |
| EndDate | Today+200 | Last arrival date included (max 365) |
| FtpActive | TRUE | Send by FTP active |
| FtpServer | sftp.axisdata.net | FTP for delivery |
| FtpDir | / | FTP directory for delivery |
| MinAdt | 2 | Start range of Adults to be included |
| MaxAdt | 2 | End range of Adults to be included |
| MinChd | 0 | Start range of Children to be included |
| MaxChd | 0 | End range of Children to be included |
| ChdAge | 5 | Age used to compute the price of children |
| MaxAdtChd | 4 | Max number of pax (Max=6) |
| CheapestRoomBoard | TRUE/FALSE | Only the cheapest room/board per hotel, or all room/board per occupancy |
| CheapestRoom | TRUE/FALSE | Only the cheapest room per hotel (all boards) |
| CheapestBoard | TRUE/FALSE | Only the cheapest board per hotel (all rooms) |
| SpecificBoards | SC, RO, AI, AI+ | Only generate lines for these boards |
| Durations | 3,4,7,10,13,14,15,21 | Lengths of stays included (max 10) |
| OffersSpecified | True/False | Adds 5 chars to each line to identify offers applied |
| StatusEmail | [email protected] | Email notification upon finishing |
FlatFile Structure
V03 (RatePlan + Multicontracting)
| Field Number | Field | Length | From Pos | To Pos | Type | Mandatory |
|---|---|---|---|---|---|---|
| 01 | Version number | 2 | 1 | 2 | INT | Y |
| 02 | Action | 1 | 3 | 3 | CHAR | Y |
| 03 | Offer Number | 10 | 4 | 13 | CHAR | Y |
| 04 | Hotel code | 17 | 14 | 30 | CHAR | Y |
| 05 | Room code | 35 | 31 | 65 | CHAR | Y |
| 06 | RatePlan code | 20 | 66 | 85 | ||
| 07 | Board code | 3 | 86 | 88 | CHAR | Y |
| 08 | Arrival date | 10 | 89 | 98 | DATE | Y |
| 09 | Length of stay | 2 | 99 | 100 | INT | Y |
| 10 | Occupancy total | 1 | 101 | 101 | INT | Y |
| 11 | Occupancy ADT | 1 | 102 | 102 | INT | Y |
| 12 | ADT1 age | 2 | 103 | 104 | INT | N |
| 13 | ADT2 age | 2 | 105 | 106 | INT | N |
| 14 | ADT3 age | 2 | 107 | 108 | INT | N |
| 15 | ADT4 age | 2 | 109 | 110 | INT | N |
| 16 | Occupancy CHD | 1 | 111 | 111 | INT | Y |
| 17 | CHD1 age | 2 | 112 | 113 | INT | N |
| 18 | Occupancy INF | 1 | 114 | 114 | INT | Y |
| 19 | INF age | 1 | 115 | 115 | INT | N |
| 20 | Price | 12 | 116 | 127 | CURR | Y |
| 21 | Currency | 3 | 128 | 130 | CHAR | Y |
| 22 | Remaining rooms | 2 | 131 | 132 | INT | Y |
| 23 | Offers applied | 5 | 133 | 137 | CHAR | N |
V02 (RatePlan 10 chars, Room code 20 chars)
| Field Number | Field | Length | From Pos | To Pos | Type | Mandatory |
|---|---|---|---|---|---|---|
| 01 | Version number | 2 | 1 | 2 | INT | Y |
| 02 | Action | 1 | 3 | 3 | CHAR | Y |
| 03 | Offer Number | 10 | 4 | 13 | CHAR | Y |
| 04 | Hotel code | 17 | 14 | 30 | CHAR | Y |
| 05 | Room code | 20 | 31 | 50 | CHAR | Y |
| 06 | RatePlan code | 10 | 51 | 60 | ||
| 07 | Board code | 3 | 61 | 63 | CHAR | Y |
| 08 | Arrival date | 10 | 64 | 73 | DATE | Y |
| 09 | Length of stay | 2 | 74 | 75 | INT | Y |
| 10 | Occupancy total | 1 | 76 | 76 | INT | Y |
| 11 | Occupancy ADT | 1 | 77 | 77 | INT | Y |
| 12 | ADT1 age | 2 | 78 | 79 | INT | N |
| 13 | ADT2 age | 2 | 80 | 81 | INT | N |
| 14 | ADT3 age | 2 | 82 | 83 | INT | N |
| 15 | ADT4 age | 2 | 84 | 85 | INT | N |
| 16 | Occupancy CHD | 1 | 86 | 86 | INT | Y |
| 17 | CHD1 age | 2 | 87 | 88 | INT | N |
| 18 | Occupancy INF | 1 | 89 | 89 | INT | Y |
| 19 | INF age | 1 | 90 | 90 | INT | N |
| 20 | Price | 12 | 91 | 102 | CURR | Y |
| 21 | Currency | 3 | 103 | 105 | CHAR | Y |
| 22 | Remaining rooms | 2 | 106 | 107 | INT | Y |
| 23 | Offers applied | 5 | 108 | 112 | CHAR | N |
V01 (No RatePlan, Room code 10 chars)
| Field Number | Field | Length | From Pos | To Pos | Type | Mandatory |
|---|---|---|---|---|---|---|
| 01 | Version number | 2 | 1 | 2 | INT | Y |
| 02 | Action | 1 | 3 | 3 | CHAR | Y |
| 03 | Offer Number | 10 | 4 | 13 | CHAR | Y |
| 04 | Hotel code | 17 | 14 | 30 | CHAR | Y |
| 05 | Room code | 10 | 31 | 40 | CHAR | Y |
| 06 | Board code | 3 | 41 | 43 | CHAR | Y |
| 07 | Arrival date | 10 | 44 | 53 | DATE | Y |
| 08 | Length of stay | 2 | 54 | 55 | INT | Y |
| 09 | Occupancy total | 1 | 56 | 56 | INT | Y |
| 10 | Occupancy ADT | 1 | 57 | 57 | INT | Y |
| 11 | ADT1 age | 2 | 58 | 59 | INT | N |
| 12 | ADT2 age | 2 | 60 | 61 | INT | N |
| 13 | ADT3 age | 2 | 62 | 63 | INT | N |
| 14 | ADT4 age | 2 | 64 | 65 | INT | N |
| 15 | Occupancy CHD | 1 | 66 | 66 | INT | Y |
| 16 | CHD1 age | 2 | 67 | 68 | INT | N |
| 17 | Occupancy INF | 1 | 69 | 69 | INT | Y |
| 18 | INF age | 1 | 70 | 70 | INT | N |
| 19 | Price | 12 | 71 | 82 | CURR | Y |
| 20 | Currency | 3 | 83 | 85 | CHAR | Y |
| 21 | Remaining rooms | 2 | 86 | 87 | INT | Y |
| 22 | Offers applied | 5 | 88 | 92 | CHAR | N |
FlatFile Details
- Version number: Current version is 03. Older versions available for backward compatibility.
- Record format / Action:
- I: insert
- U: update (partial)
- D: delete
- F: full update (replace)
- PriceLine number: Unique per provider.
- Hotel code: 17 chars, may have empty spaces for shorter codes.
- Room code: Assembled from room characteristics (type, grade, view, etc.).
- RatePlan code: Assembled from RatePlan characteristics (type, group, refundability, etc.).
- Board code: Defines meal plans (e.g., Half Board, All Inclusive).
- Arrival date: yyyy-mm-dd
- Length of stay: 2 chars, e.g., 08 for 8 nights.
- Occupancy: Total, adults, children, infants, with ages.
- Price: Currency, right-aligned, 2 decimals.
- Remaining rooms: Number of free hotel units at the time the PriceLine was produced.
- Offers applied: Specification of offers applied in this PriceLine.
Offer Codes Table
Check our codes -> Price Breakdown CodesExamples
When developing the FlatFile, always request an example file generated with your parameters from our INT environment to test the full flow, including making Quotes to test price consistency.Generation Report via Email
Clients can receive daily generation emails with a list of hotels included in the generation. The email contains:- Type of generation
- Status (Success/Error)
- Additional info/Errorcode
- Parameters (Client, Stock group, Boards, Dates, Durations, Min/Max adt/chd, Max pax, Chd age, Offers version, Search type, Offers specified)
- FTP Transfer Details (Server type, Host, Username, Output filename, File size, Transfer times and speeds)
- Operation Details (Threads, Parts, Compression, Download/Processing/Generation times and speeds)
- Report (Searched stocks, Emitted stocks, Emitted datasets)
For any implementation, coordinate with Axis Data to define the exact FlatFile parameters and structure for your use case.

