Versions Compared

Key

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


Excerpt


#

Question

Answer

1

How to access the product environment?

If you are newbie, just follow the steps, which provides

a

the simplest way to quickly get an access to API

Or you already adopted your systems to our test environment? 

Notify our

Notify our technical support

by JIRA

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

Which endpoints should be used?

Explore the ways

of 

of submitting requests:

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

4

How does the standard ticketing scenario looks?

Simple operation flow:

searchFlights

searchFlightsJourney (AirShoppingRQ) → book (OrderCreateRQ) → reprice (ItinReshopRQ) → demandTickets (AirDocIssueRQ)

Discover more scenarios from simplest flows to best practices

5

Is it possible to use social categories of passengers: pensioners, youth, sailors, students, etc.?

No, only 3 types of passengers are available:

  • adult (ADT)
  • child (CHD)
  • infant (INF)
6

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:

  • MS — payment type code (invoice)
  • IN*A*AGENT_NAME — agent details
Note
iconfalse

Processing of payments isn't on our side

8

What types of passengers are available in the API?

No, only 3 types of passengers are available:

  • 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

7

What types of payment can be used?

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

9
7

Is the Multi-City method implemented in API?

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

10
8

Is the refund method implemented in API?

No, the refunds are not implemented

11
9

Can I get an S7 route map?

There is no such request in API

12
10

Are all S7 fares branded?

Yes

.13

, 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

14

Can I add DOCO DOCA information?

No, only DOCS, FOID and FQTV SSRs are available

15

for input and output

12

Does the service support queues?

In the API all requests

All requests to API are synchronous, queues are not used

.When we the requests is executed in SoapUI, we get an response:

16
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.

35
  • 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

17
14

When I

reach on the link: 

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

35

52?wsdl

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

You didn't use a right SSL certificate to download API's WSDL.

 Check that

 Check you used certificate for the test environment (not for production)

.

:

a

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

18
15

I always recieve

We get

an error:

 

"032 - SI"

"Can not perform operation without valid RequestorID" 

Probably, you used incorrect

Incorrect

Agent credentials in Party tag

. Contact to S7 API support with

used Agent

used credentials

in Party tag

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

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>

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).

...