Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


...

Excerpt



Question

Answer

1

How to access the product environment?

...

What types of passengers are used in the API?

3 types of passengers are used:

      • adult (ADT) —  passengers from 12 years and older
      • child (CHD) — passengers from 2 to 12 years
      • infant (INF) —  passengers under 2 years
Note
iconfalse

(lightbulb) If the passenger is 2 years old, he is a CHD

(lightbulb) If the passenger is 12 years old, he is an ADT

...

What types of payment can be used?

Only one payment method is used - invoice

Code Block
languagexml
themeConfluence
titlePayment type view in ticketing RQ
collapsetrue
<Type>
   <Code>MS</Code>
</Type>
<Other>
   <Remarks>
      <Remark>IN*A*AGENT_NAME</Remark>
   </Remarks>
</Other>

where:

If you are newbie, just follow the steps, which provides the simplest way to quickly get an access to API

Or you already adopted your systems to our test environment? Notify our technical support by Kaiten for final testing under the supervision of our technologists and proceed to signing of the contract of EDS

2

How to access the test environment?

Follow steps to quickly get an access to API

3

MS — payment type code (invoice)

IN*A*AGENT_NAME — agent details

Note
iconfalse

(lightbulb) Processing of payments isn't on our side.

...

How can I get information about flights commissions and manage agency fees?

...

You need to contact the sales department.

...

Which endpoints should be used?

Explore the ways of submitting requests:

Excerpt Include
Submitting requests | S7 Agent API
Submitting requests | S7 Agent API
nopaneltrue

4

...

Is the Multi-City method implemented in API?

...

Yes.

(lightbulb)You can read about it here ((tongue) Oops!  It will be a link to the documentation here as soon as possible!)

...

How does the standard ticketing

...

scenario looks?

...

Simple operation flow: searchFlightsJourney (AirShoppingRQ) → book (OrderCreateRQ) → reprice (ItinReshopRQ)

...

→ demandTickets (AirDocIssueRQ)

(lightbulb)You can read about it here Scenarios

Discover more scenarios from simplest flows to best practices

5

...

Is it possible to use social categories of passengers

...

: pensioners, youth, sailors, students, etc.?

What types of passengers are available in the API?

No

...

, only 3 types of passengers are

...

available:

...

Can I get a terminal text vuew of the current PNR data? Or just build a template from an XML response?

...

No, currently only XML display is available.

...

Can I add DOCO DOCA information?

...

No,  currently only DOCS, FOID and FQTV SSRs are available.

...

How to access the test environment?

...

  • adult (ADT) —  passengers 12 years old and older

  • child (CHD) — passengers between 2 (inclusive) and 12 years old (exclusive)

    • 2-year-old passenger is a child

    • 12-year-old passenger is an adult

  • infant in a lap (INF) —  passengers under 2 years

6

How can I get information about flights commissions and manage agency fees?

For any financial questions you have to contact S7's sales department or your account manager via at vm@s7.ru

7

Is the Multi-City method implemented in API?

Yes, check searchFlights operation overview to find out. Samples will be available soon!

8

Is the refund method implemented in API?

No, the refunds are not implemented

9

...

Can I get an S7 route map?

There is no such request in API

...

...

10

Are all S7 fares branded?

Yes

...

Is the refund method implemented in API?

...

, all fares are split into 3 fare families, from the cheapest to the most equipped fare:

  • Economy Basic

  • Economy Standard

  • Economy Plus

  • Business Standard

  • Business Plus

11

Can I get a terminal text view of the current PNR data? Or just build a template from an XML response?

No, only XML display is available for input and output

12

...

Does the service support queues?

...

All requests to API are synchronous, queues are not used

...

...

13

I recieve

"Unknown operation" in response, while requests executed in SoapUI

Check

...

using of correct HTTP header of your requests:

  • X-API-Version — e.g. 0.52 or other

  • SOAPAction — e.g. "http://api.s7.ru/Reprice" or other

  • Content-Type: text/xml

Also you can find out how to handle with unsuccessful result and common access errors

14

When I try the link https://qa-gaia.s7.ru/agent-api/wsdl/0.

...

52?wsdl

I get an error: "400 Bad Request. No required SSL certificate was sent."

You

...

We get an error: 

"032 - SI"

...

Search operation questions

...

What does the PenaltyList block mean (AirShoppingRS)?

...

Fare penalties informarion block.

(lightbulb)Penalties types:

NO-SHOW (NS) — a situation, when the passenger fails to show for the flight before the check-in closing and notify the carrier of cancelling the carriage.

PRIOR DEPARTURE (PDE) —  penalties if the passenger want before departure to change the conditions of transportation on the previously purchased air ticket.

AFTER DEPARTURE (ADE)  — penalties if the passenger want after departure to change the conditions of transportation on the previously purchased air ticket.

(lightbulb)You can see the full fare rules application by FareRulesRQ

...

  1. Low Fare search — search for offers with a minimal price. Solutions include information for a whole requested journey (no matter OW or RT).
  2. Branded fares search — solutions include information only for requested slice of journey (only inbound or outbound itinerary). Pricing also divided by fare family and mostly includes 4 or 2 sub solutions (Basic Economy, Flex Economy, Basic Business, Flex Business) for each itinerary solution.

...

You can add all types of passengers and specify there quantity (from 0 to 9)

Code Block
languagexml
themeConfluence
titleManage by quantity
collapsetrue
 <ns3:Travelers>
   <ns3:Traveler>
      <ns3:AnonymousTraveler>
         <ns3:PTC Quantity="1">ADT</ns3:PTC>
      </ns3:AnonymousTraveler>
   </ns3:Traveler>
      <ns3:Traveler>
      <ns3:AnonymousTraveler>
         <ns3:PTC Quantity="0">CHD</ns3:PTC>
      </ns3:AnonymousTraveler>
   </ns3:Traveler>
      <ns3:Traveler>
      <ns3:AnonymousTraveler>
         <ns3:PTC Quantity="0">INF</ns3:PTC>
      </ns3:AnonymousTraveler>
   </ns3:Traveler>
 </ns3:Travelers>

You can specify only the required types

Code Block
languagexml
themeConfluence
titleManage by PTC
collapsetrue
 <ns3:Travelers>
   <ns3:Traveler>
      <ns3:AnonymousTraveler>
         <ns3:PTC Quantity="1">ADT</ns3:PTC>
      </ns3:AnonymousTraveler>
   </ns3:Traveler>
 </ns3:Travelers>

...

Yes.

(lightbulb)You can read about it here  ((tongue) Oops!  It will be a link to the documentation here as soon as possible!)

...

Yes.

(lightbulb)You can read about it here Scenarios

...

Yes. It's necessary to specify the following search parameter:

Envelope /Body /AirShoppingRQ /Preferences /Preference /FlightPreferences /Characteristic /DirectPreferences="Preferred"

Code Block
languagexml
themeConfluence
titleDirect flight parameter
collapsetrue
Preferences>
   <Preference>
      <FlightPreferences>
         <Characteristic>       
		    <DirectPreferences>Preferred</DirectPreferences>
         </Characteristic>
      </FlightPreferences>
   </Preference>
</Preferences>

...

You can see this parameter in the ItinReshopRS.

(lightbulb)You can see an example here OW + 2xADT 2xCHD 2xINF + Transfer + SPA | v0.35 | reprice operation

...

Yes, but you can see information about trasits only in AirShoppingRS. In other RQ/RS trasits information isn't displayed.

(lightbulb)You can see an example here OW + 1xADT + Transit + S7 | v0.35 | searchFlight operation

...

Book operation questions

...

What types of documents are used?

PP tyep only, but in the ID field you can enter information about any document:

Code Block
languagexml
themeConfluence
titlePassport
collapsetrue
<ns3:PassengerDocument>
    <ns3:Type>PP</ns3:Type>
    <ns3:ID>131231231222</ns3:ID>
    <ns3:BirthCountry>RU</ns3:BirthCountry>
    <ns3:DateOfIssue>2008-06-06</ns3:DateOfIssue>
    <ns3:DateOfExpiration>2028-06-06</ns3:DateOfExpiration>
    <ns3:CountryOfResidence>RU</ns3:CountryOfResidence>
</ns3:PassengerDocument>
Code Block
languagexml
titlebirth certificate
collapsetrue
<ns3:PassengerDocument>
    <ns3:Type>PP</ns3:Type>
    <ns3:ID>rbrtrtvgb123456</ns3:ID>
    <ns3:BirthCountry>RU</ns3:BirthCountry>
    <ns3:DateOfIssue>2008-06-06</ns3:DateOfIssue>
    <ns3:DateOfExpiration>2028-06-06</ns3:DateOfExpiration>
    <ns3:CountryOfResidence>RU</ns3:CountryOfResidence>
</ns3:PassengerDocument>

...

Yes, but you need to consider the following logic:

e-mails — for each e-mail created a separate Contact element

Code Block
languagexml
themeConfluence
titlee-mails
collapsetrue
<ns3:Contacts>
    <ns3:Contact>
        <ns3:EmailContact>
            <ns3:Address>l.conelly@mail.ru</ns3:Address>
        </ns3:EmailContact>
    </ns3:Contact>
    <ns3:Contact>
        <ns3:EmailContact>
            <ns3:Address>l.ercrvev@mail.ru</ns3:Address>
        </ns3:EmailContact>
    </ns3:Contact>
</ns3:Contacts>

phoneContact — you can specify several phone numbers in one PhoneContact block

Code Block
languagexml
themeConfluence
titlephoneContact
collapsetrue
<ns3:Contacts>
    <ns3:Contact>
        <ns3:PhoneContact>
            <ns3:Number CountryCode="+375" AreaCode="29">3277438</ns3:Number>
            <ns3:Number CountryCode="+375" AreaCode="29">44444444</ns3:Number>
            <ns3:Number CountryCode="+375" AreaCode="29">66666666</ns3:Number>
            <ns3:Number CountryCode="+375" AreaCode="29">77777777</ns3:Number>
        </ns3:PhoneContact>
    </ns3:Contact>
</ns3:Contacts>

both types

Code Block
languagexml
themeConfluence
titleboth types
collapsetrue
<ns3:Contacts>
    <ns3:Contact>
        <ns3:PhoneContact>
            <ns3:Number CountryCode="+375" AreaCode="29">3277438</ns3:Number>
            <ns3:Number CountryCode="+375" AreaCode="29">44444444</ns3:Number>
            <ns3:Number CountryCode="+375" AreaCode="29">66666666</ns3:Number>
            <ns3:Number CountryCode="+375" AreaCode="29">77777777</ns3:Number>
        </ns3:PhoneContact>
        <ns3:EmailContact>
            <ns3:Address>l.conelly@mail.ru</ns3:Address>
        </ns3:EmailContact>
    </ns3:Contact>
    <ns3:Contact>
        <ns3:EmailContact>
            <ns3:Address>l.ercrvev@mail.ru</ns3:Address>
        </ns3:EmailContact>
    </ns3:Contact>
</ns3:Contacts>

...

You can't use the following characters:

; : * ' " ^ { } [ ] < > & # ! ` = %

...

Required passenger data:

  • Surname
  • Given
  • Age
  • Contacts
  • PassengerDocument

...

In OrderCreateRQ you need to fill the PassengerDocument block.

In GDS both SSRs are created.

...

The next filling of the PassengerDocument block is required:

ADT, CHD, INF

Code Block
languagexml
themeConfluence
titlePassport
collapsetrue
<ns3:PassengerDocument>
    <ns3:Type>PP</ns3:Type>
    <ns3:ID>131231231222</ns3:ID>
    <ns3:BirthCountry>RU</ns3:BirthCountry>
    <ns3:DateOfIssue>2008-06-06</ns3:DateOfIssue>
    <ns3:DateOfExpiration>2028-06-06</ns3:DateOfExpiration>
    <ns3:CountryOfResidence>RU</ns3:CountryOfResidence>
</ns3:PassengerDocument>

CHD, INF

Code Block
languagexml
titlebirth certificate
collapsetrue
<ns3:PassengerDocument>
    <ns3:Type>PP</ns3:Type>
    <ns3:ID>rbrtrtvgb123456</ns3:ID>
    <ns3:BirthCountry>RU</ns3:BirthCountry>
    <ns3:DateOfIssue>2008-06-06</ns3:DateOfIssue>
    <ns3:DateOfExpiration>2028-06-06</ns3:DateOfExpiration>
    <ns3:CountryOfResidence>RU</ns3:CountryOfResidence>
</ns3:PassengerDocument>

...

BirthCountry — сountry of issue

CountryOfResidence — citizenship

...

DOCS

FOID

CHLD

INFT

FQTV

TKNE

XBAG

EXST

...

ChangeBook operation questions

...

Yes.

(lightbulb)You can read about it here ((tongue) Oops!  It will be a link to the documentation here as soon as possible!)

...

Yes.

(lightbulb)You can read about seats here ((tongue) Oops!  It will be a link to the documentation here as soon as possible!)

(lightbulb)You can read about bags here ((tongue) Oops!  It will be a link to the documentation here as soon as possible!)

...

Yes.

(lightbulb)You can read about it here ((tongue) Oops!  It will be a link to the documentation here as soon as possible!)

...

When the OrderChangeRQ is executed, we get an error:

<ns3:Error Type="LOC" Tag="Property change_book_request can not be empty" RecordID="CHNG_BOOK_RQ_IS_EMPTY"/>.

...

DemandTickets operation questions

...

ETK - Electronic Ticket. Document confirming the payment of the itinerary.

EMD - Electronic Miscellaneous Document. Document confirming the payment of services

Note
iconfalse

(lightbulb) In the requests you need to use the following codes:

ETK Type code - 702

EMD Type code - Y

...

Issue of terminal type of ETK/EMD is not implemented. You can read the issued ETK/EMD using the operation AirDocDisplayRQ.

(lightbulb)You can read about it here ((tongue) Oops!  It will be a link to the documentation here as soon as possible!)

Note
iconfalse

(lightbulb) In the requests you need to use the following codes:

ETK Type code - 702

EMD Type code - Y

...

Yes, this is a mandatory parameter. Corresponds to RMK type in Gabriel - text field.

(lightbulb) It's forbidden to use the following symbols:  ; : * ' " ^ { } [ ] < > & # ! ` = % 

Code Block
languagexml
themeConfluence
titlePayment block example
collapsetrue
                        <Payment>
                            <Type>
                                <Code>MS</Code>
                            </Type>
                            <Other>
                                <Remarks>
                                    <Remark>IN*QUW1725</Remark>
                                </Remarks>
                            </Other>
                        </Payment>

didn't use a right SSL certificate to download API's WSDL. Check you used certificate for the test environment (not for production):

Also you can find out how to handle with unsuccessful result and common access errors

15

I always recieve an error: "Can not perform operation without valid RequestorID" 

Probably, you used incorrect Agent credentials in Party tag. Contact to S7 API support with used credentials

Also you can find out how to handle with unsuccessful result and common access errors

VoidTicket operation questions

...

  • You can void the ticket until 23:59 of the current day (day of ticket issue).

(lightbulb) Time in 0 time zone (0UTC).

  • Voided the ticket can only use the same validator, under which the ticket was issued. Make sure you use the same validator.
  • In the requests you need to use the following codes:

ETK Type code - 702

EMD Type code - Y

...

You can void the ticket until 23:59 of the current day (day of ticket issue).

(lightbulb) Time in 0 time zone (0UTC).

...