You are on page 1of 52

Documentao da API de WebServices NewSkies

Introduo
Este documento trs os passos necessrios para a implementao de um sistema de criao e modificao de reservas atravs da utilizao da API de WebServices do sistema NewSkies da Navitaire. Os servios mais comuns esto detalhados neste documento em forma de instrues passo-a-passo, acompanhadas de exemplos de cdigo ilustrando a implementao de cada passo. Os exemplos mostram como implementar as funcionalidades bsicas do sistema e tambm o padro de desenvolvimento que deve ser adotado na criao das aplicao que utilizam os WebServices do NewSkies. Este documento inclu as seguintes funcionalidades: - Criao de Bookings - Recuperao de Bookings - Modificao de Bookings

O diagrama abaixo descreve o fluxo dos WebServices:

Os Web Services so descritos por um arquivo WSDL(Web Services Description Language Linguagem de Descrio de Servios Web) nico que acessado (disponvel uma vez que sua conta esteja definida por Operaes) atravs de uma URI como:

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


https://1Lapi.navitaire.com/wsdl/1.3/skychannelAPI.wsdl Onde: 1L o cdigo da companhia. Este endereo prov acesso para os clientes (aplicaes que consumiro) dos WebServices. Este documento no pretende ser uma documentao sobre WebServices, mas sim referencias sobre os servios fornecidos pela API do NewSkies. Os WebServices pretendem ser independentes de plataforma e linguagem de programao, entretanto, tipos char requerem uma considerao especial. A API representa chars como strings. As strings so preenchidas com o valor decimal ASCII para o caractere. Por exemplo, um espao especificado como uma string contendo o valor 32 que o cdigo ASCII para espao.
FlightDesignator.OpSuffix =' '; // char ' ' incorreto

FlightDesignator.OpSuffix ="32"; // correto

O padro bsico de uso para a API instanciar um API Manager Client que agrupa logicamente um conjunto de APIs para uma rea funcional. Por exemplo, o grupo da API BookingManagerClient quem cria ou modifica PNRs. Para programadores familiarizados com a Orientao a Objetos, a API Manager Client (referenciado como manager ou managerClient) similar a uma classe e todas as APIs so os mtodos dessa classe. Acessar uma API similar a fazer uma chamada a um mtodo ou funo. Todas APIs do New Skies recebem parmetros. Estes parmetros de entrada so coletados solicitando um usurio ou coletando-o do sistema. Uma vez que os dados so coletados, os parmetros de uma dada API so preenchidos e a API , ento, chamada. Estes parmetros de entrada formam o respectivo objeto de requisio de entrada necessrio para invocar a API. Por exemplo, a Sell API do BookingManagerClient precisa de um objeto SellRequest como um parmetro de entrada. O objeto SellRequest agrupa vrios dados de entrada em um objeto. Se no existirem excees, a API retorna um objeto de resposta o qual contem um agrupamento de dados dos resultados da operao da API. Nota: O cdigo de exemplo fornecido neste documento para C# .Net. O uso da API segue um padro. Uma vez que se tenha entendido tal padro, todo uso da API similar. Um client instanciado para obter acesso API e parmetros so preenchidos com os dados necessrios. Na maioria dos casos um objeto de requisio deve ser instanciado a preenchido utilizando as propriedades fornecidas pelo mesmo. As colees so mantidas como arrays utilizando as propriedades para preencher os valores de elementos individuais. A API invocada e o resultado processado conforme o necessrio. Nas descries de tarefa que seguem, uma tarefa descrita com uma seqncia de passos utilizados para conclu-la. Alguns passos so opcionais e outros so obrigatrios. Isso est comentado no passo em questo. As tarefas descritas neste documento incluem os passos necessrios para realizar uma tarefa juntamente com partes de cdigo de exemplo mostrando como executar cada passo. A tecnologia subjacente W3C compliant. O protocolo de comunicao dos Web Services do New Skies atravs de mensagens SOAP. Os exemplos mostrados utilizando um cliente .NET permitem abstrao das mensagens SOAP Azul Linhas Areas Brasileiras WebServices API NewSkies Verso 1.0

Documentao da API de WebServices NewSkies


subjacentes que so serializadas e deserializadas durante a comunicao cliente-servidor. Esta abstrao possvel devido a classe Proxy que o .NET gera do contrato WSDL dos Web Services. Enquanto a Navitaire acessar os WebServices atravs de classes Proxy um cliente no est limitado a esta modalidade de acesso a Web Services que aderem a interoperabilidade. Todo cliente pretende utilizar Web Services somente o necessrio para estabelecer uma conexo e ter um mtodo para gerar uma requisio SOAP para comunicar com os Web Services. A requisio e respostas SOAP so descritas no Web Services Programming Reference Guide. Os exemplos inclusos no pretendem mostrar exaustivamente todas as propriedades e mtodos possveis. A inteno demonstrar o suficiente para exibir o padro de desenvolvimento e como iniciar o uso da API. Tratando excees na API de Web Services: Os mtodos da API de Web Services lana diferentes tipos de excees. O nmero e o tipo de uma exceo podem variar de release para release, entretanto recomendase que todas as chamadas API devem estar num bloco try-catch. Se uma exceo lanada, a aplicao que fez a chamada a API deve examinar a exceo para determinar qual ao deve ser tomada antes de prosseguir. Visto que as excees esto sujeitas a mudana, a lista de excees no exaustiva. Contudo, para alguns mtodos algumas excees comuns, que o cliente deve ter cincia, esto listadas.

Nota: Nesta release do New Skies o sistema no garante todas as configuraes dos perfis definidos no Sky Utilities. de responsabilidade da aplicao, que est utilizando a API, aplicar as regras estabelecidas para um perfil. Por exemplo, se um perfil de usurio inclui configuraes para Booking Contact Information e o campo Title definido como obrigatrio, responsabilidade da aplicao assegurar-se que um ttulo (Title) seja includo nos dados do contato na requisio que o inclui.

Nota: Devido as APIs de Web Services do New Skies proverem extensiva funcionalidade, isso dita um contrato WSDL complexo. altamente recomendado utilizar uma ferramenta de gerao de Proxy automatizada para estabelecer uma base para aumentar clientes que consomem as APIs dos Web Services. A experincia tem mostrado que desenvolver manualmente clientes que consomem Web Services pode ser trabalhoso e suscetvel a erros. Muitos problemas levantados por clientes que desenvolvem o Proxy manualmente esto relacionados falta de elementos XML ou erro na definio dos mesmos, utilizao incorreta de namespaces e resultados inesperados. Gerar um Proxy utilizando uma ferramenta como .NET ou Wsdl2Java trata estes problemas corretamente sem utilizar desenvolvedores e tempo, o que resulta num custo mais efetivo do ciclo de desenvolvimento e numa entrega mais rpida.

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

USANDO COMMON SERVICES


Introduo
Common Services so aqueles servios utilizados em muitas tarefas. Por exemplo, o servio mais comum o de Logon, que necessrio antes da utilizao de qualquer outro servio. SessionManagerClient prov acesso a este servio.

Logon
Prov uma sesso para uso do servio posterior e estabelece um perfil para a sesso. Para utilizar os Web Services, deve-se estabelecer uma sesso com uma identificao e senha de login especficos. O ID e senha do usurio concedem ao mesmo, direitos especficos para os Web Services baseado no perfil para a funo de trabalho. Por exemplo, um Agente de Reserva pode ter direitos a fazer uma reserva, alterar certas reservas ou configurar a conta de um cliente. Um supervisor, por outro lado, pode ter direitos de alterar o preo de uma passagem ou manualmente autorizar um crdito em carto. O objeto SessionContext retornado como parte do LogonResponse ser um parmetro necessrio em todas as chamadas subseqentes um mtodo do Web Service. O SessionContext s pode ser criado pelo Logon. O Logon estabelecer um booking state (estado do agendamento) para o usurio que est efetuando o login. Importante Reutilizando o SessionContext O servio de Logon um servio muito pesado. Ele realiza vrios acessos ao banco de dados e armazena dados em cache para uso futuro, por isso altamente recomendado que o SessionContext seja reutilizado para mltiplas tarefas. No necessrio efetuar o Logon para cada tarefa realizada. As sesses expiraro, se no forem utilizadas, por timeout e os recursos alocados para as sesses no estaro disponveis at a sesso expirar ou at que o Logout seja realizado. O Logout liberar os recursos alocados para a sesso e recomendado que a aplicao chame o Logout quando a sesso no for mais necessria. Os exemplos inclusos neste documento incluem os passos para Logon e Logout mostrarem que um SessionContext necessrio para realizar uma tarefa. No significa que um Logon seria realizado antes de cada tarefa. Para uma dada tarefa o SessionContext pode ser um que foi criado anteriormente como parte de outras tarefas. Passos: Criar uma instncia de um SessionManagerClient que ser utilizado para interagir com a API.

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


Coletar os identificadores do usurio. A fim de identificar um usurio e autentic-lo para o sistema, o nome do usurio e sua senha so necessrios. Estes dados so coletados pela aplicao que os fornece ao servio de Logon. Uma vez coletados os identificadores, um LogonRequest criado e preenchido com estes identificadores. O LogonRequest passado com um parmetro para o servio de Logon. Se bem sucedido, o servio de Logon retorna um LogonResponse. O LogonResponse contm um objeto SessionContext que necessrio em qualquer chamada subseqente aos servios da API. Ele salvo dentro de um objeto SessionContext que ento utilizado nas chamadas subseqentes API.

O exemplo seguinte mostra o uso do servio de Logon.


using System; using System.Collections.Generic; using System.Text; using SampleLogon.SkyChannel; namespace SampleLogon { class SampleLogon { static void Main(string[] args) { Console.WriteLine("Starting Logon"); String username = "jsmith"; String password = "P@ssword2"; String domain = "def"; SkyChannel.SessionContext sessionContext = new SessionContext(); SkyChannel.SessionManagerClientSoap sessionAPI = new SkyChannel.SessionManagerClientSoap(); SkyChannel.LogonRequest logonRequest = new SkyChannel.LogonRequest(); SkyChannel.LogonResponse logonResponse; logonRequest.AgentName = username; logonRequest.DomainCode = domain; logonRequest.Password = password; logonRequest.SystemType = SkyChannel.SystemType.WebServicesAPI; logonRequest.ChannelType = SkyChannel.ChannelType.API; logonRequest.LocationCode = String.Empty; logonRequest.TerminalInfo = String.Empty; logonRequest.RoleCode = String.Empty; logonResponse = sessionAPI.Logon(logonRequest); if (logonResponse != null && logonResponse.SessionContext != null) { sessionContext = logonResponse.SessionContext; Console.WriteLine("Completed Logon"); } else { Console.WriteLine("Logon failed"); } sessionAPI.Logout(sessionContext); Console.Write("anykey to continue "); Console.Read(); } } }

Fluxograma do Logon

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Incio

Instanciar SessionManagerClientSoap

Obter identificadores do usurio

Instanciar e popular LogonRequest

Chamar o servio Logon

Falha no logon

No

OK

Sim

Receber LogonResponse

Armazenar SessionContext

Fim

Alterar Senha
ChangePassword permite a alterao de senhas programaticamente. ChangePassword no retorna reposta alguma nem lana uma exceo caso a senha no seja alterada. A exceo indica por que a senha no foi alterada. Nota: Um objeto SessionContext no necessrio por que o AgentName e o Password do agente so necessrios para identificar o agente que est alterando sua prpria senha. O exemplo abaixo mostra um exemplo simples de uso do ChangePassword.
String String String String agentname = "jsmith"; password = "P@ssword4"; domain = "def"; newPassword = "P@ssword5";

sessionAPI = new SkyChannelAPI.SessionManagerClientSoap(); SkyChannelAPI.LogonRequest logonRequest = new SkyChannelAPI.LogonRequest(); logonRequest.AgentName = agentname; logonRequest.DomainCode = domain; logonRequest.Password = password; logonRequest.SystemType = SkyChannelAPI.SystemType.WebServicesAPI; logonRequest.ChannelType = SkyChannelAPI.ChannelType.API; logonRequest.LocationCode = String.Empty; logonRequest.TerminalInfo = String.Empty; logonRequest.RoleCode = String.Empty; sessionAPI.ChangePassword(logonRequest, newPassword);

Fluxograma do ChangePassword
Obter identificadores e dados do usurio Instanciar e popular LogonRequest

Incio

Instanciar SessionManagerClientSoap

Chamar o servio ChangePassword

Tratar exceo

Sim

Exceo

No Fim

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Logout
O Logout encerra uma sesso existente. Qualquer dado no cometido ao banco de dados ser perdido. Passos: Utilize a instncia existente de um SessionManagerClient que utilizado para interagir com a API. (opcional) Faa uma chamada ao servio de Logout fornecendo o objeto SessionContext obtido no Logon.

sessionAPI.Logout(sessionContext);

Fluxograma do Logout

Incio

Utilizar uma instncia de SessionManagerClientSoap

Chamar o servio Logout

Fim

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

BOOKING SERVICES
Introduo s tarefas de Agendamento. As tarefas de Booking operam nas reservas e dados relacionados. Um BookingManagerClient prov acesso a estas APIs. O SessionContext obtido do Logon necessrio para estas APIs. Nota: Quando um nmero de vo informado necessrio que esteja justificado a direita para quatro dgitos. Nota: Na requisio, o elemento DistributeToContacts definido como false. Quando definido como false o sistema no envia notificaes. As duas condies que seguem devem ser atendidas antes que uma notificao seja enviada: 1. O DistributeToContacts deve ser definido como true. 2. Nenhum dinheiro pode ser devido no agendamento.

Tarefas Iniciais

Criando um Agendamento (Booking) Passo Inicial


A tarefa de criao de um agendamento descreve os passos utilizados para adicionar um agendamento no sistema. No necessrio efetuar o Logon para cada tarefa se j existir um SessionContext vlido. Da mesma forma, no necessrio efetuar o Logout aps cada tarefa. Logon a Logout esto inclusos abaixo para melhor entendimento. Este tpico inclui as instrues para criar um agendamento e mostra exemplos de como faz-lo. Os exemplos dados no so detalhados nem exaustivos. Eles esto inclusos como representaes da informao que necessita ser passada para completar o passo. A criao de um processo de agendamento a seguinte: Fazer Log on (Obrigatrio) Criar uma instncia de um BookingManagerClient (Obrigatrio) Obter disponibilidade de um vo (Opcional) Preo do itinerrio (Opcional) Vender vos (Obrigatrio) Adicionar Informaes do Passageiro (Obrigatrio) Vender SSR (Opcional) Taxa de Servio de Venda(Opcional) Finalizar Reserva (Obrigatrio)

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


Para criar um agendamento, utilize a seguinte informao: Se um SessionContext no est instanciado, criar uma instncia de um SessionManagerClient que ser utilizado para interagir com a Logon API. [Obrigatrio] Logon estabelece uma sesso que ser utilizada nas interaes subseqentes com a API. Criar uma instncia de um BookingManagerClient que ser utilizado para interagir com a API de agendamento (Booking API).
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap();

[Opcional] Obter disponibilidade Obtm a disponibilidade de um vo e a informao da tarifa para um mercado. No atualiza o estado do agendamento. Nota: O Journey Data Market dirio e depende da propriedade DOW (Day of Week) do pedido de disponibilidade. Por exemplo, 14/02/06 a 24/02/06 e DOW definido para Tera-feira ter dois Journey Data Market se dia 14 for uma Tera-feira.

AvailabilityFilter pode ser definido para indicar se vos agendados devem ser retornados. Journey Data Market por dia e depende da propriedade DOW do pedido de disponibilidade. Ex: 14/02/06 a 24/02/06 e DOW definido para Tera-feira ter dois Journey Data Market se dia 14 for uma Tera-feira. AvailabilityFilter pode ser definido para indicar se vos agendados devem ser retornados. Dados da Station so providos para a API pela aplicao.
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SkyChannel.AvailabilityRequest availabilityRequest = new AvailabilityRequest(); PaxPriceType[] priceTypes = new PaxPriceType[1]; priceTypes[0] = new PaxPriceType(); priceTypes[0].PaxType = "ADT"; availabilityRequest.BeginDate = DateTime.Parse("2006-08-25T00:00:00"); availabilityRequest.EndDate = DateTime.Parse("2006-08-25T00:00:00"); availabilityRequest.ArrivalStation = "SLC"; availabilityRequest.DepartureStation = "JFK"; availabilityRequest.FlightType = FlightType.All; availabilityRequest.CurrencyCode = "USD"; availabilityRequest.PaxPriceTypes = priceTypes; availabilityRequest.Dow = DOW.Daily; //optional filters availabilityRequest.FlightNumber = "1115"; availabilityRequest.CarrierCode = "1L"; SkyChannel.AvailabilityResponse availabilityResponse = bookingAPI.GetAvailability(sessionContext, availabilityRequest);

[Opcional] Preo do Itinerrio Fixa o preo de um itinerrio completo, registra taxas, cargas, impostos e preos utilizando os parmetros fornecidos a respondendo o preo total incluindo todas as taxas, cargas e impostos. Nota: PriceItinerary pode incluir FareTypes que foram previamente configurados no Sky Utilities. Se no so inclusos FareTypes, deixe o campo definido como null. Nota: O cdigo de exemplo precisa tambm marcar priceItinRequest.SSRResquests[0].FlightDesignator quando ele est marcando o priceitinrequest. Se o FlightDesignator for branco, ento o agendamento da viagem no pode ser encontrado.

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Muitos dos dados utilizados em Price Itinerary podem ser copiados de uma resposta do GetAvailability.

SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SkyChannel.PriceItineraryRequest priceItinRequest = new PriceItineraryRequest(); priceItinRequest.CurrencyCode = BRL; priceItinRequest.JourneyRequests = new JourneyRequest[1]; priceItinRequest.JourneyRequests[0] = new JourneyRequest(); priceItinRequest.JourneyRequests[0].Segments = new SegmentRequest[1]; SegmentRequest[] srSegments = new SegmentRequest[1]; srSegments[0] = new SegmentRequest(); srSegments[0].ActionStatusCode = "NN"; srSegments[0].PaxCount = 1; srSegments[0].ClassOfService = availResponse.Schedule[0].Journeys[0].Fares[0].ClassOfService; srSegments[0].DepartureStation = availResponse.Schedule[0].Journeys[0].Segments[0].DepartureStation; srSegments[0].STD = availResponse.Schedule[0].Journeys[0].Segments[0].STD; srSegments[0].ArrivalStation = availResponse.Schedule[0].Journeys[0].Segments[0].ArrivalStation; srSegments[0].STA = availResponse.Schedule[0].Journeys[0].Segments[0].STA; srSegments[0].Legs = availResponse.Schedule[0].Journeys[0].Segments[0].Legs; priceItinRequest.JourneyRequests[0].Segments = srSegments; priceItinRequest.JourneyRequests[0].CarrierCode = "AD"; // FareTypes is an optional field. If not used leave set to null, // otherwise set to values defined using SkyManager. priceItinRequest.FareTypes = new String[2]; priceItinRequest.FareTypes[0] = "R"; priceItinRequest.FareTypes[1] = "PR"; priceItinRequest.Passengers = new Passenger[1]; priceItinRequest.Passengers[0] = new Passenger(); priceItinRequest.Passengers[0].Name = new Name(); priceItinRequest.Passengers[0].Name.FirstName = "Joo"; priceItinRequest.Passengers[0].Name.MiddleName = "da"; priceItinRequest.Passengers[0].Name.LastName = "Silva"; priceItinRequest.Passengers[0].PaxPriceType = new PaxPriceType(); priceItinRequest.Passengers[0].PaxPriceType.PaxType = "ADT"; priceItinRequest.SSRRequests = new SSRRequest[1]; priceItinRequest.SSRRequests[0] = new SSRRequest(); priceItinRequest.SSRRequests[0].ActionStatusCode = "NN"; priceItinRequest.SSRRequests[0].SSRCode = "BIKE"; priceItinRequest.SSRRequests[0].SSRNumber = 0; priceItinRequest.SSRRequests[0].STD = availResponse.Schedule[0].Journeys[0]. Segments[0].STD; priceItinRequest.SSRRequests[0].FlightDesignator = new FlightDesignator(); priceItinRequest.SSRRequests[0].FlightDesignator = availResponse.Schedule[0].Journeys[0].Segments[0].Legs[0].FlightDesignator; priceItinRequest.SSRRequests[0].DepartureStation = availResponse.Schedule[0].Journeys[0].Segments[0].DepartureStation; priceItinRequest.SSRRequests[0].ArrivalStation = availResponse.Schedule[0].Journeys[0].Segments[0].ArrivalStation; priceItinRequest.SSRRequests[0].PassengerNumber = 0; SkyChannel.PriceItineraryResponse piResponse = bookingAPI.PriceItinerary(sessionContext, priceItinRequest); Console.WriteLine("Total price = {0:C} ", piResponse.Total);

[Obrigatrio] Vender Vos O mtodo SellFlights reserva um lugar na viagem desejada. Atualiza o estado da sesso. Isto substitui o estado atual com os dados fornecidos no SellRequest. SellRequest contm uma coleo de JourneyRequest que contm SegmentRequest. Os tipos de segmentos deve ser SegmentRequest. [Opcional] Utilizao de Promo Codes. Informaes do passageiro.

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Nota sobre o preenchimento do SellRequest Seguem Notas e informaes a respeito do uso do mtodo Sell. Voc somente pode copiar os resultados da disponibilidade para o pedido de venda se for uma disponibilidade de sentido nico. Sell usa, normalmente, uma base de taxa especfica (um elemento que armazena e determina elegibilidade e restries da taxa) o qual restringe a venda para a base da tarifa e suas regras. O nmero da regra associado base da tarifa e utilizado para distinguir entre cdigos da base da tarifa se existir mltiplas instncias de cdigo base da tarifa definidos com diferentes regras. Combinando com a base da tarifa, ele identifica uma tarifa. O cdigo da operadora (Carrier code) obrigatrio. Ele identifica a operadora a qual o nmero do vo pertence. Ele obrigatrio porque mltiplos vos da operadora podem estar disponveis para venda, como no caso do code share e do wet lease. A regra da tarifa deve ser deixada em branco. Ela est reservada para uso futuro. A classe do servio deve corresponder classe do servio definida com o cdigo da base da tarifa. Existem 2 formas de utilizar o mtodo Sell: Uma venda que utiliza somente a classe do servio e o tipo de tarifa. (Este no um uso comum). Uma venda que utiliza uma base de tarifa especfica na qual restringe a venda a esta base de tarifa e suas regras. O mtodo Sell requer os seguintes campos: FlightDesignator CarrierCode FlightNumber opSuffix STA STD DepartureStation ArrivalStation PriorityCode inboudoutbound RuleNumber RuleTariff RuleBasis

SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); String fareBasis = String.Empty; String ruleNumber = String.Empty; SkyChannel.SellRequest sellRequest = new SellRequest(); sellRequest.PriceRequest = new PriceRequest(); sellRequest.JourneyRequests = new JourneyRequest[1]; sellRequest.JourneyRequests[0] = new JourneyRequest(); sellRequest.JourneyRequests[0].Segments = new SegmentRequest[1]; SegmentRequest[] srSegments = new SegmentRequest[1]; // get a segment with valid fares from availability response

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


for (int j = 0; j < availResponse.Schedule.Length; j++) { for (int i = 0; i < availResponse.Schedule[j].Journeys.Length; i++) { InventoryJourney journey = availResponse.Schedule[j].Journeys[i]; InventorySegment segment = (InventorySegment)journey.Segments[0]; if (segment.SegmentClasses.Length > 0 && segment.Fares.Length > 0) { srSegments[0].DepartureStation = availResponse.Schedule[j].Journeys[i].Segments[0].DepartureStation; srSegments[0].STD = availResponse.Schedule[j].Journeys[i].Segments[0].STD; srSegments[0].ArrivalStation = availResponse.Schedule[j].Journeys[i].Segments[0].ArrivalStation; srSegments[0].STA = availResponse.Schedule[j].Journeys[i].Segments[0].STA; srSegments[0].Legs = availResponse.Schedule[j].Journeys[i].Segments[0].Legs; srSegments[0].FlightDesignator = new FlightDesignator(); srSegments[0].FlightDesignator = availResponse.Schedule[j].Journeys[i].Segments[0].Legs[0].FlightDesignator; srSegments[0].ActionStatusCode = "NN"; srSegments[0].PaxCount = 1; srSegments[0].CarrierCode = srSegments[0].FlightDesignator.CarrierCode; srSegments[0].ClassOfService = segment.Fares[0].ClassOfService; fareBasis = availResponse.Schedule[j].Journeys[i].Fares[0].FareBasis; ruleNumber = availResponse.Schedule[j].Journeys[i].Fares[0].RuleNumber; break; } } } sellRequest.JourneyRequests[0].Segments = srSegments; sellRequest.JourneyRequests[0].CarrierCode = "AD"; sellRequest.JourneyRequests[0].FareBasis = fareBasis; sellRequest.JourneyRequests[0].RuleNumber = ruleNumber; sellRequest.PriceRequest.CurrencyCode = BRL; sellRequest.PriceRequest.PaxResidentCountry = "BR"; sellRequest.PriceRequest.Passengers = new Passenger[1]; sellRequest.PriceRequest.Passengers[0] = new Passenger(); sellRequest.PriceRequest.Passengers[0].Name = new Name(); sellRequest.PriceRequest.Passengers[0].Name.FirstName = "Joo"; sellRequest.PriceRequest.Passengers[0].Name.MiddleName = "da"; sellRequest.PriceRequest.Passengers[0].Name.LastName = "Silva"; sellRequest.PriceRequest.Passengers[0].PaxPriceType = new PaxPriceType(); sellRequest.PriceRequest.Passengers[0].PaxPriceType.PaxType = "ADT"; sellRequest.PriceRequest.Passengers[0].PaxPriceType.PaxDiscountCode = null; SkyChannel.SellResponse sellResponse = bookingAPI.Sell(sessionContext, sellRequest); Console.WriteLine("Sell Balance Due = {0:C} ", sellResponse.BalanceDue);

[Obrigatrio] Adicionar informaes ao passageiro

Informaes bsicas do passageiro podem ser includas atravs do mtodo Sell. Outro dado do passageiro adicionado ou completado utilizando o BookingRequest passado dentro do Commit. Veja Commit para maiores detalhes. Esteja ciente que alterando o tipo de passageiro, o cdigo de desconto e o nome causaro atualizao de preo do agendamento (Booking). [Opcional] Vender SSR

Vender um ou mais SSRs (SSR Special Service Request Requisio de Servio Especial) do agendamento (Booking) atual. O SSRRequest pode ou especificar um nvel de segmento de venda SSR ou de um trecho. A fim de vender um SSR, um passageiro necessrio (atualiza o estado atual com os dados fornecidos no SellSSRRequest).
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); // SellSSRRequest Contains a collection of SSRs to be sold SkyChannel.SellSSRRequest sellSsrRequest = new SellSSRRequest(); sellSsrRequest.SSRRequests = new SSRRequest[1]; SSRRequest[] SSRs = new SSRRequest[1]; SSRs[0] = new SSRRequest(); SSRs[0].ActionStatusCode = "NN"; SSRs[0].SSRCode = "BIKE"; SSRs[0].SSRNumber = 0;

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


SSRs[0].STD = availResponse.Schedule[0].Journeys[0].Segments[0].STD; SSRs[0].FlightDesignator = new FlightDesignator(); SSRs[0].FlightDesignator = availResponse.Schedule[0].Journeys[0].Segments[0].Legs[0].FlightDesignator; SSRs[0].DepartureStation = availResponse.Schedule[0].Journeys[0].Segments[0].DepartureStation; SSRs[0].ArrivalStation = availResponse.Schedule[0].Journeys[0].Segments[0].ArrivalStation; SSRs[0].PassengerNumber = 0; sellSsrRequest.SSRRequests = SSRs; SkyChannel.SellSSRResponse sellSsrResponse = bookingAPI.SellSSR(sessionContext, sellSsrRequest); System.Console.WriteLine("Total Cost {0:C}", sellSsrResponse.TotalCost);

[Obrigatrio] Venda de Taxa de servio

Vende uma taxa de servio e a aplica no estado atual do agendamento (Booking). Ele atualiza o estado atual com dados fornecidos no SellServiceFeeRequest.
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SellServiceFeeRequest feeRequest = new SellServiceFeeRequest(); feeRequest.PassengerNumber = 0; feeRequest.FeeCode = "CMF"; feeRequest.CollectedCurrencyCode = BRL; feeRequest.Note = "API added Service Fee"; BookingResponse br = bookingAPI.SellServiceFee(sessionContext, feeRequest);

[Obrigatrio] Finalizar uma reserva

Adiciona um agendamento no banco de dados. Nota: Se voc est suplementando a API originada de agendamentos com TeleType (TTY, Type B) processamento de post-booking , o FamilyNumber definido no BookingPassenger determina como os nomes dos passageiros sero retornados na resposta TTY. BookingPassengers com o mesmo sobrenome e FamilyNumber so includos juntos. FamilyNumber um campo opcional. responsabilidade da aplicao cliente garantir que os dados fornecidos so vlidos. Submeter informaes de agendamento das lojas contidas no estado das etapas precedentes ao banco de dados. New Skies refora as regras de consistncia de alguns dados quando so submetidos, mas no garante que todos os dados so vlidos para a aplicao. A aplicao deve efetuar a validao previamente e ento submet-las. Os dados inclusos no objeto BookingRequest so inclusos nos dados do estado que escrito no banco de dados. Os seguintes dados podem tambm ser fornecidos utilizando o mtodo Commit (Finalizar uma reserva tambm referenciado como Commit). Exemplos de uso destes dados so fornecidos na seo de alterao de agendamento. [Opcional] Adicionar comentrios a uma reserva. [Obrigatrio] Adicionar detalhes do contato. [Obter o total examinando o estado da sesso ou o resultado da ltima venda] Campos de pagamento definidos como obrigatrios pelos mtodos de pagamento, como definidos atravs do Sky Utilities, devem ser fornecidos no pagamento. [Opcional] Adicionar pagamento a uma reserva [Obter o total examinando o estado da sesso ou o resultado da ltima venda]

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


Se um campo de pagamento definido como obrigatrio para o mtodo de pagamento no Sky Utilities (no n de Finanas), ento voc deve fornec-lo no pagamento que est sendo realizado. Se a informao de pagamento no estiver no formato correto, a seguinte exceo lanada: New payments associated with the booking did not pass validation. O exemplo de pagamento externo fornecido abaixo especfico para a configurao do sistema utilizado para gerar o exemplo. Os PaymentFields e o nmero do carto de teste pode variar de outros sistemas de teste. Entretanto, pagamentos realizados em outros sistemas tm de ser criados conforme a configurao daquele sistema. Os campos de pagamento utilizados no Pagamento so definidos no Sky Utilities na configurao do mtodo de Pagamento. A API Payment FieldName contem um campo Code do mtodo de pagamento. Veja Utilizando FieldNames nos campos de Pagamento para a lista de cdigos. Os seguintes campos so obrigatrios para o pagamento: PaymentMethodType deve corresponder ao tipo de pagamento CurrencyCode QuotedAmount QuotedCurrencyCode Status PaymentReference ChannelType FundedDate

Outros campos do tipo de pagamento que esto sendo utilizado. Ao preencher um pagamento, esteja ciente do seguinte: O PaymentoMethodType deve ser definido para o mtodo de pagamento associado para o pagamento que est sendo adicionado no agendamento. Ele pode ser um dos seguintes: PrePaid ExternalAccount AgencyAccount CustomerAcount Voucher PaymentReference deve ser definido como Default. ChannelType deve ser definido como API. FundedDate deve ser definido como 1800-01-01T00:00:00. Qualquer PaymentFields definido para o mtodo de pagamento no Sky Utilities deve estar preenchido tambm. A menos que mltiplas moedas estejam sendo utilizadas, preencher somente o seguinte: CurrencyCode QuotedCurrecyCode QuotedAmount

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


possvel criar um credit shell utilizando um stateless commit. Primeiro faa o Logon e garanta que voc esteja logado utilizando um agente na mesma agncia / organizao como a agncia para qual voc est adicionando crdito. Tambm garanta que este agente tenha as configuraes corretas de perfil para pagamento AG (Agency Payments) e pagamentos CS (Credit Shell Refunds). As configuraes do perfil devem permitir ao agente emitir Agency Payments (AG) e Credit Shell Refunds (CS). Nota: Um pagamento credit shell tecnicamente um Credit File. Uma vez que os perfis estejam corretamente configurados, preencher o BookingRequest direto. Esteja ciente dos seguintes itens a respeito da configurao do BookingRequest: O seguinte requerido: CurrencyCode. Contact; tambm marcar a SourceOrganization para a Agncia na qual o Agency Payment aplica-se e o Typecode definido como 80 para o tipo de pagamento. Os campos do pagamento precisam ser preenchidos.

Os seguintes campos do Payment so obrigatrios para os Agency Payments: O objeto Payment deve ser criado como um AgencyAccountPayment, que o tipo de pagamento a ser definido como AgencyAccountPayment. PaymentMethodType deve ser definido como AgencyAccount. PaymentMethodCode deve ser definido como AG. A Moeda e quantidade so ajustadas. AccountNumber definido com o nmero de conta da agncia. ChannelType definido como API.

Os seguintes campos do pagamento so obrigatrios para reembolsos do credit shell: O objeto Payment deve ser criado como um CustomerAccountPayment, que o tipo de pagamento definido como CustomerAccountPayment. PaymentMethodType definido como CustomerAccount. PaymentMethodCode definido como CS. QuotedCurrencyCode e QuotedAmount so definido com uma quantia negativa devido ao reembolso. O ChannelType deve ser definido como API. AccountTransactionCode definido com um cdigo de crdito vlido que foi configurado no Sky Utilities > Finance > Account Management > Credit Codes.

Nota: Se qualquer um dos tipos de pagamento solicitar uma taxa, deve-se tambm adicionar um passageiro ao agendamento para associar a taxa. Ento, se voc tentar um Stateless Commit, a validao do agendamento falhar. Na prtica, somente os tipos de pagamento que devem incluir taxas so os pagamentos externos. Taxas de pagamentos podem ser associadas credit shells mas no funcionaro na prtica porque os credit shells so utilizados pelos reembolsos.

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


Nota de Processamento: O New Skies projetado para fazer chamadas assncronas ao sistema de pagamento por razes de escalabilidade e performance. O New Skies faz a chamada ao sistema de pagamento que imediatamente retorna o controle para o New Skies. Alguma hora mais tarde, aps o sistema de pagamento obter uma resposta de retorno de um provedor de servio de pagamento, ele retorna ao New Skies para atualizar o status de pagamento do agendamento.

Visando determinar o status do pagamento, as aplicaes do Booking checam periodicamente o agendamento para verificar se o status do pagamento foi atualizado. Por exemplo, Sky Sales aguarda alguns segundos e ento verifica se o status do agendamento foi atualizado. Se uma aplicao precisa determinar o status atual do pagamento de um agendamento ele verifica o mesmo periodicamente para obter seu status mais recente. Se a aplicao tem um agendamento em seu estado a seguinte chamada na API permite verificar o status do pagamento sem fazer uma chamada ao GetBooking.
payments = BookingManagerClient.GetCurrentStateBookingPayments(UserSession.SessionContext); if (payments != null) { foreach (Payment payment in payments) { if (payment.Status != BookingPaymentStatus.Declined && payment.Status != BookingPaymentStatus.Approved && (payment.Status != BookingPaymentStatus.PendingCustomerAction || pendingCustomerActionIsFinal == true)) } }

[Obrigatrio] Adicionar detalhes do passageiro do agendamento Informaes bsicas do passageiro Detalhes do documento de viagem (opcional) Detalhes da criana (opcional) Documentos de viagem da criana (opcional) [Obrigatrio] Submeter reserva Nota: Quando submeter um agendamento a configurao recomendada para CommitAction a seguinte:
bookingRequest.CommitAction = CommitAction.CommitRetrieve;

Obs.: Utilizar outros valores para CommitAction pode causar resultados no esperados.
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SkyChannel.BookingRequest bookingRequest = new BookingRequest();

bookingRequest.CurrencyCode = BRL; bookingRequest.ReceivedBy = Joo da Silva; bookingRequest.PaxResidentCountry = "BR"; bookingRequest.CommitAction = CommitAction.CommitRetrieve; bookingRequest.BookingComments = new BookingComment[1]; bookingRequest.BookingComments[0] = new BookingComment();

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


bookingRequest.BookingComments[0].CommentText = "Sample created using Web API"; bookingRequest.BookingComments[0].CommentType = CommentType.Default;

bookingRequest.BookingContacts = new BookingContact[1]; bookingRequest.BookingContacts[0] = new BookingContact(); bookingRequest.BookingContacts[0].TypeCode = "72"; // decimal for "H"; bookingRequest.BookingContacts[0].AddressLine1 = "123 Rua Principal"; bookingRequest.BookingContacts[0].City = "So Paulo"; bookingRequest.BookingContacts[0].PostalCode = "06056-010"; bookingRequest.BookingContacts[0].CountryCode = "BR";

bookingRequest.Payments = new Payment[1]; bookingRequest.Payments[0] = new ExternalAccountPayment(); bookingRequest.Payments[0].PaymentMethodType = PaymentMethodType.ExternalAccount; bookingRequest.Payments[0].ReferenceType = PaymentReferenceType.Default;

bookingRequest.Payments[0].PaymentMethodCode = "MC"; bookingRequest.Payments[0].CurrencyCode bookingRequest.Payments[0].ChannelType = BRL; = ChannelType.API;

bookingRequest.Payments[0].QuotedCurrencyCode = BRL; bookingRequest.Payments[0].QuotedAmount = sellResponse.BalanceDue; bookingRequest.Payments[0].Status = BookingPaymentStatus.New; bookingRequest.Payments[0].AccountNumber = "5210000010001001"; bookingRequest.Payments[0].Expiration = DateTime.Parse("2007-12-30T00:00:00"); bookingRequest.Payments[0].FundedDate = DateTime.Parse("1800-01-01T00:00:00"); bookingRequest.Payments[0].PaymentText = "MC payment";

bookingRequest.Payments[0].PaymentFields = new PaymentField[3]; bookingRequest.Payments[0].PaymentFields[0] = new PaymentField(); bookingRequest.Payments[0].PaymentFields[0].FieldName = "CC::VerificationCode"; bookingRequest.Payments[0].PaymentFields[0].FieldValue = "998";

bookingRequest.Payments[0].PaymentFields[1] = new PaymentField(); bookingRequest.Payments[0].PaymentFields[1].FieldName = "CC:AccountHolderName"; bookingRequest.Payments[0].PaymentFields[1].FieldValue = Joo da Silva;

bookingRequest.Payments[0].PaymentFields[2] = new PaymentField(); bookingRequest.Payments[0].PaymentFields[2].FieldName = "Avs::PostalCode"; bookingRequest.Payments[0].PaymentFields[2].FieldValue = "84121";

bookingRequest.BookingPassengers = new BookingPassenger[2]; bookingRequest.BookingPassengers[0] = new BookingPassenger(); bookingRequest.BookingPassengers[0].Name = new Name(); bookingRequest.BookingPassengers[0].CustomerNumber = "6500000022"; bookingRequest.BookingPassengers[0].Name.FirstName = "Joo"; bookingRequest.BookingPassengers[0].Name.MiddleName = "da";

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


bookingRequest.BookingPassengers[0].Name.LastName = "Silva"; bookingRequest.BookingPassengers[0].PaxPriceType = new PaxPriceType(); bookingRequest.BookingPassengers[0].PaxPriceType.PaxType = "ADT"; bookingRequest.BookingPassengers[0].PaxPriceType.PaxDiscountCode = null;

bookingRequest.BookingPassengers[1] = new BookingPassenger(); bookingRequest.BookingPassengers[1].Name = new Name(); bookingRequest.BookingPassengers[1].Name.FirstName = "Joo"; bookingRequest.BookingPassengers[1].Name.MiddleName = "da"; bookingRequest.BookingPassengers[1].Name.LastName = "Silva";

bookingRequest.BookingPassengers[1].PaxPriceType = new PaxPriceType(); bookingRequest.BookingPassengers[1].PaxPriceType.PaxType = "ADT"; bookingRequest.BookingPassengers[1].PaxPriceType.PaxDiscountCode = null;

BookingCommitResponse br = bookingAPI.Commit(sessionContext, bookingRequest);

Console.WriteLine("Booking Committed, RECLOC = {0}, total = {1:C}", br.RecordLocator, br.TotalCost);

Fluxograma do Processo de Agendamento (Tarefas Iniciais)

No existe

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Existe

Utilizar uma instncia de SessionManagerClientSoap

Adicionar informaes ao passageiro

Reservar lugar

Definir preo do itinerrio (Opcional)

Obter Disponibilidade (Opcional)

Vender SSR (Opcional)

Vender Taxa de Servio

Finalizar Reserva

Fim

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

TAREFAS DE RECUPERAO
Encontrar um Agendamento (FindBooking)
FindingBooking fornece um mecanismo de consulta para recuperao de agendamentos que correspondam ao critrio de pesquisa. Veja a documentao Object Reference.chm no mtodo BookingManagerClient.FindBooking para mais detalhes. Para encontrar um agendamento, faa o seguinte: Recupere uma lista de agendamentos que corresponda ao critrio de pesquisa especificado na solicitao.

SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SkyChannel.FindBookingRequest searchCriteria = new FindBookingRequest(); searchCriteria.LastName = "Silva"; searchCriteria.FirstName = new SearchString(); searchCriteria.FirstName.Value = "Joo"; searchCriteria.FirstName.SearchType = SearchType.StartsWith; FindBookingResponse bookingResponse = bookingAPI.FindBooking(sessionContext, searchCriteria); Console.WriteLine("{0} bookings found", bookingResponse.FindList.Length); if(bookingResponse.FindList.Length > 0) { Console.WriteLine("First record locator = " + bookingResponse.FindList[0].RecordLocator); }

Nota: A data do vo no pode ser utilizada sozinha para pesquisar por agendamentos. Outra chave de informao deve ser informada. Os argumentos primrios de pesquisa que podem ser utilizados incluem os seguintes: Name AgentName AgentID ContactCustomerNumber ContacOnly CreditCard CustomerNumber Email OrganizationCode PhoneNumber RecordLocator

Os campos do vo na solicitao so somente utilizados para reduzir os resultados retornados de uma solicitao. Por exemplo, se FindingBooking utilizado e um LastName fornecido pode corresponder a mltiplos PNRs. Informaes de vo podem ser utilizadas para reduzir a lista para uma data e vo especfico.

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


Fluxograma para FindBooking:

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext Instanciar BookingManagerClientSoap Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar FindBooking

Instanciar e popular FindBookingRequest

Obtendo Agendamento
Uma forma simples de obter um agendamento fornecer a sesso do contexto e um localizador. Isto substitui o estado do agendamento com o agendamento retornado. Para obter um agendamento existente, recupere um agendamento pelo localizador.
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); Booking booking = bookingAPI.GetBooking(sessionContext, recloc);

Fluxograma do GetBooking

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap Fim Chamar GetBooking

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

GetBookingByBookingID
Recupera um agendamento especfico identificado por seu BookingID. Isto substitui o estado do agendamento com o agendamento retornado. Para obter um agendamento existente, voc pode recuper-lo pelo BookingID.
long bookingID = 2044; bool retrieveFromArchive = false; Booking booking = bookingAPI.GetBookingByBookingID(sessionContext, bookingID, retrieveFromArchive); Console.WriteLine("retrieved record locator = " + booking.RecordLocator);

Fluxograma do GetBookingByBookingID

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar GetBookingByBookingID

Definir retrieveFromArchive

Obter bookingID

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

GetBookingWithHistory
Recupera um agendamento especfico identificado por seu Localizador. Se encontrado os resultados incluem o histrico do agendamento. Ateno: Isto no atualiza o estado do agendamento. Para obter um agendamento existente com histrico, identificar o agendamento pelo localizador.
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SkyChannel.GetBookingRequest getBookingRequest = new GetBookingRequest(); getBookingRequest.RecordLocator = RECLOC; getBookingRequest.IncludeBookingHistory = true; Booking booking = bookingAPI.GetBookingWithHistory(sessionContext, getBookingRequest);

Fluxograma do GetBookingWithHistory

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar GetBookingWithHistory

Instanciar e preencher GetBookingRequest

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

GetRecordLocatorList
Recupera uma lista de localizadores para uma data especfica e uma faixa de nmero de vo.
BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); RecordLocatorListRequest rlRequest = new RecordLocatorListRequest(); rlRequest.CarrierCode = "AD"; rlRequest.DepartureDate = new DateTime(2007, 02, 15); rlRequest.EndFlightNumber = "1115"; rlRequest.StartFlightNumber = "1115"; rlRequest.Initial = true; RecordLocatorListResponse rlResponse = bookingAPI.GetRecordLocatorList(sessionContext, rlRequest); if (rlResponse.RecordLocators[0] != null) { Console.WriteLine("First record locator is " + rlResponse.RecordLocators[0].ToString()); }

Fluxograma do GetRecordLocatorList

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar GetRecordLocatorList e atribu-lo a um RecordLocatorListResponse

Instanciar e preencher RecordLocatorListRequest

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

GetSeatAvailability
Contem um AircraftConfiguration totalmente preenchido especificando o estado combinado de SeatAvailability de cada assento em cada cabine para o vo especificado entre a partida especificada e as estaes de chegada. Esteja ciente que GetSeatAvailability sensvel aos contedos do estado atual. Se o estado preenchido com dados do agendamento, a solicitao do assento deve referenciar os vos no estado, seno a solicitao no retornar assentos na resposta do SeatAvailability. O uso do GetSeatAvailability depende de como voc pretende atribuir assentos. O campo SeatAssingmentMode determina como a solicitao de disponibilidade ser tratada. Se os assentos so atribudos antes do checkin ento defina o SeatAssignmentMode como CheckIn. Se os assentos so previamente associados antes do checkin ento defina o SeatAssignmentMode como PreSeatAssignment e garanta que os dados do estado do agendamento esto consistentes solicitando GetSeatAvailability. Caso contrrio, os assentos no sero retornados.
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SkyChannel.BookingRequest bookingRequest = new BookingRequest(); SkyChannel.Booking booking = bookingAPI.GetBooking(sessionContext, recordLocator); SeatAvailabilityRequest seatAvailabilityRequest = new SeatAvailabilityRequest(); seatAvailabilityRequest.FlightDesignator = new FlightDesignator(); seatAvailabilityRequest.FlightDesignator = booking.JourneyServices[0].Segments[0].Legs[0].FlightDesignator; seatAvailabilityRequest.DepartureStation = booking.JourneyServices[0].Segments[0].DepartureStation; seatAvailabilityRequest.ArrivalStation = booking.JourneyServices[0].Segments[0].ArrivalStation; seatAvailabilityRequest.STD = booking.JourneyServices[0].Segments[0].STD; seatAvailabilityRequest.SeatAssignmentMode = SeatAssignmentMode.PreSeatAssignment; seatAvailabilityRequest.IncludeSeatFees = false; seatAvailabilityRequest.IncludeSSRSeatMapCode = false; SeatAvailabilityResponse seatAvailResponse = bookingAPI.GetSeatAvailability(sessionContext, seatAvailabilityRequest);

Fluxograma do GetSeatAvailability

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar GetSeatAvailability

Instanciar e preencher SeatAvailabilityRequest

Obter um Booking atravs da chamada do GetBooking

Instanciar BookingRequest

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

GetSSRAvailability
Retorna todo o conjunto de SSR disponveis no trecho especificado. Para uma dada lista de trechos, ele retorna uma lista com todo o conjunto de SSR disponvel em pelo menos um dos trechos. Obter os SSR disponveis por trecho, segmentos ou tudo, est controlado pelo campo SSRCollectionsMode na requisio de disponibilidade. (No afeta o estado)
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SSRAvailabilityRequest SSRAvailRequest = new SSRAvailabilityRequest(); SSRAvailRequest.SSRCollectionsMode = SSRCollectionsMode.All; SSRAvailRequest.InventoryLegKeys = new InventoryLegKey[1]; SSRAvailRequest.InventoryLegKeys[0] = new InventoryLegKey(); SSRAvailRequest.InventoryLegKeys[0].DepartureDate = availResponse.Schedule[0].DepartureDate; SSRAvailRequest.InventoryLegKeys[0].ArrivalStation = availResponse.Schedule[0].Journeys[0].Segments[0].ArrivalStation; SSRAvailRequest.InventoryLegKeys[0].DepartureStation = availResponse.Schedule[0].Journeys[0].Segments[0].DepartureStation; SSRAvailRequest.InventoryLegKeys[0].FlightNumber = availResponse.Schedule[0].Journeys[0].Segments[0].FlightDesignator.FlightNumber; SSRAvailRequest.InventoryLegKeys[0].CarrierCode = availResponse.Schedule[0].Journeys[0].Segments[0].FlightDesignator.CarrierCode; SSRAvailabilityResponse saResponse = bookingAPI.GetSSRAvailability(sessionContext, SSRAvailRequest);

Fluxograma do GetSSRAvailability

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar GetSSRAvailability

Instanciar e preencher SSRAvailabilityRequest

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Recuperando um agendamento
Um agendamento pode ser recuperado de vrias formas. FindBooking prov um mtodo para pesquisar por agendamentos baseados nos dados da consulta fornecida na requisio. O servio GetBooking recupera agendamentos baseado nos dados de um identificador especfico de um agendamento. Recuperar um agendamento atualiza o estado do agendamento atual com os dados do agendamento recuperado.

Recuperando agendamentos do arquivo A nica forma de obter um agendamento completo de um arquivo utilizando:
GetBookingByBookngID(bookingID, SearchArchive);

Encontrar um agendamento num arquivo pesquisando por PNR: 1. Faa um FindBooking por PNR e defina a flag SearchArchive como true. 2. Obtenha o BookingID do FindBookingList retornado e faa um GetBookingByBookingID.

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

ALTERAR TAREFAS
Adicionar pagamentos a uma reserva

Adicionar Pagamento a um agendamento - Exemplo


ExternalAccountPayment pmt = null; //Create an instance of BookingManagerClientSoap BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); Booking booking = bookingAPI.GetBooking(sessionContext, "C8MTTD"); // DCC and TDS only apply to external payments. ExternalAccountPayment payment = new ExternalAccountPayment(); payment.Status = BookingPaymentStatus.New; payment.PaymentMethodType = PaymentMethodType.ExternalAccount; payment.ReferenceType = PaymentReferenceType.Default; payment.PaymentMethodCode = "MC"; payment.CurrencyCode = BRL; payment.ChannelType = ChannelType.API; payment.QuotedCurrencyCode = BRL; payment.QuotedAmount = 78.23M; payment.Status = BookingPaymentStatus.New; payment.AccountNumber = "5210000010001001"; payment.Expiration = DateTime.Parse("2007-12-30T00:00:00"); payment.FundedDate = DateTime.Parse("1800-01-01T00:00:00"); payment.PaymentText = "MC payment"; payment.PaymentFields = new PaymentField[2]; payment.PaymentFields[0] = new PaymentField(); payment.PaymentFields[0].FieldName = "CC::VerificationCode"; payment.PaymentFields[0].FieldValue = "998"; payment.PaymentFields[1] = new PaymentField(); payment.PaymentFields[1].FieldName = "CC::AccountHolderName"; payment.PaymentFields[1].FieldValue = Joo da Silva; // DCC backward compatibility // any value other than string.empty will enable // the following 2.0.1 DCC/TDS processing payment.ValidationDCCPutInState = "EnableNewDccTds"; bool waiveFee = false; BookingPaymentResponse paymentResponse; paymentResponse = bookingAPI.AddPaymentToBooking(sessionContext, payment, waiveFee); bool DCCSupported = false; if (paymentResponse.ValidationErrors.Length > 0) { Console.WriteLine("Payment validation failed"); return pmt; } pmt = (ExternalAccountPayment)paymentResponse.NewPayment; // note: if SkyPay configured without DCC or TDS this will always be true if (pmt.PaymentAddedToState) { return pmt; } if (pmt.ValidationDCCApplicable) { // there is a DCC offer // if there is a DCC Offer the application // must call one of the following // 1. AcceptDCCOffer // 2. RejectDCCOffer // 3. DCCNotOffered

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


// if { // // the application determines if DCC is supported (DCCSupported) the application will either accept or reject the offer in this case accept the offer bookingAPI.AcceptDCCOffer(sessionContext, pmt);

} else { // or DCC is not supported by the application bookingAPI.DCCNotOffered(sessionContext, pmt); } // add the updated payment to booking state bookingAPI.AddPaymentToBooking(sessionContext, pmt, waiveFee); if (paymentResponse.ValidationErrors.Length > 0) { Console.WriteLine("Payment validation failed"); return pmt; } // note: if TDS is applicatble the payment will not be in state if (pmt.PaymentAddedToState) { // commit is used to update the PNR in the Database return pmt; } } if (pmt.ValidationTDSApplicable) { Console.WriteLine("Use URL to redirect to Verified by Visa web site"); Console.WriteLine(pmt.ValidationTDSAcsURL.ToString()); // save the PaRes returned in the post back from the TDS site String postBack_paRes = String.Empty; pmt.ValidationTDSPaRes = postBack_paRes; // add the updated payment to booking state bookingAPI.AddPaymentToBooking(sessionContext, pmt, waiveFee); if (paymentResponse.ValidationErrors.Length > 0) { Console.WriteLine("Payment validation failed"); return pmt; } if (pmt.PaymentAddedToState) { // commit is used to update the PNR in the Database return pmt; } Console.WriteLine("TDS request did not validate"); } else { Console.WriteLine("Error payment not in state"); }

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Adicionar pagamento a um agendamento - Fluxograma


Adicionar pagamento a um Agendamento A

Erros de Validao

Erro

TDS aplicvel

Erro. Pmt no est no estado

Pagamento adicionado ao estado

Se DCC/TDS no configurado ento o pagamento estar no estado

Cliente usa TDS URL para redirecionar para Verified do site Visa

DCC aplicvel

Inserir token retornado no ValidationTDSPaRes

Cliente suporta DCC

Chamar DCCNotOferred

Adicionar pagamento ao agendamento

Chamar AcceptDCCOffer Ou RejectDCCOffer

Erros de validao

Erro

Adicionar pagamento ao Agendamento

Pagamento adicionado ao estado

Requisio do TDS no validado

Erros de validao

Erro

Adio de pagamento concluda. Retornar

Pagamento adicionado ao Estado

Adio de pagamento concluda. Retornar

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Adicionar pagamento utilizando AddPaymentToBooking


Pagamentos podem ser adicionado a um agendamento utilizando o mtodo AddPaymentToBooking. Este mtodo adiciona um pagamento ao estado do agendamento. Aps ser adicionado o pagamento ao estado do agendamento o Commit deve ser utilizado para gravar o agendamento no banco de dados. O Fluxograma apresentado em Adicionar pagamento a um agendamento - Fluxograma e o seguinte exemplo de cdigo mostram como utilizar o AddPaymentToBooking juntamente com Dynamic Currency Conversion (DCC) e 3D Secure (TDS). Quando DCC ou TDS so utilizados, chamadas mltiplas para AddPaymentToBooking so necessrias. Para cada chamada ao AddPaymentToBooking a propriedade PaymentAddedToState utilizada para determinar se mais passos so necessrios para completar a adio do pagamento. Uma vez que a propriedade seja true o Commit utilizado para gravar o agendamento no banco de dados. A primeira chamada ao AddPaymentToBooking suceder e o pagamento ser adicionado ao estado se nem DCC ou TDS for aplicado ao pagamento. Se o pagamento no estiver no estado ento uma verificao deve ser realizada para determinar se o processamento do DCC deve ser executado. Se estiver, a aplicao determina se deve ou no utilizar a oferta do DCC presente no pagamento retornado por AddPaymentToBooking. A aplicao deve chamar DCCNotOffered, AcceptDCCOffer ou RejectDCCOffer para atualizar o pagamento e ento AddPaymentToBooking chamado para atualizar o pagamento. A aplicao ento verifica a propriedade PaymentAddedToState para determinar se TDS se aplica. Se o pagamento estiver no estado ento a adio do pagamento est completa. Se o pagamento no est no estado ento o processamento do TDS deve ser realizado. A aplicao utiliza a URL do TDS fornecida no objeto de pagamento retornado pela chamada anterior ao AddPaymentToBooking, para redirecion-lo para o Verified do site Visa. Em cima do retorno, a aplicao insere o token de autorizao na propriedade ValidationTDSPaRes. Ento AddPaymentToBooking chamado pela ltima vez para tentar atualizar o pagamento do estado do agendamento. Se o pagamento for adicionado ao estado do agendamento, o pagamento est completo e Commit chamado para gravar o agendamento no banco de dados. Se no a verificao no foi bem sucedida. DCC e TDS so somente aplicveis para ExternalAccountPayments. Se outro tipo de pagamento for adicionado ao agendamento, somente o primeiro passo realizado. Nota: Para compatibilidade inversa, os seguintes controles de campo como o DCC so processados:
payment.ValidationDCCPutInState = "EnableDccTds";

Qualquer valor diferente de uma string vazia habilitar o processamento do DCC/TDS: ValidationDCCPutInState Determina a forma com a qual o DCC ser processado. Se ele for definido com uma string vazia, seu comportamento corresponde s verses anteriores a 2.0.1 na qual as ofertas do DCC so automaticamente adicionadas ao estado do agendamento e tem que ser explicitamente rejeitado. Se ele estiver definido com outro valor o novo processo habilitado como descrito em Adicionar pagamento a um agendamento - Fluxograma.

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Adicionando pagamento com Commit


Nota: Nas verses 2.0 e posteriores crtico que no sejam preenchidos os seguintes campos de moeda: NominalPaymentAmount CollectedAmount CurrencyCode CollectedCurrencyCode

Somente os seguintes campos de moeda devem ser preenchidos: QuotedAmount QuotedCurrencyCode

Pagamentos so adicionados a um agendamento existente fazendo uso do mtodo Commit. O agendamento deve existir no estado do agendamento antes que um pagamento seja adicionado a ele ou ocorrero erros inesperados. Quando voc criar um pagamento, seu tipo determinado pelo construtor que foi utilizado. No exemplo que segue ele um PrePaidPayment. A propriedade PaymenteMethodType deve tambm ser definida como PrePaid. Se os dados do pagamento no foram fornecidos no formato correto, a seguinte exceo lanada: "New payments associated with the booking did not pass validation." Os campos de pagamento tambm podem causar erros de validao. Os campos de pagamento so definidos no Sky Utilities, associados ao mtodo de pagamento e definidos como obrigatrio para ser fornecido na solicitao de pagamento, se no o pagamento no passar na validao. Os seguintes campos so obrigatrios para um pagamento: PaymentMethodType (deve corresponder ao tipo de pagamento) CurrencyCode QuotedAmount QuotedCurrencyCode Status PaymentReference ChannelType FundedDate

Outros campos dependem do tipo de pagamento que est sendo utilizado. Quando preencher um pagamento, esteja ciente do seguinte: PaymentReference deve ser definido como Default. ChannelType deve ser definido como API. FundedDate deve ser definido com valor maior que 1800-01-01T00:00:00. Qualquer PaymentFields definido para o mtodo de pagamento no Sky Utilities deve ser preenchido.

A menos que mltiplas moedas estejam sendo utilizadas, preencha somente o seguinte:

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


CurrencyCode QuotedCurrencyCode QuotedAmount

Os tipos de pagamento suportados so: AgencyAccount CustomerAccount ExternalAccount PrePaid Voucher

SkyChannel.BookingManagerClientSoap bookingAPI SkyChannel.BookingRequest bookingRequest bookingRequest.RecordLocator bookingRequest.CurrencyCode bookingRequest.ReceivedBy bookingRequest.CommitAction

= = = =

= new BookingManagerClientSoap(); = new BookingRequest(); recordLocator; BRL; Joo da Silva; CommitAction.CommitRetrieve;

// create new payment and populate payment fields bookingRequest.Payments = new Payment[1]; bookingRequest.Payments[0] = new PrePaidPayment(); bookingRequest.Payments[0].Status = BookingPaymentStatus.New; bookingRequest.Payments[0].PaymentMethodType = PaymentMethodType.PrePaid; bookingRequest.Payments[0].ReferenceType = PaymentReferenceType.Default; bookingRequest.Payments[0].PaymentMethodCode = "CA"; bookingRequest.Payments[0].CurrencyCode = BRL bookingRequest.Payments[0].ChannelType = ChannelType.API; bookingRequest.Payments[0].QuotedCurrencyCode = BRL; bookingRequest.Payments[0].QuotedAmount = 76.00M; bookingRequest.Payments[0].AuthorizationStatus = AuthorizationStatus.Approved; bookingRequest.Payments[0].AccountNumber = "CASH"; bookingRequest.Payments[0].Expiration = DateTime.Parse("2006-08-26T00:00:00"); bookingRequest.Payments[0].FundedDate = DateTime.Parse("2006-08-25T00:00:00"); bookingRequest.Payments[0].PaymentText = "Cash Text"; // Commit booking to save changes to the database BookingCommitResponse br = bookingAPI.Commit(sessionContext, bookingRequest);

Fluxograma para adicionar um pagamento com Commit.

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar o Commit

Preencher o novo pagamento

Criar um novo pagamento

Instanciar e preencher BookingRequest

Alterar Tarefas

Aceitar alteraes do Horrio


Este mtodo aceita alteraes do horrio realizadas para os segmentos de um agendamento. Existem 2 formas de utilizar este mtodo: Definir a flag AcceptAllChanges para true. Isto indica que todos os segmentos para todos os passageiros neste agendamento foram aceitos. Defina a flag AcceptAllChanges para false. Adiciona um Segment para cada segmento aceito. Isto diz que este segmento foi aceito para todos os passageiros.

O AcceptChangesRequest tambm tem 2 queue codes (CurrentQueueCode e ErrorQueueCode). Ambos so opcionais. Se o CurrentQueueCode for definido ele tenta remover o agendamento desta fila. Se o CurrentQueueCode for vazio ele no faz nada. Se ErrorQueueCode for definido e um erro ocorrer, ento o agendamento colocado na fila definida pelo ErrorQueueCode. Atualmente, existe somente um erro possvel. Se um ou mais dos segmentos dados no puder encontrar um correspondente no agendamento, ento um resultar num erro. Se ErrorQueueCode for vazio e um erro ocorrer, nada feito. Se CurrentQueueCode e ErrorQueueCode forem definidos com a mesma fila e ocorrer um erro, o agendamento retido na mesma fila.
//Create an instance of BookingManagerClientSoap BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); AcceptChangesRequest request = new AcceptChangesRequest(); request.AcceptAllChanges = true; request.RecordLocator = "Y1KB2L"; request.Segments = GetAvailability(sessionContext).Schedule[0].Journeys[0].Segments; bookingAPI.AcceptScheduleChanges(sessionContext, request);

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


Fluxograma para aceitar alteraes de Horrio
Instanciar SessionManagerClientSoap Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar AcceptScheduleChanges

Obter segmentos atravs de GetAvailability

Instanciar e preencher AcceptChangesRequest

Adicionar comentrios reserva


Existem 2 formas para adicionar comentrios a um agendamento existente. O primeiro por incluso de comentrios no Commit, a outra utilizar o mtodo AddBookingComments. Seguem os exemplos de cada um. Adicionar comentrios utilizando Commit
SkyChannel.BookingManagerClientSoap bookingAPI SkyChannel.BookingRequest bookingRequest bookingRequest.BookingComments bookingRequest.BookingComments[0] bookingRequest.BookingComments[0].State bookingRequest.BookingComments[0].CommentText bookingRequest.BookingComments[0].CommentType bookingRequest.BookingComments[0].CreatedAgentID // Commit booking to save changes to the database = = = = = = = = new BookingManagerClientSoap(); new BookingRequest(); new BookingComment[1]; new BookingComment(); MessageState.New; "Added Cash Payment"; CommentType.Default; 7;

Fluxograma para adicionar comentrios reserva

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar Commit

Instanciar e preencher BookingComments

Instanciar e preencher BookingRequest

Adicionar comentrios utilizando o mtodo AddBookingComments Nota: AddBookingComments no precisa de um Booking carregado no State Booking. Ele pode ser usado sem alterar o State Booking.

SkyChannelAPI.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); BookingComment[] bookingComments = new BookingComment[2]; bookingComments[0] = new BookingComment(); bookingComments[0].CommentText = "Line 1 Added Comment from Web API"; bookingComments[0].CommentType = CommentType.Default; bookingComments[1] = new BookingComment(); bookingComments[1].CommentText = "Line 2 Added Comment from Web API"; bookingComments[1].CommentType = CommentType.Default; bookingAPI.AddBookingComments(sessionContext, recordLocator, bookingComments);

Fluxograma para adicionar comentrios utilizando AddBookingComments.

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar AddBookingComments

Instanciar e preencher BookingComment

Adicionar Detalhes para Menores de idade


Adiciona um Infant SSR para um passageiro. Perceba que o passageiro tem que estar includo num agendamento ou os dados do menor no sero associados corretamente.
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SkyChannel.BookingRequest bookingRequest = new BookingRequest(); SkyChannel.Booking booking = bookingAPI.GetBooking(sessionContext, recordLocator); // Sell Infant SSR to passenger SkyChannel.SellSSRRequest sellSsrReques = new SellSSRRequest(); sellSsrRequest.SSRRequests = new SSRRequest[1]; sellSsrRequest.SSRRequests[0] = new SSRRequest(); sellSsrRequest.SSRRequests[0].ActionStatusCode = "NN"; sellSsrRequest.SSRRequests[0].SSRCode = "INF1"; sellSsrRequest.SSRRequests[0].SSRNumber = 0; sellSsrRequest.SSRRequests[0].STD = booking.JourneyServices[0].Segments[0].STD; sellSsrRequest.SSRRequests[0].FlightDesignator = new FlightDesignator(); sellSsrRequest.SSRRequests[0].FlightDesignator = booking.JourneyServices[0].Segments[0].Legs[0].FlightDesignator; sellSsrRequest.SSRRequests[0].DepartureStation = booking.JourneyServices[0].Segments[0].DepartureStation; sellSsrRequest.SSRRequests[0].ArrivalStation = booking.JourneyServices[0].Segments[0].ArrivalStation; sellSsrRequest.SSRRequests[0].PassengerNumber = 0; SkyChannel.SellSSRResponse sellSsrResponse = bookingAPI.SellSSR(sessionContext, sellSsrRequest); System.Console.WriteLine("Total Cost {0:C}", sellSsrResponse.TotalCost); bookingRequest.RecordLocator bookingRequest.CurrencyCode bookingRequest.ReceivedBy bookingRequest.CommitAction = = = = recordLocator; BRL; Joo da Silva; CommitAction.CommitRetrieve;

Adiciona Informao de identificao do menor para um passageiro existente.


// identify passenger to update bookingRequest.BookingPassengers = booking.BookingPassengers; // create travel document objects bookingRequest.BookingPassengers[0].PassengerInfant = new PassengerInfant(); // add infant information to passenger

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


bookingRequest.BookingPassengers[0].PassengerInfant.State = MessageState.New; bookingRequest.BookingPassengers[0].PassengerInfant.Name = new Name(); bookingRequest.BookingPassengers[0].PassengerInfant.Name.FirstName = "Joo"; bookingRequest.BookingPassengers[0].PassengerInfant.Name.LastName = "Silva"; bookingRequest.BookingPassengers[0].PassengerInfant.Gender = Gender.Male; bookingRequest.BookingPassengers[0].PassengerInfant.DOB = DateTime.Parse("2005-08-13T00:00:00"); bookingRequest.BookingPassengers[0].Infant = true; // Commit booking to save changes to the database BookingCommitResponse br = bookingAPI.Commit(sessionContext, bookingRequest);

Fluxograma para adicionar detalhes a menores de idade.

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Chamar SellSSR e atribuir a um SellSSRResponse

Instanciar e preencher SellSSRRequest

Chamar GetBooking

Instanciar BookingRequest

Configurar o BookingRequest com as informaes do passageiro

Instaciar e preencher um PassengerInfant. Atribu-lo ao BookingRequest

Chamar Commit

Fim

Adicionar detalhes do documento de viagem


SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SkyChannel.BookingRequest bookingRequest = new BookingRequest(); SkyChannel.Booking booking = bookingAPI.GetBooking(sessionContext, recordLocator); bookingRequest.RecordLocator bookingRequest.CurrencyCode bookingRequest.ReceivedBy bookingRequest.CommitAction // identify passenger to update bookingRequest.BookingPassengers = = = = recordLocator; BRL; Joo da Silva; CommitAction.CommitRetrieve;

= booking.BookingPassengers;

// create travel document objects bookingRequest.BookingPassengers[0].PassengerTravelDocs = new PassengerTravelDoc[1]; bookingRequest.BookingPassengers[0].PassengerTravelDocs[0] = new PassengerTravelDoc(); bookingRequest.BookingPassengers[0].PassengerTravelDocs = new PassengerTravelDoc[1]; bookingRequest.BookingPassengers[0].PassengerTravelDocs[0] = new PassengerTravelDoc();

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


// populate travel document data and add to passenger bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].State = MessageState.New; bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].Name = new Name(); bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].Name.FirstName = "Joo"; bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].Name.MiddleName = "da"; bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].Name.LastName = "Silva"; bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].DocNumber = "898902"; bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].DOB = DateTime.Parse ("1985-08-13T00:00:00"); bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].DocTypeCode = "P"; bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].CreatedDate = DateTime.Parse("2000-0401T00:00:00"); bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].ExpirationDate = DateTime.Parse("2010-0401T00:00:00"); bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].IssuedByCode = "BR"; bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].ModifiedAgentID = 7; bookingRequest.BookingPassengers[0].PassengerTravelDocs[0].CreatedAgentID = 7; // Commit the booking to save changes to the database BookingCommitResponse br = bookingAPI.Commit(sessionContext, bookingRequest);

Fluxograma para adicionar detalhes ao documento de viagem.

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Instanciar BookingRequest

Fim

Chamar Commit

Criar e preencher PassengerTravelDoc

Identificar os passageiros que sero atualizados

Chamar GetBooking

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Adicionar / Cancelar taxas numa reserva


Venda de Taxa de Servio Isto vende uma taxa de servio e a aplica no agendamento do estado atual (atualiza o estado atual com os dados fornecidos no SellServiceFeeRequest).
SkyChannel.BookingManagerClientSoap bookingAPI SellServiceFeeRequest feeRequest feeRequest.PassengerNumber feeRequest.FeeCode feeRequest.CollectedCurrencyCode feeRequest.Note = new BookingManagerClientSoap(); = new SellServiceFeeRequest(); = 0; = "CMF"; = BRL; = "API added Service Fee";

BookingResponse br = bookingAPI.SellServiceFee(sessionContext, feeRequest);

Fluxograma para adicionar taxas a uma reserva.

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar SellServiceFee

Instanciar e preencher SellServiceFeeRequest

Cancelar Taxa Isto cancela um preo de taxa de servio incluindo um objeto adicional PassenderFee como o ajuste que contem uma taxa negativa e impostos negativos na taxa (atualiza o estado atual com os dados fornecidos no SellServiceFeeRequest).
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); Booking booking = bookingAPI.GetBooking(sessionContext, recordLocator); FeeRequest cancelFeeRequest = new FeeRequest(); cancelFeeRequest.PassengerNumber = 0; cancelFeeRequest.NetAmount = booking.BookingPassengers[0].PassengerFees[0].ServiceCharges[0].Amount; cancelFeeRequest.NetAmount = cancelFeeRequest.NetAmount * -1; cancelFeeRequest.FeeNumber = booking.BookingPassengers[0].PassengerFees[0].FeeNumber; BookingResponse cFeeBr = bookingAPI.CancelFee(sessionContext, cancelFeeRequest);

Fluxograma para Cancelar uma taxa de uma reserva.

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar CancelFee

Instanciar e configurar FeeRequest

Chamar GetBooking

Adicionar / Alterar atribuio de assentos


Nota: Quando se atribui um assento atravs do mtodo AssignSeats para um agendamento, o agendamento deve existir no estado do agendamento ou erros inesperados ocorrero. Os valores utilizados para o campo SeatAssignmentMode so determinados quando as atribuies de assento so feitas. Para um agendamento, utilize o valor PreSeatAssignment, para checkin utilize o valor CheckIn. Se um agendamento est no estado o valor AutoDetermine pode ser utilizado.

Obter Disponibilidade de Assento Tenha cincia de que GetSeatAvailability sensvel ao contedo do estado de agendamento atual. Se o estado do agendamento preenchido com os dados do agendamento, a solicitao do assento deve referir aos vos do estado, se a solicitao no retornar assentos no SeatAvailabilityResponse. O uso do GetSeatAvailability depende de como se pretende atribuir os assentos. O campo SeatAssignmentMode determina como a requisio de disponibilidade ser tratada. Se os assentos so atribudos no check-in ento defina o SeatAssignmentMode para CheckIn. Se os assentos so prefixados antes do check-in, ento defina o SeatAssignmentMode para PreSeatAssignment e garanta que o estado do agendamento esteja consistente com a solicitao do GetSeatAvailabilit, seno os assentos no sero retornados. Similarmente, atribuir assentos sensvel ao estado do agendamento, a configurao para SeatAssignmentMode e a presena do localizador no SellSeatRequest. Uma forma de determinar quais os dados a fornecer basear-se na tarefa que est sendo realizada. Se a tarefa est relacionada ao agendamento, ento o mtodo stateful utilizado. A SellSeatRequest contem um campo para RecordLocator e outro para SeatAssignmentMode. As configuraes destes campos determinam como os assentos so atribudos. Se um agendamento est sendo atualizado pelo Commit, o estado do agendamento deve estar preenchido. Para fazer assim, ajuste o RecordLocator para null e o SeatAssignmentMode para PreSeatAssignment. Se os assentos esto sendo atribudos pelo check-in ento o estado

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


do agendamento utilizado; ajuste o RecordLocator para o localizador do agendamento desejado e defina SeatAssignmentMode para CheckIn.
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SkyChannel.BookingRequest bookingRequest = new BookingRequest(); SkyChannel.Booking booking = bookingAPI.GetBooking(sessionContext, recordLocator); SeatAvailabilityRequest seatAvailabilityRequest = new SeatAvailabilityRequest(); seatAvailabilityRequest.FlightDesignator = new FlightDesignator(); seatAvailabilityRequest.FlightDesignator = booking.JourneyServices[0].Segments[0].Legs[0].FlightDesignator; seatAvailabilityRequest.DepartureStation = booking.JourneyServices[0].Segments[0].DepartureStation; seatAvailabilityRequest.ArrivalStation = booking.JourneyServices[0].Segments[0].ArrivalStation; seatAvailabilityRequest.STD = booking.JourneyServices[0].Segments[0].STD; seatAvailabilityRequest.SeatAssignmentMode = SeatAssignmentMode.PreSeatAssignment; seatAvailabilityRequest.IncludeSeatFees = false; seatAvailabilityRequest.IncludeSSRSeatMapCode = false; SeatAvailabilityResponse seatAvailResponse = bookingAPI.GetSeatAvailability(sessionContext, seatAvailabilityRequest);

Fluxograma para obter disponibilidade de assentos.

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Instanciar e preencher FlightDesignator

Instanciar e preencher SeatAvailabilityRequest

Chamar GetBooking

Instanciar BookingRequest

Chamar GetSeatAvailability

Fim

Atribuindo um assento
short[] pax = { 1 }; // designate which passenger is being assigned a seat SellSeatRequest seats = new SellSeatRequest(); seats.RecordLocator = recordLocator; seats.SeatAssignmentMode = SeatAssignmentMode.PreSeatAssignment; seats.SeatRequests = new SeatRequest[1]; seats.SeatRequests[0] = new SeatRequest(); seats.SeatRequests[0].SeatPreference = SeatPreference.None; seats.SeatRequests[0].FlightDesignator = new FlightDesignator(); seats.SeatRequests[0].FlightDesignator = booking.JourneyServices[0].Segments[0].Legs[0].FlightDesignator; seats.SeatRequests[0].DepartureStation = booking.JourneyServices[0].Segments[0].DepartureStation;

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

seats.SeatRequests[0].ArrivalStation = booking.JourneyServices[0].Segments[0].ArrivalStation; seats.SeatRequests[0].STD seats.SeatRequests[0].PassengerNumbers seats.BlockType = booking.JourneyServices[0].Segments[0].STD; = pax; = SeatHoldType.None;

if(seatAvailResponse.AircraftConfiguration.AircraftCabins[0].AircraftSeats[0][0].SeatAvailability == SeatAvailability.Open) { seats.SeatRequests[0].Seat = seatAvailResponse.AircraftConfiguration.AircraftCabins[0]. AircraftSeats[0][0].Seat; } SellSeatResponse seatResponse = bookingAPI.AssignSeats(sessionContext, seats);

Fluxograma para atribuio de assentos.

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Atribuir assento ao objeto SellSeatRequest criado

Sim

Assentos disponveis

Instanciar e preencher SellSeatRequest

Definir a que passegeiro deve-se atribuir um assento

Chamar AssignSeats

Fim

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Adicionar / Alterar / Excluir um Segmento de uma reserva


Adicionar um segmento Para adicionar novos segmentos ao estado do agendamento, faa o seguinte: Criar uma instncia do BookingManagerClientSoap para acessar a API.

SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap();

Recuperar o agendamento a ser alterado.

Se o agendamento a ser alterado no est no estado do agendamento ento recupere o agendamento no qual os segmentos sero adicionados. Veja a seo Recuperando Agendamentos.
Booking booking = bookingAPI.GetBooking(sessionContext, recordLocator);

Obter a disponibilidade para recuperar os dados do segmento.

SkyChannel.AvailabilityRequest availabilityRequest = new AvailabilityRequest(); PaxPriceType[] priceTypes = new PaxPriceType[1]; priceTypes[0] = new PaxPriceType(); priceTypes[0].PaxType = "ADT"; availabilityRequest.BeginDate = DateTime.Parse("2006-08-26T00:00:00"); availabilityRequest.EndDate = DateTime.Parse("2006-08-26T00:00:00"); availabilityRequest.ArrivalStation = "JFK"; availabilityRequest.DepartureStation = "SLC"; availabilityRequest.FlightType = FlightType.All; availabilityRequest.CurrencyCode = BRL; availabilityRequest.PaxPriceTypes = priceTypes; availabilityRequest.Dow = DOW.Daily; SkyChannel.AvailabilityResponse availResponse = new AvailabilityResponse(); availResponse = bookingAPI.GetAvailability(sessionContext, availabilityRequest);

Faa uma requisio de venda para atualizar, adicione os segmentos para o estado de agendamento.

SkyChannel.SellRequest sellRequest = new SellRequest(); sellRequest.PriceRequest = new PriceRequest(); sellRequest.PriceRequest.CurrencyCode = BRL sellRequest.PriceRequest.PaxResidentCountry = "BR"; sellRequest.JourneyRequests = new JourneyRequest[1]; sellRequest.JourneyRequests[0] = new JourneyRequest(); sellRequest.JourneyRequests[0].Segments = new SegmentRequest[1]; SegmentRequest[] srSegments = new SegmentRequest[1]; srSegments[0] = new SegmentRequest(); srSegments[0].DepartureStation = availResponse.Schedule[0].Journeys[0].Segments[0].DepartureStation; srSegments[0].STD = availResponse.Schedule[0].Journeys[0].Segments[0].STD; srSegments[0].ArrivalStation = availResponse.Schedule[0].Journeys[0].Segments[0].ArrivalStation; srSegments[0].STA = availResponse.Schedule[0].Journeys[0].Segments[0].STA; srSegments[0].Legs = availResponse.Schedule[0].Journeys[0].Segments[0].Legs; srSegments[0].FlightDesignator = new FlightDesignator(); srSegments[0].FlightDesignator = availResponse.Schedule[0].Journeys[0].Segments[0].Legs[0].FlightDesignator; srSegments[0].ActionStatusCode = "NN"; srSegments[0].PaxCount = 2; srSegments[0].ClassOfService = availResponse.Schedule[0].Journeys[0].Fares[0].ClassOfService; sellRequest.JourneyRequests[0].Segments = srSegments; sellRequest.JourneyRequests[0].CarrierCode = "AD"; sellRequest.JourneyRequests[0].FareBasis = availResponse.Schedule[0].Journeys[0].Fares[0].FareBasis; sellRequest.JourneyRequests[0].RuleNumber = availResponse.Schedule[0].Journeys[0].Fares[0].RuleNumber;

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


SkyChannel.SellResponse sellResponse = bookingAPI.Sell(sessionContext, sellRequest);

Submeta o agendamento para salvar as alteraes no banco de dados.

SkyChannel.BookingRequest bookingRequest = new BookingRequest(); bookingRequest.RecordLocator = recordLocator; bookingRequest.CurrencyCode = BRL; bookingRequest.ReceivedBy = Joo da Silva; bookingRequest.CommitAction = CommitAction.CommitRetrieve; BookingCommitResponse br = bookingAPI.Commit(sessionContext, bookingRequest);

Fluxograma para adicionar um segmento.

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Instanciar AvailabilityResponse

Instanciar e preencher PaxPriceType

Instanciar e preencher AvailabilityRequest

Chamar GetBooking

Chamar GetAvailability

Instanciar e preencher SellRequest

Instanciar e preencher SegmentRequest

Chamar Sell

Instanciar e preencher BookingRequest

Fim

Chamar Commit

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


Cancelar um segmento Para remover uma viagem especifica do estado de agendamento, faa o seguinte: Nota: Se voc utilizar CancelAll, ele requer um agendamento no estado e um Commit aps a chamada. Criar uma instncia do BookingManagerClientSoap para acessar a API.

SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap();

Recuperar o agendamento a ser alterado.

Se o agendamento a ser alterado no estiver no estado do agendamento ento recupere o agendamento no qual os segmentos sero cancelados. Veja a sesso Recuperando Agendamentos.
Booking booking = bookingAPI.GetBooking(sessionContext, recordLocator);

Criar um JourneyRequest para identificar os segmentos a cancelar e chamar o mtodo Cancel.

JourneyRequest journey = new JourneyRequest(); journey.Segments = new Segment[1]; journey.Segments[0] = new Segment(); journey.Segments[0].DepartureStation = booking.JourneyServices[0].Segments[0].DepartureStation; journey.Segments[0].ArrivalStation = booking.JourneyServices[0].Segments[0].ArrivalStation; journey.Segments[0].STD = booking.JourneyServices[0].Segments[0].STD; journey.Segments[0].STA = booking.JourneyServices[0].Segments[0].STA; journey.Segments[0].FlightDesignator = new FlightDesignator(); journey.Segments[0].FlightDesignator = booking.JourneyServices[0].Segments[0].FlightDesignator; CancelResponse cancelResponse = bookingAPI.CancelJourney(sessionContext, journey);

Submeter o agendamento para salvar as alteraes no banco de dados.

SkyChannel.BookingRequest bookingRequest = new BookingRequest(); bookingRequest.RecordLocator = recordLocator; bookingRequest.CurrencyCode = BRL; bookingRequest.ReceivedBy = Joo da Silva; bookingRequest.CommitAction = CommitAction.CommitRetrieve; BookingCommitResponse br = bookingAPI.Commit(sessionContext, bookingRequest);

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


Fluxograma de cancelamento de um segmento.
Instanciar SessionManagerClientSoap Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Instanciar e preencher BookingRequest

Chamar CancelJourney

Instanciar e preencher JourneyRequest

Chamar GetBooking

Chamar Commit

Fim

Cancelando uma SSR


Para cancelar uma SSR, faa o seguinte: Recuperar o agendamento que contenha a SSR a ser cancelada utilizando um dos mtodos descritos em Recuperando Agendamentos. Criar uma CancelSSRRequest e preenche-la com dados identificando as SSRs a serem canceladas. Em seguida, chamar o servio CancelSSR.

SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); CancelSSRRequest cancelSSRs = new CancelSSRRequest(); cancelSSRs.SSRRequests = new SSRRequest[1]; cancelSSRs.SSRRequests[0] = new SSRRequest(); cancelSSRs.SSRRequests[0].ActionStatusCode = "NN"; cancelSSRs.SSRRequests[0].SSRCode = "BIKE"; cancelSSRs.SSRRequests[0].SSRNumber = 0; cancelSSRs.SSRRequests[0].STD = availResponse.Schedule[0].Journeys[0].Segments[0]. STD; cancelSSRs.SSRRequests[0].FlightDesignator = new FlightDesignator(); cancelSSRs.SSRRequests[0].FlightDesignator = availResponse.Schedule[0].Journeys[0].Segments[0].Legs[0].FlightDesignator; cancelSSRs.SSRRequests[0].DepartureStation = availResponse.Schedule[0].Journeys[0].Segments[0].DepartureStation; cancelSSRs.SSRRequests[0].ArrivalStation = availResponse.Schedule[0].Journeys[0].Segments[0].ArrivalStation; cancelSSRs.SSRRequests[0].PassengerNumber = 0; CancelSSRResponse cancelResponse = bookingAPI.CancelSSR(sessionContext, cancelSSRs); // Commit the booking to save changes to the database

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


SkyChannel.BookingRequest bookingRequest = new BookingRequest(); bookingRequest.RecordLocator = recordLocator; bookingRequest.CurrencyCode = BRL; bookingRequest.ReceivedBy = Joo da Silva; bookingRequest.CommitAction = CommitAction.CommitRetrieve; BookingCommitResponse br = bookingAPI.Commit(sessionContext, bookingRequest);

Fluxograma do cancelamento de uma SSR.

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar Commit

Instanciar e preencher BookingRequest

Chamar CancelSSR

Instanciar e preencher CancelSSRRequest

Alterando um agendamento
A fim de mudar um agendamento deve-se recuper-lo primeiro. O servio de alterao opera no agendamento o estado do agendamento atual. Uma vez que o agendamento esteja disponvel para processamento ele pode ser modificado.

Alterar Tarefas - Nota


Sobre o mtodo AssignSeats. Quando atribuir assentos para um agendamento, este deve existir no estado do agendamento ou erros inesperados ocorrero. Os valores utilizados para o campo SeatAssignmentMode so determinados quando as atribuies dos assentos so feitas. Para um agendamento utilize o valor PreSeatAssignment, para um checkin utilize o valor CheckIn. Se o agendamento est no estado o valor AutoDetermine pode ser utilizado.

Copiar uma reserva


No existem APIs especficas para copiar o agendamento. Isto tratado APIs clientes pela recuperao de um agendamento e pela criao de um novo agendamento. Os dados do agendamento original so copiados para o novo

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


utilizando as tarefas descritas em Criar um agendamento. Antes de submeter o novo agendamento o agendamento original deve ser apagado.
skychannel.bookingmanagerclientsoap bookingAPI bookingAPI.Clear(sessionContext); = new BookingManagerClientSoap();

Dividir uma reserva


Mover um ou mais porm, no todos os passageiros de um PNR existente para um novo PNR filho. O resultado como se dividisse um PNR em dois. Pelo menos um passageiro deve restar no PNR original.
SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); DivideRequest divideRequest = new DivideRequest(); divideRequest.SourceRecordLocator = recordLocator; divideRequest.AutoDividePayments = true; divideRequest.PassengerNumbers = new short[1]; divideRequest.PassengerNumbers[0] = 1; divideRequest.OverrideRestrictions = true; divideRequest.ReceivedBy = "ClaudioSilva"; divideRequest.AddComments = true; DivideResponse divideResponse = bookingAPI.Divide(sessionContext, divideRequest); Console.WriteLine("After divide child record locator = " + divideResponse.ChildRecordLocator);

Fluxograma para dividir uma reserva.

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar Divide

Instanciar e preencher DivideRequest

Obter os pagamentos de uma reserva


Os pagamentos podem ser recuperados de um agendamento existente utilizando o mtodo GetBookingPayments. O mtodo retorna um conjunto de objetos Payment associados ao agendamento.
//Create an instance of BookingManagerClientSoap BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); Payment[] payments = bookingAPI.GetBookingPayments(sessionContext, "TBVSFK");

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies

Modificar detalhes do contato


SkyChannel.BookingManagerClientSoap bookingAPI = new BookingManagerClientSoap(); SkyChannel.BookingRequest bookingRequest = new BookingRequest(); SkyChannel.Booking booking = bookingAPI.GetBooking(sessionContext, recordLocator); bookingRequest.RecordLocator = recordLocator; bookingRequest.CurrencyCode = BRL; bookingRequest.ReceivedBy = "Joo da Silva"; bookingRequest.CommitAction = CommitAction.CommitRetrieve; // identify contacts bookingRequest.BookingContacts bookingRequest.BookingContacts[0].State bookingRequest.BookingContacts[0].CompanyName = booking.BookingContacts; = MessageState.New; = "ABC Travel"; bookingRequest);

// Commit booking to save changes to the database BookingCommitResponse br = bookingAPI.Commit(sessionContext,

Fluxograma para modificar detalhes de um contato.

Instanciar SessionManagerClientSoap

Efetuar Logon

Incio

SessionContext

Instanciar BookingManagerClientSoap

Utilizar uma instncia de SessionManagerClientSoap

Fim

Chamar Commit

Instanciar e preencher BookingRequest

Enviar uma reserva para a fila


Veja os seguintes tpicos para informaes de como enviar uma reserva para a fila: Tarefas Iniciais Adicionar um agendamento na fila Tarefas de alterao Excluir um agendamento de um fila ou outra Mover um agendamento de uma fila ou outra Tarefas de recuperao

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

Documentao da API de WebServices NewSkies


Buscando filas de agendamentos

Azul Linhas Areas Brasileiras

WebServices API NewSkies

Verso 1.0

You might also like