API системы Библио-Глобус zayavkaapi работает по модели RESTful web services. Методы сервиса zayavkaapi принимают HTTP POST запросы, в теле которых должен быть указан XML. В ответ вызывающая сторона получает XML. Если при выполнении метода сервиса возникли ошибки, то метод возвращает коды ошибок в XML.
При формировании запроса необходимо формировать XML в том регистре, в котором дано опсание запросов. Другими слоами, XML протокол API zayavkaapi чувствителен к регистру.
XML запроса должен быть в кодировке UTF-8. XML ответа отдается в кодировке UTF-8.
Доступ к API могут получить только агентства, имеющие логин и пароль для
доступа к системе туристического оператора Библио-Глобус. Если у вас
нет логина и пароля для доступа к системе туристического оператора Библио-Глобус, вам необходимо связаться с нашими сотрудниками, отвечающими за
работу с агентствами по телефону:
8 (495) 504-25-00
Любимов Александр — доб. 1448
Авторизация при работе с сервисами описана здесь.
Создание заявки происходит в три этапа. Первый этап - это получение прайса в формате XML и всех необходимых значений параметров из прайса. Эти параметры необходимо использовать при создании заявки. Прочитать про выгрузку данных в формате XML можно тут.
Второй этап - это запрос на получение цены на тур, с указанными параметрами. После запроса на цену заявка не создается в системе Библио-Глобус. В ответ на такой запрос система вернет стоимость тура. Если клиента устраивает стоимость тура, то необходимо сделать второй запрос.
Третий этап - запрос перевода заявки в статус "Тур подобран. Просим забронировать".
Оба запроса (из второго и третьего этапов) делаются с одним и тем же телом запроса за исключением второго запроса: здесь добавляется еще один элемент (см. ниже).
Оба запроса (из второго и третьего этапов) необходимо посылать на следующий адрес:
https://www.bgoperator.ru/zayavkaapi?prx=<значение prx из XML прайса>&action=createtour
Важно: протокол https, хост www.bgoperator.ru должны быть указаны. Параметры prx и action должны быть указаны именно в таком порядке. Значение параметра prx необходимо брать из XML прайс листа (подбронее тут). Без выполнения этих требований запрос к API не будет обработан.
Важно: в одном HTTP POST запросе к API могут быть вместе указаны запросы обоих типов. Другими словами одним запросом можно запросить цену для одного тура, а для другого изменение статуса на "Тур подобран. Просим забронировать".
Формат запроса:
В данным запросе указан тур в Индинезию с основным проживанием на острове Бали и двуми проживаниями (before и after) в Бангкоке.
<tours>
<tour clientTourId="1">
<countryId>100410504525</countryId>
<templateId>121178311485</templateId>
<customerFirstName>IVAN</customerFirstName>
<customerLastName>IVANOV</customerLastName>
<customerMiddleName>IVANOVICH</customerMiddleName>
<customerAddress>Moscow, Pokrovka, 35</customerAddress>
<customerPhone>89997777777</customerPhone>
<customerEmail>mail@mail.ru</customerEmail>
<customerCitizen>100410000050</customerCitizen>
<customerPassportSeries>4444</customerPassportSeries>
<customerPassportNumber>666666</customerPassportNumber>
<groups>
<group>
<startDate>01.03.2014</startDate>
<ins>0-100000-USD-0</ins>
<roommeal duration="7">104623691678</roommeal>
<roommealb duration="1">104625776787</roommealb>
<roommeala duration="1">104625776787</roommeala>
<sr>43UpM9e04HAuj04HAu+04HAvK04HAvf08YLk208YLkN08YLki08YLk*0CpWZQ0CpWZl0CpWa10CpWaM0H1hOo0H1hP40H1hPP0H1hPk</sr>
<otv>102510005340</otv>
<persons>
<person>
<birthday>11.06.1982</birthday>
<firstName>IVAN</firstName>
<lastName>IVANOV</lastName>
<citizenship>100410000050</citizenship>
<passportSeries>62</passportSeries>
<passportNumber>12345678</passportNumber>
<passportTill>11.11.2016</passportTill>
<email>mail@mail.ru</email>
<phone>89993334444</phone>
<gender>m</gender>
</person>
…
</persons>
</group>
…
</groups>
</tour>
…
</tours>
countryId — страна туризма. Идентификатор страны в системе
Библио-Глобус.
templateId — значений тега <id_price> из XML
прайса. В запрос к API этот параметр должен быть передан без изменений,
так, как указан в XML прайсе.
comissionId — значений тега <ic> из XML
прайса. В запрос к API этот параметр должен быть передан без изменений,
так, как указан в XML прайсе.
Важно: для одной
заявки может быть указан только один из двух тегов: либо <templateId>,
либо <comissionId>. Это определяется наличием в XML
прайсе тега <ic>. Если он указан, то в запросе к API
необходимо указывать тег <comissionId>. В противном случае
необходимо указывать тег <templateId>.
В тегах customer.. передается информация о заказчике тура для системы ГАИС ЭП (Электронная путевка)
customerFirstName — Имя
customerLastName — Фамилия
customerMiddleName — Отчество, необязательное поле
customerAddress — Адрес регистрации
customerPhone — Телефон, необязательное поле
customerEmail — email, необязательное поле
customerCitizen — Идентификатор страны гражданства в системе Библио-Глобус
customerPassportSeries — Серия паспорта
customerPassportNumber — Номер паспорта
groups / group / startDate — дата начала основого проживания в
формате DD.MM.YYYY. Соответствует тегу <dt> из XML
прайса. В запрос к API этот параметр должен быть передан без
изменений, так, как указан в XML прайсе.
groups / group / ins — страховка. Необязательный параметр. Список
доступных страховок можно посмотреть в прайсе с параметром &xml=21. В
секции insurance выведется список страховок. В данный тег
необходимо передавать значение из тега value.
Важно: если не
указывать страховку, то в создаваемую заявку будет добавлена страховка
по-умолчанию.
groups / group / roommeal — основное проживание. Идентификатор
названия номера-типа питания в системе Библио-Глобус. Соответствует
тегу <id_ns> из XML прайса. В атрибуте duration
этого тега указывается длительность проживания (ночей). Соответствует
тегу <o_duration> из XML прайса.
groups / group / roommealb — первое дополнительное проживание до
основного. Суффикс b значит before.
Идентификатор названия номера-типа питания в системе Библио-Глобус.
Соответствует тегу <id_ns_b> из XML прайса. В
атрибуте duration этого тега указывается длительность
проживания (ночей). Соответствует тегу <b_duration>
из XML прайса.
groups / group / roommealab — второе дополнительное проживание до
основного. Суффикс ab значит after
before. Идентификатор названия номера-типа питания в системе
Библио-Глобус. Соответствует тегу <id_ns_ab> из
XML прайса. В атрибуте duration этого тега
указывается длительность проживания (ночей). Соответствует тегу <ab_duration>
из XML прайса.
groups / group / roommealba — второе дополнительное проживание
после основного. Суффикс ba
значит before after.
Идентификатор названия номера-типа питания в системе Библио-Глобус. Соответствует тегу <id_ns_ba> из XML
прайса. В атрибуте duration этого тега
указывается длительность проживания (ночей). Соответствует тегу <ba_duration>
из XML прайса.
groups / group / roommeala — первое дополнительное проживание
после основного. Суффикс a
значит after. Идентификатор
названия номера-типа питания в системе Библио-Глобус. Соответствует
тегу <id_ns_a> из XML прайса. В атрибуте duration
этого тега указывается длительность проживания (ночей). Соответствует
тегу <a_duration> из XML прайса.
groups / group / sr
— зачение тега <sr> из XML прайса. В запрос к API этот
параметр должен быть передан без изменений, так, как указан в XML прайсе.
groups / group / otv
— в запрос к API этот параметр должен быть распарсен из JSON прайса из параметра href2.
groups / group / persons / person / birthday — дата рождения
туриста в формате DD.MM.YYYY.
groups / group / persons / person / firstName — имя туриста
так, как указано в загран. паспорте в верхнем регистре.
groups / group / persons / person / lastName — фамилия туриста
так, как указано в загран. паспорте в верхнем регистре.
groups / group / persons / person / middleName — отчество туриста,
необязательное поле
groups / group / persons / person / notHaveMiddleName — признак отсутствия отчества,
необязательное поле
Важно: для заявок по России или Абхазии необходимо указывать отчество туриста или признак отсутствия отчества.
groups / group / persons / person / passportSeries — серия
загран. паспорта туриста.
groups / group / persons / person / passportNumber — номер
загран. паспорта туриста.
groups / group / persons / person / passportTill — дата
окончания действия загран. паспорта туриста в формате
DD.MM.YYYY.
groups / group / persons / person / email — контактный e-mail туриста.
groups / group / persons / person / phone — контактный телефон туриста.
groups / group / persons / person / gender — пол в формате
формате m (мужской) или f (женский).
Формат ответа:
<tours>
<tour clientTourId="1">
<sum>
<currency>USD</currency>
<fullamount>1193.0</fullamount>
<comission>119.0</comission>
<amount>1074.0</amount>
</sum>
<sum>
<currency>RUR</currency>
<fullamount>74563.0</fullamount>
<comission>7438.0</comission>
<amount>67125.0</amount>
</sum>
</tour>
…
</tours>
currency — валюта, в которой указаны полная стоимость,
комиссия и сумма к оплате
fullamout — полная стоимость тура
comission — комиссия
amount — сумма к оплате
Запрос на перевод заявки в статус "Тур подобран. Просим забронировать" оформляется точно так же, как и запрос на получение цены. Для Каждого тура, для которого необходимо поменять статус на "Тур подобран. Просим забронировать" необходимо в любое место тега <tour> вставить тег <confirm/>. После данного запроса агентство увидит созданную заявку в личном кабинете на сайте туроператора Библио-Глобус в списке заявок .
Формат запроса:
<tours>
<tour clientTourId="2">
<confirm/>
<countryId>100410504525</countryId>
<templateId>121178311485</templateId>
<customerFirstName>IVAN</customerFirstName>
<customerLastName>IVANOV</customerLastName>
<customerMiddleName>IVANOVICH</customerMiddleName>
<customerAddress>Moscow, Pokrovka, 35</customerAddress>
<customerPhone>89997777777</customerPhone>
<customerEmail>mail@mail.ru</customerEmail>
<customerCitizen>100410000050</customerCitizen>
<customerPassportSeries>4444</customerPassportSeries>
<customerPassportNumber>666666</customerPassportNumber>
<groups>
<group>
<startDate>01.03.2014</startDate>
<ins>0-100000-USD-0</ins>
<roommeal duration="7">104623691678</roommeal>
<roommealb duration="1">104625776787</roommealb>
<roommeala duration="1">104625776787</roommeala>
<sr>43UpM9e04HAuj04HAu+04HAvK04HAvf08YLk208YLkN08YLki08YLk*0CpWZQ0CpWZl0CpWa10CpWaM0H1hOo0H1hP40H1hPP0H1hPk</sr>
<otv>102510005340</otv>
<persons>
<person>
<birthday>11.06.1982</birthday>
<firstName>IVAN</firstName>
<lastName>IVANOV</lastName>
<citizenship>100410000050</citizenship>
<passportSeries>62</passportSeries>
<passportNumber>12345678</passportNumber>
<passportTill>11.11.2016</passportTill>
<email>mail@mail.ru</email>
<phone>89993334444</phone>
<gender>m</gender>
</person>
…
</persons>
</group>
…
</groups>
</tour>
…
</tours>
Формат ответа:
<tours>
<tour clientTourId="2">
<id>104400000842366804</id>
<number>214150198</number>
</tour>
…
</tours>
id — внутернний идентификатор заявки (тура) в системе Библио-Глобус.
number — номер заявки
Обработка запроса прерывается, если найдена хотя бы одна ошибка. В этом
случае в ответ посылается XML вида:
<errors clientTourId="2">
<error>126</error>
<info>104400000842366804</info>
</errors>
Некоторые ошибки снабжаются тегом <info>, в который записывается дополнительная информация, соответствующая ошибке.
Добавление информации перенесено в пункт 3.1 Получение стоимости заявки
Данный запрос нужно выполнять, если необходимо передать данные о заказчике тура для системы ГАИС ЭП (Электронная путевка)
POST запрос посылается на следующий адрес
https://www.bgoperator.ru/zayavkaapi?idTour=<id заявки>&action=addCustomerInfo
Формат запроса:
<customer>
<contractNumber>123456</contractNumber>
<contractData>31.12.2022</contractData>
<contractCost>71500</contractCost>
<firstName>IVAN</firstName>
<lastName>IVANOV</lastName>
<middleName>IVANOVICH</middleName>
<address>Moscow, Pokrovka, 35</address>
<phone>89997777777</phone>
<email>mail@mail.ru</email>
<citizen>100410000050</citizen>
<passportSeries>4444</passportSeries>
<passportNumber>666666</passportNumber>
</customer>
customer / contractNumber — Номер договора
customer / contractData — Дата договора в формате DD.MM.YYYY
customer / contractCost — Цена договора в рублях, целое число
customer / firstName — Имя
customer / lastName — Фамилия
customer / middleName — Отчество, необязательное поле
customer / address — Адрес регистрации
customer / phone — Телефон, необязательное поле
customer / email — email, необязательное поле
customer / citizen — Идентификатор страны гражданства в системе Библио-Глобус
customer / passportSeries — Серия паспорта
customer / passportNumber — Номер паспорта
Формат ответа:
<status>OK</status>
GET запрос посылается на следующий адрес
https://www.bgoperator.ru/zayavkaapi?idTour=<id заявки>&action=showCustomerInfo
Формат ответа:
<tours>
<customer tourId="id заявки">
<contractNumber>123456</contractNumber>
<contractData>31.12.2022</contractData>
<contractCost>71500</contractCost>
<firstName>IVAN</firstName>
<lastName>IVANOV</lastName>
<middleName>IVANOVICH</middleName>
<address>Moscow, Pokrovka, 35</address>
<phone>89997777777</phone>
<email>mail@mail.ru</email>
<citizen>100410000050</citizen>
<passportSeries>4444</passportSeries>
<passportNumber>666666</passportNumber>
</customer>
</tours>
customer / contractNumber — Номер договора
customer / contractData — Дата договора
customer / contractCost — Цена договора
customer / firstName — Имя
customer / lastName — Фамилия
customer / middleName — Отчество
customer / address — Адрес регистрации
customer / phone — Телефон
customer / email — email
customer / citizen — Идентификатор страны гражданства в системе Библио-Глобус
customer / passportSeries — Серия паспорта
customer / passportNumber — Номер паспорта
<tours>
<tour>
<sum>
<currency>EUR</currency>
<amount>20</amount>
<ticket>39c1cb27c6306f0ff79ec605dc12ea8e</ticket>
</sum>
</tour>
</tours>
https://www.bgoperator.ru/zayavkaapi?idTour=<id заявки>&action=canceltour&confirm=yes&ticket=<ticket из предыдущего ответа>
Формат ответа:
<status>OK</status>
POST запрос посылается на следующий адрес
https://www.bgoperator.ru/zayavkaapi?idTour=<id заявки>&action=addContactInfo
Формат запроса:
<persons>
<person id="102300000815141601">
<email>test@mail.ru</email>
<phone>+7 916 1234567</phone>
</person>
Формат ответа:
<status>OK</status>
Добавление паспортных данных возможно только, если данные для указанного туриста не заполнены. Паспортные данные - номер, серия и дату окончания действия паспорта - нужно укзаывать сразу все. Без указания хотя бы одного поля паспортных данных запрос будет считаться ошибочным.
POST запрос посылается на следующий адрес
https://www.bgoperator.ru/zayavkaapi?idTour=<id заявки>&action=addPassport
Формат запроса:
<persons>
<person id="102300000815141601">
<passportSeries>62</passportSeries>
<passportNumber>1234567</passportNumber>
<passportTill>11.12.2020</passportTill>
<person id="...">
...
</person>
</persons>
person id — id туриста в
заявке, который можно получить из запроса showtransfers (п. 6.1).
В теле запроса можно указать более одного туриста.
Формат ответа:
<status>OK</status>
Добавление или изменение трансферов в заявку происходит в три этапа. На каждом этапе используются данные из предыдущего этапа. Первый этап - это получение возможных трансферов для каждого туриста в заявке. Второй этап - это получение так называемых полетных данных. Полетные данные - это id рейса и информация о рейсе в формате человекочитаемой строки. Третий этап - это непосредственно добавление трансферов на основе информации, полученной на первых двух этапах.
Изменение трансферов по запросам не отличается от добавления трансферов в заявку. Существующие трансферы будут заменены на новые, указанные в запросе.
Данный запрос позвляет получить доступные трансферы для каждого туриста в заявке. В общем случае трансфер характеризуется датой отправления, точкой отправления и точкой прибытия.
Помимо трансферов данный запрос позволяет получить id туристов, которые могут использоваться, например, при изменении контактных данных туристов.
Формат запроса:
GET запрос посылается на следующий адрес
https://www.bgoperator.ru/zayavkaapi?idTour=<id заявки>&action=showtransfers
Формат ответа:
<tours>
<persons tourId="104400000817245901">
<person id="102300000817246001">
<firstName>JOHN</firstName>
<lastName>DOE</lastName>
<birthday>11.06.1982</birthday>
<transferSlot
dir="to" point="102640012614"
ptype="h"
date="14.03.2015">
<variant
id="103825996892" price="80.00"
currency="USD" ttype="ind"
point="103940001962"
pid="103840004162"
ptype="a">ШАРМ
ЭЛЬ ШЕЙХ(аэропорт) - Шарм-эль-шейх(отель) / minibus 10</roommeal>
...
</transferSlot>
<transferSlot
dir="from" point="102640012614"
ptype="h"
date="15.03.2015">
<variant
id="103825996895"
price="80.00" currency="USD"
ttype="ind" point="103940001962"
pid="103840004167"
ptype="a">Шарм-эль-шейх(отель)
- ШАРМ ЭЛЬ ШЕЙХ(аэропорт) / minibus 10</roommeal>
...
</transferSlot>
</person>
…
</persons>
</tours>
Формат запроса:
GET запрос посылается на следующий адрес
https://www.bgoperator.ru/zayavkaapi?idTour=<id заявки>&action=showflightdata&idAir=<id аэропорта>&dt=<дата трансфера>&dir=<прилет/вылет в/из аэропорта>
Здесь:
id аэропорта — это id точки с ptype="a" из ответа на предыдущий запрос. Например, это id из point="103940001962".
дата трансфера — это дата date из тега <transferSlot>. Формат DD.MM.YYYY.
прилет/вылет в/из аэропорта — "a" (arrival) в случае трансфера из аэропорта (прилет). "d" (departure) в случае трансфера в аэропорт (вылет).
Формат ответа:
<tours>
Создание заявки происходит в три этапа.
Первый этап - это получение данных о доступных для покупки авиабилетов рейсах в формате JSON и всех необходимых значений параметров. Эти параметры необходимо использовать при создании заявки на покупку авиабилетов. Прочитать про выгрузку данных о доступных рейсах можно тут.
Второй этап - это запрос на получение цены заявки с указанными параметрами. После запроса цены заявка в системе Библио-Глобус не создается. В ответ на такой запрос система вернет стоимость заявки. Если клиента устраивает цена, то необходимо сделать второй запрос.
Третий этап - запрос на создание заявки.
Заявка на покупку авиабилетов при безошибочной операции создается в состоянии "Подтверждено"
Оба запроса (из второго и третьего этапов) делаются с одним и тем же телом запроса за исключением второго запроса: здесь добавляется еще один элемент (см. ниже).
Оба запроса (из второго и третьего этапов) необходимо посылать на следующий адрес:
https://www.bgoperator.ru/zayavkaapi?prx=<значение prx из JSON первого этапа>&action=createaviatour
Важно: протокол https, хост www.bgoperator.ru должны быть указаны. Параметры prx и action должны быть указаны именно в таком порядке. Значение параметра prx необходимо брать из JSON, полученного в первом этапе. Без выполнения этих требований запрос к API не будет обработан.
Важно: в одном HTTP POST запросе к API могут быть вместе указаны запросы обоих типов. Другими словами одним запросом можно запросить цену для одного перелета, а для другого - создание заявки.
Запрос цены может содержать описание нескольких маршрутов. В одной заявке (тег <tour>) допускается указание только одной группы пассажиров, следующих по одному маршруту, который может состоять из перелетов в один конец, либо из перелетов туда-обратно, в том числе с пересадками.
Формат запроса:
В данном запросе указан маршрут перелета Москва-Сочи-Москва рейсами FV5503/FV5504
<tours>
<tour clientTourId="1">
<group>
<fls>
<fl>
<cab>Y</cab>
<ac>FV</ac>
<fln>5503</fln>
<dep>
<fd>03.03.2017</fd>
<ft>16:10:00</ft>
<cc>VKO</cc>
</dep>
<arr>
<fd>03.03.2017</fd>
<ft>18:50:00</ft>
<cc>AER</cc>
</arr>
</fl>
<fl>
<cab>Y</cab>
<ac>FV</ac>
<fln>5504</fln>
<dep>
<fd>10.03.2017</fd>
<ft>20:05:00</ft>
<cc>AER</cc>
</dep>
<arr>
<fd>10.03.2017</fd>
<ft>22:40:00</ft>
<cc>VKO</cc>
</arr>
</fl>
</fls>
<persons>
<person>
<birthday>11.06.1988</birthday>
<firstName>Ivan</firstName>
<lastName>Ivanov</lastName>
<citizenship>100410000050</citizenship>
<passportSeries>70</passportSeries>
<passportNumber>1234567</passportNumber>
<passportTill>11.11.2022</passportTill>
<gender>m</gender>
</person>
<person>
<birthday>22.03.1991</birthday>
<firstName>Daria</firstName>
<lastName>Ivanova</lastName>
<citizenship>100410000050</citizenship>
<passportSeries>75</passportSeries>
<passportNumber>1234567</passportNumber>
<passportTill>11.11.2022</passportTill>
<gender>f</gender>
</person>
</persons>
<contactEmail>test@email.ru</contactEmail>
<contactPhone>74957656565</contactPhone>
</group>
</tour>
</tours>
Важно: все данные по перелетам должны передаваться из данных, получаемых в первом этапе.
group / fls / fl / cab — класс перелета (Y - эконом, C - бизнес)
group / fls / fl / ac — код авиакомпании, соответствует значению ключа "ac" в объекте рейса в ответном JSON первого этапа
group / fls / fl / fln — номер рейса, соответствует значению ключа "fn" в объекте рейса в ответном JSON первого этапа
group / fls / fl / dep / fd — дата вылета, соответствует значению ключа "d" в объекте "dep" объекта рейса в ответном JSON первого этапа
group / fls / fl / dep / ft — время вылета, соответствует значению ключа "t" в объекте "dep" объекта рейса в ответном JSON первого этапа
group / fls / fl / dep / cc — IATA код аэропорта вылета, соответствует значению ключа "n" в объекте "dep" объекта рейса в ответном JSON первого этапа
group / fls / fl / arr / fd — дата прибытия, соответствует значению ключа "d" в объекте "arr" объекта рейса в ответном JSON первого этапа
group / fls / fl / arr / ft — время прибытия, соответствует значению ключа "t" в объекте "arr" объекта рейса в ответном JSON первого этапа
group / fls / fl / arr / cc — IATA код аэропорта прибытия, соответствует значению ключа "n" в объекте "arr" объекта рейса в ответном JSON первого этапа
group / persons / person / birthday — дата рождения пассажира в формате DD.MM.YYYY.
group / persons / person / firstName — имя пассажира
group / persons / person / lastName — фамилия пассажира
group / persons / person / middleName — отчество пассажира, необязательное поле
groups / group / persons / person / notHaveMiddleName — признак отсутствия отчества, необязательное поле
Важно: для заявок по России или Абхазии необходимо указывать отчество туриста или признак отсутствия отчества.
group / persons / person / passportSeries — серия паспорта/св-ва о рождении пассажира
group / persons / person / passportNumber — номер паспорта/св-ва о рождении пассажира
group / persons / person / passportTill — дата окончания действия загран. паспорта туриста в формате DD.MM.YYYY (заполняется для загран.паспорта, для общегражданского паспорта передается пустым)
group / persons / person / gender — пол в формате m (мужской) или f (женский)
group / persons / person / citizenship —идентификатор страны гражданства пассажира в системе Библио-Глобус.
Важно! Правила по заполнению паспортных данных пассажиров.
Фамилия и имя:
Серия и номер паспорта:
Формат ответа:
<tours>
<tour clientTourId ="1">
<group>
<sum>
<currency>RUB</currency>
<fullamount>4446<fullamount>
</sum>
</group>
</tour>
</tours>
currency — валюта, в которой указана стоимость заявки
fullamout — полная стоимость заявки
Обработка запроса прерывается, если найдена хотя бы одна ошибка. В этом случае в ответ посылается XML вида:
<errors clientTourId="2">
<error>165</error>
</errors>
Запрос на создание заявки оформляется точно так же, как и запрос на получение цены. Для каждого тега <tour>, для которого нужно создать заявку, необходимо в любое место тега <tour> вставить тег <confirm/>. После обработки этого запроса в личном кабинете агентства на сайте туроператора Библио-Глобус в списке заявок появится созданная заявка в статусе "Подтверждено".
Формат запроса:
<tours>
<tour clientTourId="1">
<confirm/>
<group>
<fls>
<fl>
<cab>Y</cab>
<ac>FV</ac>
<fln>5503</fln>
<dep>
<fd>03.03.2017</fd>
<ft>16:10:00</ft>
<cc>VKO</cc>
</dep>
<arr>
<fd>03.03.2017</fd>
<ft>18:50:00</ft>
<cc>AER</cc>
</arr>
</fl>
<fl>
<cab>Y</cab>
<ac>FV</ac>
<fln>5504</fln>
<dep>
<fd>10.03.2017</fd>
<ft>20:05:00</ft>
<cc>AER</cc>
</dep>
<arr>
<fd>10.03.2017</fd>
<ft>22:40:00</ft>
<cc>VKO</cc>
</arr>
</fl>
</fls>
<persons>
<person>
<birthday>11.06.1988</birthday>
<firstName>Ivan</firstName>
<lastName>Ivanov</lastName>
<citizenship>100410000050</citizenship>
<passportSeries>70</passportSeries>
<passportNumber>1234567</passportNumber>
<passportTill>11.11.2022</passportTill>
<gender>m</gender>
</person>
<person>
<birthday>22.03.1991</birthday>
<firstName>Daria</firstName>
<lastName>Ivanova</lastName>
<citizenship>100410000050</citizenship>
<passportSeries>75</passportSeries>
<passportNumber>1234567</passportNumber>
<passportTill>11.11.2022</passportTill>
<gender>f</gender>
</person>
</persons>
<contactEmail>test@email.ru</contactEmail>
<contactPhone>74957656565</contactPhone>
</group>
</tour>
</tours>
Формат ответа:
<tours>
<tour clientTourId ="1">
<number>877200530</number>
<id>104400000810006050</id>
<price>4045.0</price>
</tour>
</tours>
tour / number — номер заявки в системе Библио-Глобус
tour / id — id заявки в системе Библио-Глобус
tour / price — цена заявки
Обработка запроса прерывается, если найдена хотя бы одна ошибка создания заявки. В этом случае в ответ посылается XML вида:
<tours>
<tour clientTourId ="1">
<error>
<code>AV160</code>
<descr>duplicate booking 877200000</descr>
<repeat>0</repeat>
</error>
</tour>
</tours>
group / fls / fl / cab — класс перелета (Y - эконом, C - бизнес)
error / code — код ошибки
error / descr — краткое описание ошибки
error / repeat — повторять отправку запроса позже: 0 - нет, 1 - да.
Создание заявки происходит в 2 этапа.
Первый этап - это получение данных о доступных для покупки авиабилетов рейсах и тарифах в формате JSON и всех необходимых значений параметров. Эти параметры необходимо использовать при создании заявки на покупку авиабилетов. Прочитать про выгрузку данных о доступных рейсах и тарифах можно тут.
Второй этап - запрос на бронирование и создание заявки.
Заявка на покупку авиабилетов при безошибочной операции создается в состоянии "Подтверждено"
Описание запроса для второго этапа смореть в пункте 8.2. Второй запрос: подтверждение заявки. Единственное отличие: в запрос на бронирование регулярной перевозки необходимо передать параметр offerid, значение которого получено в ответе на запрос первого этапа.
Запрос на бронирование необходимо посылать на следующий адрес:
https://www.bgoperator.ru/zayavkaapi?prx=<значение prx из JSON первого этапа>&action=createaviatour
Важно: протокол https, хост www.bgoperator.ru должны быть указаны. Параметры prx и action должны быть указаны именно в таком порядке. Значение параметра prx необходимо брать из JSON, полученного в первом этапе. Без выполнения этих требований запрос к API не будет обработан.
Важно: в одном HTTP POST запросе к API могут быть вместе указаны запросы обоих типов. Другими словами одним запросом можно запросить цену для одного перелета, а для другого - создание заявки.
POST запрос посылается на следующий адрес
https://www.bgoperator.ru/zayavkaapi?idTour=<id заявки>&action=addMessage
Формат запроса:
<messages>
<message>
<text>Прошу добавить трансфер</text>
<dep>6</dep>
</message>
</messages>
text — Сообщение
dep — Департамент
Номера департаментов:
2 - Визовый отделФормат ответа:
<status>OK</status>
GET запрос посылается на следующий адрес
https://www.bgoperator.ru/zayavkaapi?idTour=<id заявки>&dateTime=<дата со временем>&action=showmessages
dateTime - Дата, от которой показываются сообщенияФормат ответа:
<tours>
<messages tourId="id заявки">
<message id="id сообщения">
<dateTime>12.07.2023 12:38:38</dateTime>
<user>Агентство</user>
<text>Прошу добавить трансфер</text>
<dep>6</dep>
</message>
</messages>
</tours>
message / dateTime — Дата создания сообщения
message / user — Имя пользователя
message / text — Сообщение
message / dep — Департамент, присутствует только если сообщение от Агентсва/Клиента