Pesquisa e Tarifação no WCF
:::danger SERVIÇO LEGADO / DESCONTINUADO
Esta interface pertence ao serviço WCF legado (AereoNoSession.svc). Ela é mantida exclusivamente para compatibilidade de integrações históricas já em produção.
Novos desenvolvimentos ou novos clientes NÃO DEVEM utilizar este serviço. Todas as novas integrações devem ser desenvolvidas utilizando a WebApiAereo (REST / JSON). :::
Particularidades do WCF Legado
- Credenciais no Corpo da Requisição: As propriedades
LogineSenhada agência precisam ser enviadas explicitamente dentro de cada objeto JSON (DefaultRQ). - Formato de Datas: Todas as datas trafegam no formato serializado da Microsoft AJAX:
"/Date(1784257200000-0300)/". - Respostas com Objeto
Exception: Erros de negócio retornam emHTTP 200 OKcontendo um objetoExceptionpreenchido. - Endpoint Base:
- Sandbox:
https://wooba-sandbox.travellink.com.br/wcftravellinkjson/AereoNoSession.svc - Produção:
https://ws.travellink.com.br/wcftravellinkjson/AereoNoSession.svc
- Sandbox:
1. Recuperar Sistemas de Pesquisa (/RecuperarSistemasPesquisa)
Retorna a lista de conectores de companhias aéreas e GDSs habilitados para a agência.
- Método:
POST - Rota:
/AereoNoSession.svc/RecuperarSistemasPesquisa
Request
{
"Login": "AGENCIA_LOGIN",
"Senha": "AGENCIA_PASSWORD",
"Origem": "BSB",
"Destino": "GRU",
"TipoViagem": 1
}
Response
{
"Data": "/Date(1781726000000-0300)/",
"DataVersao": "16/06/2026",
"SessaoExpirada": false,
"Sistemas": [
{ "Id": 1, "Descricao": "GOL GWS", "Ativo": true },
{ "Id": 2, "Descricao": "LATAM", "Ativo": true },
{ "Id": 3, "Descricao": "AZUL", "Ativo": true },
{ "Id": 5, "Descricao": "SABRE", "Ativo": true }
],
"Exception": null
}
2. Pesquisa de Disponibilidade (/Disponibilidade)
Executa a varredura de voos e tarifas disponíveis em tempo real.
- Método:
POST - Rota:
/AereoNoSession.svc/Disponibilidade
2.1 Parâmetros da Requisição (DisponibilidadeRQ)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Login | String | Sim | Login da agência no Travellink. |
Senha | String | Sim | Senha da agência. |
Origem | String | Sim | Código IATA de 3 letras da origem (ex: "GIG"). |
Destino | String | Sim | Código IATA de 3 letras do destino (ex: "GRU"). |
DataIda | String /Date(...)/ | Sim | Data da ida formatada em timestamp WCF. |
DataVolta | String /Date(...)/ | Condicional | Data da volta (para ida e volta). Omitir ou null para só ida. |
QuantidadeAdultos | Integer | Sim | Quantidade de passageiros adultos (ADT). |
QuantidadeCriancas | Integer | Não | Quantidade de crianças (CHD, 2 a 11 anos). |
QuantidadeBebes | Integer | Não | Quantidade de bebês de colo (INF, até 23 meses). |
Flex | Boolean | Sim | Define o agrupamento: false (por trecho individual) ou true (itinerário combinado ida+volta). |
Sistema | Integer | Não | 0 para buscar em todos os provedores da agência simultaneamente. |
Cabine | String | Não | "Y" (Econômica), "W" (Premium Economy), "C" (Executiva), "F" (Primeira). |
MultiplosTrechos | Array | Condicional | Lista de trechos adicionais caso seja pesquisa multi-trecho. |
Exemplo de Requisição (Ida e Volta, Flex: false)
{
"Login": "YOUR_LOGIN",
"Senha": "YOUR_PASSWORD",
"Origem": "GIG",
"Destino": "GRU",
"DataIda": "/Date(1784257200000-0300)/",
"DataVolta": "/Date(1785121200000-0300)/",
"QuantidadeAdultos": 1,
"QuantidadeCriancas": 0,
"QuantidadeBebes": 0,
"Flex": false,
"Sistema": 0
}
2.2 Estrutura da Resposta (DisponibilidadeRS)
{
"Data": "/Date(1781726050000-0300)/",
"DataVersao": "16/06/2026",
"SessaoExpirada": false,
"IdentificacaoDaPesquisa": "SRCH-998811",
"Voos": [
{
"Id": 1,
"IdentificacaoDaViagem": "wcf~G3~1500~GIG~GRU~2026-07-20",
"Companhia": "G3",
"Numero": "1500",
"Origem": { "CodigoIata": "GIG", "Descricao": "Galeão - Rio de Janeiro" },
"Destino": { "CodigoIata": "GRU", "Descricao": "Guarulhos - São Paulo" },
"DataSaida": "/Date(1784278800000-0300)/",
"DataChegada": "/Date(1784283300000-0300)/",
"TarifaCheia": 450.00,
"Taxa": 35.50,
"Total": 485.50,
"AssentosDisponiveis": 7,
"Familia": "LIGHT"
}
],
"VoosVolta": [
{
"Id": 2,
"IdentificacaoDaViagem": "wcf~G3~1501~GRU~GIG~2026-07-30",
"Companhia": "G3",
"Numero": "1501",
"Origem": { "CodigoIata": "GRU", "Descricao": "Guarulhos - São Paulo" },
"Destino": { "CodigoIata": "GIG", "Descricao": "Galeão - Rio de Janeiro" },
"DataSaida": "/Date(1785142800000-0300)/",
"DataChegada": "/Date(1785147300000-0300)/",
"TarifaCheia": 420.00,
"Taxa": 34.05,
"Total": 454.05,
"AssentosDisponiveis": 4,
"Familia": "LIGHT"
}
],
"Exception": null
}
3. Tarifar Voos (/Tarifar)
Valida o preço em tempo real e congela as classes de reserva antes da criação do PNR.
- Método:
POST - Rota:
/AereoNoSession.svc/Tarifar
Request (Flex: false)
{
"Login": "YOUR_LOGIN",
"Senha": "YOUR_PASSWORD",
"IdentificacaoDaViagem": "wcf~G3~1500~GIG~GRU~2026-07-20",
"IdentificacaoDaViagemVolta": "wcf~G3~1501~GRU~GIG~2026-07-30",
"TarifarMelhorPreco": true,
"RetornarPlanoDeFinanciamento": true
}
Response
{
"Data": "/Date(1781726100000-0300)/",
"Moeda": "BRL",
"TotalTarifa": 870.00,
"TotalTaxa": 69.55,
"TotalTaxaDU": 0.0,
"TotalRepasseTerceiro": 87.00,
"TotalGeral": 1026.55,
"TarifasPorPassageiro": [
{
"FaixaEtaria": "ADT",
"Quantidade": 1,
"TarifaCheia": 870.00,
"Taxa": 69.55,
"Total": 939.55
}
],
"Financiamento": [
{
"Parcelas": 1,
"PrimeiraParcela": 1026.55,
"Moeda": "BRL"
}
],
"Exception": null
}
4. Obter Regras da Tarifa (/ObterRegraDaTarifa)
Recupera as penalidades de alteração, cancelamento e no-show.
- Método:
POST - Rota:
/AereoNoSession.svc/ObterRegraDaTarifa
Request
{
"Login": "YOUR_LOGIN",
"Senha": "YOUR_PASSWORD",
"IdentificacaoDaViagem": "wcf~G3~1500~GIG~GRU~2026-07-20"
}