Pular para o conteúdo principal

Details

POST {URL}details

O serviço Details retorna as informações completas de uma única transação, identificada pelo TransactionUniqueId obtido antes no serviço List.

💡 Papel no fluxo recomendado

O Details é o passo 2 do fluxo recomendado. Chame-o uma vez para cada UniqueId retornado pelo List, processe e grave a venda no seu sistema e, em seguida, chame o Change com ImportState: 2.

Boas práticas​

  • Use sempre o UniqueId retornado pelo List, de modo que cada requisição trate de uma única transação.
  • Use o Details apenas quando precisar das informações completas da transação.
  • Faça uma requisição separada para cada TransactionUniqueId, pois cada produto é processado individualmente.
  • Evite várias requisições simultâneas sem controle de concorrência, para não sobrecarregar os servidores nem atingir limites de taxa de requisições.
  • Use o campo OffSet quando precisar das datas em outro fuso horário.
  • Guarde as credenciais (Identifier e Password) em variáveis de ambiente, nunca fixas no código.
  • Trate respostas de erro avaliando a propriedade booleana Success.

Boas práticas técnicas​

  • Valide o TransactionUniqueId antes de enviar a requisição.
  • Trate erros de integração verificando Success e a lista Errors.
  • Padronize o tratamento de exceções com retry exponencial para falhas transitórias.

Prefixos do UniqueId​

O prefixo do UniqueId indica o contexto / produto da transação:

PrefixoProdutoDetalhamento
AIRReserva aéreaAéreo (AIR / TKT)
TKTBilhete aéreo emitido (e-ticket)Aéreo (AIR / TKT)
TSTaxa de serviçoVeja Taxas de serviço
HTLReserva de hotelHotel (HTL)
CARLocação de carroCarro (CAR)

Requisição​

{
"TransactionUniqueId": "AIR-D70B465D-F2BB-4215-BE72-1D6AE5092A87", // Obrigatório. UniqueId retornado pelo List
"OffSet": "-03:00:00", // Opcional. Padrão: -03:00:00 (Brasília)
"AccessCredentials": {
"Company": {
"Identifier": "{{identifier}}",
"Password": "{{password}}"
}
}
}

Exemplos de requisição por produto​

AIR: detalhes da reserva
{
"TransactionUniqueId": "AIR-0CC27A59-76C0-4006-8AD2-41E75A253943",
"AccessCredentials": { "Company": { "Identifier": "{{identifier}}", "Password": "{{password}}" } }
}
TKT: detalhes do e-ticket
{
"TransactionUniqueId": "TKT-3DEAEE0E-14A4-454B-B7A1-C2FD4591E944",
"AccessCredentials": { "Company": { "Identifier": "{{identifier}}", "Password": "{{password}}" } }
}
TS: detalhes da taxa de serviço
{
"TransactionUniqueId": "TS-624A17D3-0387-4FA0-B59B-8050C400112B",
"AccessCredentials": { "Company": { "Identifier": "{{identifier}}", "Password": "{{password}}" } }
}

Campos da Requisição​

CampoObrigatórioTipoDescrição
TransactionUniqueIdSimstringIdentificador único com prefixo retornado pelo serviço List (ex.: AIR-..., TKT-..., HTL-..., CAR-..., TS-...).
OffSetNãostring (±hh:mm:ss)Fuso horário desejado para as datas retornadas (ex.: "-03:00:00"). Se omitido, utiliza o fuso padrão do servidor (-03:00:00).
AccessCredentialsSimobjectObjeto contendo as credenciais de autenticação do ambiente.
AccessCredentials.CompanySimobjectCredencial da empresa consumidora.
AccessCredentials.Company.IdentifierSimstringIdentificador único (login da credencial no portal Travellink).
AccessCredentials.Company.PasswordSimstringSenha correspondente da credencial.

Resposta​

Estrutura raiz da resposta​

CampoTipoDescrição
RequestDetailsRQEco dos parâmetros da requisição (AccessCredentials retorna sanitizado como null).
OffSetstringFuso horário efetivamente aplicado na serialização das datas na resposta (ex.: "-03:00:00").
TransactionTransactionDetailObjeto principal contendo os dados completos da transação. Retorna null em caso de erro (Success: false).
ErrorsError[]Coleção de erros. Vazio ([]) em operações bem-sucedidas.
SuccessbooleanAvaliado dinamicamente como `Errors == null
RequestDatestring (date-time)Data e hora em formato ISO 8601 da conclusão do processamento no servidor.

Detalhamento da coleção de erros (Error[])​

Quando Success for false, o objeto Transaction será null e a lista Errors conterá um ou mais objetos Error:

{
"Message": "Transaction not found",
"Exception": ""
}

Propriedades de cada item Error:

  • Message (string): Mensagem textual descritiva da falha (ex.: "Transaction not found", "Developer unauthorized access").
  • Exception (string): Detalhes da pilha da exceção (stack trace). Em ambiente de produção, este campo é sempre retornado vazio ("") por diretriz de segurança do servidor (System.Diagnostics.Debugger.IsAttached ? ex.ToString() : "").

Exemplo de resposta com erro​

{
"Request": {
"TransactionUniqueId": "AIR-NAO-EXISTE-1234",
"AccessCredentials": null
},
"OffSet": "-03:00:00",
"Transaction": null,
"Errors": [
{
"Message": "Transaction not found",
"Exception": ""
}
],
"Success": false,
"RequestDate": "2026-10-09T09:22:15.112-03:00"
}

Objeto Transaction (TransactionDetail)​

O objeto Transaction reúne a visão completa da venda. Abaixo estão os blocos que compõem sua estrutura:

BlocoTipoDescriçãoNatureza dos campos
HeaderTransactionHeaderIdentificação básica, localizador, bilhete, status e carimbo de atualização.Enums fixos e dados da transação
ContextContextEstrutura organizacional e comercial: Organização, Consolidador, Filial/Unidade Operacional, Agência e Cliente corporativo.Entidades e cadastros
UserUserOperador / emissor responsável pela operação no sistema.Cadastro de usuário
PaymentsPaymentDetail[]Formas de pagamento, valores, moeda e status de autorização.Enums fixos de código (19 formas de pagamento e 9 status)
LinksLink[]Relacionamentos entre produtos associados (ex.: bilhete TKT vinculado à reserva AIR, taxas TS vinculadas ao bilhete).Vínculos relacionais
CorporateFieldsCorporateField[]Campos corporativos de política de viagem (Centro de custo, Projeto, Matrícula, Motivo de viagem, etc.).Campos cadastráveis (configurados por agência/cliente)
CommercialDetailCommercialDetailDados comerciais gerais (Tourcode, comissionamentos consolidados).Valores e regras comerciais
ProductDetailProductDetailDados específicos do produto emitido. Classe fixa no backend contendo exatamente as 15 propriedades tipadas de produto. Exatamente uma propriedade estará populada (conforme o TransactionType), enquanto as demais serão null.Propriedades fixas de modelo C#
BackofficeDetailBackofficeDetailCódigos de amarração cadastral para ERPs e sistemas contábeis.Campos cadastráveis
DynamicFieldsDynamicField[]Campos dinâmicos customizados adicionais.Campos cadastráveis

Detalhamento dos Blocos de Transaction​

1. Header (TransactionHeader)​

CampoTipoDescrição
TransactionTypeintegerCódigo do produto (Enum fixo): 1 AirReservation, 100 AirTicket, 2 Hotel, 3 Car, 11 ServiceTax etc. Veja tabela completa de TransactionTypes.
TransactionTypeDescriptionstringDescrição do tipo da transação.
IdintegerID numérico interno da transação no banco de dados.
UniqueIdstringIdentificador único com prefixo (ex.: AIR-..., TKT-..., HTL-..., CAR-..., TS-...).
LocatorstringLocalizador da reserva (PNR da cia aérea, voucher do hotel ou localizador da locadora).
TicketstringNúmero do bilhete emitido (quando aplicável).
LastUpdatestring (date-time)Data e hora da última atualização do registro.
TransactionStateintegerCódigo do status da transação (Enum fixo): 2 Reserved, 4 Issued, 5 Canceled etc. Veja tabela completa de TransactionStates.
TransactionStateDescriptionstringNome legível do status da transação.
ImportStateintegerStatus de importação da transação (0 Undefined, 1 NotImported, 2 Imported).
ImportStateDescriptionstringDescrição do status de importação.

2. Context (Context)​

Hierarquia corporativa e comercial da venda:

CampoTipoDescrição
OrganizationEntityOrganização dona do ambiente Travellink.
ConsolidatorEntityConsolidador / distribuidor responsável.
OperationalUnitEntityUnidade operacional / filial onde a venda foi processada.
PackageOperationalUnitEntityUnidade operacional de pacotes (quando aplicável).
AgencyEntityAgência de viagens emissora.
CustomerEntityEmpresa compradora / cliente corporativo (quando aplicável).

Cada Entity acima possui os campos:

  • Id (integer): ID da entidade.
  • Name (string): Razão social / nome.
  • Description (string): Descrição complementar.
  • Document (Document): Documento da entidade (Number, Type, TypeDescription).
  • Iata (string): Código IATA da agência/consolidador.
  • BackofficeDetail (BackofficeDetail): Códigos cadastrais do ERP.

3. User (User)​

Operador responsável pela ação no sistema:

  • Id (integer): ID do usuário.
  • Name (string): Nome do operador / emissor.
  • Username (string): Login do usuário.
  • Email (string): E-mail do usuário.

4. Payments (PaymentDetail[])​

Lista com cada pagamento efetuado para a transação:

CampoTipoDescrição
IdintegerID do pagamento.
PaymentType / PaymentTypeDescriptioninteger / stringResponsável pelo pagamento: Enum fixo (1 Customer ou 2 Provider).
PaymentForm / PaymentFormDescriptioninteger / stringEnum fixo no backend com exatamente 19 valores possíveis (não é campo livre/cadastrável): 0 Undefined, 101 Invoice (Faturado), 102 Government, 103 Cash, 104 Credit, 105 CreditCard, 106 CreditCardOffline, 107 Deposit, 108 Transfer, 109 BankSlip (Boleto), 110 Reward, 111 Check (Cheque), 112 Balcony, 113 TransferOnline, 114 Pix, 115 Wallet, 206 PrePaid, 207 Guarantee, 208 GuaranteeCustomer. Veja tabela completa de PaymentForm.
CurrencyCodestringCódigo ISO 4217 da moeda (ex.: BRL, USD, EUR).
AmountdecimalValor total processado nesta transação de pagamento.
TransactionAmountdecimalValor da parcela atribuído a esta transação específica.
PaymentState / PaymentStateDescriptioninteger / stringEnum fixo no backend: 0 Undefined, 1 InProgress, 2 Authorized, 3 Refused, 4 Confirmed, 5 Canceled, 6 Expired, 7 Pending, 8 PreAuthorized. Veja tabela completa de PaymentState.
Datestring (date-time)Data do pagamento.
CreditCardCreditCardDetailDetalhes do cartão de crédito (quando o meio for cartão): bandeira, 6 primeiros e 4 últimos dígitos, titular, parcelas, autorização, NSU.
VirtualCardVirtualCardDados do cartão virtual VCN (quando aplicável).
BankSlipsBankSlip[]Dados de boleto bancário (linha digitável, vencimento, nosso número).
LinksLink[]Vínculos deste pagamento com outras transações cobertas por ele.

Vínculos entre produtos e transações associadas na mesma compra:

CampoTipoDescrição
LinkType / LinkTypeDescriptioninteger / stringTipo de relação (Enum fixo): 1 Child, 2 Parent, 3 Related, 4 SubRelated.
TransactionType / TransactionTypeDescriptioninteger / stringTipo do produto relacionado (ex.: 100 AirTicket, 11 ServiceTax).
IdintegerID da transação vinculada.
UniqueIdstringUniqueId da transação vinculada (usado para chamar o Details correspondente).
LocatorstringLocalizador da transação vinculada.
TicketstringNúmero do bilhete emitido (quando aplicável).
TransactionState / TransactionStateDescriptioninteger / stringStatus atual da transação vinculada.
Exemplo de vínculo em Links
{
"LinkType": 3,
"LinkTypeDescription": "Related",
"TransactionType": 100,
"TransactionTypeDescription": "AirTicket",
"Id": 6489027,
"UniqueId": "TKT-3DEAEE0E-14A4-454B-B7A1-C2FD4591E944",
"Locator": "3FKMU6",
"Ticket": "0475049038189",
"LastUpdate": "2022-07-18T16:49:16.967",
"TransactionState": 4,
"TransactionStateDescription": "Issued"
}

6. CorporateFields (CorporateField[])​

📌 Campos cadastráveis por agência / cliente corporativo

Ao contrário dos enums de sistema, estes campos são configurados dinamicamente no portal Travellink conforme a política de viagens de cada cliente corporativo. Exemplos comuns: Centro de custo, Matrícula do funcionário, Projeto, Motivo da viagem, Menor tarifa recusada.

CampoTipoDescrição
Type / TypeDescriptioninteger / stringTipo/categoria do campo corporativo.
IdintegerID do campo configurado.
ValuestringValor preenchido no momento da reserva.
ExtraFieldNamestringIdentificador técnico do campo customizado.
ExtraFieldLabelstringRótulo / label exibido para o usuário.

7. BackofficeDetail (BackofficeDetail)​

📌 Campos cadastráveis de integração com ERP

Códigos configurados nos cadastros do Travellink para conciliação direta com sistemas de gestão e backoffices:

  • Code (string): Código da entidade no backoffice.
  • CostumerCode (string): Código do cliente no ERP.
  • WoofficeCode (string): Código de integração Wooffice.

8. ProductDetail (ProductDetail)​

📌 Estrutura de classes tipadas no backend C#

O objeto ProductDetail possui um conjunto estritamente fixo de propriedades no backend, correspondente aos modelos suportados pelo Travellink. Apenas a propriedade referente ao TransactionType da transação virá populada com o objeto de detalhes; todas as demais retornarão null.

Propriedades fixas de ProductDetail:

  • Metadados gerais:
    • SalesChannel / SalesChannelDescription: Canal de venda (Enum fixo: 1 B2B, 2 B2C etc.).
    • InsertType / InsertTypeDescription: Tipo de inserção no sistema.
    • InsertDate: Data de inserção do produto.
    • Provider: Dados do provedor / distribuidor que forneceu o conteúdo.
  • Propriedades específicas por produto (exatamente uma é não-nula):
    • AirReservationDetail: Populado quando TransactionType == 1 (AirReservation).
    • AirTicketDetail: Populado quando TransactionType == 100 (AirTicket).
    • AirEmdDetail: Populado para serviços adicionais de aéreo (EMD).
    • HotelReservationDetail: Populado quando TransactionType == 2 (HotelReservation).
    • CarReservationDetail: Populado quando TransactionType == 3 (CarReservation).
    • BusReservationDetail: Populado quando TransactionType == 4 (BusReservation).
    • InsuranceReservationDetail: Populado quando TransactionType == 5 (InsuranceReservation).
    • ServiceReservationDetail: Populado quando TransactionType == 6 (ServiceReservation).
    • ChipReservationDetail: Populado quando TransactionType == 7 (ChipReservation).
    • CruiseReservationDetail: Populado quando TransactionType == 8 (CruiseReservation).
    • CircuitReservationDetail: Populado quando TransactionType == 9 (CircuitReservation).
    • ServiceTaxDetail: Populado quando TransactionType == 11 (ServiceTax).
    • BasketDetail: Populado para itens agregados em cestas.
    • ServiceOrderDetail: Populado para ordens de serviço corporativas.
    • OtaOrderDetail: Populado para ordens geradas via canal OTA.

Consulte a documentação dedicada para cada produto:

Taxas de serviço (TS)​

As informações de taxa de serviço são emitidas como transações de tipo 11 (ServiceTax) e vinculadas à reserva ou bilhete correspondente via propriedade Links. Para consultar o detalhamento completo de uma taxa de serviço, chame o endpoint Details informando o TransactionUniqueId com o prefixo TS- (ex.: "TS-624A17D3-0387-4FA0-B59B-8050C400112B").

💡 Exemplos completos de resposta (JSONs reais)

Visualize os exemplos reais completos de resposta para cada tipo de transação na página de Exemplos: