Overview

An example of end-to-end scenario based on operation flow and user story

Operation flow

searchFlightsJorney → book (Flight) → reprice without PNR → reprice with PNR → demandTickets (ETK)

User story

S7 Agent wants to buy round trip flight from Munich (MUC) to Moscow (DME) for one adult traveler of their corporate client. He chooses S7 direct flight. Agent, client and S7 are already entered into 3D agreement. 

Scenario

The general process for buying a trip such as this is:

  1. Initial search for flight solutions: S7 Agent executes a searchFlightsJorney operation with itinerary criteria, passenger count and Agent/Corporate client codes
  2. Book a reservation: S7 Agent executes a book operation with corporate client/agent details and itinerary info of chosen solution from search result
  3. Request for informative reservation pricing: S7 Agent executes a reprice operation with itinerary info and Agent/Corporate client codes of chosen solution
  4. Request for reservation pricing: S7 Agent executes a reprice operation with itinerary info and Agent/Corporate client codes of chosen solution
  5. Issue tickets for all passenger: S7 Agent executes a demandTickets operation with reservation reference, pricing details and Agent/Corporate client codes

Table of contents:

3D (tripartite) agreement — is a special type of agency agreement between three parties:

  • airline (S7);
  • travel agency;
  • corporate client — the third legal entity, which is a consumer of the airline's services through agency.

How it looks like in real life: A large travel agency (e.g. Aeroclub) carries out agency support for Coca-Cola employees regularly flying on business trips. The existing 3D agreement between S7, Aeroclub and Coca-Cola allow Aeroclub to sell S7 flights to Coca-Cola employees with a discount provided by this agreement.


(lightbulb) This functionality is for adult passengers only

(lightbulb) You can use only one cabin type (Economy or Business) on the whole itinerary (both slices)

(lightbulb) You can't combine different discounts in one itinerary 

(lightbulb) Discounts are available only for S7 flights only 

(lightbulb) Other scenarios are not differ from standard (OW example, group of ADT example)


Step 1: Initial search for flight solutions

S7 Agent executes a searchFlightsJorney operation with itinerary criteria, passenger count and Agent/Corporate client codes to receive solution for trip

  • itinerary criteria - round trip flight from Munich (MUC) to Moscow (DME)
  • passenger types count - 1ADT
  • Agent/Corporate client codes - QUW0774/1032


<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <Header />
    <Body>
        <AirShoppingRQ xmlns="http://www.iata.org/IATA/EDIST" Version="1.0">
            <Document />
            <Party>
                <Sender>
                    <AgentUserSender>
                        <Name>S7-AIDL</Name>
                        <OtherIDs>
                            <OtherID Description="POS_Type">1</OtherID>
                            <OtherID Description="requestorType">U</OtherID>
                        </OtherIDs>
                        <PseudoCity>OVBS728AB</PseudoCity>
                        <AgentUserID>S7AgentAPI</AgentUserID>
                        <UserRole>AS</UserRole>
                    </AgentUserSender>
                </Sender>
            </Party>
            <Parameters>
                <CurrCodes>
                    <CurrCode>RUB</CurrCode>
                </CurrCodes>
            </Parameters>
            <Travelers>
                <Traveler>
                    <AnonymousTraveler>
                        <PTC Quantity="1">ADT</PTC>
                    </AnonymousTraveler>
                </Traveler>
            </Travelers>
            <CoreQuery>
                <OriginDestinations>
                    <OriginDestination>
                        <Departure>
                            <AirportCode>MUC</AirportCode>
                            <Date>2019-11-19</Date>
                        </Departure>
                        <Arrival>
                            <AirportCode>DME</AirportCode>
                        </Arrival>
                    </OriginDestination>
                    <OriginDestination>
                        <Departure>
                            <AirportCode>DME</AirportCode>
                            <Date>2019-12-30</Date>
                        </Departure>
                        <Arrival>
                            <AirportCode>MUC</AirportCode>
                        </Arrival>
                    </OriginDestination>
                </OriginDestinations>
            </CoreQuery>
            <Qualifiers>
                <Qualifier>
                    <SpecialFareQualifiers>
                        <AirlineID>S7</AirlineID>
                        <CompanyIndex>QUW2145</CompanyIndex>
                        <Account>1032</Account>
                    </SpecialFareQualifiers>
                </Qualifier>
            </Qualifiers>
        </AirShoppingRQ>
    </Body>
</Envelope>



Received solutions include information for whole itinerary. Pricing also divided by fare family and mostly includes 4 sub solutions (Basic Economy, Flex Economy, Basic Business, Flex Business) for each itinerary solution. Prices include discounts. The discount amount and the discount percentage are also indicated.

Step 2: Book a reservation

S7 Agent executes a book operation with corporate client/agent details and itinerary info of chosen solution from search results:

<DetailedFlightItem> block consists of journey information, where each slice is described by the <OriginDestination> element, and each segment in slice by the <Flight> element.

Each <OriginDestination> takes from appropriate AirShoppingRS

(lightbulb) Segments (Flight) must be devided into slices (OriginDestination):

  • one OriginDestination for One Way trip;
  • two for Round Trip and more for MultiCity;
  • for Transfer Trip all segments included in one slice have to be pass in one OriginDestination;
  • for Transfer Trip segments with stopover between have to be divided into two OriginDestination.


/Envelope /Body /AirShoppingRS /DataLists /FlightSegmentList

and <ClassOfService> (RBD) from

/Envelope /Body /AirShoppingRS /OffersGroup /AirlineOffers /AirlineOffer /PricedOffer /OfferPrice /RequestedDate /Associations /ApplicableFlight /FlightSegmentReference /ClassOfService/Code

Agent/Corporate client codes are the same.

Step 3: Request for informative pricing

S7 Agent executes a informative reprice operation with itinerary info and Agent/Corporate client codes of chosen solution.

All information must be taken from AirShoppingRS:

  • itinerary details (airport codes and dates for origin and departure, airline code and flight number);

    (lightbulb) <FlightItem> block must fill in like in OrderCreateRQ


  • passenger types (PTC);
  • fare details (RBD and fare code);
  • Agent/Corporate client codes are the same.

Step 4: Request for reservation pricing

S7 Agent executes a reprice operation with itinerary info and Agent/Corporate client codes of chosen solution.

All information must be taken from AirShoppingRS:

  • itinerary details (airport codes and dates for origin and departure, airline code and flight number);

    (lightbulb) <FlightItem> block must fill in like in OrderCreateRQ


  • passenger types (PTC);
  • fare details (RBD and fare code);
  • Agent/Corporate client codes are the same.

Step 5: Issue tickets for all passenger

S7 Agent executes a demandTickets operation with reservation reference, pricing details and Agent/Corporate client codes.

  • Add information about PNR from OrderViewRS

    Envelope/Body/OrderViewRS/Response/Order/BookingReferences/BookingReference/ID


  • Fill in the form of payment as in example <*QUW0774>, where QUW0774 - client code (lightbulb)

    <Payments>
        <Payment>
            <Type>
                <Code>MS</Code>
            </Type>
            <Other>
                <Remarks>
                    <Remark>*QUW0774</Remark>
                </Remarks>
            </Other>
        </Payment>
    </Payments>