Параметры запроса#
Детальное описание всех параметров для запроса /avia/pnr_create.
Обязательные параметры#
| Параметр | Тип | Описание |
|---|---|---|
searchId | string | Идентификатор из /avia/search |
offerItemId | string | Идентификатор выбранного предложения |
passengers | array | Данные пассажиров |
Структура passengers#
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id | string | Да | Идентификатор пассажира в запросе |
lastName | string | Да | Фамилия латиницей |
firstName | string | Да | Имя латиницей |
middleName | string | Нет | Отчество |
gender | string | Нет | Пол (male, female) |
type | string | Нет | Тип пассажира (adt, chd, inf) |
title | string | Нет | Обращение (MR, MRS, MS) |
documents | Document[] | Да | Документы пассажира |
contacts | array | Нет | Контакты пассажира |
frequentFlyers | array | Нет | Программы лояльности |
Структура documents#
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
type | DocumentType | Да | Тип документа (internationalPassport, nationalPassport, birthCertificate, identityCard, notSet) |
number | string | Да | Номер документа |
lastName | string | Да | Фамилия в документе (латиницей) |
firstName | string | Да | Имя в документе (латиницей) |
middleName | string | Нет | Отчество в документе |
series | string | Нет | Серия документа (если применимо) |
birthDate | date | Нет | Дата рождения (формат: YYYY-MM-DD) |
issueDate | date | Нет | Дата выдачи (формат: YYYY-MM-DD) |
expireDate | date | Нет | Срок действия (формат: YYYY-MM-DD) |
country | string | Да | Страна выдачи (ISO 3166-1 alpha-2) |
Структура contacts#
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
type | ContactType | Нет | Тип контакта |
value | string | Да | Значение |
ContactType — возможные значения:
notSet— не указанaddress— почтовый адресagencyPhone— телефон агентстваemail— адрес электронной почтыmobilePhone— мобильный телефонhomePhone— домашний телефонworkPhone— рабочий телефон
Структура frequentFlyers#
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
programCode | string | Да | Код авиакомпании или программы лояльности |
accountNumber | string | Да | Номер карты часто летающего пассажира |
Опциональные параметры#
| Параметр | Тип | Описание |
|---|---|---|
remarks | Remark[] | Примечания к бронированию |
specialServices | SpecialService[] | Специальные услуги (SSR) |
otherServices | OtherService[] | Прочие сервисы (OSI) |
Структура Remark#
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
paxRefId | string | Нет | Ссылка на пассажира (если ремарка привязана к конкретному пассажиру) |
value | string | Да | Текст примечания |
type | RemarkType | Нет | Тип примечания |
RemarkType — возможные значения:
accountInformation— бухгалтерская информацияconfidential— конфиденциальное примечаниеgeneral— общее примечаниеinvoice— примечание к счётуonline— примечание онлайн-бронированияqualityControl— контроль качестваvendor— примечание поставщика
Структура SpecialService#
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
paxRefId | string | Нет | Ссылка на пассажира |
segRefId | string[] | Нет | Ссылки на сегменты |
code | string | Да | Код SSR (например, VGML, WCHR) |
type | SpecialServiceType | Нет | Тип специальной услуги |
carrier | string | Да | Код авиакомпании |
value | string | Да | Текстовое значение услуги |
SpecialServiceType — возможные значения:
notSet— не указанadditionalService— дополнительная услугаdocument— документ (SSR DOCS)foid— форма идентификации (FOID)frequentFlyer— программа лояльностиmeal— питаниеother— прочееseat— выбор места
Структура OtherService#
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
paxRefId | string | Нет | Ссылка на пассажира |
segRefId | string[] | Нет | Ссылки на сегменты |
carrier | string | Да | Код авиакомпании |
value | string | Да | Текст OSI-элемента |
Как использовать параметры#
Минимальное бронирование#
Для создания бронирования достаточно указать основные данные пассажира:
1{
2 "searchId": "550e8400-e29b-41d4-a716-446655440000",
3 "offerItemId": "item-1",
4 "passengers": [
5 {
6 "id": "PAX1",
7 "lastName": "IVANOV",
8 "firstName": "IVAN",
9 "type": "adt"
10 }
11 ]
12}Добавление документов#
Для международных рейсов обычно требуются документы:
1{
2 "passengers": [
3 {
4 "id": "PAX1",
5 "lastName": "IVANOV",
6 "firstName": "IVAN",
7 "type": "adt",
8 "documents": [
9 {
10 "type": "internationalPassport",
11 "number": "1234567890",
12 "lastName": "IVANOV",
13 "firstName": "IVAN",
14 "birthDate": "1980-05-15",
15 "issueDate": "2015-06-20",
16 "expireDate": "2030-12-31",
17 "country": "RU"
18 }
19 ]
20 }
21 ]
22}Добавление контактов#
Укажите email и телефон для получения уведомлений:
1{
2 "passengers": [
3 {
4 "id": "PAX1",
5 "lastName": "IVANOV",
6 "firstName": "IVAN",
7 "contacts": [
8 {
9 "type": "email",
10 "value": "ivan@example.com"
11 },
12 {
13 "type": "mobilePhone",
14 "value": "+79991234567"
15 }
16 ]
17 }
18 ]
19}Добавление примечаний#
Используйте remarks для передачи информации в бронирование:
1{
2 "remarks": [
3 {
4 "type": "general",
5 "value": "Просьба предоставить место у окна"
6 }
7 ]
8}Запрос специальных услуг (SSR)#
Используйте specialServices для питания, багажа и других услуг:
1{
2 "specialServices": [
3 {
4 "code": "VGML",
5 "type": "meal",
6 "carrier": "SU",
7 "value": "VGML",
8 "paxRefId": "PAX1",
9 "segRefId": ["SEG1"]
10 }
11 ]
12}Бронирование для нескольких пассажиров#
1{
2 "passengers": [
3 {
4 "id": "PAX1",
5 "lastName": "IVANOV",
6 "firstName": "IVAN",
7 "type": "adt"
8 },
9 {
10 "id": "PAX2",
11 "lastName": "IVANOVA",
12 "firstName": "MARIA",
13 "type": "adt"
14 },
15 {
16 "id": "PAX3",
17 "lastName": "IVANOV",
18 "firstName": "PETR",
19 "type": "chd"
20 }
21 ]
22}Примеры запросов#
Минимальный запрос#
1curl -X POST https://test.travel-api.ru/avia/pnr_create \
2 -H "Authorization: Bearer YOUR_TOKEN" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "searchId": "550e8400-e29b-41d4-a716-446655440000",
6 "offerItemId": "item-1",
7 "passengers": [
8 {
9 "id": "PAX1",
10 "lastName": "IVANOV",
11 "firstName": "IVAN",
12 "type": "adt"
13 }
14 ]
15 }' 1var request = new PnrCreateRequest
2{
3 SearchId = "550e8400-e29b-41d4-a716-446655440000",
4 OfferItemId = "item-1",
5 Passengers = new[]
6 {
7 new Passenger
8 {
9 Id = "PAX1",
10 LastName = "IVANOV",
11 FirstName = "IVAN",
12 Type = PassengerType.ADT
13 }
14 }
15};
16
17var response = await httpClient.PostAsJsonAsync(
18 "https://test.travel-api.ru/avia/pnr_create",
19 request
20);
21
22var result = await response.Content.ReadFromJsonAsync<PnrCreateResponse>();Запрос с полными данными#
Развернуть пример
1{
2 "searchId": "AAF6301E87DD7C73E7A8A636FDC77ED5",
3 "offerItemId": "DAB32144B940FCC65CC85E9BCE682346",
4 "passengers": [
5 {
6 "id": "P1",
7 "gender": "female",
8 "lastName": "IVANOV",
9 "firstName": "SVETLANA",
10 "type": "adt",
11 "title": "MS",
12 "documents": [
13 {
14 "type": "internationalPassport",
15 "number": "411649833",
16 "lastName": "IVANOV",
17 "firstName": "SVETLANA",
18 "birthDate": "1981-07-12",
19 "issueDate": "2008-08-16",
20 "expireDate": "2026-10-22",
21 "country": "RU"
22 }
23 ],
24 "contacts": [
25 {
26 "type": "email",
27 "value": "svetlana@example.com"
28 },
29 {
30 "type": "mobilePhone",
31 "value": "+79623387344"
32 }
33 ]
34 }
35 ]
36}