TravelCaster API - ReportXML
Back to Reports home.
The ReportXML service provides all the reservations of a full day or a specific time window. With well nomenclated identifiers and providing all the information in a unique one service request, it makes an easy and fast implementation.
Request
XML
EndPoint: https://endpoint/reports/DownloadData.ashx [POST]
Headers: ApiKey
Parameter: query ([Request])
Returns: List of reservations (Book)
Structure of the request document
Request (Request)
|
|_ FromDate (string - Mandatory - Two format alternatives)
| (ISO 8601 yyyy-MM-ddTHH:mm:ss.fff format - TimeZone: GMT)
| (ISO 8601 yyyy-MM-ddTHH:mm:ss.fffzzzzz format - Specific TimeZone, Eg: -03:00)
|_ ToDate (string - Optional - Two format alternatives)
| (ISO 8601 yyyy-MM-ddTHH:mm:ss.fff format - TimeZone: GMT)
| (ISO 8601 yyyy-MM-ddTHH:mm:ss.fffzzzzz format - Specific TimeZone, Eg: -03:00)
|_ BookingNumber (string - Optional)
ApiKey
It contains the Agency PCCs setting, allowing us to provide as many configurations under ApiKeys as the customer needs. A customer could request only one ApiKey for all the PCCs, or one ApiKey for traditional (GDS) content and another one for non-traditional content, or several ApiKeys defined by group of PCCs.
Recomended request time settings
| From | To | Request time |
|---|---|---|
| 0:00hs | 8:59hs | Request every 1 hour |
| 9:00hs | 19:59hs | Request every 15 minutes |
| 20:00hs | 23:59hs | Request every 30 minutes |
Recomended request to avoid duplicate <Books>
- From last response
- Get the <Book><NextRequest> information and store it to be used as <FromDate> of the following request.
- Build FromDate for request
- FromDate = Last <NextRequest> stored.
Request by BookingNumber
Returns information of a specific reservation. If it was exchanged, will be returned a <Book> for each transaction. For more information, refers to "Exchange information". FromDate and ToDate are mandatory fro BookingNumber request. Time range: Max of 3 months.
Structure of the response document
Bookings (Bookings)
|
|_ NextRequest (string - ISO 8601 yyyy-MM-ddTHH:mm:ss.fff format - TimeZone: GMT)
| (Only returned when the request does not contain <BookingNumber>)
|
|_ Book (Book[])
|
|_ UpdateDate (string - ISO 8601 yyyy-MM-ddTHH:mm:ss.fff format - TimeZone: GMT)
|_ TicketingDate (string - ISO 8601 yyyy-MM-ddTHH:mm:ss.fff format - TimeZone: GMT)
|_ BookingDate (string - ISO 8601 yyyy-MM-ddTHH:mm:ss.fff format - TimeZone: GMT)
|_ BookingNumber (string - Provider locator code)
|_ ExternalID (string)
|_ BookingID (int - Internal booking ID)
|_ ExchangedFrom (int - Id to link this book with the previous one)
|_ ExchangedTo (int - Id to link this book with the next one)
|_ PCC (string - Ticketing PCC)
|_ PCCBook (string - Booking PCC)
|_ ValidatingCarrier (string - IATA 2-letter code)
|_ AirlineLocator (string)
|_ BookingStatus (string - Values: Issued, Cancelled, Exchanged, Issued-Exch)
|_ PassengerCount (int)
|_ PurchaseCurrency (string - ISO 3-letter code)
|_ PurchaseTotal (decimal)
|_ CommissionPct (decimal)
|_ OverPct (decimal)
|_ OverCalculation (character - D:Direct - I:Indirect)
|_ OverPaxType (string - Pax Type reference - Values: ALL = All the passengers, "ADT|CHD" = Adult and minor passengers)
|_ ContentCost (decimal)
|_ @Currency (string - ISO 3-letter code)
|_ ContentFee (decimal)
|_ @Currency (string - ISO 3-letter code)
|_ TotalFee (decimal)
|_ @Currency (string - ISO 3-letter code)
|_ Extras (decimal)
|_ @Currency (string - ISO 3-letter code)
|
|_ Van (Van)
|_ Used (boolean)
|_ CardType (string - Provider)
|_ CardNumber (string - PCI compliance - Masked number)
|
|_ Product (Product)
|_ Owner (string - Agency product owner)
|_ OwnProduct (boolean)
|_ IdWeb (int - Agency product seller)
|_ WebOwner (string - Agency product seller)
|_ OwnChannel (boolean)
|
|_ Ratio (Ratio)
|_ Currency (string - ISO 3-letter code)
|_ Amount (decimal)
|_ TargetCurrency (string - ISO 3-letter code)
|
|_ Remark (Remark[])
|_ @PaxNumber (int - Pax reference)
|_ @Type (string)
|_ @Text (string)
|
|_ Payment (Payment[])
|_ @Number (int)
|_ @Type (string - Values: FARE, FEE, OFFERS)
|_ @FOPtype (string - Values: CASH, CC)
|_ @Currency (string - ISO 3-letter code)
|_ @Amount (decimal)
|_ @Reference (string - Pax reference - Values: ALL = All the passengers, "1,2" = Passenger 1 and 2)
|
|_ CreditCard (CreditCard)
|_ @Type (string - 2-letter code)
|_ @Number (string - PCI compliance - Masked number)
|_ @AuthCode (int - Returns those manually entered by the agent)
|_ @Installments (int)
|
|_ Ticket (Ticket[])
|_ Raw (string)
|_ @Type (string - Values: ETK, EMD)
|_ @Number (string)
|_ @PaxRef (string - Ticket pax reference)
|_ @Currency (string - ISO 3-letter code - Returned in EMDs of AMS, SBR)
|_ @TotalAmount (decimal - Returned in EMDs of AMS, SBR)
|
|_ Segment (Segment[])
|_ @LegNumber (int)
|_ @SegmentNumber (int)
|_ @Airline (string - IATA 2-letter code)
|_ @Number (int)
|_ @DepartureAirport (string - IATA 3-letter code)
|_ @DepartureDate (string - ISO 8601 yyyy-MM-ddTHH:mm:ss format)
|_ @ArrivalAirport (string - IATA 3-letter code)
|_ @ArrivalDate (string - ISO 8601 yyyy-MM-ddTHH:mm:ss format)
|_ @BookingClass (char - Class of service)
|
|_ Tax (Tax[])
|_ @PaxNumber (int- Pax reference)
|
|_ TaxDetail (TaxDetail[])
|_ @TaxCode (string)
|_ @Currency (string - ISO 3-letter code)
|_ @Amount (decimal)
|_ @LocalCurrency (string - ISO 3-letter code - Currency provided by the supplier)
|_ @LocalAmount (decimal - In currency provided by the supplier)
|
|_ Pax (Pax[])
|_ @PaxNumber (int - Pax reference)
|_ @PaxRef (string - Ticket pax reference)
|_ @First (string)
|_ @Last (string)
|_ @Type (string - Values: ADT, CHD, INF, YTH, C03..C12)
|
|_ Fare (Fare)
|_ @Currency (string - ISO 3-letter code - Currency provided by the supplier - Book)
|_ @Base (string - In currency provided by the supplier - Book)
|_ @Tax (string - Total Tax in currency provided by the supplier - Book)
|_ @PurchaseBase (string - In USD - IssueTicket)
|_ @PurchaseTax (string - Total Tax in USD - IssueTicket)
|
|_ Ratios (Ratios[])
|_ @Date (string - yyyy-MM-dd format)
|
|_ Ratio (Ratio[])
|_ @BaseCurrency (string - ISO 3-letter code)
|_ @TargetCurrency (string - ISO 3-letter code)
|_ @Amount (decimal)
Currency in which the airline conciliates the ticket
The currency and amounts in which the airline conciliates the tickets are <Pax><Fare @Currency @Base @Tax>.
As our system is multi-currency, if a <Book> contains a value expressed in other currency, the <Book> will contains the required <Ratio @Currency @Amount @TargetCurrency>, always based on USD.
<BookingStatus>
- Issued: <Book> contains <Ticket> information.
- Cancelled:
- If <Book> contains <Ticket>, these are VOID and the itinerary should be empty.
- If <Book> does not contain <Ticket>, the itinerary should be empty.
- Exchanged: Exchanged <Book>.
- Issued-Exch: <Book> that contains issued tickets as a result of an exchange.
<UpdateDate>
- Used to apply the request filter (<FromDate> and <ToDate>).
- Determine the response order (DESC).
- Information regarding Booking Status:
- Issued: <UpdateDate> and <TicketingDate> will match because the issue ticket was the latest reservation update.
- Cancelled: <UpdateDate> will contain the Cancel/Void date time.
Wings ClientCode
<Remark Type="RMK-CC" @Text>.
Product information
- Attributes:
- <Product @OwnProduct>: Product owner.
- <Product @OwnChannel>: Product seller.
- Possible combinations:
- <OwnProduct="True"> and <OwnChannel="True">: The agency sells their own product.
- <OwnProduct="True"> and <OwnChannel="False">: The agency distributes their product, but it is sold by another agency.
- <OwnProduct="False"> and <OwnChannel="True">: The agency sells another agency's product.
- Possible actions:
- <OwnProduct="True">: Pay to the airline.
- <OwnProduct="False">: Pay to the <Product @Owner>.
- <OwnChannel="True">: Charge to the passenger/buyer.
- <OwnChannel="False">: Charge to the <Product @WebOwner>.
Passenger information
The <Passenger> can be mapped with the following information through these keys:
- <Passenger @PaxRef>:
- <Ticket @PaxRef>
- <Passenger @PaxNumber>:
- <Tax @PaxNumber>
- <Payment @Reference>:
- If the payment applies to all the passengers → Reference=”ALL”.
- If the payment applies to a set of passengers → Reference=”1,2”.
- <Remark @PaxNumber>
Purchase information
- Booking/total information:
- <PurchaseCurrency>
- <PurchaseTotal>: It does not include <Extras>, <TotalFee>, RMK-CFEE, RMK-AFEE.
- <CommissionPct>: Commission percentage.
- <ContentCost>: Described in Fee section. Contains @Currency.
- <ContentFee>: Described in Fee section. Contains @Currency.
- <TotalFee>: Described in Fee section. Contains @Currency.
- Seller Fee
- Applied to the reservation, if you want to get it by ticket, it should be calculated.
- <Extras>: Sum of EMDs (ancillaries and fees). Contains @Currency.
- <Van @Used @CardType @CardNumber>
- Passenger information at de Booking time
- <Pax><Fare @PurchaseBase @PurchaseTax>: Fare and total tax by passenger expressed in USD.
- Passenger information at de IssueTicket time:
- <Pax><Fare @Currency @Base @Tax>: Fare and total tax by passenger.
- <Tax @PaxNumber><TaxDetail @TaxCode @Currency @Amount>: Tax details by passenger.
- Ratios:
- Ratio at the Purchase time:
- <Book><Ratio @Currency @Amount @TargetCurrency>
- RatioDate based on IssueTicket date:
- <Ratios><Ratio @BaseCurrency @TargetCurrency @Amount>
- Ratio at the Purchase time:
Ticket information
- Edifact carriers: These airlines bring a ticket number by passenger. So, in this case, you will be able to associate a passenger with their ticket number through the following association.
- <Pax @PaxRef> → <Ticket @PaxRef>
- LowCost carriers:
- It is known that these airlines do not return ticket information. So, you could get the previous association without <Ticket @Number> or not receiving ticket information at all <Ticket />.
These are some providers/carriers, as an eg., that have this behavior:
- AMS: SY
- SBR: SY
- JST: JA, WJ, JZ
- FBO: FO
- AZD: AD
- F9 (AMS, SBR) has a specific behavior that returns a 14 digits id, not a 13 digits ticket, and associates it with a unique reservation passenger. So, if you have a reservation with 2 or more passengers:
- Only one passenger will have this association: <Pax @PaxRef> → <Ticket @PaxRef>
- This ticket will not contain a number, will only return this information: <Ticket @Type @PaxRef>
- It is known that these airlines do not return ticket information. So, you could get the previous association without <Ticket @Number> or not receiving ticket information at all <Ticket />.
These are some providers/carriers, as an eg., that have this behavior:
Fee information
All the Fees apply to the reservation. If you want to get it by ticket, it should be calculated.
- Consolidator Cost: Set in Servicing.
- If OwnProduct="True":
- Consolidator Cost = <ContentCost>
- If OwnProduct="False":
- This is not applicable.
- If OwnProduct="True":
- Consolidator Fee: Set in Servicing.
- If OwnProduct="True":
- Own Fee = <ContentFee> - <ContentCost> (if exists)
- If OwnProduct="False":
- Cost Fee = <ContentFee>
- If OwnProduct="True":
- Seller Fee:
- <TotalFee>: Set in Servicing.
- <Remark PaxNumber="1" Type="RMK-CFEE" @Text>: Set in Wings.
- Logic:
- If OwnChannel="True":
- Seller Fee = <TotalFee> + <Remark Type="RMK-CFEE" @Text>
- If OwnChannel="False":
- These are not applicable.
- If OwnChannel="True":
- Retail agency Fee:
- <Remark PaxNumber="1" Type="RMK-AFEE" @Text>: Set in Wings.
Over information
The Over information is introduced for the agency that’s sells the content (latest consolidator of the string). So, this information should be taken into account when OwnChannel="True".
- If OwnChannel="True":
- <OverPct>: Over percentage.
- <OverCalculation>:
- D = Direct = Do the calculation over the fare base.
- I = Indirect
- If there is commission = Discount the commission from fare base and apply the "Over Percentage" to the result.
- If no commission = Do the calculation over the fare base.
- <OverPaxType>: Passenger types that apply to the over rule.
- If the over applies to all the passengers → <OverPaxType>ALL</OverPaxType>.
- If the over applies to adult and minor passengers → <OverPaxType>ADT|CHD</OverPaxType>.
- If the over applies to adult passengers → <OverPaxType>ADT</OverPaxType>.
- <Remark PaxNumber="1" Type="ODISC" @Text>: Consolidator over rule.
- Consolidator over percentage:
- If (OverPct > ODISC) → ODISC
- Else → OverPct
- Seller agency over percentage:
- If (OverPct > ODISC) → OverPct - ODISC
- Else → 0
- If OwnChannel="False":
- The Over information is not own, do not process it.
Commission information
The Commission information is introduced for the agency that’s sells the content (latest consolidator of the string). So, this information should be taken into account when OwnChannel="True".
- If OwnChannel="True":
- <CommissionPct>: Commission percentage.
- <Remark PaxNumber="1" Type="CDISC" @Text>: Consolidator commission rule.
- Consolidator commission percentage:
- If (CommissionPct > CDISC) → CDISC
- Else → CommissionPct
- Seller agency commission percentage:
- If (CommissionPct > CDISC) → CommissionPct - CDISC
- Else → 0
- If OwnChannel="False":
- The Commission information is not own, do not process it.
TaxDetail information
Kiusys does not provoide <TaxDetail> information.
Remark information
Wings has a set of fields (optional or mandatory) that could be requested to the agent before closing the reservation. This information will be provided in <Remark PaxNumber="1" @Type @Text>
- All these remarks will be associated with PaxNumber="1".
- @Type=”RMK-CC“ → Implemented by Wings to inform the Agency's ClientCode.
- @Type=”RMK-SL“ → Requested by / agent.
- @Type=”RMK-ST“ → Cost center.
- @Type=”RMK-NO“ → Order number.
- @Type=”RMK-RF“ → File.
- Also, these remarks will be stored into the GDS reservations:
- Amadeus: RM ST-123456
- Sabre: ..ST-123456
Exchange information
When an exchange is performed, the service will provide a new <Book> with similar structure than the Issued <Book>.
- New <Book>:
- This book will have the date that the echange was performed into the <UpdateDate>.
- <BookingNumber>KXGWTA</BookingNumber>: Reservation code.
- <BookingID>1918804</BookingID>: New book id.
- <ExchangedFrom>1918715</ExchangedFrom>: Id to link this book with the previous one.
- <BookingStatus>Issued-Exch</BookingStatus>
- Original <Book>:
- The <UpdateDate> of this book will not be modified.
- <BookingNumber>KXGWTA-EXCH-1</BookingNumber>: Reservation code plus “-EXCH-” plus the exchange number (1,2,3...).
- <BookingID>1918715</BookingID>: Original book id.
- <ExchangedTo>1918804</ExchangedTo>: Id to link this book with the next one.
- <BookingStatus>Exchanged</BookingStatus>
Providers list
For a detailed reference of supported travel providers and their respective codes, please refer to the following global list:
Change log
| Date | Affects versions | Change detail |
|---|---|---|
| 2024-01-29 | 1.0 | Initial version. |
Back to Reports home.