Pular para o conteúdo

Sua configuração

Estes valores são inseridos nos exemplos de código abaixo. Nenhuma chamada é feita a partir deste portal.

ws-

Sem o prefixo ws-. Ex.: cliente → resulta em ws-cliente.cangooroo.net

Diferente do clientId. Usado apenas na Commons API (Autocomplete/HotelDetail).

Token concedido ao parceiro integrador.

Portal

Introdução

O Cangooroo API Docs é o portal interativo da API REST Cangooroo para integração B2B de turismo. Aqui você consulta todos os endpoints, gera exemplos em 6 linguagens e revisa convenções que o parceiro precisa dominar antes de publicar em produção.

O fluxo dinâmico segue quatro etapas numeradas na sidebar: 1. Dados estáticos → 2. Autocomplete → 3. Enriquecimento → 4. Chamadas dinâmicas (Search → GetBookingConditions → DoBooking → Cancel).

Convenções

Datas & UTC

Regra geral

Atenção

Nunca converta datas de check-in/check-out — elas são locais por definição. Nunca envie timezone, salvo quando um método específico documentar explicitamente o contrário.

Formatos por tipo de campo

CampoFormatoFuso
checkIn / checkOutYYYY-MM-DDHorário local do hotel
createdAt / updatedAtISO 8601UTC
TimeSpanHH:MM:SSHorário local do serviço

Segurança

Autenticação

Hosts e credenciais

AmbienteHostIdentificação
API dinâmicaws-[clientId].cangooroo.netCredential { Username, Password } no corpo
Commons APIcommons.t4w.com.brmanagerid + token na URL

Atenção

managerId/token da Commons API não são intercambiáveis com o clientId da API dinâmica.

Configure seus três valores no card acima. Todos os exemplos de código serão reescritos automaticamente.

HTTP

Erros & Status HTTP

Códigos de resposta

CódigoSignificadoO que fazer
200 / 201SucessoProsseguir
204Sem conteúdoNada a processar
400Payload inválidoVer campo errors e corrigir o request
401 / 403Credencial inválida ou sem permissãoRevisar Credential e o nível de usuário exigido
404Recurso inexistenteConferir identificadores enviados
409Indisponibilidade / conflito de estadoChamar ReToken e reprocessar
500 / timeoutErro internoNão criar nova reserva — resolver o status real primeiro

Atenção

Em 5xx ou timeout, não crie nova reserva. Use CheckBookingStatus e GetBookingDetail para resolver o status real antes de qualquer nova ação.

Reserva

Status de Reserva

StatusSignificado
PendingReserva aceita internamente, aguardando confirmação do fornecedor
ConfirmedFornecedor confirmou; localizador emitido
OnRequestDepende de confirmação manual (SLA definido por fornecedor)
CancelledReserva cancelada; verifique políticas antes de reprocessar cobrança
RejectedFornecedor recusou; a reserva não conta como emitida

Atenção

Só considere uma reserva confirmada quando o campo Status vier literalmente "Confirmed".

Revalidação

ReToken

Após a Search, cada tarifa tem um rateKey com validade curta. Se o cliente demorar para escolher, chame ReToken para revalidar antes do GetBookingConditions — isso evita erros 409 no momento do DoBooking.

Atenção

O Token expira em 30 minutos e só pode gerar uma reserva.

Resiliência

Tratamento de erros e timeout

Fluxo consolidado

  • Erro HTTP (4XX/5XX) ou timeout no DoBooking? → chame CheckBookingStatus (Hotel) com o mesmo Token usado no DoBooking.
  • CheckBookingStatus retornou BookingId + ServiceId? → a reserva EXISTE. Use ClientBackOffice.GetBookingDetail para confirmar o status real antes de qualquer nova ação.
  • CheckBookingStatus retornou erro (reserva não encontrada)? → pode tentar o doBooking novamente, com o mesmo Token.
  • Nunca assuma que uma reserva “não foi confirmada” só por causa de erro, timeout ou falta de resposta no DoBooking. Só considere confirmada quando o campo Status vier literalmente "Confirmed" (no DoBooking ou no GetBookingDetail).
  • Cancelamento: só considere uma reserva cancelada após receber confirmação explícita do cancelamento na resposta — se não vier, repita a chamada de cancelamento.

Erro [ERR_0567] — “Este persist já foi utilizado em outra reserva!”

Causa: o Token já foi usado para criar uma reserva e está sendo reenviado no DoBooking para tentar criar outra. Um Token só pode gerar uma reserva. O Token expira em 30 minutos.

Erro “The rooms cannot be booked without executing the cancellation policies first.”

  • Causa raiz mais comum: divergência de Token entre getBookingConditions e DoBooking — o “carimbo” de que as políticas foram executadas fica associado ao Token específico.
  • Outras causas: parâmetros diferentes entre as duas chamadas (hotel/quarto/datas/ocupação); Token expirado por demora; retries em paralelo trocando o Token no meio do fluxo; Token antigo reaproveitado de cache/sessão.
  • Prevenção: nunca reutilizar Token entre tentativas diferentes; evitar checkout em paralelo; ao mudar quarto/data/ocupação, gerar novo Token e refazer o getBookingConditions; em retry do DoBooking, rodar o getBookingConditions de novo antes, com o Token do retry.
  • Auditoria rápida: comparar Token, HotelId e RoomId/RoomIds entre as duas chamadas.

Token

Token e múltiplos quartos

  • Cada busca gera um Token único, vinculado a Credential + parâmetros da busca — vale para todos os produtos, não só Hotel.
  • Não é possível dividir quartos entre requisições diferentes com o mesmo Token: se a busca foi de 2 quartos, TODAS as chamadas seguintes (inclusive o DoBooking) precisam manter os 2 quartos juntos no mesmo request.
  • Para trabalhar com 1 Token por quarto reservado, é preciso rodar dois fluxos completos e separados (Search → GetBookingConditions → DoBooking), um por quarto.

BackOffice

Escopo de usuário nos BackOffices

Requer nível de usuário

CangoorooBackOffice.GetBookingDetail — só retorna dado com usuário operador (licensee). Usuário de agência recebe erro.

Requer nível de usuário

ClientBackOffice.GetBookingDetail — só retorna reservas da mesma agência do usuário autenticado. Buscar reserva de outra agência gera [ERR_0247] CangoorooLib_V2.Reserva.Reserva.carregar - Erro ao carregar uma Reserva.

Autenticação & Regras globais

POST

Credential — bloco de autenticação

O que faz: Objeto { Username, Password } que identifica a agência/parceiro.

Request: Enviado no corpo de TODAS as chamadas dinâmicas (Search, GetBookingConditions, DoBooking, Cancel, BackOffice, Payment).

Nota

Não é um endpoint separado — é um campo obrigatório em cada request.
URL
https://ws-cliente.cangooroo.net(bloco enviado em todas as chamadas)

Parâmetros

  • Usernamestringrequired

    Usuário fornecido pela Cangooroo à agência.

  • Passwordstringrequired

    Senha correspondente ao Username.

Try it outReferência

Usuário fornecido pela Cangooroo à agência.

Senha correspondente ao Username.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net(bloco enviado em todas as chamadas)" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  }
}'
POST

Token — ciclo de vida de 30 minutos

O que faz: String retornada pelo Search de cada produto e obrigatória nas etapas seguintes.

Request: Enviar em GetBookingConditions e DoBooking, sem alterações.

Atenção

O Token é único por busca (vinculado à Credential + parâmetros) e expira em 30 minutos. Não reutilize um Token entre tentativas ou fluxos diferentes.

Atenção

Após expirado, o comportamento padrão é refazer o Search. Se o módulo Retoken estiver ativo, ver a entrada específica abaixo.
URL
https://ws-cliente.cangooroo.net(retornado pelo Search de cada produto)

Parâmetros

  • Tokenstringrequired

    String retornada em Search.Token. Enviar em GetBookingConditions e DoBooking.

Try it outReferência

String retornada em Search.Token. Enviar em GetBookingConditions e DoBooking.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net(retornado pelo Search de cada produto)"
Exemplo de response
{
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "TokenExpiresAt": "2026-11-14T18:50:00",
  "Note": "Válido por 30 minutos a partir do Search. Após expirar, refaça o Search — ou, com o módulo Retoken ativo, envie o Token expirado no getBookingConditions (Hotel) e trate o campo RoomsConditions da resposta."
}
GET

Retoken — módulo opcional (não é endpoint)

O que faz: Módulo opcional que reaproveita um Token expirado no getBookingConditions do Hotel, evitando refazer o Search.

Response: Campo RoomsConditions + (quando há disponibilidade) novo Token e RoomId prontos para o DoBooking.

Atenção

Retoken NÃO é um endpoint: é um módulo ativado pelo time comercial da Cangooroo e aplica-se apenas ao produto Hotel.

Valores de RoomsConditions

ValorSignificadoAção
RoomsNotFoundSem disponibilidadeRedirecione o usuário
SameRoomsFoundMesmo quarto disponívelSiga o DoBooking com o novo Token + RoomId
RoomsFoundWithChangesQuarto diferente encontradoExiba descrição/regime/preço/taxas atualizados e, se aceito, prossiga com o novo Token + RoomId
URL
https://ws-cliente.cangooroo.net(módulo opcional — sem endpoint próprio)

Parâmetros

  • RoomsConditionsstring

    Retornado APENAS quando o módulo Retoken está ativo e o Token enviado ao getBookingConditions expirou. Valores: RoomsNotFound | SameRoomsFound | RoomsFoundWithChanges.

Try it outReferência

Retornado APENAS quando o módulo Retoken está ativo e o Token enviado ao getBookingConditions expirou. Valores: RoomsNotFound | SameRoomsFound | RoomsFoundWithChanges.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X GET "https://ws-cliente.cangooroo.net(módulo opcional — sem endpoint próprio)"
Exemplo de response
{
  "RoomsConditions": "RoomsFoundWithChanges",
  "Token": "eyJhbGciOiJIUzI1NiIs...NEW",
  "RoomId": "R-NEW-9182",
  "RoomChanges": {
    "Description": "Deluxe King Room — City View",
    "Board": "Café da manhã incluso",
    "TotalPrice": 1289.9,
    "PropertyTaxes": 45,
    "Currency": "BRL"
  },
  "NextStep": "Confirmar mudança com o usuário e chamar DoBooking com o novo Token + RoomId."
}
GET

Regras globais da API

O que faz: Regras que valem para toda a API Cangooroo, independentemente do produto.

Datas e horário

  • Nunca envie timezone — todas as datas são em horário local. Exceção: quando um método específico documentar explicitamente o contrário.
  • Campos DATE: YYYY-MM-DD, sem hora nem timezone.

Headers recomendados

HeaderValorObservação
Accept-EncodinggzipCompressão suportada em todos os endpoints
Acceptapplication/jsonRecomendado para compatibilidade futura

Métodos HTTP

MétodoUso
GETConsulta
POSTCria ou executa uma operação
PUTAtualiza
DELETERemove
OPTIONSMétodos suportados por um endpoint

Códigos de resposta HTTP

CódigoSignificado
200OK
201Created
204Sem conteúdo
400Request inválido
403Credencial inválida ou sem permissão
404Recurso inexistente
500Erro interno

Protocolo

A API é oferecida em SOAP e REST — este portal documenta o flavor REST.

URL
https://ws-cliente.cangooroo.net(regras aplicadas a todas as chamadas)
Exemplo de request
curl -X GET "https://ws-cliente.cangooroo.net(regras aplicadas a todas as chamadas)"
Exemplo de response
{
  "HttpStatusCodes": {
    "200": "OK",
    "201": "Created",
    "204": "No Content",
    "400": "Bad Request (payload inválido)",
    "403": "Forbidden (Credential inválida ou sem permissão)",
    "404": "Not Found",
    "500": "Internal Server Error"
  },
  "HttpMethods": {
    "GET": "Consulta",
    "POST": "Cria / executa operação",
    "PUT": "Atualiza",
    "DELETE": "Remove",
    "OPTIONS": "Métodos suportados por um endpoint"
  },
  "Headers": {
    "Accept": "application/json (recomendado, não obrigatório)",
    "Accept-Encoding": "gzip (suportado em todos os endpoints)"
  },
  "DateFormat": "YYYY-MM-DD (sem timezone; exceções apenas quando o método documentar explicitamente)",
  "Encoding": "GZip recomendado",
  "Flavors": [
    "REST",
    "SOAP"
  ]
}

Commons API

GET

HotelDetail (Commons API)

O que faz: Retorna os dados estáticos de um hotel: nome, endereço, coordenadas, fotos, comodidades, descrições e quartos.

Request: hotelId no path + managerId e token como QUERY PARAMETERS.

Response: Objeto multilíngue e aninhado — textos vêm como { en, es, 'pt-BR' }.

Atenção

O path é /mapping/hotel/ (não /hoteldetail/) e o managerId vai como query parameter, não como segmento de path.

Nota

Não existe RoomMediaId nesta resposta: cada quarto tem seu próprio code e sua própria lista photos.
  • A Cangooroo recomenda consumir dados estáticos SEMPRE pela Commons API (não pelo SOAP).
URL
http://commons.t4w.com.br/new/api/v1/mapping/hotel/{hotelId}/token/SEU_TOKEN_AQUI?managerId=123

Parâmetros

  • hotelIdstringrequired

    HotelId retornado pelo Search dinâmico (int estável).

  • tokenstringrequired

    Token concedido ao parceiro (diferente do Token dinâmico de 30 min). Vai no path.

  • managerIdstringrequired

    managerId do parceiro na Commons API. Vai como query parameter (?managerId=).

Try it outReferência
Credenciais Commons API

Identificador do integrador na Commons API.

Token concedido ao parceiro. Compartilhado por todos os endpoints Commons.

HotelId retornado pelo Search dinâmico (int estável).

Token concedido ao parceiro (diferente do Token dinâmico de 30 min). Vai no path.

managerId do parceiro na Commons API. Vai como query parameter (?managerId=).

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X GET "http://commons.t4w.com.br/new/api/v1/mapping/hotel/{hotelId}/token/SEU_TOKEN_AQUI?managerId=123"
Exemplo de response
{
  "id": 1135691,
  "destination": {
    "id": 1019215,
    "countryId": "BR",
    "name": {
      "en": "Sao Paulo",
      "es": "São Paulo",
      "pt-BR": "São Paulo"
    }
  },
  "name": "Hotel Exemplo",
  "address": "Av. Exemplo, 1000",
  "phone1": "+55 11 5555-0000",
  "phone2": "",
  "description": {
    "en": "Hotel description",
    "es": "Descripción",
    "pt-BR": "Descrição do hotel"
  },
  "category": 3,
  "zipCode": "04578-000",
  "urlThumb": "https://cdn.example/thumb.jpg",
  "chain": {
    "id": 1155,
    "name": "Exemplo Hotels"
  },
  "webSite": "https://exemplo.com",
  "localization": {
    "latitude": -23.62,
    "longitude": -46.58
  },
  "amenities": [
    {
      "id": 1,
      "name": {
        "en": "Wi-Fi",
        "es": "Wi-Fi",
        "pt-BR": "Wi-Fi"
      }
    }
  ],
  "photos": [
    {
      "url": "https://cdn.example/1.jpg",
      "description": {
        "en": "Facade",
        "es": "Fachada",
        "pt-BR": "Fachada"
      }
    }
  ],
  "rooms": [
    {
      "code": "STD",
      "name": {
        "en": "Standard",
        "es": "Estándar",
        "pt-BR": "Standard"
      },
      "description": {
        "en": "Standard room",
        "es": "Habitación estándar",
        "pt-BR": "Quarto standard"
      },
      "amenities": [
        {
          "id": 1,
          "name": {
            "en": "Air conditioning",
            "es": "Aire",
            "pt-BR": "Ar-condicionado"
          }
        }
      ],
      "photos": [
        {
          "url": "https://cdn.example/room-std.jpg",
          "description": {
            "en": "Room",
            "es": "Habitación",
            "pt-BR": "Quarto"
          }
        }
      ]
    }
  ],
  "checkInBegin": "14:00",
  "checkInEnd": "",
  "checkOut": "12:00",
  "cnpj": "00.000.000/0001-00",
  "type": "Hotel",
  "updateDate": "2026-11-14T09:00:00"
}
GET

AirportDetail (Commons API)

O que faz: Retorna os dados estáticos de um aeroporto a partir do código IATA.

Request: IATA (3 letras) + managerId e token.

Atenção

Atenção ao path: aqui o segmento é /manager/ (singular), diferente do HotelDetail.

Nota

A Cangooroo ainda não publicou o schema completo da resposta — trate o retorno como genérico e valide em sandbox antes de tipar estritamente.
URL
http://commons.t4w.com.br/new/api/v1/mapping/airport/iata/{IATA}/manager/123/token/SEU_TOKEN_AQUI

Parâmetros

  • IATAstringrequired

    Código IATA do aeroporto (3 letras).

  • managerIdstringrequired

    managerId do parceiro na Commons API.

  • tokenstringrequired

    Token concedido ao parceiro.

Try it outReferência
Credenciais Commons API

Identificador do integrador na Commons API.

Token concedido ao parceiro. Compartilhado por todos os endpoints Commons.

Código IATA do aeroporto (3 letras).

managerId do parceiro na Commons API.

Token concedido ao parceiro.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X GET "http://commons.t4w.com.br/new/api/v1/mapping/airport/iata/{IATA}/manager/123/token/SEU_TOKEN_AQUI"
Exemplo de response
{
  "_comment": "Schema não publicado pela Cangooroo — resposta tratada como genérica até validação em sandbox."
}
GET

Bulk downloads (S3)

O que faz: Dumps completos publicados em S3 para carga inicial e sincronização periódica.

Nota

Prefira estes dumps para carga inicial em vez de milhares de chamadas HotelDetail.
  • Arquivo de Destinations — hierarquia de cidades, POIs e aeroportos.
  • cangooroo_data_cache_hotels_v2.zip — IDs, nomes, descrições e detalhes de todos os hotéis.
URL
http://commons.t4w.com.br(arquivos estáticos em S3)
Try it outReferência
Credenciais Commons API

Identificador do integrador na Commons API.

Token concedido ao parceiro. Compartilhado por todos os endpoints Commons.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X GET "http://commons.t4w.com.br(arquivos estáticos em S3)"
Exemplo de response
{
  "DestinationsFile": "https://s3.example/commons/destinations.json.gz",
  "HotelsCache": "https://s3.example/commons/cangooroo_data_cache_hotels_v2.zip",
  "RefreshSuggested": "24h"
}
GET

Autocomplete

O que faz: Retorna sugestões de destino a partir de um termo digitado.

Request: term (mín. 3 caracteres) + managerId/token; quantity é opcional.

Response: Cidades, aeroportos, POIs e hotéis correspondentes ao termo.

URL
http://commons.t4w.com.br/new/api/v1/mapping/autocomplete/all/{term}/managerid/123/token/SEU_TOKEN_AQUI

Parâmetros

  • termstringrequired

    Termo digitado pelo usuário (mín. 3 caracteres).

  • quantitynumber

    Número máximo de resultados retornados. Se omitido, usa o default da Commons API.

  • managerIdstringrequired

    managerId do parceiro.

  • tokenstringrequired

    Token Commons do parceiro.

Try it outReferência
Credenciais Commons API

Identificador do integrador na Commons API.

Token concedido ao parceiro. Compartilhado por todos os endpoints Commons.

Termo digitado pelo usuário (mín. 3 caracteres).

Número máximo de resultados retornados. Se omitido, usa o default da Commons API.

managerId do parceiro.

Token Commons do parceiro.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X GET "http://commons.t4w.com.br/new/api/v1/mapping/autocomplete/all/{term}/managerid/123/token/SEU_TOKEN_AQUI"
Exemplo de response
[
  {
    "type": "city",
    "code": "RIO",
    "name": "Rio de Janeiro, Brasil"
  },
  {
    "type": "poi",
    "code": "POI-CRISTO",
    "name": "Cristo Redentor"
  },
  {
    "type": "airport",
    "code": "GIG",
    "name": "Aeroporto Galeão"
  },
  {
    "type": "hotel",
    "code": "489479",
    "name": "Hotel Copacabana Palace"
  }
]
GET

Destination Hierarchy

O que faz: Retorna a árvore de destinos (países → estados → cidades → POIs → aeroportos).

Response: Hierarquia usada para montar o DestinationId enviado no Search dinâmico.

  • Pode ser consumida on-demand ou baixada em bulk (ver Downloads estáticos).
URL
http://commons.t4w.com.br/new/api/v1/mapping/destination-hierarchy/managerid/123/token/SEU_TOKEN_AQUI

Parâmetros

  • managerIdstringrequired

    managerId do parceiro.

  • tokenstringrequired

    Token Commons do parceiro.

  • parentIdnumber

    Se informado, retorna apenas a subárvore deste nó. Útil para lazy load.

Try it outReferência
Credenciais Commons API

Identificador do integrador na Commons API.

Token concedido ao parceiro. Compartilhado por todos os endpoints Commons.

managerId do parceiro.

Token Commons do parceiro.

Se informado, retorna apenas a subárvore deste nó. Útil para lazy load.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X GET "http://commons.t4w.com.br/new/api/v1/mapping/destination-hierarchy/managerid/123/token/SEU_TOKEN_AQUI"
Exemplo de response
[
  {
    "DestinationId": 1,
    "Name": "Brasil",
    "Type": "Country",
    "Children": [
      {
        "DestinationId": 42,
        "Name": "Rio de Janeiro (estado)",
        "Type": "State",
        "Children": [
          {
            "DestinationId": 12345,
            "Name": "Rio de Janeiro (cidade)",
            "Type": "City"
          }
        ]
      }
    ]
  }
]

Hotel

Filtrar por produto
HotelPOST

Search — Hotel

O que faz: Pesquisa a disponibilidade de hotéis por destino (DestinationId) ou por lista de hotéis (HotelsIds), para uma data de check-in e quantidade de noites.

Atenção

O Token é único por busca (vinculado à Credential + parâmetros) e expira em 30 minutos. Não reutilize um Token entre tentativas ou fluxos diferentes.

Atenção

Resultados podem vir de cache — reconfirme preço e políticas no GetBookingConditions antes de reservar. Use o Id retornado para identificar o quarto, sem substituir por um campo RoomId inexistente nesta resposta.
Regras e detalhes da operação

Respostas HTTP

HTTPDescrição
200OK — SearchResponse.
400Requisição inválida: JSON malformado ou com campos inválidos.
500Erro não tratado (fault WCF).
URL
https://ws-cliente.cangooroo.net/API/REST/Hotel.svc/Search

Parâmetros

CampoTipoObrigatórioDescrição
CredentialobjectSimCredenciais de integração.
CriteriaobjectSimCritérios de disponibilidade e ocupação dos quartos.
RequestCustomFieldsarrayNãoCampos personalizados enviados na requisição.
Credential
CampoTipoObrigatórioDescrição
UsernamestringSimUsuário da integração.
PasswordstringSimSenha do usuário.
Criteria
CampoTipoObrigatórioDescrição
DestinationIdnumberNãoDestino da pesquisa; pode ser substituído pela seleção de hotéis.
SearchRoomsarray<object>SimConfiguração de ocupação e quantidade dos quartos pesquisados.
NumNightsnumberSimQuantidade de noites.
HotelsIdsarray<number>Não informadoLista numérica dos hotéis selecionados.
HotelAndDestinationIdsarray<string>Não informadoLista de strings para seleção de hotéis e destinos.
SuppliersIdsarray<number>Não informadoLista numérica dos fornecedores selecionados.
ReturnOnRequestRoomsbooleanNão informadoIndicador de inclusão de quartos sob consulta.
ReturnHotelStaticDatabooleanNão informadoIndicador de retorno de dados estáticos do hotel.
ReturnExtendedHotelStaticDatabooleanNão informadoIndicador de retorno de dados estáticos estendidos do hotel.
CheckinDatestringSimData de entrada no hotel.
MainPaxCountryCodeNationalitystringNão informadoNacionalidade do passageiro principal (ISO 3166-1 alpha-2).
SearchTypestringNão informadoTipo de pesquisa.
FiltersobjectNão informadoFiltros de preço e seleção de hotéis.
TimeoutnumberNão informadoLimite de espera da pesquisa.
DiscountCodestringNão informadoCupom de desconto; reenvie no GetBookingConditions quando utilizado.
PreferredLanguagestringNão informadoIdioma preferido.
Outros campos (8)
CampoTipoObrigatórioDescrição
ShowAllRoomsFromSuppliersbooleanNão informado
ReturnOnlyHotelsByDirectAgreementbooleanNão informado
ReturnOnlyRoomsWithCancelPenaltybooleanNão informado
ForceTimeoutErrorbooleanNão informado
ReturnOnlyRoomsWithBreakfastbooleanNão informado
ReturnOnlyRefundableRatesbooleanNão informado
ReturnDailyRatebooleanNão informado
ShowPropertyTypestringNão informado
SearchRooms[]
CampoTipoObrigatórioDescrição
NumAdultsnumberSimQuantidade de adultos por quarto.
ChildAgesarray<number>NãoLista de idades numéricas das crianças (campo opcional). A quantidade de crianças é identificada pelas idades: envie a idade de todas as crianças em lista.
QuantitynumberSimQuantidade de quartos com a configuração informada.
Filters
CampoTipoDescrição
MinPricenumberPreço mínimo.
MaxPricenumberPreço máximo.
SelectedHotelsIdsarray<number>Lista numérica dos hotéis selecionados pelo filtro.
CheapestRoomOnlybooleanRetorna apenas o quarto mais barato por hotel. Ignorado quando a pesquisa é feita com apenas 1 hotel.
HidePackageRatebooleanIndicador de ocultação de tarifas de pacote.
RequestCustomFields[]
CampoTipoDescrição
ValuestringValor informado.
Outros campos (1)
CampoTipoDescrição
Namestring
Try it outReferência

Credenciais de integração.

Critérios de disponibilidade e ocupação dos quartos.

Campos personalizados enviados na requisição.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Hotel.svc/Search" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "string",
    "Password": "string"
  },
  "Criteria": {
    "DestinationId": 0,
    "SearchRooms": [
      {
        "NumAdults": 0,
        "ChildAges": [
          0
        ],
        "Quantity": 0
      }
    ],
    "NumNights": 0,
    "HotelsIds": [
      0
    ],
    "HotelAndDestinationIds": [
      "string"
    ],
    "SuppliersIds": [
      0
    ],
    "ReturnOnRequestRooms": true,
    "ReturnHotelStaticData": true,
    "ReturnExtendedHotelStaticData": true,
    "CheckinDate": "string",
    "MainPaxCountryCodeNationality": "string",
    "SearchType": "string",
    "Filters": {
      "MinPrice": 0.1,
      "MaxPrice": 0.1,
      "SelectedHotelsIds": [
        0
      ],
      "CheapestRoomOnly": true,
      "HidePackageRate": true
    },
    "Timeout": 0,
    "ShowAllRoomsFromSuppliers": true,
    "ReturnOnlyHotelsByDirectAgreement": true,
    "ReturnOnlyRoomsWithCancelPenalty": true,
    "DiscountCode": "string",
    "ForceTimeoutError": true,
    "ReturnOnlyRoomsWithBreakfast": true,
    "ReturnOnlyRefundableRates": true,
    "ReturnDailyRate": true,
    "PreferredLanguage": "string",
    "ShowPropertyType": "string"
  },
  "RequestCustomFields": [
    {
      "Name": "string",
      "Value": "string"
    }
  ]
}'
Campos da resposta
CampoTipoDescrição
TokenstringToken da pesquisa, utilizado nas próximas etapas.
ErrorobjectDetalhes de erro retornados pela API.
Messagesarray<object>Mensagens da operação.
TotalHotelResultsnumberTotal de hotéis retornados pela pesquisa.
Hotelsarray<object>Lista de hotéis e seus quartos.
DebugInfoarray<string>Lista de informações de diagnóstico retornadas.
Warningsarray<string>Lista de avisos retornados.
Outros campos (4)
CampoTipoDescrição
TotalTimenumber
TimeSpanstring
SInfostring
CustomFieldsarray<object>
Error
CampoTipoDescrição
TokenstringToken da pesquisa, utilizado nas próximas etapas.
Outros campos (7)
CampoTipoDescrição
Serverstring
Messagestring
Stacktracestring
TotalTimenumber
Codenumber
TimeSpanstring
SupportInfostring
Messages[]
Outros campos (2)
CampoTipoDescrição
valuestring
contentstring
Hotels[]
CampoTipoDescrição
HotelIdnumberIdentificador numérico do hotel.
Roomsarray<object>Opções de quartos retornadas para o hotel.
DestinationobjectDados do destino do hotel.
Outros campos (14)
CampoTipoDescrição
IsRecommendedboolean
Namestring
Categorystring
ThumbUrlstring
Latitudenumber
CustomFieldsarray<object>
Longitudenumber
Addressstring
Phonestring
Photosstring
HotelDescriptionstring
Amenitiesstring
Chainstring
PropertyTypestring
Hotels[].Rooms[]
CampoTipoDescrição
IdnumberIdentificador retornado neste objeto. Em Hotels[].Rooms[], identifica o quarto (number).
SellingPricePerRoomobjectPreço de venda por quarto.
MinimumSellingPriceobjectPreço mínimo de venda.
TotalSellingPriceobjectPreço total de venda.
QuantitynumberQuantidade de quartos com a configuração informada.
CanBookbooleanIndicador retornado de possibilidade de reserva; reconfirme no GetBookingConditions antes de reservar.
CancellationPoliciesarray<object>Políticas de cancelamento do quarto.
NumAdultsnumberQuantidade de adultos por quarto.
ChildAgesarray<number>Lista de idades numéricas das crianças (campo opcional). A quantidade de crianças é identificada pelas idades: envie a idade de todas as crianças em lista.
Servicesarray<object>Serviços associados ao quarto.
MediaRoomIdstringIdentificador de mídia do quarto.
HotelIdnumberIdentificador numérico do hotel.
PaymentLimitDatestringPrazo de pagamento, no formato /Date(...)/ apresentado.
PriceBreakdownarray<object>Detalhamento dos preços por data.
Outros campos (48)
CampoTipoDescrição
BoardDescriptionstring
RoomDescriptionstring
IsAvailableboolean
PayDirectToHotelboolean
IsPrePaymentboolean
InvoiceCCboolean
MoreInformationstring
Halfboardboolean
Fulllboardboolean
AllInclusiveboolean
HasBreakfastboolean
IsNonRefundableboolean
CustomFieldsarray<object>
DepositRequiredboolean
HomeIdstring
CheckInHourstring
CheckOutHourstring
DirectAgreementboolean
Taxesarray<object>
TotalTaxobject
Promotionsarray<string>
SpecialOfferboolean
CommissionPercentnumber
Commissionobject
UniqueRoomIdstring
CanInforSupplierInformationboolean
InvoiceItemsarray<string>
PackageRateboolean
CancellationTypestring
PropertyValueobject
CanSelectFirstDayboolean
DiscountCouponobject
PropertyTaxesarray<object>
PriceWithCouponobject
TotalPriceWithCouponobject
CouponPriceobject
CouponCodestring
CouponDescriptionstring
PriceHasChangedboolean
ExclusiveDealboolean
TopHotelboolean
QuantityAvailablenumber
BoardCodestring
BoardMoreInformationstring
BedDescriptionstring
DisneyPackageboolean
AcceptsLoyaltyNumberboolean
MarketingIncentivestring
Hotels[].Rooms[].SellingPricePerRoom
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].MinimumSellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].TotalSellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].CancellationPolicies[]
CampoTipoDescrição
ValueobjectValor informado.
Outros campos (2)
CampoTipoDescrição
StartDatestring
EndDatestring
Hotels[].Rooms[].CancellationPolicies[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].CustomFields[]
CampoTipoDescrição
ValuestringValor informado.
Outros campos (1)
CampoTipoDescrição
Namestring
Hotels[].Rooms[].Services[]
CampoTipoDescrição
Servicesarray<object>Serviços associados ao quarto.
Outros campos (3)
CampoTipoDescrição
Typestring
QtyMaxnumber
QtyMinnumber
Hotels[].Rooms[].Services[].Services[]
Outros campos (6)
CampoTipoDescrição
IDstring
Namestring
Priceobject
Comissionobject
Descriptionstring
CanSelectFirstDayboolean
Hotels[].Rooms[].Services[].Services[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].Services[].Services[].Comission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].Taxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Hotels[].Rooms[].Taxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].TotalTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].Commission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].PropertyValue
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].DiscountCoupon
Outros campos (3)
CampoTipoDescrição
DiscountCouponValueobject
DiscountCouponDescriptionstring
DiscountCouponstring
Hotels[].Rooms[].DiscountCoupon.DiscountCouponValue
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].PropertyTaxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Hotels[].Rooms[].PropertyTaxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].PriceWithCoupon
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].TotalPriceWithCoupon
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].CouponPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].Rooms[].PriceBreakdown[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
Outros campos (4)
CampoTipoDescrição
Pricenumber
DateBreakdownstring
DateBreakdownStrstring
PriceToFrontobject
Hotels[].Rooms[].PriceBreakdown[].PriceToFront
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Hotels[].CustomFields[]
CampoTipoDescrição
ValuestringValor informado.
Outros campos (1)
CampoTipoDescrição
Namestring
Hotels[].Destination
CampoTipoDescrição
IdstringIdentificador retornado neste objeto. Em Hotels[].Rooms[], identifica o quarto (number).
Outros campos (2)
CampoTipoDescrição
CountryIdstring
Nameobject
Hotels[].Destination.Name
Outros campos (3)
CampoTipoDescrição
ptBRstring
esstring
enstring
CustomFields[]
CampoTipoDescrição
ValuestringValor informado.
Outros campos (1)
CampoTipoDescrição
Namestring
Exemplo de response
{
  "TotalTime": 0,
  "Token": "string",
  "TimeSpan": "string",
  "Error": {
    "Server": "string",
    "Message": "string",
    "Stacktrace": "string",
    "TotalTime": 0,
    "Code": 0,
    "Token": "string",
    "TimeSpan": "string",
    "SupportInfo": "string"
  },
  "Messages": [
    {
      "value": "string",
      "content": "string"
    }
  ],
  "SInfo": "string",
  "TotalHotelResults": 0,
  "Hotels": [
    {
      "HotelId": 0,
      "IsRecommended": true,
      "Rooms": [
        {
          "Id": 0,
          "BoardDescription": "string",
          "RoomDescription": "string",
          "SellingPricePerRoom": {
            "Currency": "string",
            "Value": 0
          },
          "MinimumSellingPrice": {
            "Currency": "string",
            "Value": 0
          },
          "TotalSellingPrice": {
            "Currency": "string",
            "Value": 0
          },
          "Quantity": 0,
          "IsAvailable": true,
          "CanBook": true,
          "PayDirectToHotel": true,
          "IsPrePayment": true,
          "InvoiceCC": true,
          "MoreInformation": "string",
          "CancellationPolicies": [
            {
              "StartDate": "string",
              "EndDate": "string",
              "Value": {
                "Currency": "string",
                "Value": 0
              }
            }
          ],
          "NumAdults": 0,
          "Halfboard": true,
          "Fulllboard": true,
          "AllInclusive": true,
          "HasBreakfast": true,
          "ChildAges": [
            0
          ],
          "IsNonRefundable": true,
          "CustomFields": [
            {
              "Name": "string",
              "Value": "string"
            }
          ],
          "Services": [
            {
              "Services": [
                {
                  "ID": "string",
                  "Name": "string",
                  "Price": {
                    "Currency": "string",
                    "Value": 0
                  },
                  "Comission": {
                    "Currency": "string",
                    "Value": 0
                  },
                  "Description": "string",
                  "CanSelectFirstDay": true
                }
              ],
              "Type": "string",
              "QtyMax": 0,
              "QtyMin": 0
            }
          ],
          "MediaRoomId": "string",
          "DepositRequired": true,
          "HomeId": "string",
          "CheckInHour": "string",
          "CheckOutHour": "string",
          "DirectAgreement": true,
          "Taxes": [
            {
              "Price": {
                "Currency": "string",
                "Value": 0
              },
              "Description": "string"
            }
          ],
          "TotalTax": {
            "Currency": "string",
            "Value": 0
          },
          "Promotions": [
            "string"
          ],
          "SpecialOffer": true,
          "CommissionPercent": 0,
          "Commission": {
            "Currency": "string",
            "Value": 0
          },
          "UniqueRoomId": "string",
          "CanInforSupplierInformation": true,
          "HotelId": 0,
          "InvoiceItems": [
            "string"
          ],
          "PaymentLimitDate": "/Date(1767225600000-0300)/",
          "PackageRate": true,
          "CancellationType": "string",
          "PropertyValue": {
            "Currency": "string",
            "Value": 0
          },
          "CanSelectFirstDay": true,
          "DiscountCoupon": {
            "DiscountCouponValue": {
              "Currency": "string",
              "Value": 0
            },
            "DiscountCouponDescription": "string",
            "DiscountCoupon": "string"
          },
          "PropertyTaxes": [
            {
              "Price": {
                "Currency": "string",
                "Value": 0
              },
              "Description": "string"
            }
          ],
          "PriceWithCoupon": {
            "Currency": "string",
            "Value": 0
          },
          "TotalPriceWithCoupon": {
            "Currency": "string",
            "Value": 0
          },
          "CouponPrice": {
            "Currency": "string",
            "Value": 0
          },
          "CouponCode": "string",
          "CouponDescription": "string",
          "PriceHasChanged": true,
          "PriceBreakdown": [
            {
              "Price": 0,
              "Currency": "string",
              "DateBreakdown": "/Date(1767225600000-0300)/",
              "DateBreakdownStr": "string",
              "PriceToFront": {
                "Currency": "string",
                "Value": 0
              }
            }
          ],
          "ExclusiveDeal": true,
          "TopHotel": true,
          "QuantityAvailable": 0,
          "BoardCode": "string",
          "BoardMoreInformation": "string",
          "BedDescription": "string",
          "DisneyPackage": true,
          "AcceptsLoyaltyNumber": true,
          "MarketingIncentive": "string"
        }
      ],
      "Name": "string",
      "Category": "string",
      "ThumbUrl": "string",
      "Latitude": 0.1,
      "CustomFields": [
        {
          "Name": "string",
          "Value": "string"
        }
      ],
      "Destination": {
        "Id": "string",
        "CountryId": "string",
        "Name": {
          "ptBR": "string",
          "es": "string",
          "en": "string"
        }
      },
      "Longitude": 0.1,
      "Address": "string",
      "Phone": "string",
      "Photos": "string",
      "HotelDescription": "string",
      "Amenities": "string",
      "Chain": "string",
      "PropertyType": "string"
    }
  ],
  "DebugInfo": [
    "string"
  ],
  "CustomFields": [
    {
      "Name": "string",
      "Value": "string"
    }
  ],
  "Warnings": [
    "string"
  ]
}
HotelPOST

GetBookingConditions — Hotel

O que faz: Consulta as condições de reserva dos quartos escolhidos em RoomIds, a partir do Token da pesquisa: políticas de cancelamento, prazos de depósito e formas de pagamento.

Atenção

Chamada obrigatória antes do DoBooking — o Search pode trazer dados de cache.

Atenção

CanBook: false bloqueia o DoBooking — não prossiga para a reserva.

Atenção

MustCheckHotelInfo: true significa que o hotel do fornecedor pode ser diferente do pesquisado. Gere um alerta pedindo confirmação do usuário; avançar mesmo assim é responsabilidade do integrador.

Nota

Mesmo se o cupom já foi aplicado no Search, reenvie o DiscountCode aqui — esta etapa garante o preço final e a disponibilidade real do quarto.
Regras e detalhes da operação
  • RoomIds deve corresponder à configuração de quartos escolhida na pesquisa.
  • DepositDeadlines[] contém Amount, Type e DeadlineMember. RoomsNextOption é uma lista no primeiro nível da resposta, não um campo dentro de Rooms[].

Respostas HTTP

HTTPDescrição
200OK — GetBookingConditionsResponse.
400Requisição inválida: JSON malformado ou com campos inválidos.
500Erro não tratado (fault WCF).
URL
https://ws-cliente.cangooroo.net/API/REST/Hotel.svc/GetBookingConditions

Parâmetros

CampoTipoObrigatórioDescrição
CredentialobjectSimCredenciais da integração.
TokenstringSimToken retornado na pesquisa de Hotel.
HotelIdnumberSimIdentificador numérico do hotel escolhido.
RoomIdsarraySimLista de strings com os identificadores dos quartos selecionados na pesquisa.
RoomServicesarrayNãoServiços escolhidos por quarto. Services é uma lista de objetos com RoomDate e ServiceID, sem wrapper TicketDate.
DiscountCodestringNãoCupom de desconto; reenvie o código utilizado na pesquisa caso necessario.
RequestCustomFieldsarrayNãoLista de campos personalizados com Name e Value.
GetNextRoomOnErrorbooleanNãoPermite retornar opções alternativas em RoomsNextOption quando o quarto solicitado estiver indisponível.
Credential
CampoTipoObrigatórioDescrição
UsernamestringSimUsuário da integração.
PasswordstringSimSenha do usuário.
RoomServices[]
CampoTipoDescrição
RoomIdstringIdentificador do quarto ao qual os serviços se aplicam.
Outros campos (1)
CampoTipoDescrição
Servicesarray<object>
RoomServices[].Services[]
CampoTipoDescrição
RoomDatestringData do serviço no formato /Date(...)/.
ServiceIDstringIdentificador do serviço selecionado.
RequestCustomFields[]
CampoTipoDescrição
ValuestringValor informado.
Outros campos (1)
CampoTipoDescrição
Namestring
Try it outReferência

Credenciais da integração.

Token retornado na pesquisa de Hotel.

Identificador numérico do hotel escolhido.

Lista de strings com os identificadores dos quartos selecionados na pesquisa.

Serviços escolhidos por quarto. Services é uma lista de objetos com RoomDate e ServiceID, sem wrapper TicketDate.

Cupom de desconto; reenvie o código utilizado na pesquisa caso necessario.

Lista de campos personalizados com Name e Value.

Permite retornar opções alternativas em RoomsNextOption quando o quarto solicitado estiver indisponível.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Hotel.svc/GetBookingConditions" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "string",
    "Password": "string"
  },
  "Token": "string",
  "HotelId": 0,
  "RoomIds": [
    "string"
  ],
  "RoomServices": [
    {
      "RoomId": "string",
      "Services": [
        {
          "RoomDate": "/Date(1767225600000-0300)/",
          "ServiceID": "string"
        }
      ]
    }
  ],
  "DiscountCode": "string",
  "RequestCustomFields": [
    {
      "Name": "string",
      "Value": "string"
    }
  ],
  "GetNextRoomOnError": true
}'
Campos da resposta
CampoTipoDescrição
TokenstringToken da pesquisa usado nas próximas etapas.
ErrorobjectDetalhes de erro retornados pela API.
Messagesarray<object>Mensagens da operação.
Roomsarray<object>Quartos selecionados e suas condições de reserva.
RoomsNextOptionarray<object>Lista de quartos alternativos quando GetNextRoomOnError permite buscar outra opção.
CanPayLaterbooleanIndicador de possibilidade de pagamento posterior.
RestrictionTypestringTipo de restrição.
PayWithAgencyVCTypestringTipo de pagamento com cartão virtual da agência.
RevalidateBookingConditionsobjectDados para revalidação das condições de reserva.
Outros campos (4)
CampoTipoDescrição
TotalTimenumber
TimeSpanstring
SInfostring
PropertyTypestring
Error
CampoTipoDescrição
TokenstringToken da pesquisa usado nas próximas etapas.
Outros campos (7)
CampoTipoDescrição
Serverstring
Messagestring
Stacktracestring
TotalTimenumber
Codenumber
TimeSpanstring
SupportInfostring
Messages[]
Outros campos (2)
CampoTipoDescrição
valuestring
contentstring
Rooms[]
CampoTipoDescrição
IdnumberIdentificador numérico do quarto retornado.
SellingPricePerRoomobjectPreço de venda por quarto.
TotalSellingPriceobjectPreço total de venda.
CanBookbooleanSe false, não prossiga para DoBooking.
CancellationPoliciesarray<object>Políticas de cancelamento com períodos e valores.
SupplierHotelNamestringNome do hotel informado pelo fornecedor.
SupplierHotelAddressstringEndereço do hotel informado pelo fornecedor.
RequiredFieldsarray<string>Lista de campos exigidos retornada pelo fornecedor.
DepositDeadlinesarray<object>Prazos de depósito com Amount, Type e DeadlineMember.
MustCheckHotelInfobooleanSe true, confirme SupplierHotelName e SupplierHotelAddress com o usuário antes de reservar.
ShowCreditCardbooleanIndicador de exibição de cartão retornado pela API.
Outros campos (59)
CampoTipoDescrição
BoardDescriptionstring
RoomDescriptionstring
MinimumSellingPriceobject
Quantitynumber
IsAvailableboolean
PayDirectToHotelboolean
IsPrePaymentboolean
InvoiceCCboolean
MoreInformationstring
NumAdultsnumber
Halfboardboolean
Fulllboardboolean
AllInclusiveboolean
HasBreakfastboolean
ChildAgesarray<number>
IsNonRefundableboolean
CustomFieldsarray<object>
Servicesarray<object>
MediaRoomIdstring
DepositRequiredboolean
HomeIdstring
CheckInHourstring
CheckOutHourstring
DirectAgreementboolean
Taxesarray<object>
TotalTaxobject
Promotionsarray<string>
SpecialOfferboolean
CommissionPercentnumber
Commissionobject
UniqueRoomIdstring
CanInforSupplierInformationboolean
HotelIdnumber
InvoiceItemsarray<string>
PaymentLimitDatestring
PackageRateboolean
CancellationTypestring
PropertyValueobject
CanSelectFirstDayboolean
DiscountCouponobject
PropertyTaxesarray<object>
PriceWithCouponobject
TotalPriceWithCouponobject
CouponPriceobject
CouponCodestring
CouponDescriptionstring
PriceHasChangedboolean
PriceBreakdownarray<object>
ExclusiveDealboolean
TopHotelboolean
QuantityAvailablenumber
BoardCodestring
BoardMoreInformationstring
BedDescriptionstring
DisneyPackageboolean
AcceptsLoyaltyNumberboolean
MarketingIncentivestring
Requiredboolean
OperatorBookingDescriptionstring
Rooms[].SellingPricePerRoom
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].MinimumSellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].TotalSellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].CancellationPolicies[]
CampoTipoDescrição
ValueobjectValor informado.
Outros campos (2)
CampoTipoDescrição
StartDatestring
EndDatestring
Rooms[].CancellationPolicies[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].CustomFields[]
CampoTipoDescrição
ValuestringValor informado.
Outros campos (1)
CampoTipoDescrição
Namestring
Rooms[].Services[]
Outros campos (4)
CampoTipoDescrição
Servicesarray<object>
Typestring
QtyMaxnumber
QtyMinnumber
Rooms[].Services[].Services[]
Outros campos (6)
CampoTipoDescrição
IDstring
Namestring
Priceobject
Comissionobject
Descriptionstring
CanSelectFirstDayboolean
Rooms[].Services[].Services[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].Services[].Services[].Comission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].Taxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Rooms[].Taxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].TotalTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].Commission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].PropertyValue
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].DiscountCoupon
Outros campos (3)
CampoTipoDescrição
DiscountCouponValueobject
DiscountCouponDescriptionstring
DiscountCouponstring
Rooms[].DiscountCoupon.DiscountCouponValue
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].PropertyTaxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Rooms[].PropertyTaxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].PriceWithCoupon
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].TotalPriceWithCoupon
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].CouponPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].PriceBreakdown[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
Outros campos (4)
CampoTipoDescrição
Pricenumber
DateBreakdownstring
DateBreakdownStrstring
PriceToFrontobject
Rooms[].PriceBreakdown[].PriceToFront
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].DepositDeadlines[]
CampoTipoDescrição
AmountobjectMontante do depósito.
Outros campos (2)
CampoTipoDescrição
Typenumber
DeadlineMemberstring
Rooms[].DepositDeadlines[].Amount
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[]
CampoTipoDescrição
IdnumberIdentificador numérico do quarto retornado.
SellingPricePerRoomobjectPreço de venda por quarto.
TotalSellingPriceobjectPreço total de venda.
CanBookbooleanSe false, não prossiga para DoBooking.
CancellationPoliciesarray<object>Políticas de cancelamento com períodos e valores.
SupplierHotelNamestringNome do hotel informado pelo fornecedor.
SupplierHotelAddressstringEndereço do hotel informado pelo fornecedor.
RequiredFieldsarray<string>Lista de campos exigidos retornada pelo fornecedor.
DepositDeadlinesarray<object>Prazos de depósito com Amount, Type e DeadlineMember.
MustCheckHotelInfobooleanSe true, confirme SupplierHotelName e SupplierHotelAddress com o usuário antes de reservar.
ShowCreditCardbooleanIndicador de exibição de cartão retornado pela API.
Outros campos (59)
CampoTipoDescrição
BoardDescriptionstring
RoomDescriptionstring
MinimumSellingPriceobject
Quantitynumber
IsAvailableboolean
PayDirectToHotelboolean
IsPrePaymentboolean
InvoiceCCboolean
MoreInformationstring
NumAdultsnumber
Halfboardboolean
Fulllboardboolean
AllInclusiveboolean
HasBreakfastboolean
ChildAgesarray<number>
IsNonRefundableboolean
CustomFieldsarray<object>
Servicesarray<object>
MediaRoomIdstring
DepositRequiredboolean
HomeIdstring
CheckInHourstring
CheckOutHourstring
DirectAgreementboolean
Taxesarray<object>
TotalTaxobject
Promotionsarray<string>
SpecialOfferboolean
CommissionPercentnumber
Commissionobject
UniqueRoomIdstring
CanInforSupplierInformationboolean
HotelIdnumber
InvoiceItemsarray<string>
PaymentLimitDatestring
PackageRateboolean
CancellationTypestring
PropertyValueobject
CanSelectFirstDayboolean
DiscountCouponobject
PropertyTaxesarray<object>
PriceWithCouponobject
TotalPriceWithCouponobject
CouponPriceobject
CouponCodestring
CouponDescriptionstring
PriceHasChangedboolean
PriceBreakdownarray<object>
ExclusiveDealboolean
TopHotelboolean
QuantityAvailablenumber
BoardCodestring
BoardMoreInformationstring
BedDescriptionstring
DisneyPackageboolean
AcceptsLoyaltyNumberboolean
MarketingIncentivestring
Requiredboolean
OperatorBookingDescriptionstring
RoomsNextOption[].SellingPricePerRoom
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].MinimumSellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].TotalSellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].CancellationPolicies[]
CampoTipoDescrição
ValueobjectValor informado.
Outros campos (2)
CampoTipoDescrição
StartDatestring
EndDatestring
RoomsNextOption[].CancellationPolicies[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].CustomFields[]
CampoTipoDescrição
ValuestringValor informado.
Outros campos (1)
CampoTipoDescrição
Namestring
RoomsNextOption[].Services[]
Outros campos (4)
CampoTipoDescrição
Servicesarray<object>
Typestring
QtyMaxnumber
QtyMinnumber
RoomsNextOption[].Services[].Services[]
Outros campos (6)
CampoTipoDescrição
IDstring
Namestring
Priceobject
Comissionobject
Descriptionstring
CanSelectFirstDayboolean
RoomsNextOption[].Services[].Services[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].Services[].Services[].Comission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].Taxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
RoomsNextOption[].Taxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].TotalTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].Commission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].PropertyValue
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].DiscountCoupon
Outros campos (3)
CampoTipoDescrição
DiscountCouponValueobject
DiscountCouponDescriptionstring
DiscountCouponstring
RoomsNextOption[].DiscountCoupon.DiscountCouponValue
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].PropertyTaxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
RoomsNextOption[].PropertyTaxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].PriceWithCoupon
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].TotalPriceWithCoupon
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].CouponPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].PriceBreakdown[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
Outros campos (4)
CampoTipoDescrição
Pricenumber
DateBreakdownstring
DateBreakdownStrstring
PriceToFrontobject
RoomsNextOption[].PriceBreakdown[].PriceToFront
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RoomsNextOption[].DepositDeadlines[]
CampoTipoDescrição
AmountobjectMontante do depósito.
Outros campos (2)
CampoTipoDescrição
Typenumber
DeadlineMemberstring
RoomsNextOption[].DepositDeadlines[].Amount
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
RevalidateBookingConditions
CampoTipoDescrição
RoomsConditionsstringCondições de quartos retornadas para revalidação.
Exemplo de response
{
  "TotalTime": 0,
  "Token": "string",
  "TimeSpan": "string",
  "Error": {
    "Server": "string",
    "Message": "string",
    "Stacktrace": "string",
    "TotalTime": 0,
    "Code": 0,
    "Token": "string",
    "TimeSpan": "string",
    "SupportInfo": "string"
  },
  "Messages": [
    {
      "value": "string",
      "content": "string"
    }
  ],
  "SInfo": "string",
  "Rooms": [
    {
      "Id": 0,
      "BoardDescription": "string",
      "RoomDescription": "string",
      "SellingPricePerRoom": {
        "Currency": "string",
        "Value": 0
      },
      "MinimumSellingPrice": {
        "Currency": "string",
        "Value": 0
      },
      "TotalSellingPrice": {
        "Currency": "string",
        "Value": 0
      },
      "Quantity": 0,
      "IsAvailable": true,
      "CanBook": true,
      "PayDirectToHotel": true,
      "IsPrePayment": true,
      "InvoiceCC": true,
      "MoreInformation": "string",
      "CancellationPolicies": [
        {
          "StartDate": "string",
          "EndDate": "string",
          "Value": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "NumAdults": 0,
      "Halfboard": true,
      "Fulllboard": true,
      "AllInclusive": true,
      "HasBreakfast": true,
      "ChildAges": [
        0
      ],
      "IsNonRefundable": true,
      "CustomFields": [
        {
          "Name": "string",
          "Value": "string"
        }
      ],
      "Services": [
        {
          "Services": [
            {
              "ID": "string",
              "Name": "string",
              "Price": {
                "Currency": "string",
                "Value": 0
              },
              "Comission": {
                "Currency": "string",
                "Value": 0
              },
              "Description": "string",
              "CanSelectFirstDay": true
            }
          ],
          "Type": "string",
          "QtyMax": 0,
          "QtyMin": 0
        }
      ],
      "MediaRoomId": "string",
      "DepositRequired": true,
      "HomeId": "string",
      "CheckInHour": "string",
      "CheckOutHour": "string",
      "DirectAgreement": true,
      "Taxes": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "TotalTax": {
        "Currency": "string",
        "Value": 0
      },
      "Promotions": [
        "string"
      ],
      "SpecialOffer": true,
      "CommissionPercent": 0,
      "Commission": {
        "Currency": "string",
        "Value": 0
      },
      "UniqueRoomId": "string",
      "CanInforSupplierInformation": true,
      "HotelId": 0,
      "InvoiceItems": [
        "string"
      ],
      "PaymentLimitDate": "/Date(1767225600000-0300)/",
      "PackageRate": true,
      "CancellationType": "string",
      "PropertyValue": {
        "Currency": "string",
        "Value": 0
      },
      "CanSelectFirstDay": true,
      "DiscountCoupon": {
        "DiscountCouponValue": {
          "Currency": "string",
          "Value": 0
        },
        "DiscountCouponDescription": "string",
        "DiscountCoupon": "string"
      },
      "PropertyTaxes": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "PriceWithCoupon": {
        "Currency": "string",
        "Value": 0
      },
      "TotalPriceWithCoupon": {
        "Currency": "string",
        "Value": 0
      },
      "CouponPrice": {
        "Currency": "string",
        "Value": 0
      },
      "CouponCode": "string",
      "CouponDescription": "string",
      "PriceHasChanged": true,
      "PriceBreakdown": [
        {
          "Price": 0,
          "Currency": "string",
          "DateBreakdown": "/Date(1767225600000-0300)/",
          "DateBreakdownStr": "string",
          "PriceToFront": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "ExclusiveDeal": true,
      "TopHotel": true,
      "QuantityAvailable": 0,
      "BoardCode": "string",
      "BoardMoreInformation": "string",
      "BedDescription": "string",
      "DisneyPackage": true,
      "AcceptsLoyaltyNumber": true,
      "MarketingIncentive": "string",
      "SupplierHotelName": "string",
      "SupplierHotelAddress": "string",
      "Required": true,
      "RequiredFields": [
        "string"
      ],
      "DepositDeadlines": [
        {
          "Amount": {
            "Currency": "string",
            "Value": 0
          },
          "Type": 0,
          "DeadlineMember": "/Date(1767225600000-0300)/"
        }
      ],
      "OperatorBookingDescription": "string",
      "MustCheckHotelInfo": true,
      "ShowCreditCard": true
    }
  ],
  "RoomsNextOption": [
    {
      "Id": 0,
      "BoardDescription": "string",
      "RoomDescription": "string",
      "SellingPricePerRoom": {
        "Currency": "string",
        "Value": 0
      },
      "MinimumSellingPrice": {
        "Currency": "string",
        "Value": 0
      },
      "TotalSellingPrice": {
        "Currency": "string",
        "Value": 0
      },
      "Quantity": 0,
      "IsAvailable": true,
      "CanBook": true,
      "PayDirectToHotel": true,
      "IsPrePayment": true,
      "InvoiceCC": true,
      "MoreInformation": "string",
      "CancellationPolicies": [
        {
          "StartDate": "string",
          "EndDate": "string",
          "Value": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "NumAdults": 0,
      "Halfboard": true,
      "Fulllboard": true,
      "AllInclusive": true,
      "HasBreakfast": true,
      "ChildAges": [
        0
      ],
      "IsNonRefundable": true,
      "CustomFields": [
        {
          "Name": "string",
          "Value": "string"
        }
      ],
      "Services": [
        {
          "Services": [
            {
              "ID": "string",
              "Name": "string",
              "Price": {
                "Currency": "string",
                "Value": 0
              },
              "Comission": {
                "Currency": "string",
                "Value": 0
              },
              "Description": "string",
              "CanSelectFirstDay": true
            }
          ],
          "Type": "string",
          "QtyMax": 0,
          "QtyMin": 0
        }
      ],
      "MediaRoomId": "string",
      "DepositRequired": true,
      "HomeId": "string",
      "CheckInHour": "string",
      "CheckOutHour": "string",
      "DirectAgreement": true,
      "Taxes": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "TotalTax": {
        "Currency": "string",
        "Value": 0
      },
      "Promotions": [
        "string"
      ],
      "SpecialOffer": true,
      "CommissionPercent": 0,
      "Commission": {
        "Currency": "string",
        "Value": 0
      },
      "UniqueRoomId": "string",
      "CanInforSupplierInformation": true,
      "HotelId": 0,
      "InvoiceItems": [
        "string"
      ],
      "PaymentLimitDate": "/Date(1767225600000-0300)/",
      "PackageRate": true,
      "CancellationType": "string",
      "PropertyValue": {
        "Currency": "string",
        "Value": 0
      },
      "CanSelectFirstDay": true,
      "DiscountCoupon": {
        "DiscountCouponValue": {
          "Currency": "string",
          "Value": 0
        },
        "DiscountCouponDescription": "string",
        "DiscountCoupon": "string"
      },
      "PropertyTaxes": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "PriceWithCoupon": {
        "Currency": "string",
        "Value": 0
      },
      "TotalPriceWithCoupon": {
        "Currency": "string",
        "Value": 0
      },
      "CouponPrice": {
        "Currency": "string",
        "Value": 0
      },
      "CouponCode": "string",
      "CouponDescription": "string",
      "PriceHasChanged": true,
      "PriceBreakdown": [
        {
          "Price": 0,
          "Currency": "string",
          "DateBreakdown": "/Date(1767225600000-0300)/",
          "DateBreakdownStr": "string",
          "PriceToFront": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "ExclusiveDeal": true,
      "TopHotel": true,
      "QuantityAvailable": 0,
      "BoardCode": "string",
      "BoardMoreInformation": "string",
      "BedDescription": "string",
      "DisneyPackage": true,
      "AcceptsLoyaltyNumber": true,
      "MarketingIncentive": "string",
      "SupplierHotelName": "string",
      "SupplierHotelAddress": "string",
      "Required": true,
      "RequiredFields": [
        "string"
      ],
      "DepositDeadlines": [
        {
          "Amount": {
            "Currency": "string",
            "Value": 0
          },
          "Type": 0,
          "DeadlineMember": "/Date(1767225600000-0300)/"
        }
      ],
      "OperatorBookingDescription": "string",
      "MustCheckHotelInfo": true,
      "ShowCreditCard": true
    }
  ],
  "CanPayLater": true,
  "RestrictionType": "string",
  "PayWithAgencyVCType": "string",
  "RevalidateBookingConditions": {
    "RoomsConditions": "string"
  },
  "PropertyType": "string"
}
HotelPOST

DoBooking — Hotel

O que faz: Efetua a reserva dos quartos escolhidos a partir do Token da pesquisa, informando hóspedes e pagamento.

Atenção

Em erro HTTP ou timeout, NÃO crie nova reserva: consulte CheckBookingStatus / GetBookingDetail antes de qualquer nova tentativa.

Atenção

Um Token só pode gerar UMA reserva. Reenviar o mesmo Token para criar outra retorna [ERR_0567].

Nota

Quando IsBilled = true, os dados de cartão e contratante são dispensados; sem uso de uma forma de pagamento, Payment e IsBilled não precisam ser enviados.
Regras e detalhes da operação
  • Se SetWaitingPayment = true, a reserva fica "awaiting payment" até o payBooking.
  • Age é obrigatório somente para hóspedes com isChild = true. Address não é obrigatório e não há regra de quantidade de caracteres para Cpf.
  • Payment fica dentro de Rooms[].
  • Use Rooms[].ReservationId como BookingId nas operações posteriores e confira Rooms[].Status para saber se o serviço está Confirmed.

Respostas HTTP

HTTPDescrição
200OK — DoBookingResponse.
400Requisição inválida: JSON malformado ou com campos inválidos.
500Erro não tratado (fault WCF).
URL
https://ws-cliente.cangooroo.net/API/REST/Hotel.svc/DoBooking

Parâmetros

CampoTipoObrigatórioDescrição
TokenstringSimToken retornado pela pesquisa de Hotel.
CredentialobjectSimCredenciais da integração.
HotelIdnumberSimIdentificador do hotel escolhido.
RoomsarraySimQuartos da reserva; cada item contém RoomId, Paxs e, quando utilizado, Payment.
BookingIdnumberNãoIdentificador numérico da reserva.
SendEmailbooleanNãoIndicador de envio de e-mail.
SetWaitingPaymentbooleanNãoSe true, a reserva fica awaiting payment até o payBooking.
ClientReferencestringNãoReferência interna do integrador; recomendada para localizar a reserva em casos de erro ou timeout.
DiscountCodestringNãoCódigo do cupom de desconto; mantenha o código utilizado nas etapas anteriores.
Outros campos (11)
CampoTipoObrigatórioDescrição
PayBeforeBookbooleanNão
ResponsibleOperatorIdnumberNão
PayWithAgencyVCbooleanNão
InvoicebooleanNão
AgencyCardIdnumberNão
SupplierPaymentAgencyCardIdnumberNão
CardIdnumberNão
CgrCorebooleanNão
MotivoViagemnumberNão
CentroCustostringNão
ProjetostringNão
Credential
CampoTipoObrigatórioDescrição
UsernamestringSimUsuário da integração.
PasswordstringSimSenha do usuário.
Rooms[]
CampoTipoDescrição
Paxsarray<object>Hóspedes do quarto. Age é obrigatório quando isChild = true; para adultos, é opcional.
RoomIdstringIdentificador do quarto selecionado, enviado como string nesta operação.
PaymentobjectPagamento do quarto. Sem uso de uma forma de pagamento, não é necessário enviar Payment ou IsBilled.
RoomServicesarray<string>Lista de strings dos serviços do quarto.
InvoceItensarray<number>Lista numérica de itens no request; grafia preservada.
CorporateInfoobjectInformações corporativas associadas ao quarto.
Outros campos (1)
CampoTipoDescrição
InformationToSupplierstring
Rooms[].Paxs[]
CampoTipoDescrição
AgenumberIdade do hóspede; obrigatória somente quando isChild = true.
MainPaxbooleanIndica o hóspede principal.
isChildbooleanIndica se o hóspede é criança.
Outros campos (31)
CampoTipoDescrição
Namestring
Surnamestring
Cpfstring
DocumentNumberstring
DocumentExpirationDatestring
DocumentCountryIdstring
DocumentTypestring
Titlestring
EnumTitlestring
Addressstring
Citystring
ZipCodestring
Statestring
AddressNumbernumber
AddressComplementstring
Emailstring
PhoneDDDstring
PhoneDDIstring
PhoneNumberstring
BirthDatestring
CountryCodeISOstring
Typestring
EmergencyContactFirstNamestring
EmergencyContactLastNamestring
EmergencyContactDDIstring
EmergencyContactDDDstring
EmergencyContactTelephonestring
EmergencyContactParentagestring
Ticketstring
LoyaltyNumberstring
AcceptMarketingEmailboolean
Rooms[].Payment
CampoTipoDescrição
PaymentRequestCC1objectDados da primeira solicitação de pagamento por cartão.
PaymentRequestCC2objectDados da segunda solicitação de pagamento por cartão.
PaymentConditionIdnumberIdentificador da condição de pagamento utilizada.
Outros campos (5)
CampoTipoDescrição
UrlPosPaymentstring
RetainCommissionboolean
SmartCommissionValuenumber
PaymentSourcestring
FraudAnalysisobject
Rooms[].Payment.PaymentRequestCC1
CampoTipoDescrição
IsBilledbooleanQuando true, dispensa os dados de cartão e contratante. Se houver pagamento e IsBilled não for true, informe os dados necessários da forma de pagamento.
CreditCardobjectDados do cartão de pagamento.
ContractingPartyobjectDados do contratante do pagamento.
Rooms[].Payment.PaymentRequestCC1.CreditCard
Outros campos (7)
CampoTipoDescrição
Holderstring
CardNumberstring
SecurityCodestring
YearExpirationnumber
MonthExpirationnumber
NumberPaymentsnumber
CardOperatorstring
Rooms[].Payment.PaymentRequestCC1.ContractingParty
Outros campos (15)
CampoTipoDescrição
DistrictNamestring
ZipCodestring
CityNamestring
AddressComplementstring
CPFstring
Addressstring
PersonNamestring
AddressNumberstring
PhoneNumberstring
PhoneNumberDDDstring
PhoneNumberDDIstring
StateCodestring
Emailstring
ReceiveCreditCardReceiptboolean
CountryCodestring
Rooms[].Payment.PaymentRequestCC2
CampoTipoDescrição
IsBilledbooleanQuando true, dispensa os dados de cartão e contratante. Se houver pagamento e IsBilled não for true, informe os dados necessários da forma de pagamento.
CreditCardobjectDados do cartão de pagamento.
ContractingPartyobjectDados do contratante do pagamento.
Rooms[].Payment.PaymentRequestCC2.CreditCard
Outros campos (7)
CampoTipoDescrição
Holderstring
CardNumberstring
SecurityCodestring
YearExpirationnumber
MonthExpirationnumber
NumberPaymentsnumber
CardOperatorstring
Rooms[].Payment.PaymentRequestCC2.ContractingParty
Outros campos (15)
CampoTipoDescrição
DistrictNamestring
ZipCodestring
CityNamestring
AddressComplementstring
CPFstring
Addressstring
PersonNamestring
AddressNumberstring
PhoneNumberstring
PhoneNumberDDDstring
PhoneNumberDDIstring
StateCodestring
Emailstring
ReceiveCreditCardReceiptboolean
CountryCodestring
Rooms[].Payment.FraudAnalysis
Outros campos (3)
CampoTipoDescrição
FingerPrintIdstring
IpAddressstring
UserAgentstring
Rooms[].CorporateInfo
Outros campos (11)
CampoTipoDescrição
ControlInfostring
ControlInfo2string
ControlInfo3string
Authorizerstring
CostCenterstring
Departmentstring
Registrationstring
Requeststring
Requesterstring
ClientIdstring
Chavecartaostring
Try it outReferência

Token retornado pela pesquisa de Hotel.

Credenciais da integração.

Identificador do hotel escolhido.

Quartos da reserva; cada item contém RoomId, Paxs e, quando utilizado, Payment.

Identificador numérico da reserva.

Indicador de envio de e-mail.

Se true, a reserva fica awaiting payment até o payBooking.

Referência interna do integrador; recomendada para localizar a reserva em casos de erro ou timeout.

Código do cupom de desconto; mantenha o código utilizado nas etapas anteriores.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Hotel.svc/DoBooking" \
  -H "Content-Type: application/json" \
  -d '{
  "Token": "string",
  "Credential": {
    "Username": "string",
    "Password": "string"
  },
  "HotelId": 0,
  "Rooms": [
    {
      "Paxs": [
        {
          "Name": "string",
          "Surname": "string",
          "Age": 0,
          "Cpf": "string",
          "DocumentNumber": "string",
          "DocumentExpirationDate": "string",
          "DocumentCountryId": "string",
          "DocumentType": "string",
          "Title": "string",
          "EnumTitle": "string",
          "MainPax": true,
          "isChild": true,
          "Address": "string",
          "City": "string",
          "ZipCode": "string",
          "State": "string",
          "AddressNumber": 0,
          "AddressComplement": "string",
          "Email": "string",
          "PhoneDDD": "string",
          "PhoneDDI": "string",
          "PhoneNumber": "string",
          "BirthDate": "string",
          "CountryCodeISO": "string",
          "Type": "string",
          "EmergencyContactFirstName": "string",
          "EmergencyContactLastName": "string",
          "EmergencyContactDDI": "string",
          "EmergencyContactDDD": "string",
          "EmergencyContactTelephone": "string",
          "EmergencyContactParentage": "string",
          "Ticket": "string",
          "LoyaltyNumber": "string",
          "AcceptMarketingEmail": true
        }
      ],
      "RoomId": "string",
      "Payment": {
        "PaymentRequestCC1": {
          "IsBilled": true,
          "CreditCard": {
            "Holder": "string",
            "CardNumber": "string",
            "SecurityCode": "string",
            "YearExpiration": 0,
            "MonthExpiration": 0,
            "NumberPayments": 0,
            "CardOperator": "string"
          },
          "ContractingParty": {
            "DistrictName": "string",
            "ZipCode": "string",
            "CityName": "string",
            "AddressComplement": "string",
            "CPF": "string",
            "Address": "string",
            "PersonName": "string",
            "AddressNumber": "string",
            "PhoneNumber": "string",
            "PhoneNumberDDD": "string",
            "PhoneNumberDDI": "string",
            "StateCode": "string",
            "Email": "string",
            "ReceiveCreditCardReceipt": true,
            "CountryCode": "string"
          }
        },
        "PaymentRequestCC2": {
          "IsBilled": true,
          "CreditCard": {
            "Holder": "string",
            "CardNumber": "string",
            "SecurityCode": "string",
            "YearExpiration": 0,
            "MonthExpiration": 0,
            "NumberPayments": 0,
            "CardOperator": "string"
          },
          "ContractingParty": {
            "DistrictName": "string",
            "ZipCode": "string",
            "CityName": "string",
            "AddressComplement": "string",
            "CPF": "string",
            "Address": "string",
            "PersonName": "string",
            "AddressNumber": "string",
            "PhoneNumber": "string",
            "PhoneNumberDDD": "string",
            "PhoneNumberDDI": "string",
            "StateCode": "string",
            "Email": "string",
            "ReceiveCreditCardReceipt": true,
            "CountryCode": "string"
          }
        },
        "UrlPosPayment": "string",
        "RetainCommission": true,
        "SmartCommissionValue": 0,
        "PaymentConditionId": 0,
        "PaymentSource": "string",
        "FraudAnalysis": {
          "FingerPrintId": "string",
          "IpAddress": "string",
          "UserAgent": "string"
        }
      },
      "InformationToSupplier": "string",
      "RoomServices": [
        "string"
      ],
      "InvoceItens": [
        0
      ],
      "CorporateInfo": {
        "ControlInfo": "string",
        "ControlInfo2": "string",
        "ControlInfo3": "string",
        "Authorizer": "string",
        "CostCenter": "string",
        "Department": "string",
        "Registration": "string",
        "Request": "string",
        "Requester": "string",
        "ClientId": "string",
        "Chavecartao": "string"
      }
    }
  ],
  "BookingId": 0,
  "SendEmail": true,
  "SetWaitingPayment": true,
  "PayBeforeBook": true,
  "ClientReference": "string",
  "ResponsibleOperatorId": 0,
  "DiscountCode": "string",
  "PayWithAgencyVC": true,
  "Invoice": true,
  "AgencyCardId": 0,
  "SupplierPaymentAgencyCardId": 0,
  "CardId": 0,
  "CgrCore": true,
  "MotivoViagem": 0,
  "CentroCusto": "string",
  "Projeto": "string"
}'
Campos da resposta
CampoTipoDescrição
TokenstringToken retornado pela pesquisa de Hotel.
ErrorobjectDetalhes de erro retornados pela API.
Messagesarray<object>Mensagens da operação.
Roomsarray<object>Quartos da reserva; cada item contém RoomId, Paxs e, quando utilizado, Payment.
RequestIdnumberIdentificador numérico da solicitação gerada quando aplicável, inclusive em caso de restrição do cliente.
Outros campos (3)
CampoTipoDescrição
TotalTimenumber
TimeSpanstring
SInfostring
Error
CampoTipoDescrição
TokenstringToken retornado pela pesquisa de Hotel.
Outros campos (7)
CampoTipoDescrição
Serverstring
Messagestring
Stacktracestring
TotalTimenumber
Codenumber
TimeSpanstring
SupportInfostring
Messages[]
Outros campos (2)
CampoTipoDescrição
valuestring
contentstring
Rooms[]
CampoTipoDescrição
ServiceIdstringIdentificador do serviço retornado em Rooms[].
ReservationIdstringIdentificador da reserva retornado em Rooms[], utilizado como BookingId nas operações posteriores.
StatusstringEstado do serviço; considere confirmado somente quando o valor for Confirmed. O valor string do exemplo não indica sucesso.
Paxsarray<object>Hóspedes do quarto. Age é obrigatório quando isChild = true; para adultos, é opcional.
CancellationPoliciesarray<object>Políticas de cancelamento com períodos e valores.
SupplierReservationCodestringLocalizador da reserva no fornecedor.
HotelConfirmationNumberstringNúmero de confirmação do próprio hotel.
HotelIdstringIdentificador do hotel escolhido.
HCNstringNúmero de confirmação do hotel.
Paymentsarray<object>Pagamentos retornados para o serviço; estrutura distinta do Payment enviado na requisição.
DepositDeadlinesarray<object>Prazos de depósito com Deadline, Value e Type nesta resposta.
Outros campos (104)
CampoTipoDescrição
Observationsstring
SellingPriceobject
Comissionobject
HotelNamestring
DestinationNamestring
CheckInstring
CheckOutstring
HotelAddressstring
BoardDescriptionstring
RoomDescriptionstring
CustomFieldsarray<object>
PaymentStatusstring
Phonestring
DestinationIdstring
SupplierHotelIdstring
CancellationDatestring
HotelCategorystring
ReservationDatestring
LogXMLAuditstring
NumberOfAdultsnumber
NumberOfChildrennumber
NumberOfNightsnumber
CountryIdstring
AutomaticCancellationboolean
Markupnumber
MarkupCalculationstring
CommissionCalculationstring
IsOfflineboolean
MarkupTypestring
CommissionRetainedboolean
CancellationBlockedWSboolean
PaymentDeadLinestring
VoucherObservationstring
PaymentDatestring
InvoiceIdnumber
PaymentConvertionRatenumber
PaymentCurrencystring
NetTaxobject
TotalTaxobject
SellingPriceWithoutTaxobject
CanSeeVoucherboolean
AgencyCommissionPercentnumber
OperatorBookingDescriptionstring
CheckInHourstring
CheckOutHourstring
InvoiceItensarray<string>
SupplierInformationstring
AddAdditionalInfoarray<object>
Taxesarray<object>
DiscountCouponobject
CityIdnumber
CountryCodestring
CountryNamestring
CityNamestring
ManualReservationPaymentTypestring
PropertyTaxesarray<object>
CancellationTypestring
VoucherUrlstring
CreationUserDetailobject
BookingWillBeInvoicedboolean
AutomaticCancellationEnabledboolean
HotelCNPJstring
BreakdownSalesarray<object>
BookingDescriptionstring
BreakfastIncludedboolean
Billedboolean
AgencyCommissionnumber
CheckInDatestring
ExtraInformationstring
AgencyCurrencyCommissionstring
NetPriceobject
OperatorCancellationPoliciesarray<object>
SystemStatusnumber
PaymentsConditionsobject
ProviderIDnumber
ProviderNamestring
LastUpdateUserDetailobject
OriginalAgencyCommissionnumber
BilletURLstring
UniqueIdentifierstring
FinancialTransactionsarray<object>
SupplierFinancialTransactionsarray<object>
BloquearRebookingboolean
PaymentTypestring
UrlRedirectAfterCancelWhenHasRefundstring
SupplierComissionobject
SupplierCommissionPercentnumber
PayAtHotelboolean
SupplierVCNPaymentboolean
SupplierCardNumberstring
BeforeBookingstring
Discountobject
OriginalSellingPriceobject
MotivoViagemstring
CentroCustostring
CheckinInstructionsstring
CheckinUrlstring
Projetostring
CardProcessingDatestring
Extrasarray<object>
AssyncBookingboolean
PropertyTypestring
CangoorooInvoiceTypestring
ManualReservationboolean
Rooms[].Paxs[]
CampoTipoDescrição
AgenumberIdade do hóspede; obrigatória somente quando isChild = true.
MainPaxbooleanIndica o hóspede principal.
isChildbooleanIndica se o hóspede é criança.
Outros campos (31)
CampoTipoDescrição
Namestring
Surnamestring
Cpfstring
DocumentNumberstring
DocumentExpirationDatestring
DocumentCountryIdstring
DocumentTypestring
Titlestring
EnumTitlestring
Addressstring
Citystring
ZipCodestring
Statestring
AddressNumbernumber
AddressComplementstring
Emailstring
PhoneDDDstring
PhoneDDIstring
PhoneNumberstring
BirthDatestring
CountryCodeISOstring
Typestring
EmergencyContactFirstNamestring
EmergencyContactLastNamestring
EmergencyContactDDIstring
EmergencyContactDDDstring
EmergencyContactTelephonestring
EmergencyContactParentagestring
Ticketstring
LoyaltyNumberstring
AcceptMarketingEmailboolean
Rooms[].SellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].Comission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].CustomFields[]
CampoTipoDescrição
ValuestringValor informado.
Outros campos (1)
CampoTipoDescrição
Namestring
Rooms[].CancellationPolicies[]
CampoTipoDescrição
ValueobjectValor informado.
Outros campos (2)
CampoTipoDescrição
StartDatestring
EndDatestring
Rooms[].CancellationPolicies[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].NetTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].TotalTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].SellingPriceWithoutTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].AddAdditionalInfo[]
Outros campos (2)
CampoTipoDescrição
Contentstring
Namestring
Rooms[].Payments[]
CampoTipoDescrição
StatusnumberEstado do serviço; considere confirmado somente quando o valor for Confirmed. O valor string do exemplo não indica sucesso.
CreditCardobjectDados do cartão de pagamento.
CurrencyobjectMoeda do valor informado.
Outros campos (16)
CampoTipoDescrição
Datestring
PaymentTypenumber
PaymentOriginalobject
PaymentConvertedobject
PaymentPortionobject
Checkobject
Billetobject
CreditAccountobject
MessageClientAuthstring
MessageOperAuthstring
URLReceiptOfPaymentstring
TransactionIdstring
InvoicePaymentIdstring
PaymentSupplierIdnumber
PaymentSupplierNamestring
Observationstring
Rooms[].Payments[].PaymentOriginal
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].Payments[].PaymentConverted
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].Payments[].PaymentPortion
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].Payments[].CreditCard
Outros campos (10)
CampoTipoDescrição
Namestring
CPFstring
Locationobject
Phoneobject
CardNumberstring
PaymentNumbernumber
CardTypeobject
ExpirationMonthnumber
ExpirationYearnumber
InstallmentsNumbernumber
Rooms[].Payments[].CreditCard.Location
Outros campos (7)
CampoTipoDescrição
Addressstring
Numberstring
Complementstring
Districtstring
ZipCodestring
Citystring
Statestring
Rooms[].Payments[].CreditCard.Phone
Outros campos (3)
CampoTipoDescrição
DDIstring
DDDstring
Numberstring
Rooms[].Payments[].CreditCard.CardType
Outros campos (8)
CampoTipoDescrição
Namestring
AutorizationCodestring
TransactionIdstring
Priceobject
TransactionDatestring
ReturnCodestring
NSUstring
Gatewaystring
Rooms[].Payments[].CreditCard.CardType.Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].Payments[].Check
CampoTipoDescrição
ValueobjectValor informado.
Outros campos (2)
CampoTipoDescrição
Numberstring
Bankstring
Rooms[].Payments[].Check.Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].Payments[].Billet
Outros campos (5)
CampoTipoDescrição
Namestring
CPFstring
CNPJstring
Locationobject
Phoneobject
Rooms[].Payments[].Billet.Location
Outros campos (7)
CampoTipoDescrição
Addressstring
Numberstring
Complementstring
Districtstring
ZipCodestring
Citystring
Statestring
Rooms[].Payments[].Billet.Phone
Outros campos (3)
CampoTipoDescrição
DDIstring
DDDstring
Numberstring
Rooms[].Payments[].CreditAccount
Outros campos (6)
CampoTipoDescrição
Bankstring
BankCodestring
AgencyCodestring
AccountNumberstring
CardNamestring
CNPJstring
Rooms[].Payments[].Currency
Outros campos (3)
CampoTipoDescrição
CurrencyFromstring
CurrencyTostring
ConvertionValuenumber
Rooms[].Taxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Rooms[].Taxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].DiscountCoupon
Outros campos (3)
CampoTipoDescrição
DiscountCouponValueobject
DiscountCouponDescriptionstring
DiscountCouponstring
Rooms[].DiscountCoupon.DiscountCouponValue
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].PropertyTaxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Rooms[].PropertyTaxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].CreationUserDetail
Outros campos (9)
CampoTipoDescrição
idnumber
Usernamestring
Namestring
Typestring
AgencyIdnumber
AgencyNamestring
BranchOfficeIdnumber
BranchOfficeNamestring
Emailstring
Rooms[].BreakdownSales[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
Outros campos (4)
CampoTipoDescrição
Pricenumber
DateBreakdownstring
DateBreakdownStrstring
PriceToFrontobject
Rooms[].BreakdownSales[].PriceToFront
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].NetPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].OperatorCancellationPolicies[]
CampoTipoDescrição
ValueobjectValor informado.
Outros campos (2)
CampoTipoDescrição
StartDatestring
EndDatestring
Rooms[].OperatorCancellationPolicies[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].PaymentsConditions
CampoTipoDescrição
StatusbooleanEstado do serviço; considere confirmado somente quando o valor for Confirmed. O valor string do exemplo não indica sucesso.
Outros campos (4)
CampoTipoDescrição
PaymentTypenumber
NameConditionstring
FinancialRatestring
IdConditionnumber
Rooms[].LastUpdateUserDetail
Outros campos (9)
CampoTipoDescrição
idnumber
Usernamestring
Namestring
Typestring
AgencyIdnumber
AgencyNamestring
BranchOfficeIdnumber
BranchOfficeNamestring
Emailstring
Rooms[].DepositDeadlines[]
CampoTipoDescrição
ValueobjectValor informado.
Outros campos (2)
CampoTipoDescrição
Deadlinestring
Typenumber
Rooms[].DepositDeadlines[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].FinancialTransactions[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
StatusstringEstado do serviço; considere confirmado somente quando o valor for Confirmed. O valor string do exemplo não indica sucesso.
Outros campos (3)
CampoTipoDescrição
Datestring
Typestring
Informationstring
Rooms[].SupplierFinancialTransactions[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
StatusstringEstado do serviço; considere confirmado somente quando o valor for Confirmed. O valor string do exemplo não indica sucesso.
Outros campos (3)
CampoTipoDescrição
Datestring
Typestring
Informationstring
Rooms[].SupplierComission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].Discount
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].OriginalSellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Rooms[].Extras[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Rooms[].Extras[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado.
Exemplo de response
{
  "TotalTime": 0,
  "Token": "string",
  "TimeSpan": "string",
  "Error": {
    "Server": "string",
    "Message": "string",
    "Stacktrace": "string",
    "TotalTime": 0,
    "Code": 0,
    "Token": "string",
    "TimeSpan": "string",
    "SupportInfo": "string"
  },
  "Messages": [
    {
      "value": "string",
      "content": "string"
    }
  ],
  "SInfo": "string",
  "Rooms": [
    {
      "ServiceId": "string",
      "ReservationId": "string",
      "Status": "string",
      "Observations": "string",
      "Paxs": [
        {
          "Name": "string",
          "Surname": "string",
          "Age": 0,
          "Cpf": "string",
          "DocumentNumber": "string",
          "DocumentExpirationDate": "string",
          "DocumentCountryId": "string",
          "DocumentType": "string",
          "Title": "string",
          "EnumTitle": "string",
          "MainPax": true,
          "isChild": true,
          "Address": "string",
          "City": "string",
          "ZipCode": "string",
          "State": "string",
          "AddressNumber": 0,
          "AddressComplement": "string",
          "Email": "string",
          "PhoneDDD": "string",
          "PhoneDDI": "string",
          "PhoneNumber": "string",
          "BirthDate": "string",
          "CountryCodeISO": "string",
          "Type": "string",
          "EmergencyContactFirstName": "string",
          "EmergencyContactLastName": "string",
          "EmergencyContactDDI": "string",
          "EmergencyContactDDD": "string",
          "EmergencyContactTelephone": "string",
          "EmergencyContactParentage": "string",
          "Ticket": "string",
          "LoyaltyNumber": "string",
          "AcceptMarketingEmail": true
        }
      ],
      "SellingPrice": {
        "Currency": "string",
        "Value": 0
      },
      "Comission": {
        "Currency": "string",
        "Value": 0
      },
      "HotelName": "string",
      "DestinationName": "string",
      "CheckIn": "string",
      "CheckOut": "string",
      "HotelAddress": "string",
      "BoardDescription": "string",
      "RoomDescription": "string",
      "CustomFields": [
        {
          "Name": "string",
          "Value": "string"
        }
      ],
      "PaymentStatus": "string",
      "CancellationPolicies": [
        {
          "StartDate": "string",
          "EndDate": "string",
          "Value": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "SupplierReservationCode": "string",
      "Phone": "string",
      "HotelConfirmationNumber": "string",
      "DestinationId": "string",
      "HotelId": "string",
      "SupplierHotelId": "string",
      "HCN": "string",
      "CancellationDate": "string",
      "HotelCategory": "string",
      "ReservationDate": "string",
      "LogXMLAudit": "string",
      "NumberOfAdults": 0,
      "NumberOfChildren": 0,
      "NumberOfNights": 0,
      "CountryId": "string",
      "AutomaticCancellation": true,
      "Markup": 0,
      "MarkupCalculation": "string",
      "CommissionCalculation": "string",
      "IsOffline": true,
      "MarkupType": "string",
      "CommissionRetained": true,
      "CancellationBlockedWS": true,
      "PaymentDeadLine": "string",
      "VoucherObservation": "string",
      "PaymentDate": "string",
      "InvoiceId": 0,
      "PaymentConvertionRate": 0.1,
      "PaymentCurrency": "string",
      "NetTax": {
        "Currency": "string",
        "Value": 0
      },
      "TotalTax": {
        "Currency": "string",
        "Value": 0
      },
      "SellingPriceWithoutTax": {
        "Currency": "string",
        "Value": 0
      },
      "CanSeeVoucher": true,
      "AgencyCommissionPercent": 0,
      "OperatorBookingDescription": "string",
      "CheckInHour": "string",
      "CheckOutHour": "string",
      "InvoiceItens": [
        "string"
      ],
      "SupplierInformation": "string",
      "AddAdditionalInfo": [
        {
          "Content": "string",
          "Name": "string"
        }
      ],
      "Payments": [
        {
          "Date": "string",
          "Status": 0,
          "PaymentType": 0,
          "PaymentOriginal": {
            "Currency": "string",
            "Value": 0
          },
          "PaymentConverted": {
            "Currency": "string",
            "Value": 0
          },
          "PaymentPortion": {
            "Currency": "string",
            "Value": 0
          },
          "CreditCard": {
            "Name": "string",
            "CPF": "string",
            "Location": {
              "Address": "string",
              "Number": "string",
              "Complement": "string",
              "District": "string",
              "ZipCode": "string",
              "City": "string",
              "State": "string"
            },
            "Phone": {
              "DDI": "string",
              "DDD": "string",
              "Number": "string"
            },
            "CardNumber": "string",
            "PaymentNumber": 0,
            "CardType": {
              "Name": "string",
              "AutorizationCode": "string",
              "TransactionId": "string",
              "Price": {
                "Currency": "string",
                "Value": 0
              },
              "TransactionDate": "string",
              "ReturnCode": "string",
              "NSU": "string",
              "Gateway": "string"
            },
            "ExpirationMonth": 0,
            "ExpirationYear": 0,
            "InstallmentsNumber": 0
          },
          "Check": {
            "Number": "string",
            "Bank": "string",
            "Value": {
              "Currency": "string",
              "Value": 0
            }
          },
          "Billet": {
            "Name": "string",
            "CPF": "string",
            "CNPJ": "string",
            "Location": {
              "Address": "string",
              "Number": "string",
              "Complement": "string",
              "District": "string",
              "ZipCode": "string",
              "City": "string",
              "State": "string"
            },
            "Phone": {
              "DDI": "string",
              "DDD": "string",
              "Number": "string"
            }
          },
          "CreditAccount": {
            "Bank": "string",
            "BankCode": "string",
            "AgencyCode": "string",
            "AccountNumber": "string",
            "CardName": "string",
            "CNPJ": "string"
          },
          "Currency": {
            "CurrencyFrom": "string",
            "CurrencyTo": "string",
            "ConvertionValue": 0
          },
          "MessageClientAuth": "string",
          "MessageOperAuth": "string",
          "URLReceiptOfPayment": "string",
          "TransactionId": "string",
          "InvoicePaymentId": "string",
          "PaymentSupplierId": 0,
          "PaymentSupplierName": "string",
          "Observation": "string"
        }
      ],
      "Taxes": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "DiscountCoupon": {
        "DiscountCouponValue": {
          "Currency": "string",
          "Value": 0
        },
        "DiscountCouponDescription": "string",
        "DiscountCoupon": "string"
      },
      "CityId": 0,
      "CountryCode": "string",
      "CountryName": "string",
      "CityName": "string",
      "ManualReservationPaymentType": "string",
      "PropertyTaxes": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "CancellationType": "string",
      "VoucherUrl": "string",
      "CreationUserDetail": {
        "id": 0,
        "Username": "string",
        "Name": "string",
        "Type": "string",
        "AgencyId": 0,
        "AgencyName": "string",
        "BranchOfficeId": 0,
        "BranchOfficeName": "string",
        "Email": "string"
      },
      "BookingWillBeInvoiced": true,
      "AutomaticCancellationEnabled": true,
      "HotelCNPJ": "string",
      "BreakdownSales": [
        {
          "Price": 0,
          "Currency": "string",
          "DateBreakdown": "/Date(1767225600000-0300)/",
          "DateBreakdownStr": "string",
          "PriceToFront": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "BookingDescription": "string",
      "BreakfastIncluded": true,
      "Billed": true,
      "AgencyCommission": 0.1,
      "CheckInDate": "/Date(1767225600000-0300)/",
      "ExtraInformation": "string",
      "AgencyCurrencyCommission": "string",
      "NetPrice": {
        "Currency": "string",
        "Value": 0
      },
      "OperatorCancellationPolicies": [
        {
          "StartDate": "string",
          "EndDate": "string",
          "Value": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "SystemStatus": 0,
      "PaymentsConditions": {
        "PaymentType": 0,
        "NameCondition": "string",
        "Status": true,
        "FinancialRate": "string",
        "IdCondition": 0
      },
      "ProviderID": 0,
      "ProviderName": "string",
      "LastUpdateUserDetail": {
        "id": 0,
        "Username": "string",
        "Name": "string",
        "Type": "string",
        "AgencyId": 0,
        "AgencyName": "string",
        "BranchOfficeId": 0,
        "BranchOfficeName": "string",
        "Email": "string"
      },
      "OriginalAgencyCommission": 0.1,
      "BilletURL": "string",
      "DepositDeadlines": [
        {
          "Deadline": "/Date(1767225600000-0300)/",
          "Value": {
            "Currency": "string",
            "Value": 0
          },
          "Type": 0
        }
      ],
      "UniqueIdentifier": "string",
      "FinancialTransactions": [
        {
          "Date": "/Date(1767225600000-0300)/",
          "Type": "string",
          "Currency": "string",
          "Value": 0.1,
          "Status": "string",
          "Information": "string"
        }
      ],
      "SupplierFinancialTransactions": [
        {
          "Date": "/Date(1767225600000-0300)/",
          "Type": "string",
          "Currency": "string",
          "Value": 0.1,
          "Status": "string",
          "Information": "string"
        }
      ],
      "BloquearRebooking": true,
      "PaymentType": "string",
      "UrlRedirectAfterCancelWhenHasRefund": "string",
      "SupplierComission": {
        "Currency": "string",
        "Value": 0
      },
      "SupplierCommissionPercent": 0,
      "PayAtHotel": true,
      "SupplierVCNPayment": true,
      "SupplierCardNumber": "string",
      "BeforeBooking": "string",
      "Discount": {
        "Currency": "string",
        "Value": 0
      },
      "OriginalSellingPrice": {
        "Currency": "string",
        "Value": 0
      },
      "MotivoViagem": "string",
      "CentroCusto": "string",
      "CheckinInstructions": "string",
      "CheckinUrl": "string",
      "Projeto": "string",
      "CardProcessingDate": "string",
      "Extras": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "AssyncBooking": true,
      "PropertyType": "string",
      "CangoorooInvoiceType": "string",
      "ManualReservation": true
    }
  ],
  "RequestId": 0
}
HotelPOST

CancelAllHotelServices — Hotel

O que faz: Cancela todos os serviços de hotel confirmados ou sob consulta (on request) de uma reserva (BookingId).

Atenção

Se a política de cancelamento já estiver ativa, pode haver multa.

Atenção

Só considere cancelada após confirmação explícita na resposta — se não vier, repita a chamada.
Regras e detalhes da operação
  • Demais produtos da reserva permanecem inalterados.

Respostas HTTP

HTTPDescrição
200OK — CancelResponse.
400Requisição inválida: JSON malformado ou com campos inválidos.
500Erro não tratado (fault WCF).
URL
https://ws-cliente.cangooroo.net/API/REST/Hotel.svc/CancelAllHotelServices

Parâmetros

CampoTipoObrigatórioDescrição
CredentialobjectSimCredenciais da chamada. Os campos adicionais constam.
BookingIdnumberSimIdentificador da reserva cujos serviços de hotel serão cancelados.
CancellationReasonIdnumberNãoIdentificador do motivo de cancelamento. não é exigido no formulário de exemplo.
RefundPaymentbooleanNãoIndicador de reembolso do pagamento. não é exigido no formulário de exemplo.
Credential
CampoTipoObrigatórioDescrição
UsernamestringSimUsuário da integração.
PasswordstringSimSenha correspondente ao usuário.
Try it outReferência

Credenciais da chamada. Os campos adicionais constam.

Identificador da reserva cujos serviços de hotel serão cancelados.

Identificador do motivo de cancelamento. não é exigido no formulário de exemplo.

Indicador de reembolso do pagamento. não é exigido no formulário de exemplo.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Hotel.svc/CancelAllHotelServices" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "string",
    "Password": "string"
  },
  "BookingId": 0,
  "CancellationReasonId": 0,
  "RefundPayment": true
}'
Campos da resposta
CampoTipoDescrição
TotalTimenumberTempo total informado pela API.
TokenstringToken retornado pela operação.
TimeSpanstringDuração informada pela API.
ErrorobjectDetalhes de erro retornados pela API.
Messagesarray<object>Mensagens retornadas pela operação.
SInfostringInformação complementar da resposta.
Roomsarray<object>Serviços de hotel retornados após a operação.
Error
CampoTipoDescrição
TotalTimenumberTempo total informado pela API.
TokenstringToken retornado pela operação.
TimeSpanstringDuração informada pela API.
Outros campos (5)
CampoTipoDescrição
Serverstring
Messagestring
Stacktracestring
Codenumber
SupportInfostring
Messages[]
Outros campos (2)
CampoTipoDescrição
valuestring
contentstring
Rooms[]
CampoTipoDescrição
ServiceIdstringIdentificador do serviço de hotel.
ReservationIdstringIdentificador da reserva no serviço retornado.
StatusstringEstado retornado pela API.
Paxsarray<object>Passageiros vinculados ao serviço.
CancellationPoliciesarray<object>Políticas de cancelamento do serviço.
SupplierReservationCodestringLocalizador do fornecedor.
HotelConfirmationNumberstringNúmero de confirmação do hotel.
HCNstringCampo HCN retornado pela API.
Paymentsarray<object>Dados dos pagamentos vinculados ao serviço.
OperatorCancellationPoliciesarray<object>Políticas de cancelamento da operadora.
DepositDeadlinesarray<object>Prazos de depósito retornados para o serviço.
Outros campos (104)
CampoTipoDescrição
Observationsstring
SellingPriceobject
Comissionobject
HotelNamestring
DestinationNamestring
CheckInstring
CheckOutstring
HotelAddressstring
BoardDescriptionstring
RoomDescriptionstring
CustomFieldsarray<object>
PaymentStatusstring
Phonestring
DestinationIdstring
HotelIdstring
SupplierHotelIdstring
CancellationDatestring
HotelCategorystring
ReservationDatestring
LogXMLAuditstring
NumberOfAdultsnumber
NumberOfChildrennumber
NumberOfNightsnumber
CountryIdstring
AutomaticCancellationboolean
Markupnumber
MarkupCalculationstring
CommissionCalculationstring
IsOfflineboolean
MarkupTypestring
CommissionRetainedboolean
CancellationBlockedWSboolean
PaymentDeadLinestring
VoucherObservationstring
PaymentDatestring
InvoiceIdnumber
PaymentConvertionRatenumber
PaymentCurrencystring
NetTaxobject
TotalTaxobject
SellingPriceWithoutTaxobject
CanSeeVoucherboolean
AgencyCommissionPercentnumber
OperatorBookingDescriptionstring
CheckInHourstring
CheckOutHourstring
InvoiceItensarray<string>
SupplierInformationstring
AddAdditionalInfoarray<object>
Taxesarray<object>
DiscountCouponobject
CityIdnumber
CountryCodestring
CountryNamestring
CityNamestring
ManualReservationPaymentTypestring
PropertyTaxesarray<object>
CancellationTypestring
VoucherUrlstring
CreationUserDetailobject
BookingWillBeInvoicedboolean
AutomaticCancellationEnabledboolean
HotelCNPJstring
BreakdownSalesarray<object>
BookingDescriptionstring
BreakfastIncludedboolean
Billedboolean
AgencyCommissionnumber
CheckInDatestring
ExtraInformationstring
AgencyCurrencyCommissionstring
NetPriceobject
SystemStatusnumber
PaymentsConditionsobject
ProviderIDnumber
ProviderNamestring
LastUpdateUserDetailobject
OriginalAgencyCommissionnumber
BilletURLstring
UniqueIdentifierstring
FinancialTransactionsarray<object>
SupplierFinancialTransactionsarray<object>
BloquearRebookingboolean
PaymentTypestring
UrlRedirectAfterCancelWhenHasRefundstring
SupplierComissionobject
SupplierCommissionPercentnumber
PayAtHotelboolean
SupplierVCNPaymentboolean
SupplierCardNumberstring
BeforeBookingstring
Discountobject
OriginalSellingPriceobject
MotivoViagemstring
CentroCustostring
CheckinInstructionsstring
CheckinUrlstring
Projetostring
CardProcessingDatestring
Extrasarray<object>
AssyncBookingboolean
PropertyTypestring
CangoorooInvoiceTypestring
ManualReservationboolean
Rooms[].Paxs[]
Outros campos (34)
CampoTipoDescrição
Namestring
Surnamestring
Agenumber
Cpfstring
DocumentNumberstring
DocumentExpirationDatestring
DocumentCountryIdstring
DocumentTypestring
Titlestring
EnumTitlestring
MainPaxboolean
isChildboolean
Addressstring
Citystring
ZipCodestring
Statestring
AddressNumbernumber
AddressComplementstring
Emailstring
PhoneDDDstring
PhoneDDIstring
PhoneNumberstring
BirthDatestring
CountryCodeISOstring
Typestring
EmergencyContactFirstNamestring
EmergencyContactLastNamestring
EmergencyContactDDIstring
EmergencyContactDDDstring
EmergencyContactTelephonestring
EmergencyContactParentagestring
Ticketstring
LoyaltyNumberstring
AcceptMarketingEmailboolean
Rooms[].SellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Comission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].CustomFields[]
CampoTipoDescrição
ValuestringValor informado pela API.
Outros campos (1)
CampoTipoDescrição
Namestring
Rooms[].CancellationPolicies[]
CampoTipoDescrição
ValueobjectValor informado pela API.
Outros campos (2)
CampoTipoDescrição
StartDatestring
EndDatestring
Rooms[].CancellationPolicies[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].NetTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].TotalTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].SellingPriceWithoutTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].AddAdditionalInfo[]
Outros campos (2)
CampoTipoDescrição
Contentstring
Namestring
Rooms[].Payments[]
CampoTipoDescrição
StatusnumberEstado retornado pela API.
CurrencyobjectMoeda do valor informado.
Outros campos (17)
CampoTipoDescrição
Datestring
PaymentTypenumber
PaymentOriginalobject
PaymentConvertedobject
PaymentPortionobject
CreditCardobject
Checkobject
Billetobject
CreditAccountobject
MessageClientAuthstring
MessageOperAuthstring
URLReceiptOfPaymentstring
TransactionIdstring
InvoicePaymentIdstring
PaymentSupplierIdnumber
PaymentSupplierNamestring
Observationstring
Rooms[].Payments[].PaymentOriginal
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Payments[].PaymentConverted
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Payments[].PaymentPortion
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Payments[].CreditCard
Outros campos (10)
CampoTipoDescrição
Namestring
CPFstring
Locationobject
Phoneobject
CardNumberstring
PaymentNumbernumber
CardTypeobject
ExpirationMonthnumber
ExpirationYearnumber
InstallmentsNumbernumber
Rooms[].Payments[].CreditCard.Location
Outros campos (7)
CampoTipoDescrição
Addressstring
Numberstring
Complementstring
Districtstring
ZipCodestring
Citystring
Statestring
Rooms[].Payments[].CreditCard.Phone
Outros campos (3)
CampoTipoDescrição
DDIstring
DDDstring
Numberstring
Rooms[].Payments[].CreditCard.CardType
Outros campos (8)
CampoTipoDescrição
Namestring
AutorizationCodestring
TransactionIdstring
Priceobject
TransactionDatestring
ReturnCodestring
NSUstring
Gatewaystring
Rooms[].Payments[].CreditCard.CardType.Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Payments[].Check
CampoTipoDescrição
ValueobjectValor informado pela API.
Outros campos (2)
CampoTipoDescrição
Numberstring
Bankstring
Rooms[].Payments[].Check.Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Payments[].Billet
Outros campos (5)
CampoTipoDescrição
Namestring
CPFstring
CNPJstring
Locationobject
Phoneobject
Rooms[].Payments[].Billet.Location
Outros campos (7)
CampoTipoDescrição
Addressstring
Numberstring
Complementstring
Districtstring
ZipCodestring
Citystring
Statestring
Rooms[].Payments[].Billet.Phone
Outros campos (3)
CampoTipoDescrição
DDIstring
DDDstring
Numberstring
Rooms[].Payments[].CreditAccount
Outros campos (6)
CampoTipoDescrição
Bankstring
BankCodestring
AgencyCodestring
AccountNumberstring
CardNamestring
CNPJstring
Rooms[].Payments[].Currency
Outros campos (3)
CampoTipoDescrição
CurrencyFromstring
CurrencyTostring
ConvertionValuenumber
Rooms[].Taxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Rooms[].Taxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].DiscountCoupon
Outros campos (3)
CampoTipoDescrição
DiscountCouponValueobject
DiscountCouponDescriptionstring
DiscountCouponstring
Rooms[].DiscountCoupon.DiscountCouponValue
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].PropertyTaxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Rooms[].PropertyTaxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].CreationUserDetail
Outros campos (9)
CampoTipoDescrição
idnumber
Usernamestring
Namestring
Typestring
AgencyIdnumber
AgencyNamestring
BranchOfficeIdnumber
BranchOfficeNamestring
Emailstring
Rooms[].BreakdownSales[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
Outros campos (4)
CampoTipoDescrição
Pricenumber
DateBreakdownstring
DateBreakdownStrstring
PriceToFrontobject
Rooms[].BreakdownSales[].PriceToFront
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].NetPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].OperatorCancellationPolicies[]
CampoTipoDescrição
ValueobjectValor informado pela API.
Outros campos (2)
CampoTipoDescrição
StartDatestring
EndDatestring
Rooms[].OperatorCancellationPolicies[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].PaymentsConditions
CampoTipoDescrição
StatusbooleanEstado retornado pela API.
Outros campos (4)
CampoTipoDescrição
PaymentTypenumber
NameConditionstring
FinancialRatestring
IdConditionnumber
Rooms[].LastUpdateUserDetail
Outros campos (9)
CampoTipoDescrição
idnumber
Usernamestring
Namestring
Typestring
AgencyIdnumber
AgencyNamestring
BranchOfficeIdnumber
BranchOfficeNamestring
Emailstring
Rooms[].DepositDeadlines[]
CampoTipoDescrição
ValueobjectValor informado pela API.
Outros campos (2)
CampoTipoDescrição
Deadlinestring
Typenumber
Rooms[].DepositDeadlines[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].FinancialTransactions[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
StatusstringEstado retornado pela API.
Outros campos (3)
CampoTipoDescrição
Datestring
Typestring
Informationstring
Rooms[].SupplierFinancialTransactions[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
StatusstringEstado retornado pela API.
Outros campos (3)
CampoTipoDescrição
Datestring
Typestring
Informationstring
Rooms[].SupplierComission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Discount
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].OriginalSellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Extras[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Rooms[].Extras[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Exemplo de response
{
  "TotalTime": 0,
  "Token": "string",
  "TimeSpan": "string",
  "Error": {
    "Server": "string",
    "Message": "string",
    "Stacktrace": "string",
    "TotalTime": 0,
    "Code": 0,
    "Token": "string",
    "TimeSpan": "string",
    "SupportInfo": "string"
  },
  "Messages": [
    {
      "value": "string",
      "content": "string"
    }
  ],
  "SInfo": "string",
  "Rooms": [
    {
      "ServiceId": "string",
      "ReservationId": "string",
      "Status": "string",
      "Observations": "string",
      "Paxs": [
        {
          "Name": "string",
          "Surname": "string",
          "Age": 0,
          "Cpf": "string",
          "DocumentNumber": "string",
          "DocumentExpirationDate": "string",
          "DocumentCountryId": "string",
          "DocumentType": "string",
          "Title": "string",
          "EnumTitle": "string",
          "MainPax": true,
          "isChild": true,
          "Address": "string",
          "City": "string",
          "ZipCode": "string",
          "State": "string",
          "AddressNumber": 0,
          "AddressComplement": "string",
          "Email": "string",
          "PhoneDDD": "string",
          "PhoneDDI": "string",
          "PhoneNumber": "string",
          "BirthDate": "string",
          "CountryCodeISO": "string",
          "Type": "string",
          "EmergencyContactFirstName": "string",
          "EmergencyContactLastName": "string",
          "EmergencyContactDDI": "string",
          "EmergencyContactDDD": "string",
          "EmergencyContactTelephone": "string",
          "EmergencyContactParentage": "string",
          "Ticket": "string",
          "LoyaltyNumber": "string",
          "AcceptMarketingEmail": true
        }
      ],
      "SellingPrice": {
        "Currency": "string",
        "Value": 0
      },
      "Comission": {
        "Currency": "string",
        "Value": 0
      },
      "HotelName": "string",
      "DestinationName": "string",
      "CheckIn": "string",
      "CheckOut": "string",
      "HotelAddress": "string",
      "BoardDescription": "string",
      "RoomDescription": "string",
      "CustomFields": [
        {
          "Name": "string",
          "Value": "string"
        }
      ],
      "PaymentStatus": "string",
      "CancellationPolicies": [
        {
          "StartDate": "string",
          "EndDate": "string",
          "Value": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "SupplierReservationCode": "string",
      "Phone": "string",
      "HotelConfirmationNumber": "string",
      "DestinationId": "string",
      "HotelId": "string",
      "SupplierHotelId": "string",
      "HCN": "string",
      "CancellationDate": "string",
      "HotelCategory": "string",
      "ReservationDate": "string",
      "LogXMLAudit": "string",
      "NumberOfAdults": 0,
      "NumberOfChildren": 0,
      "NumberOfNights": 0,
      "CountryId": "string",
      "AutomaticCancellation": true,
      "Markup": 0,
      "MarkupCalculation": "string",
      "CommissionCalculation": "string",
      "IsOffline": true,
      "MarkupType": "string",
      "CommissionRetained": true,
      "CancellationBlockedWS": true,
      "PaymentDeadLine": "string",
      "VoucherObservation": "string",
      "PaymentDate": "string",
      "InvoiceId": 0,
      "PaymentConvertionRate": 0.1,
      "PaymentCurrency": "string",
      "NetTax": {
        "Currency": "string",
        "Value": 0
      },
      "TotalTax": {
        "Currency": "string",
        "Value": 0
      },
      "SellingPriceWithoutTax": {
        "Currency": "string",
        "Value": 0
      },
      "CanSeeVoucher": true,
      "AgencyCommissionPercent": 0,
      "OperatorBookingDescription": "string",
      "CheckInHour": "string",
      "CheckOutHour": "string",
      "InvoiceItens": [
        "string"
      ],
      "SupplierInformation": "string",
      "AddAdditionalInfo": [
        {
          "Content": "string",
          "Name": "string"
        }
      ],
      "Payments": [
        {
          "Date": "string",
          "Status": 0,
          "PaymentType": 0,
          "PaymentOriginal": {
            "Currency": "string",
            "Value": 0
          },
          "PaymentConverted": {
            "Currency": "string",
            "Value": 0
          },
          "PaymentPortion": {
            "Currency": "string",
            "Value": 0
          },
          "CreditCard": {
            "Name": "string",
            "CPF": "string",
            "Location": {
              "Address": "string",
              "Number": "string",
              "Complement": "string",
              "District": "string",
              "ZipCode": "string",
              "City": "string",
              "State": "string"
            },
            "Phone": {
              "DDI": "string",
              "DDD": "string",
              "Number": "string"
            },
            "CardNumber": "string",
            "PaymentNumber": 0,
            "CardType": {
              "Name": "string",
              "AutorizationCode": "string",
              "TransactionId": "string",
              "Price": {
                "Currency": "string",
                "Value": 0
              },
              "TransactionDate": "string",
              "ReturnCode": "string",
              "NSU": "string",
              "Gateway": "string"
            },
            "ExpirationMonth": 0,
            "ExpirationYear": 0,
            "InstallmentsNumber": 0
          },
          "Check": {
            "Number": "string",
            "Bank": "string",
            "Value": {
              "Currency": "string",
              "Value": 0
            }
          },
          "Billet": {
            "Name": "string",
            "CPF": "string",
            "CNPJ": "string",
            "Location": {
              "Address": "string",
              "Number": "string",
              "Complement": "string",
              "District": "string",
              "ZipCode": "string",
              "City": "string",
              "State": "string"
            },
            "Phone": {
              "DDI": "string",
              "DDD": "string",
              "Number": "string"
            }
          },
          "CreditAccount": {
            "Bank": "string",
            "BankCode": "string",
            "AgencyCode": "string",
            "AccountNumber": "string",
            "CardName": "string",
            "CNPJ": "string"
          },
          "Currency": {
            "CurrencyFrom": "string",
            "CurrencyTo": "string",
            "ConvertionValue": 0
          },
          "MessageClientAuth": "string",
          "MessageOperAuth": "string",
          "URLReceiptOfPayment": "string",
          "TransactionId": "string",
          "InvoicePaymentId": "string",
          "PaymentSupplierId": 0,
          "PaymentSupplierName": "string",
          "Observation": "string"
        }
      ],
      "Taxes": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "DiscountCoupon": {
        "DiscountCouponValue": {
          "Currency": "string",
          "Value": 0
        },
        "DiscountCouponDescription": "string",
        "DiscountCoupon": "string"
      },
      "CityId": 0,
      "CountryCode": "string",
      "CountryName": "string",
      "CityName": "string",
      "ManualReservationPaymentType": "string",
      "PropertyTaxes": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "CancellationType": "string",
      "VoucherUrl": "string",
      "CreationUserDetail": {
        "id": 0,
        "Username": "string",
        "Name": "string",
        "Type": "string",
        "AgencyId": 0,
        "AgencyName": "string",
        "BranchOfficeId": 0,
        "BranchOfficeName": "string",
        "Email": "string"
      },
      "BookingWillBeInvoiced": true,
      "AutomaticCancellationEnabled": true,
      "HotelCNPJ": "string",
      "BreakdownSales": [
        {
          "Price": 0,
          "Currency": "string",
          "DateBreakdown": "/Date(1767225600000-0300)/",
          "DateBreakdownStr": "string",
          "PriceToFront": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "BookingDescription": "string",
      "BreakfastIncluded": true,
      "Billed": true,
      "AgencyCommission": 0.1,
      "CheckInDate": "/Date(1767225600000-0300)/",
      "ExtraInformation": "string",
      "AgencyCurrencyCommission": "string",
      "NetPrice": {
        "Currency": "string",
        "Value": 0
      },
      "OperatorCancellationPolicies": [
        {
          "StartDate": "string",
          "EndDate": "string",
          "Value": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "SystemStatus": 0,
      "PaymentsConditions": {
        "PaymentType": 0,
        "NameCondition": "string",
        "Status": true,
        "FinancialRate": "string",
        "IdCondition": 0
      },
      "ProviderID": 0,
      "ProviderName": "string",
      "LastUpdateUserDetail": {
        "id": 0,
        "Username": "string",
        "Name": "string",
        "Type": "string",
        "AgencyId": 0,
        "AgencyName": "string",
        "BranchOfficeId": 0,
        "BranchOfficeName": "string",
        "Email": "string"
      },
      "OriginalAgencyCommission": 0.1,
      "BilletURL": "string",
      "DepositDeadlines": [
        {
          "Deadline": "/Date(1767225600000-0300)/",
          "Value": {
            "Currency": "string",
            "Value": 0
          },
          "Type": 0
        }
      ],
      "UniqueIdentifier": "string",
      "FinancialTransactions": [
        {
          "Date": "/Date(1767225600000-0300)/",
          "Type": "string",
          "Currency": "string",
          "Value": 0.1,
          "Status": "string",
          "Information": "string"
        }
      ],
      "SupplierFinancialTransactions": [
        {
          "Date": "/Date(1767225600000-0300)/",
          "Type": "string",
          "Currency": "string",
          "Value": 0.1,
          "Status": "string",
          "Information": "string"
        }
      ],
      "BloquearRebooking": true,
      "PaymentType": "string",
      "UrlRedirectAfterCancelWhenHasRefund": "string",
      "SupplierComission": {
        "Currency": "string",
        "Value": 0
      },
      "SupplierCommissionPercent": 0,
      "PayAtHotel": true,
      "SupplierVCNPayment": true,
      "SupplierCardNumber": "string",
      "BeforeBooking": "string",
      "Discount": {
        "Currency": "string",
        "Value": 0
      },
      "OriginalSellingPrice": {
        "Currency": "string",
        "Value": 0
      },
      "MotivoViagem": "string",
      "CentroCusto": "string",
      "CheckinInstructions": "string",
      "CheckinUrl": "string",
      "Projeto": "string",
      "CardProcessingDate": "string",
      "Extras": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "AssyncBooking": true,
      "PropertyType": "string",
      "CangoorooInvoiceType": "string",
      "ManualReservation": true
    }
  ]
}
HotelPOST

CancelByService — Hotel

O que faz: Cancela os serviços de hotel informados em ServiceIds.

Atenção

Serviços com política de cancelamento por reserva só podem ser cancelados junto com os demais serviços vinculados.
Regras e detalhes da operação
  • Confira Rooms[].Status para confirmar explicitamente o cancelamento de cada serviço e Error / Messages para informações da operação. O valor string do exemplo não confirma um cancelamento.

Respostas HTTP

HTTPDescrição
200OK — CancelResponse.
400Requisição inválida: JSON malformado ou com campos inválidos.
500Erro não tratado (fault WCF).
URL
https://ws-cliente.cangooroo.net/API/REST/Hotel.svc/CancelByService

Parâmetros

CampoTipoObrigatórioDescrição
CredentialobjectSimCredenciais da integração.
ServiceIdsarraySimLista numérica dos identificadores dos serviços de hotel a cancelar.
SendEmailbooleanNãoIndicador de envio de e-mail.
CancellationReasonIdnumberNãoIdentificador numérico do motivo de cancelamento.
RefundPaymentbooleanNãoIndicador de reembolso do pagamento.
IsProfitabilitybooleanNãoIndicador booleano.
Credential
CampoTipoObrigatórioDescrição
UsernamestringSimUsuário da integração.
PasswordstringSimSenha do usuário.
Try it outReferência

Credenciais da integração.

Lista numérica dos identificadores dos serviços de hotel a cancelar.

Indicador de envio de e-mail.

Identificador numérico do motivo de cancelamento.

Indicador de reembolso do pagamento.

Indicador booleano.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Hotel.svc/CancelByService" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "string",
    "Password": "string"
  },
  "ServiceIds": [
    0
  ],
  "SendEmail": true,
  "CancellationReasonId": 0,
  "RefundPayment": true,
  "IsProfitability": true
}'
Campos da resposta
CampoTipoDescrição
TotalTimenumberTempo total informado pela API.
TokenstringToken retornado pela operação.
TimeSpanstringDuração informada pela API.
ErrorobjectDetalhes de erro retornados pela API.
Messagesarray<object>Mensagens retornadas pela operação.
SInfostringInformação complementar da resposta.
Roomsarray<object>Resultados dos serviços de hotel após a operação.
Error
CampoTipoDescrição
TotalTimenumberTempo total informado pela API.
TokenstringToken retornado pela operação.
TimeSpanstringDuração informada pela API.
Outros campos (5)
CampoTipoDescrição
Serverstring
Messagestring
Stacktracestring
Codenumber
SupportInfostring
Messages[]
Outros campos (2)
CampoTipoDescrição
valuestring
contentstring
Rooms[]
CampoTipoDescrição
ServiceIdstringIdentificador do serviço retornado como string nesta resposta; ServiceIds da requisição contém números.
ReservationIdstringIdentificador da reserva associada ao serviço retornado.
StatusstringEstado do serviço. Considere cancelado somente após confirmação explícita em Rooms[].Status; string é um exemplo de tipo, não uma confirmação.
Paxsarray<object>Passageiros vinculados ao serviço.
CancellationPoliciesarray<object>Políticas de cancelamento do serviço.
SupplierReservationCodestringLocalizador da reserva no fornecedor.
HotelConfirmationNumberstringNúmero de confirmação do próprio hotel.
HCNstringCampo HCN retornado pela API.
Paymentsarray<object>Pagamentos vinculados ao serviço.
OperatorCancellationPoliciesarray<object>Políticas de cancelamento da operadora.
DepositDeadlinesarray<object>Prazos de depósito com Deadline, Value e Type.
Outros campos (104)
CampoTipoDescrição
Observationsstring
SellingPriceobject
Comissionobject
HotelNamestring
DestinationNamestring
CheckInstring
CheckOutstring
HotelAddressstring
BoardDescriptionstring
RoomDescriptionstring
CustomFieldsarray<object>
PaymentStatusstring
Phonestring
DestinationIdstring
HotelIdstring
SupplierHotelIdstring
CancellationDatestring
HotelCategorystring
ReservationDatestring
LogXMLAuditstring
NumberOfAdultsnumber
NumberOfChildrennumber
NumberOfNightsnumber
CountryIdstring
AutomaticCancellationboolean
Markupnumber
MarkupCalculationstring
CommissionCalculationstring
IsOfflineboolean
MarkupTypestring
CommissionRetainedboolean
CancellationBlockedWSboolean
PaymentDeadLinestring
VoucherObservationstring
PaymentDatestring
InvoiceIdnumber
PaymentConvertionRatenumber
PaymentCurrencystring
NetTaxobject
TotalTaxobject
SellingPriceWithoutTaxobject
CanSeeVoucherboolean
AgencyCommissionPercentnumber
OperatorBookingDescriptionstring
CheckInHourstring
CheckOutHourstring
InvoiceItensarray<string>
SupplierInformationstring
AddAdditionalInfoarray<object>
Taxesarray<object>
DiscountCouponobject
CityIdnumber
CountryCodestring
CountryNamestring
CityNamestring
ManualReservationPaymentTypestring
PropertyTaxesarray<object>
CancellationTypestring
VoucherUrlstring
CreationUserDetailobject
BookingWillBeInvoicedboolean
AutomaticCancellationEnabledboolean
HotelCNPJstring
BreakdownSalesarray<object>
BookingDescriptionstring
BreakfastIncludedboolean
Billedboolean
AgencyCommissionnumber
CheckInDatestring
ExtraInformationstring
AgencyCurrencyCommissionstring
NetPriceobject
SystemStatusnumber
PaymentsConditionsobject
ProviderIDnumber
ProviderNamestring
LastUpdateUserDetailobject
OriginalAgencyCommissionnumber
BilletURLstring
UniqueIdentifierstring
FinancialTransactionsarray<object>
SupplierFinancialTransactionsarray<object>
BloquearRebookingboolean
PaymentTypestring
UrlRedirectAfterCancelWhenHasRefundstring
SupplierComissionobject
SupplierCommissionPercentnumber
PayAtHotelboolean
SupplierVCNPaymentboolean
SupplierCardNumberstring
BeforeBookingstring
Discountobject
OriginalSellingPriceobject
MotivoViagemstring
CentroCustostring
CheckinInstructionsstring
CheckinUrlstring
Projetostring
CardProcessingDatestring
Extrasarray<object>
AssyncBookingboolean
PropertyTypestring
CangoorooInvoiceTypestring
ManualReservationboolean
Rooms[].Paxs[]
Outros campos (34)
CampoTipoDescrição
Namestring
Surnamestring
Agenumber
Cpfstring
DocumentNumberstring
DocumentExpirationDatestring
DocumentCountryIdstring
DocumentTypestring
Titlestring
EnumTitlestring
MainPaxboolean
isChildboolean
Addressstring
Citystring
ZipCodestring
Statestring
AddressNumbernumber
AddressComplementstring
Emailstring
PhoneDDDstring
PhoneDDIstring
PhoneNumberstring
BirthDatestring
CountryCodeISOstring
Typestring
EmergencyContactFirstNamestring
EmergencyContactLastNamestring
EmergencyContactDDIstring
EmergencyContactDDDstring
EmergencyContactTelephonestring
EmergencyContactParentagestring
Ticketstring
LoyaltyNumberstring
AcceptMarketingEmailboolean
Rooms[].SellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Comission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].CustomFields[]
CampoTipoDescrição
ValuestringValor informado pela API.
Outros campos (1)
CampoTipoDescrição
Namestring
Rooms[].CancellationPolicies[]
CampoTipoDescrição
ValueobjectValor informado pela API.
Outros campos (2)
CampoTipoDescrição
StartDatestring
EndDatestring
Rooms[].CancellationPolicies[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].NetTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].TotalTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].SellingPriceWithoutTax
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].AddAdditionalInfo[]
Outros campos (2)
CampoTipoDescrição
Contentstring
Namestring
Rooms[].Payments[]
CampoTipoDescrição
StatusnumberEstado do serviço. Considere cancelado somente após confirmação explícita em Rooms[].Status; string é um exemplo de tipo, não uma confirmação.
CurrencyobjectMoeda do valor informado.
Outros campos (17)
CampoTipoDescrição
Datestring
PaymentTypenumber
PaymentOriginalobject
PaymentConvertedobject
PaymentPortionobject
CreditCardobject
Checkobject
Billetobject
CreditAccountobject
MessageClientAuthstring
MessageOperAuthstring
URLReceiptOfPaymentstring
TransactionIdstring
InvoicePaymentIdstring
PaymentSupplierIdnumber
PaymentSupplierNamestring
Observationstring
Rooms[].Payments[].PaymentOriginal
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Payments[].PaymentConverted
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Payments[].PaymentPortion
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Payments[].CreditCard
Outros campos (10)
CampoTipoDescrição
Namestring
CPFstring
Locationobject
Phoneobject
CardNumberstring
PaymentNumbernumber
CardTypeobject
ExpirationMonthnumber
ExpirationYearnumber
InstallmentsNumbernumber
Rooms[].Payments[].CreditCard.Location
Outros campos (7)
CampoTipoDescrição
Addressstring
Numberstring
Complementstring
Districtstring
ZipCodestring
Citystring
Statestring
Rooms[].Payments[].CreditCard.Phone
Outros campos (3)
CampoTipoDescrição
DDIstring
DDDstring
Numberstring
Rooms[].Payments[].CreditCard.CardType
Outros campos (8)
CampoTipoDescrição
Namestring
AutorizationCodestring
TransactionIdstring
Priceobject
TransactionDatestring
ReturnCodestring
NSUstring
Gatewaystring
Rooms[].Payments[].CreditCard.CardType.Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Payments[].Check
CampoTipoDescrição
ValueobjectValor informado pela API.
Outros campos (2)
CampoTipoDescrição
Numberstring
Bankstring
Rooms[].Payments[].Check.Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Payments[].Billet
Outros campos (5)
CampoTipoDescrição
Namestring
CPFstring
CNPJstring
Locationobject
Phoneobject
Rooms[].Payments[].Billet.Location
Outros campos (7)
CampoTipoDescrição
Addressstring
Numberstring
Complementstring
Districtstring
ZipCodestring
Citystring
Statestring
Rooms[].Payments[].Billet.Phone
Outros campos (3)
CampoTipoDescrição
DDIstring
DDDstring
Numberstring
Rooms[].Payments[].CreditAccount
Outros campos (6)
CampoTipoDescrição
Bankstring
BankCodestring
AgencyCodestring
AccountNumberstring
CardNamestring
CNPJstring
Rooms[].Payments[].Currency
Outros campos (3)
CampoTipoDescrição
CurrencyFromstring
CurrencyTostring
ConvertionValuenumber
Rooms[].Taxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Rooms[].Taxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].DiscountCoupon
Outros campos (3)
CampoTipoDescrição
DiscountCouponValueobject
DiscountCouponDescriptionstring
DiscountCouponstring
Rooms[].DiscountCoupon.DiscountCouponValue
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].PropertyTaxes[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Rooms[].PropertyTaxes[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].CreationUserDetail
Outros campos (9)
CampoTipoDescrição
idnumber
Usernamestring
Namestring
Typestring
AgencyIdnumber
AgencyNamestring
BranchOfficeIdnumber
BranchOfficeNamestring
Emailstring
Rooms[].BreakdownSales[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
Outros campos (4)
CampoTipoDescrição
Pricenumber
DateBreakdownstring
DateBreakdownStrstring
PriceToFrontobject
Rooms[].BreakdownSales[].PriceToFront
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].NetPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].OperatorCancellationPolicies[]
CampoTipoDescrição
ValueobjectValor informado pela API.
Outros campos (2)
CampoTipoDescrição
StartDatestring
EndDatestring
Rooms[].OperatorCancellationPolicies[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].PaymentsConditions
CampoTipoDescrição
StatusbooleanEstado do serviço. Considere cancelado somente após confirmação explícita em Rooms[].Status; string é um exemplo de tipo, não uma confirmação.
Outros campos (4)
CampoTipoDescrição
PaymentTypenumber
NameConditionstring
FinancialRatestring
IdConditionnumber
Rooms[].LastUpdateUserDetail
Outros campos (9)
CampoTipoDescrição
idnumber
Usernamestring
Namestring
Typestring
AgencyIdnumber
AgencyNamestring
BranchOfficeIdnumber
BranchOfficeNamestring
Emailstring
Rooms[].DepositDeadlines[]
CampoTipoDescrição
ValueobjectValor informado pela API.
Outros campos (2)
CampoTipoDescrição
Deadlinestring
Typenumber
Rooms[].DepositDeadlines[].Value
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].FinancialTransactions[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
StatusstringEstado do serviço. Considere cancelado somente após confirmação explícita em Rooms[].Status; string é um exemplo de tipo, não uma confirmação.
Outros campos (3)
CampoTipoDescrição
Datestring
Typestring
Informationstring
Rooms[].SupplierFinancialTransactions[]
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
StatusstringEstado do serviço. Considere cancelado somente após confirmação explícita em Rooms[].Status; string é um exemplo de tipo, não uma confirmação.
Outros campos (3)
CampoTipoDescrição
Datestring
Typestring
Informationstring
Rooms[].SupplierComission
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Discount
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].OriginalSellingPrice
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Rooms[].Extras[]
Outros campos (2)
CampoTipoDescrição
Priceobject
Descriptionstring
Rooms[].Extras[].Price
CampoTipoDescrição
CurrencystringMoeda do valor informado.
ValuenumberValor informado pela API.
Exemplo de response
{
  "TotalTime": 0,
  "Token": "string",
  "TimeSpan": "string",
  "Error": {
    "Server": "string",
    "Message": "string",
    "Stacktrace": "string",
    "TotalTime": 0,
    "Code": 0,
    "Token": "string",
    "TimeSpan": "string",
    "SupportInfo": "string"
  },
  "Messages": [
    {
      "value": "string",
      "content": "string"
    }
  ],
  "SInfo": "string",
  "Rooms": [
    {
      "ServiceId": "string",
      "ReservationId": "string",
      "Status": "string",
      "Observations": "string",
      "Paxs": [
        {
          "Name": "string",
          "Surname": "string",
          "Age": 0,
          "Cpf": "string",
          "DocumentNumber": "string",
          "DocumentExpirationDate": "string",
          "DocumentCountryId": "string",
          "DocumentType": "string",
          "Title": "string",
          "EnumTitle": "string",
          "MainPax": true,
          "isChild": true,
          "Address": "string",
          "City": "string",
          "ZipCode": "string",
          "State": "string",
          "AddressNumber": 0,
          "AddressComplement": "string",
          "Email": "string",
          "PhoneDDD": "string",
          "PhoneDDI": "string",
          "PhoneNumber": "string",
          "BirthDate": "string",
          "CountryCodeISO": "string",
          "Type": "string",
          "EmergencyContactFirstName": "string",
          "EmergencyContactLastName": "string",
          "EmergencyContactDDI": "string",
          "EmergencyContactDDD": "string",
          "EmergencyContactTelephone": "string",
          "EmergencyContactParentage": "string",
          "Ticket": "string",
          "LoyaltyNumber": "string",
          "AcceptMarketingEmail": true
        }
      ],
      "SellingPrice": {
        "Currency": "string",
        "Value": 0
      },
      "Comission": {
        "Currency": "string",
        "Value": 0
      },
      "HotelName": "string",
      "DestinationName": "string",
      "CheckIn": "string",
      "CheckOut": "string",
      "HotelAddress": "string",
      "BoardDescription": "string",
      "RoomDescription": "string",
      "CustomFields": [
        {
          "Name": "string",
          "Value": "string"
        }
      ],
      "PaymentStatus": "string",
      "CancellationPolicies": [
        {
          "StartDate": "string",
          "EndDate": "string",
          "Value": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "SupplierReservationCode": "string",
      "Phone": "string",
      "HotelConfirmationNumber": "string",
      "DestinationId": "string",
      "HotelId": "string",
      "SupplierHotelId": "string",
      "HCN": "string",
      "CancellationDate": "string",
      "HotelCategory": "string",
      "ReservationDate": "string",
      "LogXMLAudit": "string",
      "NumberOfAdults": 0,
      "NumberOfChildren": 0,
      "NumberOfNights": 0,
      "CountryId": "string",
      "AutomaticCancellation": true,
      "Markup": 0,
      "MarkupCalculation": "string",
      "CommissionCalculation": "string",
      "IsOffline": true,
      "MarkupType": "string",
      "CommissionRetained": true,
      "CancellationBlockedWS": true,
      "PaymentDeadLine": "string",
      "VoucherObservation": "string",
      "PaymentDate": "string",
      "InvoiceId": 0,
      "PaymentConvertionRate": 0.1,
      "PaymentCurrency": "string",
      "NetTax": {
        "Currency": "string",
        "Value": 0
      },
      "TotalTax": {
        "Currency": "string",
        "Value": 0
      },
      "SellingPriceWithoutTax": {
        "Currency": "string",
        "Value": 0
      },
      "CanSeeVoucher": true,
      "AgencyCommissionPercent": 0,
      "OperatorBookingDescription": "string",
      "CheckInHour": "string",
      "CheckOutHour": "string",
      "InvoiceItens": [
        "string"
      ],
      "SupplierInformation": "string",
      "AddAdditionalInfo": [
        {
          "Content": "string",
          "Name": "string"
        }
      ],
      "Payments": [
        {
          "Date": "string",
          "Status": 0,
          "PaymentType": 0,
          "PaymentOriginal": {
            "Currency": "string",
            "Value": 0
          },
          "PaymentConverted": {
            "Currency": "string",
            "Value": 0
          },
          "PaymentPortion": {
            "Currency": "string",
            "Value": 0
          },
          "CreditCard": {
            "Name": "string",
            "CPF": "string",
            "Location": {
              "Address": "string",
              "Number": "string",
              "Complement": "string",
              "District": "string",
              "ZipCode": "string",
              "City": "string",
              "State": "string"
            },
            "Phone": {
              "DDI": "string",
              "DDD": "string",
              "Number": "string"
            },
            "CardNumber": "string",
            "PaymentNumber": 0,
            "CardType": {
              "Name": "string",
              "AutorizationCode": "string",
              "TransactionId": "string",
              "Price": {
                "Currency": "string",
                "Value": 0
              },
              "TransactionDate": "string",
              "ReturnCode": "string",
              "NSU": "string",
              "Gateway": "string"
            },
            "ExpirationMonth": 0,
            "ExpirationYear": 0,
            "InstallmentsNumber": 0
          },
          "Check": {
            "Number": "string",
            "Bank": "string",
            "Value": {
              "Currency": "string",
              "Value": 0
            }
          },
          "Billet": {
            "Name": "string",
            "CPF": "string",
            "CNPJ": "string",
            "Location": {
              "Address": "string",
              "Number": "string",
              "Complement": "string",
              "District": "string",
              "ZipCode": "string",
              "City": "string",
              "State": "string"
            },
            "Phone": {
              "DDI": "string",
              "DDD": "string",
              "Number": "string"
            }
          },
          "CreditAccount": {
            "Bank": "string",
            "BankCode": "string",
            "AgencyCode": "string",
            "AccountNumber": "string",
            "CardName": "string",
            "CNPJ": "string"
          },
          "Currency": {
            "CurrencyFrom": "string",
            "CurrencyTo": "string",
            "ConvertionValue": 0
          },
          "MessageClientAuth": "string",
          "MessageOperAuth": "string",
          "URLReceiptOfPayment": "string",
          "TransactionId": "string",
          "InvoicePaymentId": "string",
          "PaymentSupplierId": 0,
          "PaymentSupplierName": "string",
          "Observation": "string"
        }
      ],
      "Taxes": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "DiscountCoupon": {
        "DiscountCouponValue": {
          "Currency": "string",
          "Value": 0
        },
        "DiscountCouponDescription": "string",
        "DiscountCoupon": "string"
      },
      "CityId": 0,
      "CountryCode": "string",
      "CountryName": "string",
      "CityName": "string",
      "ManualReservationPaymentType": "string",
      "PropertyTaxes": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "CancellationType": "string",
      "VoucherUrl": "string",
      "CreationUserDetail": {
        "id": 0,
        "Username": "string",
        "Name": "string",
        "Type": "string",
        "AgencyId": 0,
        "AgencyName": "string",
        "BranchOfficeId": 0,
        "BranchOfficeName": "string",
        "Email": "string"
      },
      "BookingWillBeInvoiced": true,
      "AutomaticCancellationEnabled": true,
      "HotelCNPJ": "string",
      "BreakdownSales": [
        {
          "Price": 0,
          "Currency": "string",
          "DateBreakdown": "/Date(1767225600000-0300)/",
          "DateBreakdownStr": "string",
          "PriceToFront": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "BookingDescription": "string",
      "BreakfastIncluded": true,
      "Billed": true,
      "AgencyCommission": 0.1,
      "CheckInDate": "/Date(1767225600000-0300)/",
      "ExtraInformation": "string",
      "AgencyCurrencyCommission": "string",
      "NetPrice": {
        "Currency": "string",
        "Value": 0
      },
      "OperatorCancellationPolicies": [
        {
          "StartDate": "string",
          "EndDate": "string",
          "Value": {
            "Currency": "string",
            "Value": 0
          }
        }
      ],
      "SystemStatus": 0,
      "PaymentsConditions": {
        "PaymentType": 0,
        "NameCondition": "string",
        "Status": true,
        "FinancialRate": "string",
        "IdCondition": 0
      },
      "ProviderID": 0,
      "ProviderName": "string",
      "LastUpdateUserDetail": {
        "id": 0,
        "Username": "string",
        "Name": "string",
        "Type": "string",
        "AgencyId": 0,
        "AgencyName": "string",
        "BranchOfficeId": 0,
        "BranchOfficeName": "string",
        "Email": "string"
      },
      "OriginalAgencyCommission": 0.1,
      "BilletURL": "string",
      "DepositDeadlines": [
        {
          "Deadline": "/Date(1767225600000-0300)/",
          "Value": {
            "Currency": "string",
            "Value": 0
          },
          "Type": 0
        }
      ],
      "UniqueIdentifier": "string",
      "FinancialTransactions": [
        {
          "Date": "/Date(1767225600000-0300)/",
          "Type": "string",
          "Currency": "string",
          "Value": 0.1,
          "Status": "string",
          "Information": "string"
        }
      ],
      "SupplierFinancialTransactions": [
        {
          "Date": "/Date(1767225600000-0300)/",
          "Type": "string",
          "Currency": "string",
          "Value": 0.1,
          "Status": "string",
          "Information": "string"
        }
      ],
      "BloquearRebooking": true,
      "PaymentType": "string",
      "UrlRedirectAfterCancelWhenHasRefund": "string",
      "SupplierComission": {
        "Currency": "string",
        "Value": 0
      },
      "SupplierCommissionPercent": 0,
      "PayAtHotel": true,
      "SupplierVCNPayment": true,
      "SupplierCardNumber": "string",
      "BeforeBooking": "string",
      "Discount": {
        "Currency": "string",
        "Value": 0
      },
      "OriginalSellingPrice": {
        "Currency": "string",
        "Value": 0
      },
      "MotivoViagem": "string",
      "CentroCusto": "string",
      "CheckinInstructions": "string",
      "CheckinUrl": "string",
      "Projeto": "string",
      "CardProcessingDate": "string",
      "Extras": [
        {
          "Price": {
            "Currency": "string",
            "Value": 0
          },
          "Description": "string"
        }
      ],
      "AssyncBooking": true,
      "PropertyType": "string",
      "CangoorooInvoiceType": "string",
      "ManualReservation": true
    }
  ]
}

RentACar

RentACarPOST

Search — Rentacar

O que faz: Busca disponibilidade de veículos para os critérios informados.

Request: Credential + Criteria (ver tabela de parâmetros abaixo).

Response: Token + lista de Cars, cada um com CarId.

Atenção

O Token é único por busca (vinculado à Credential + parâmetros) e expira em 30 minutos. Não reutilize um Token entre tentativas ou fluxos diferentes.
  • O condutor principal é informado apenas no DoBooking (bloco Driver).
URL
https://ws-cliente.cangooroo.net/API/REST/RentACar.svc/search

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Criteriaobjectrequired

    Wrapper oficial da busca (documentação Cangooroo).

    CampoTipoObrigatórioDescrição
    PickupobjectSimRetirada do veículo — ver estrutura abaixo.
    DropoffobjectSimDevolução do veículo (pode ser em cidade diferente) — mesmos campos de Pickup.

    Pickup

    CampoTipoObrigatórioValoresDescrição
    Datestring (YYYY-MM-DD)Sim—Data da retirada.
    HourintSim0-23Hora da retirada.
    MinutesintSim0-59Minutos da retirada.
    LocationCodestringSim—Código do local de retirada.
    LocationTypeenumSimHotel | Airport | Store | undefinedTipo do local de retirada.

    Dropoff(mesmos campos de Pickup)

    CampoTipoObrigatórioValoresDescrição
    Datestring (YYYY-MM-DD)Sim—Data da devolução.
    HourintSim0-23Hora da devolução.
    MinutesintSim0-59Minutos da devolução.
    LocationCodestringSim—Código do local de devolução.
    LocationTypeenumSimHotel | Airport | Store | undefinedTipo do local de devolução.
  • languagestring

    Idioma do conteúdo (pt, en, es).

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Wrapper oficial da busca (documentação Cangooroo).

Idioma do conteúdo (pt, en, es).

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/RentACar.svc/search" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Criteria": {
    "Pickup": {
      "Date": "2026-12-20",
      "Hour": 10,
      "Minutes": 0,
      "LocationCode": "MCO",
      "LocationType": "Airport"
    },
    "Dropoff": {
      "Date": "2026-12-27",
      "Hour": 12,
      "Minutes": 0,
      "LocationCode": "MIA",
      "LocationType": "Airport"
    }
  },
  "language": "pt"
}'
Exemplo de response
{
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "TokenExpiresAt": "2026-11-14T18:50:00",
  "TotalCarResults": 32,
  "Cars": [
    {
      "CarId": 1,
      "Category": "Econômico",
      "VendorName": "Localiza",
      "TotalPrice": 890,
      "Currency": "BRL"
    }
  ]
}
RentACarPOST

GetBookingConditions — Rentacar

O que faz: Retorna as condições finais (preço firme e políticas de cancelamento) para o item selecionado.

Request: Credential + Token + identificador do item selecionado no Search.

Response: Preço firme e políticas de cancelamento.

Atenção

Chamada obrigatória antes do DoBooking.
URL
https://ws-cliente.cangooroo.net/API/REST/RentACar.svc/getBookingConditions

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Tokenstringrequired

    Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

  • CarIdnumberrequired

    CarId (int retornado pela Search)

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

CarId (int retornado pela Search)

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/RentACar.svc/getBookingConditions" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "CarId": 1
}'
Exemplo de response
{
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "Price": {
    "Total": 890,
    "Currency": "BRL",
    "Firm": true
  },
  "CancellationPolicy": [
    {
      "Deadline": "2026-12-15T23:59:59",
      "Penalty": 0
    }
  ]
}
RentACarPOST

DoBooking — Rentacar

O que faz: Confirma a reserva no fornecedor.

Request: Credential + Token + identificador do item + passageiros e Payment inline (ver tabela de parâmetros).

Response: BookingId, Status e o localizador do fornecedor (SupplierReservationCode / SupplierLocator).

Atenção

Em erro HTTP ou timeout, NÃO crie nova reserva: consulte CheckBookingStatus / GetBookingDetail antes de qualquer nova tentativa.

Atenção

Um Token só pode gerar UMA reserva. Reenviar o mesmo Token para criar outra retorna [ERR_0567].
  • Envie a mesma idempotencyKey em caso de retry.
  • Se SetWaitingPayment = true, a reserva fica "awaiting payment" até o payBooking.
URL
https://ws-cliente.cangooroo.net/API/REST/RentACar.svc/doBooking

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Tokenstringrequired

    Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

  • idempotencyKeyuuidrequired

    UUID v4 exclusivo desta tentativa. Reenvie o mesmo valor após timeout — NUNCA gere um novo.

  • Driverarrayrequired

    Array de passageiros/motoristas. O primeiro com MainPax=true é o titular da reserva.

    Driver[](cada item do array)

    CampoTipoObrigatórioValoresDescrição
    NamestringSim—Primeiro nome do passageiro.
    SurnamestringSim—Sobrenome do passageiro.
    AgeintSim—Idade do passageiro.
    CpfstringSim—CPF do passageiro (somente dígitos).
    TitleenumSimMr | Mrs | MsTratamento do passageiro.
    MainPaxboolSim—Titular da reserva. Exatamente um passageiro com MainPax=true.
    isChildboolSim—Indica se o passageiro é criança.
    AddressstringSim—Logradouro do passageiro.
    AddressNumberstringSim—Número do endereço.
    CitystringSim—Cidade.
    StatestringSim—Estado / UF.
    ZipCodestringSim—CEP.
    EmailstringSim—E-mail de contato.
    PhoneDDIstringSim—Código do país do telefone.
    PhoneDDDstringSim—Código de área do telefone.
    PhoneNumberstringSim—Número do telefone.
  • CarIdnumberrequired

    Identificador do carro escolhido (retornado na Search e confirmado no GetBookingConditions).

  • Paymentobjectrequired

    Bloco de pagamento do RentACar — estrutura própria e ACHATADA, SEM PaymentConditionId e SEM ContractingParty.

    CampoTipoObrigatórioDescrição
    CreditCardobjectSimDados do cartão — ver estrutura abaixo.

    Payment.CreditCard

    CampoTipoObrigatórioDescrição
    HolderstringSimNome do titular impresso no cartão.
    CardNumberstringSimNúmero do cartão (somente dígitos).
    SecurityCodestringSimCódigo de segurança (CVV).
    YearExpirationintSimAno de validade (4 dígitos).
    MonthExpirationintSimMês de validade (1-12).
    InstallmentsintSimNúmero de parcelas (schema achatado usa Installments).
    CardOperatorstringSimBandeira do cartão (ex.: VISA).
  • SetWaitingPaymentboolean

    Se true, cria a reserva com status 'awaiting payment' até o vencimento do Token. Útil para fluxos com pagamento assíncrono (payBooking).

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

UUID v4 exclusivo desta tentativa. Reenvie o mesmo valor após timeout — NUNCA gere um novo.

Array de passageiros/motoristas. O primeiro com MainPax=true é o titular da reserva.

Identificador do carro escolhido (retornado na Search e confirmado no GetBookingConditions).

Bloco de pagamento do RentACar — estrutura própria e ACHATADA, SEM PaymentConditionId e SEM ContractingParty.

Se true, cria a reserva com status 'awaiting payment' até o vencimento do Token. Útil para fluxos com pagamento assíncrono (payBooking).

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/RentACar.svc/doBooking" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "idempotencyKey": "b3c1c9a2-8f2d-4a10-9c1f-1d2b6e0a4e77",
  "Driver": [
    {
      "Name": "Ana",
      "Surname": "Souza",
      "Age": 34,
      "Cpf": "12345678900",
      "Title": "Mrs",
      "MainPax": true,
      "isChild": false,
      "Address": "Av. Atlântica",
      "AddressNumber": "1702",
      "City": "Rio de Janeiro",
      "State": "RJ",
      "ZipCode": "22021-001",
      "Email": "[email protected]",
      "PhoneDDI": "55",
      "PhoneDDD": "21",
      "PhoneNumber": "999998888"
    },
    {
      "Name": "Bruno",
      "Surname": "Souza",
      "Age": 34,
      "Cpf": "98765432100",
      "Title": "Mrs",
      "MainPax": false,
      "isChild": false,
      "Address": "Av. Atlântica",
      "AddressNumber": "1702",
      "City": "Rio de Janeiro",
      "State": "RJ",
      "ZipCode": "22021-001",
      "Email": "[email protected]",
      "PhoneDDI": "55",
      "PhoneDDD": "21",
      "PhoneNumber": "999998888"
    }
  ],
  "CarId": 123456,
  "Payment": {
    "CreditCard": {
      "Holder": "ANA SOUZA",
      "CardNumber": "4111111111111111",
      "SecurityCode": "123",
      "YearExpiration": 2029,
      "MonthExpiration": 12,
      "Installments": 3,
      "CardOperator": "VISA"
    }
  },
  "SetWaitingPayment": false
}'
Campos da resposta
CampoTipoDescrição
BookingIdstring|intLocalizador Cangooroo da reserva.
StatusstringSó considere confirmada quando vier literalmente "Confirmed".
SupplierReservationCodestringLocalizador oficial do fornecedor (nome confirmado pela documentação de suporte da Cangooroo).
SupplierLocatorstringMesmo valor — mantido por compatibilidade com integrações existentes.
Exemplo de response
{
  "BookingId": "CGR-2026-0001",
  "Status": "Confirmed",
  "SupplierLocator": "SUP-4a7b",
  "SupplierReservationCode": "SUP-4a7b"
}
RentACarPOST

cancelAllRentACarServices — Rentacar

O que faz: Cancela TODOS os serviços de locação de veículo associados a uma reserva (BookingId).

Request: Credential + BookingId.

Response: BookingId + Status do cancelamento.

Atenção

Se a política de cancelamento já estiver ativa, pode haver multa.

Atenção

Só considere cancelada após confirmação explícita na resposta — se não vier, repita a chamada.
  • Demais produtos da reserva permanecem inalterados.
URL
https://ws-cliente.cangooroo.net/API/REST/RentACar.svc/cancelAllRentACarServices

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BookingIdnumberrequired

    BookingId da reserva (retornado no DoBooking).

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

BookingId da reserva (retornado no DoBooking).

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/RentACar.svc/cancelAllRentACarServices" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "BookingId": 1465
}'
Exemplo de response
{
  "BookingId": 1465,
  "Status": "Cancelled",
  "refundAmount": 0
}
RentACarPOST

cancelByService — Rentacar

O que faz: Cancela UM serviço de locação de veículo específico.

Request: Credential + ServiceId (retornado no DoBooking).

Response: ServiceId + Status do cancelamento.

Atenção

Se a política de cancelamento já estiver ativa, pode haver multa.
URL
https://ws-cliente.cangooroo.net/API/REST/RentACar.svc/cancelByService

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BookingIdnumberrequired

    BookingId da reserva (retornado no DoBooking).

  • ServiceIdstringrequired

    Identificador do serviço a ser cancelado (retornado por GetBookingDetail).

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

BookingId da reserva (retornado no DoBooking).

Identificador do serviço a ser cancelado (retornado por GetBookingDetail).

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/RentACar.svc/cancelByService" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "BookingId": 1465,
  "ServiceId": "SVC-001"
}'
Exemplo de response
{
  "BookingId": 1465,
  "ServiceId": "SVC-001",
  "Status": "Cancelled",
  "refundAmount": 0
}

Transfer

TransferPOST

Search — Transfer

O que faz: SearchAvailability — busca disponibilidade de traslados para a data/hora e locais informados.

Request: Credential + Criteria (ver tabela de parâmetros abaixo).

Response: Token (30 min), TotalTransfersResults e a lista de Transfers com TransferId.

Atenção

O Token é único por busca (vinculado à Credential + parâmetros) e expira em 30 minutos. Não reutilize um Token entre tentativas ou fluxos diferentes.
  • Para IDA E VOLTA (transfer IN/OUT), inclua ServiceDateBack + HourBack + MinutesBack.
  • LocationType aceita Airport | Accommodation | Port | Station | ThemePark | Other.
  • Use TransferId no GetBookingConditions e no DoBooking.
URL
https://ws-cliente.cangooroo.net/API/REST/Transfer.svc/searchAvailability

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Criteriaobjectrequired

    Especificação da busca. Para transfer IN/OUT (ida e volta), adicione também ServiceDateBack, HourBack e MinutesBack.

    CampoTipoObrigatórioValoresDescrição
    ServiceDatestring (YYYY-MM-DD)Sim—Data do serviço.
    HourintSim0-23Hora do serviço.
    MinutesintSim0-59Minutos do serviço.
    NumberOfAdultsintSim—Quantidade de adultos.
    NumberOfChildrenintNão—Quantidade de crianças.
    PickupobjectSim—Local de retirada — ver estrutura abaixo.
    DropoffobjectSim—Local de entrega — ver estrutura abaixo.
    ServiceLanguagestringNãoall | código do idiomaIdioma do serviço.
    ServiceDateBackstring (YYYY-MM-DD)Não—Data do trecho de volta (transfer IN/OUT).
    HourBackintNão0-23Hora do trecho de volta.
    MinutesBackintNão0-59Minutos do trecho de volta.

    Pickup

    CampoTipoObrigatórioValoresDescrição
    LocationCodestringSim—Código do local de retirada.
    LocationTypeenumSimHotel | Airport | Store | undefinedTipo do local de retirada.

    Dropoff

    CampoTipoObrigatórioValoresDescrição
    LocationCodestringSim—Código do local de entrega.
    LocationTypeenumSimHotel | Airport | Store | undefinedTipo do local de entrega.
  • LocationTypestring

    Enum aceito em Criteria.Pickup/Dropoff.LocationType: 'Airport' | 'Accommodation' | 'Port' | 'Station' | 'ThemePark' | 'Other'.

  • ServiceDateBackdate

    Somente transfer IN/OUT (ida e volta). Data do retorno (YYYY-MM-DD). Deve vir junto com HourBack/MinutesBack.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Especificação da busca. Para transfer IN/OUT (ida e volta), adicione também ServiceDateBack, HourBack e MinutesBack.

Enum aceito em Criteria.Pickup/Dropoff.LocationType: 'Airport' | 'Accommodation' | 'Port' | 'Station' | 'ThemePark' | 'Other'.

Somente transfer IN/OUT (ida e volta). Data do retorno (YYYY-MM-DD). Deve vir junto com HourBack/MinutesBack.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Transfer.svc/searchAvailability" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Criteria": {
    "ServiceDate": "2026-12-20",
    "Hour": 12,
    "Minutes": 0,
    "NumberOfAdults": 1,
    "Pickup": {
      "LocationCode": "26486",
      "LocationType": "Accommodation"
    },
    "Dropoff": {
      "LocationCode": "26602",
      "LocationType": "Accommodation"
    },
    "ServiceLanguage": "all"
  }
}'
Exemplo de response
{
  "Token": "d09c4456-02cb-4a43-87e5-1e696ab6965f",
  "TotalTransfersResults": 8,
  "Transfers": [
    {
      "TransferId": 45219,
      "VehicleType": "Sedan Privativo",
      "MaxPax": 3,
      "ServiceLanguage": "en",
      "TotalPrice": 220,
      "Currency": "BRL"
    }
  ]
}
TransferPOST

GetBookingConditions — Transfer

O que faz: Retorna condições finais (preço firme, políticas de cancelamento e dados do veículo) para o(s) TransferId(s) selecionado(s).

Request: Credential + Token + TransferId(s).

Response: Preço firme, políticas de cancelamento e dados do serviço.

Atenção

Chamada obrigatória antes do DoBooking.

Atenção

Fornecedores podem trabalhar com cache — compare preço e política com a Search e notifique o usuário em caso de mudança.
URL
https://ws-cliente.cangooroo.net/API/REST/Transfer.svc/getBookingConditions

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Tokenstringrequired

    Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

  • TransferIdsarrayrequired

    Array com o(s) TransferId(s) escolhido(s) na SearchAvailability.

  • ServiceDatedaterequired

    Data do transfer (YYYY-MM-DD). Deve casar com o Criteria.ServiceDate da busca.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

Array com o(s) TransferId(s) escolhido(s) na SearchAvailability.

Data do transfer (YYYY-MM-DD). Deve casar com o Criteria.ServiceDate da busca.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Transfer.svc/getBookingConditions" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Token": "d09c4456-02cb-4a43-87e5-1e696ab6965f",
  "TransferIds": [
    45219
  ],
  "ServiceDate": "2026-12-20"
}'
Exemplo de response
{
  "Token": "d09c4456-02cb-4a43-87e5-1e696ab6965f",
  "Transfers": [
    {
      "TransferId": 45219,
      "VehicleType": "Sedan Privativo",
      "TotalPrice": 220,
      "Currency": "BRL",
      "CancellationPolicy": [
        {
          "Deadline": "2026-12-15T23:59:59",
          "Penalty": 0
        }
      ]
    }
  ]
}
TransferPOST

DoBooking — Transfer

O que faz: Confirma a reserva no fornecedor.

Request: Credential + Token + identificador do item + passageiros e Payment inline (ver tabela de parâmetros).

Response: BookingId, Status e o localizador do fornecedor (SupplierReservationCode / SupplierLocator).

Atenção

Em erro HTTP ou timeout, NÃO crie nova reserva: consulte CheckBookingStatus / GetBookingDetail antes de qualquer nova tentativa.

Atenção

Um Token só pode gerar UMA reserva. Reenviar o mesmo Token para criar outra retorna [ERR_0567].
  • Envie a mesma idempotencyKey em caso de retry.
  • Se SetWaitingPayment = true, a reserva fica "awaiting payment" até o payBooking.
URL
https://ws-cliente.cangooroo.net/API/REST/Transfer.svc/doBooking

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Tokenstringrequired

    Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

  • idempotencyKeyuuidrequired

    UUID v4 exclusivo desta tentativa. Reenvie o mesmo valor após timeout — NUNCA gere um novo.

  • Passengersarrayrequired

    Array de Pax do serviço. Exatamente um titular (MainPax=true) por reserva.

    Passengers[](cada item do array)

    CampoTipoObrigatórioValoresDescrição
    NamestringSim—Primeiro nome do passageiro.
    SurnamestringSim—Sobrenome do passageiro.
    AgeintSim—Idade do passageiro.
    CpfstringSim—CPF do passageiro.
    RgstringSim—RG do passageiro.
    TitleenumSimMr | Mrs | MsTratamento do passageiro.
    MainPaxboolSim—Titular da reserva — exatamente um por reserva.
    isChildboolSim—Indica se o passageiro é criança.
  • TransferIdnumberrequired

    TransferId escolhido (retornado na SearchAvailability e confirmado no GetBookingConditions).

  • BookingIdstring

    Opcional. Preencha para anexar este transfer a uma reserva existente (multi-serviços).

  • SetWaitingPaymentboolean

    Se true, a reserva é criada com status 'awaiting payment' até o Token expirar. Se paga no prazo, é enviada ao fornecedor para confirmação; caso contrário, é rejeitada.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

UUID v4 exclusivo desta tentativa. Reenvie o mesmo valor após timeout — NUNCA gere um novo.

Array de Pax do serviço. Exatamente um titular (MainPax=true) por reserva.

TransferId escolhido (retornado na SearchAvailability e confirmado no GetBookingConditions).

Opcional. Preencha para anexar este transfer a uma reserva existente (multi-serviços).

Se true, a reserva é criada com status 'awaiting payment' até o Token expirar. Se paga no prazo, é enviada ao fornecedor para confirmação; caso contrário, é rejeitada.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Transfer.svc/doBooking" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Token": "d09c4456-02cb-4a43-87e5-1e696ab6965f",
  "idempotencyKey": "b3c1c9a2-8f2d-4a10-9c1f-1d2b6e0a4e77",
  "Passengers": [
    {
      "Name": "Ana",
      "Surname": "Souza",
      "Age": 34,
      "Cpf": "12345678900",
      "Rg": "123456789",
      "Title": "Mrs",
      "MainPax": true,
      "isChild": false
    }
  ],
  "TransferId": 45219,
  "SetWaitingPayment": false
}'
Campos da resposta
CampoTipoDescrição
BookingIdstring|intLocalizador Cangooroo da reserva.
StatusstringSó considere confirmada quando vier literalmente "Confirmed".
SupplierReservationCodestringLocalizador oficial do fornecedor (nome confirmado pela documentação de suporte da Cangooroo).
SupplierLocatorstringMesmo valor — mantido por compatibilidade com integrações existentes.
Exemplo de response
{
  "BookingId": "CGR-2026-0001",
  "Status": "Confirmed",
  "SupplierLocator": "SUP-4a7b",
  "SupplierReservationCode": "SUP-4a7b"
}
TransferPOST

cancelAllTransferServices — Transfer

O que faz: Cancela TODOS os serviços de transfer associados a uma reserva (BookingId).

Request: Credential + BookingId.

Response: BookingId + Status do cancelamento.

Atenção

Se a política de cancelamento já estiver ativa, pode haver multa.

Atenção

Só considere cancelada após confirmação explícita na resposta — se não vier, repita a chamada.
  • Demais produtos da reserva permanecem inalterados.
URL
https://ws-cliente.cangooroo.net/API/REST/Transfer.svc/cancelAllTransferServices

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BookingIdnumberrequired

    BookingId (number) da reserva cujos serviços de transfer serão cancelados.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

BookingId (number) da reserva cujos serviços de transfer serão cancelados.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Transfer.svc/cancelAllTransferServices" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "BookingId": 1465
}'
Exemplo de response
{
  "BookingId": 1465,
  "Status": "Cancelled",
  "CancelledServices": [
    {
      "ServiceId": 1466,
      "Status": "Cancelled"
    }
  ]
}
TransferPOST

cancelByService — Transfer

O que faz: Cancela UM serviço de transfer específico.

Request: Credential + ServiceId (retornado no DoBooking).

Response: ServiceId + Status do cancelamento.

Atenção

Se a política de cancelamento já estiver ativa, pode haver multa.
URL
https://ws-cliente.cangooroo.net/API/REST/Transfer.svc/cancelByService

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • ServiceIdnumberrequired

    ServiceId do serviço (retornado no DoBooking Response).

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

ServiceId do serviço (retornado no DoBooking Response).

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Transfer.svc/cancelByService" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "ServiceId": 1466
}'
Exemplo de response
{
  "ServiceId": 1466,
  "Status": "Cancelled",
  "CancelationDate": "2026-12-10T10:15:00"
}

Tour & Tickets

Tour & TicketsPOST

Search — Tour

O que faz: Busca disponibilidade de passeios e ingressos para os critérios informados.

Request: Credential + Criteria (ver tabela de parâmetros abaixo).

Response: Token (30 min) + Tours com TourId e IdAvailability.

Atenção

O Token é único por busca (vinculado à Credential + parâmetros) e expira em 30 minutos. Não reutilize um Token entre tentativas ou fluxos diferentes.

Atenção

TourId e IdAvailability são ambos obrigatórios no GetBookingConditions e no DoBooking.
  • AdultAges é a lista de IDADES (uma por adulto), não a quantidade de adultos.
URL
https://ws-cliente.cangooroo.net/API/REST/Tour.svc/search

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Criteriaobjectrequired

    Wrapper oficial da busca de Tour (documentação Cangooroo).

    CampoTipoObrigatórioValoresDescrição
    CityIdintSim—Cidade do passeio, obtida no Destination Hierarchy/Autocomplete.
    AdultAges[]array<int>Sim—Lista com a IDADE de cada adulto (não a contagem).
    ChildAges[]array<int> | nullNão—Idades das crianças; envie null quando não houver.
    ServiceLanguagestringNãoall | código do idiomaIdioma do serviço.
    InitialServiceDatestring (YYYY-MM-DD)Sim—Data inicial do serviço.
    NumberOfDaysintSim—Quantidade de dias a partir da data inicial.
Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Wrapper oficial da busca de Tour (documentação Cangooroo).

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Tour.svc/search" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Criteria": {
    "CityId": 1009709,
    "ChildAges": null,
    "AdultAges": [
      25
    ],
    "ServiceLanguage": "all",
    "InitialServiceDate": "2026-12-22",
    "NumberOfDays": 2
  }
}'
Exemplo de response
{
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "Tours": [
    {
      "TourId": 45219,
      "IdAvailability": 1,
      "Name": "Cristo Redentor + City Tour",
      "ServiceDate": "2026-12-22",
      "TotalPrice": 340,
      "Currency": "BRL"
    }
  ]
}
Tour & TicketsPOST

GetBookingConditions — Tour

O que faz: Retorna as condições finais (preço firme e políticas de cancelamento) para o item selecionado.

Request: Credential + Token + identificador do item selecionado no Search.

Response: Preço firme e políticas de cancelamento.

Atenção

Chamada obrigatória antes do DoBooking.
URL
https://ws-cliente.cangooroo.net/API/REST/Tour.svc/getBookingConditions

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Tokenstringrequired

    Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

  • TourIdnumberrequired

    TourId (int retornado pela Search)

  • IdAvailabilitynumberrequired

    Identificador da disponibilidade escolhida (retornado junto ao TourId na Search).

  • ServiceDatedaterequired

    Data do passeio (YYYY-MM-DD). Deve estar dentro da janela pesquisada.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

TourId (int retornado pela Search)

Identificador da disponibilidade escolhida (retornado junto ao TourId na Search).

Data do passeio (YYYY-MM-DD). Deve estar dentro da janela pesquisada.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Tour.svc/getBookingConditions" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "TourId": 45219,
  "IdAvailability": 1,
  "ServiceDate": "2026-12-22"
}'
Exemplo de response
{
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "Price": {
    "Total": 890,
    "Currency": "BRL",
    "Firm": true
  },
  "CancellationPolicy": [
    {
      "Deadline": "2026-12-15T23:59:59",
      "Penalty": 0
    }
  ]
}
Tour & TicketsPOST

DoBooking — Tour

O que faz: Confirma a reserva no fornecedor.

Request: Credential + Token + identificador do item + passageiros e Payment inline (ver tabela de parâmetros).

Response: BookingId, Status e o localizador do fornecedor (SupplierReservationCode / SupplierLocator).

Atenção

Em erro HTTP ou timeout, NÃO crie nova reserva: consulte CheckBookingStatus / GetBookingDetail antes de qualquer nova tentativa.

Atenção

Um Token só pode gerar UMA reserva. Reenviar o mesmo Token para criar outra retorna [ERR_0567].
  • Envie a mesma idempotencyKey em caso de retry.
  • Se SetWaitingPayment = true, a reserva fica "awaiting payment" até o payBooking.
URL
https://ws-cliente.cangooroo.net/API/REST/Tour.svc/doBooking

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Tokenstringrequired

    Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

  • Passengersarrayrequired

    Array de Pax do serviço. Exatamente um titular (MainPax=true) por reserva.

    Passengers[](cada item do array)

    CampoTipoObrigatórioValoresDescrição
    NamestringSim—Primeiro nome do passageiro.
    SurnamestringSim—Sobrenome do passageiro.
    AgeintSim—Idade do passageiro.
    CpfstringSim—CPF do passageiro.
    RgstringSim—RG do passageiro.
    TitleenumSimMr | Mrs | MsTratamento do passageiro.
    MainPaxboolSim—Titular da reserva — exatamente um por reserva.
    isChildboolSim—Indica se o passageiro é criança.
  • TourIdnumberrequired

    TourId escolhido (retornado na Search e confirmado no GetBookingConditions).

  • IdAvailabilitynumberrequired

    Disponibilidade escolhida para o TourId (retornada na Search).

  • SupplierQuestionsarray

    Respostas às perguntas obrigatórias do fornecedor, quando existirem (retornadas no GetBookingConditions). Envie null quando não houver perguntas.

  • Paymentobjectrequired

    Bloco de pagamento do Tour — estrutura ACHATADA (igual à do RentACar), SEM PaymentConditionId e SEM ContractingParty.

    CampoTipoObrigatórioDescrição
    CreditCardobjectSimDados do cartão — ver estrutura abaixo.

    Payment.CreditCard

    CampoTipoObrigatórioDescrição
    HolderstringSimNome do titular impresso no cartão.
    CardNumberstringSimNúmero do cartão (somente dígitos).
    SecurityCodestringSimCódigo de segurança (CVV).
    YearExpirationintSimAno de validade (4 dígitos).
    MonthExpirationintSimMês de validade (1-12).
    InstallmentsintSimNúmero de parcelas (schema achatado usa Installments).
    CardOperatorstringSimBandeira do cartão (ex.: VISA).
  • SetWaitingPaymentboolean

    Se true, cria a reserva com status 'awaiting payment' até o vencimento do Token.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

Array de Pax do serviço. Exatamente um titular (MainPax=true) por reserva.

TourId escolhido (retornado na Search e confirmado no GetBookingConditions).

Disponibilidade escolhida para o TourId (retornada na Search).

Respostas às perguntas obrigatórias do fornecedor, quando existirem (retornadas no GetBookingConditions). Envie null quando não houver perguntas.

Bloco de pagamento do Tour — estrutura ACHATADA (igual à do RentACar), SEM PaymentConditionId e SEM ContractingParty.

Se true, cria a reserva com status 'awaiting payment' até o vencimento do Token.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Tour.svc/doBooking" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "Passengers": [
    {
      "Name": "Ana",
      "Surname": "Souza",
      "Age": 34,
      "Cpf": "12345678900",
      "Rg": "123456789",
      "Title": "Mrs",
      "MainPax": true,
      "isChild": false
    }
  ],
  "TourId": 45246,
  "IdAvailability": 1,
  "SupplierQuestions": null,
  "Payment": {
    "CreditCard": {
      "Holder": "ANA SOUZA",
      "CardNumber": "4111111111111111",
      "SecurityCode": "123",
      "YearExpiration": 2029,
      "MonthExpiration": 12,
      "Installments": 3,
      "CardOperator": "VISA"
    }
  },
  "SetWaitingPayment": false
}'
Campos da resposta
CampoTipoDescrição
BookingIdstring|intLocalizador Cangooroo da reserva.
StatusstringSó considere confirmada quando vier literalmente "Confirmed".
SupplierReservationCodestringLocalizador oficial do fornecedor (nome confirmado pela documentação de suporte da Cangooroo).
SupplierLocatorstringMesmo valor — mantido por compatibilidade com integrações existentes.
Exemplo de response
{
  "BookingId": "CGR-2026-0001",
  "Status": "Confirmed",
  "SupplierLocator": "SUP-4a7b",
  "SupplierReservationCode": "SUP-4a7b"
}
Tour & TicketsPOST

cancelAllTourServices — Tour

O que faz: Cancela TODOS os serviços de passeio/ingresso associados a uma reserva (BookingId).

Request: Credential + BookingId.

Response: BookingId + Status do cancelamento.

Atenção

Se a política de cancelamento já estiver ativa, pode haver multa.

Atenção

Só considere cancelada após confirmação explícita na resposta — se não vier, repita a chamada.
  • Demais produtos da reserva permanecem inalterados.
URL
https://ws-cliente.cangooroo.net/API/REST/Tour.svc/cancelAllTourServices

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BookingIdnumberrequired

    BookingId (number) da reserva cujos serviços de tour serão cancelados.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

BookingId (number) da reserva cujos serviços de tour serão cancelados.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Tour.svc/cancelAllTourServices" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "BookingId": 1465
}'
Exemplo de response
{
  "BookingId": 1465,
  "Status": "Cancelled",
  "CancelledServices": [
    {
      "ServiceId": 1466,
      "Status": "Cancelled"
    }
  ]
}
Tour & TicketsPOST

cancelByService — Tour

O que faz: Cancela UM serviço de passeio/ingresso específico.

Request: Credential + ServiceId (retornado no DoBooking).

Response: ServiceId + Status do cancelamento.

Atenção

Se a política de cancelamento já estiver ativa, pode haver multa.
URL
https://ws-cliente.cangooroo.net/API/REST/Tour.svc/cancelByService

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • ServiceIdnumberrequired

    ServiceId do serviço (retornado no DoBooking Response).

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

ServiceId do serviço (retornado no DoBooking Response).

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Tour.svc/cancelByService" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "ServiceId": 1466
}'
Exemplo de response
{
  "ServiceId": 1466,
  "Status": "Cancelled",
  "CancelationDate": "2026-12-10T10:15:00"
}

Flight

FlightPOST

Search — Flight

O que faz: Busca disponibilidade de voos.

Request: Credential + Criteria (ver tabela de parâmetros abaixo).

Response: Token + opções de voo com ResponseId.

Atenção

O Token é único por busca (vinculado à Credential + parâmetros) e expira em 30 minutos. Não reutilize um Token entre tentativas ou fluxos diferentes.

Atenção

Para SearchType RoundTrip e MultiStretches é OBRIGATÓRIO chamar SearchNextSegment em seguida para obter os demais trechos.
URL
https://ws-cliente.cangooroo.net/API/REST/Flight.svc/search

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Criteriaobjectrequired

    Wrapper oficial da busca de voos.

    CampoTipoObrigatórioValoresDescrição
    DepartureDatestring (YYYY-MM-DD)Sim—Data de ida.
    ReturnDatestring (YYYY-MM-DD)Não—Data de volta (obrigatória em RoundTrip).
    IataOriginAirportstring (IATA)Sim—Aeroporto de origem.
    IataDestinationAirportstring (IATA)Sim—Aeroporto de destino.
    NumberOfAdultsintSim—Quantidade de adultos.
    ChildrenAge[]array<int>Não—Idade de cada criança.
    NationalityPaxstring (ISO 3166-1 alpha-2)Sim—Nacionalidade do passageiro.
    SearchTypeenumSimRoundTrip | OneWay | MultiStretchesRoundTrip e MultiStretches exigem SearchNextSegment em seguida.
    ClassFlightenumSimAll | Economic | EconomicPremium | Business | FirstClassClasse de voo desejada.
    LuggageenumSimBoth | Included | NotIncludedFiltro de bagagem despachada.
Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Wrapper oficial da busca de voos.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Flight.svc/search" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Criteria": {
    "DepartureDate": "2026-12-20",
    "ReturnDate": "2026-12-27",
    "IataOriginAirport": "GRU",
    "IataDestinationAirport": "MIA",
    "NumberOfAdults": 1,
    "ChildrenAge": [
      7
    ],
    "NationalityPax": "BR",
    "SearchType": "RoundTrip",
    "ClassFlight": "All",
    "Luggage": "Both"
  }
}'
Exemplo de response
{
  "ResponseId": "9f8e-1a2b",
  "Flights": [
    {
      "ResponseId": "9f8e-1a2b",
      "Carrier": "LA",
      "TotalPrice": 4200,
      "Currency": "BRL",
      "Luggage": "Included"
    }
  ]
}
FlightPOST

SearchNextSegment — Flight

O que faz: Retorna as opções do próximo trecho a partir do ResponseId escolhido no passo anterior.

Atenção

Obrigatório para SearchType RoundTrip e MultiStretches.
  • Repita até completar todos os trechos; guarde cada ResponseId para o GetBookingConditions.
URL
https://ws-cliente.cangooroo.net/API/REST/Flight.svc/SearchNextSegment

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • ResponseIdstringrequired

    ResponseId da opção escolhida no trecho anterior.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

ResponseId da opção escolhida no trecho anterior.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Flight.svc/SearchNextSegment" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "ResponseId": "9f8e-1a2b"
}'
Exemplo de response
{
  "Flights": [
    {
      "ResponseId": "7c6d-3e4f",
      "Carrier": "LA",
      "TotalPrice": 0,
      "Currency": "BRL"
    }
  ]
}
FlightPOST

GetBookingConditions — Flight

O que faz: Retorna condições finais (preço firme, bagagem, regras tarifárias) para a combinação de trechos escolhida.

Request: Envie TODOS os ResponsesIds coletados na Search + SearchNextSegment.

URL
https://ws-cliente.cangooroo.net/API/REST/Flight.svc/getBookingConditions

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • ResponsesIdsarrayrequired

    Array com os ResponseId de cada trecho selecionado.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Array com os ResponseId de cada trecho selecionado.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Flight.svc/getBookingConditions" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "ResponsesIds": [
    "9f8e-1a2b",
    "7c6d-3e4f"
  ]
}'
Exemplo de response
{
  "TotalPrice": 4200,
  "Currency": "BRL",
  "Firm": true,
  "CancellationPolicy": [
    {
      "Deadline": "2026-12-10T23:59:59",
      "Penalty": 350
    }
  ]
}
FlightPOST

DoBooking — Flight

O que faz: Emite a reserva aérea para os trechos selecionados.

Request: Passengers usa o mesmo schema completo do Hotel; o bloco Payment é ACHATADO (Payment.CreditCard, sem PaymentConditionId e sem ContractingParty).

Atenção

Em erro ou timeout, não reemita: confirme o status real antes de nova tentativa.
URL
https://ws-cliente.cangooroo.net/API/REST/Flight.svc/doBooking

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • ResponsesIdsarrayrequired

    Array com os ResponseId de cada trecho confirmado no GetBookingConditions.

  • Passengersarrayrequired

    Array de passageiros — mesmo schema completo do Hotel. Exatamente um passageiro com MainPax=true.

    Passengers[](cada item do array)

    CampoTipoObrigatórioValoresDescrição
    NamestringSim—Primeiro nome do passageiro.
    SurnamestringSim—Sobrenome do passageiro.
    AgeintSim—Idade do passageiro.
    CpfstringSim—CPF do passageiro (somente dígitos).
    TitleenumSimMr | Mrs | MsTratamento do passageiro.
    MainPaxboolSim—Titular da reserva. Exatamente um passageiro com MainPax=true.
    isChildboolSim—Indica se o passageiro é criança.
    AddressstringSim—Logradouro do passageiro.
    AddressNumberstringSim—Número do endereço.
    CitystringSim—Cidade.
    StatestringSim—Estado / UF.
    ZipCodestringSim—CEP.
    EmailstringSim—E-mail de contato.
    PhoneDDIstringSim—Código do país do telefone.
    PhoneDDDstringSim—Código de área do telefone.
    PhoneNumberstringSim—Número do telefone.
  • Paymentobjectrequired

    Bloco de pagamento ACHATADO (igual ao RentACar), sem PaymentConditionId e sem ContractingParty.

    CampoTipoObrigatórioDescrição
    CreditCardobjectSimDados do cartão — ver estrutura abaixo.

    Payment.CreditCard

    CampoTipoObrigatórioDescrição
    HolderstringSimNome do titular impresso no cartão.
    CardNumberstringSimNúmero do cartão (somente dígitos).
    SecurityCodestringSimCódigo de segurança (CVV).
    YearExpirationintSimAno de validade (4 dígitos).
    MonthExpirationintSimMês de validade (1-12).
    InstallmentsintSimNúmero de parcelas (schema achatado usa Installments).
    CardOperatorstringSimBandeira do cartão (ex.: VISA).
  • SetWaitingPaymentboolean

    Se true, a reserva fica 'awaiting payment' até o pagamento ser confirmado.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Array com os ResponseId de cada trecho confirmado no GetBookingConditions.

Array de passageiros — mesmo schema completo do Hotel. Exatamente um passageiro com MainPax=true.

Bloco de pagamento ACHATADO (igual ao RentACar), sem PaymentConditionId e sem ContractingParty.

Se true, a reserva fica 'awaiting payment' até o pagamento ser confirmado.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Flight.svc/doBooking" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "ResponsesIds": [
    "9f8e-1a2b",
    "7c6d-3e4f"
  ],
  "Passengers": [
    {
      "Name": "Ana",
      "Surname": "Souza",
      "Age": 34,
      "Cpf": "12345678900",
      "Title": "Mrs",
      "MainPax": true,
      "isChild": false,
      "Address": "Av. Atlântica",
      "AddressNumber": "1702",
      "City": "Rio de Janeiro",
      "State": "RJ",
      "ZipCode": "22021-001",
      "Email": "[email protected]",
      "PhoneDDI": "55",
      "PhoneDDD": "21",
      "PhoneNumber": "999998888"
    }
  ],
  "Payment": {
    "CreditCard": {
      "Holder": "ANA SOUZA",
      "CardNumber": "4111111111111111",
      "SecurityCode": "123",
      "YearExpiration": 2029,
      "MonthExpiration": 12,
      "Installments": 3,
      "CardOperator": "VISA"
    }
  },
  "SetWaitingPayment": false
}'
Exemplo de response
{
  "BookingId": "CGR-2026-0001",
  "Status": "Confirmed",
  "SupplierLocator": "ABC123"
}
FlightPOST

cancelAllFlightServices — Flight

O que faz: Cancela TODOS os serviços de voos associados a uma reserva (BookingId).

Request: Credential + BookingId.

Response: BookingId + Status do cancelamento.

Atenção

Se a política de cancelamento já estiver ativa, pode haver multa.

Atenção

Só considere cancelada após confirmação explícita na resposta — se não vier, repita a chamada.
  • Demais produtos da reserva permanecem inalterados.
URL
https://ws-cliente.cangooroo.net/API/REST/Flight.svc/cancelAllFlightServices

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BookingIdnumberrequired

    BookingId (number) da reserva.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

BookingId (number) da reserva.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Flight.svc/cancelAllFlightServices" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "BookingId": 1465
}'
Exemplo de response
{
  "BookingId": 1465,
  "Status": "Cancelled"
}
FlightPOST

cancelByService — Flight

O que faz: Cancela UM serviço de voo específico.

Request: Credential + ServiceId (retornado no DoBooking).

Response: ServiceId + Status do cancelamento.

Atenção

Se a política de cancelamento já estiver ativa, pode haver multa.
URL
https://ws-cliente.cangooroo.net/API/REST/Flight.svc/cancelByService

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • ServiceIdnumberrequired

    ServiceId retornado no DoBooking.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

ServiceId retornado no DoBooking.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Flight.svc/cancelByService" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "ServiceId": 1466
}'
Exemplo de response
{
  "ServiceId": 1466,
  "Status": "Cancelled"
}

Insurance

InsurancePOST

Search — Insurance

O que faz: Busca planos de seguro viagem.

Request: Credential + Criteria { CityId, DateService, NumberOfDays, PassengersAge[] }.

Response: Token (30 min) + InsuranceIds.

Atenção

O Token é único por busca (vinculado à Credential + parâmetros) e expira em 30 minutos. Não reutilize um Token entre tentativas ou fluxos diferentes.

Nota

PassengersAge é a lista de IDADES (uma por passageiro).
URL
https://ws-cliente.cangooroo.net/API/REST/Insurance.svc/search

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Criteriaobjectrequired

    Wrapper oficial da busca de seguro viagem.

    CampoTipoObrigatórioDescrição
    CityIdintSimCidade de destino, obtida no Destination Hierarchy/Autocomplete.
    DateServicestring (YYYY-MM-DD)SimInício da vigência do seguro.
    NumberOfDaysintSimDuração da cobertura em dias.
    PassengersAge[]array<int>SimIdade de cada passageiro.
Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Wrapper oficial da busca de seguro viagem.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Insurance.svc/search" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Criteria": {
    "CityId": 1009709,
    "DateService": "2026-12-20",
    "NumberOfDays": 3,
    "PassengersAge": [
      25,
      20
    ]
  }
}'
Exemplo de response
{
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "Insurances": [
    {
      "InsuranceId": "100",
      "Name": "Plano Europa 60k",
      "TotalPrice": 180,
      "Currency": "BRL"
    }
  ]
}
InsurancePOST

GetBookingConditions — Insurance

O que faz: Retorna condições finais (preço firme, coberturas e políticas) para os planos selecionados.

URL
https://ws-cliente.cangooroo.net/API/REST/Insurance.svc/getBookingConditions

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Tokenstringrequired

    Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

  • InsuranceIdsarrayrequired

    Array com os InsuranceId escolhidos na Search.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

Array com os InsuranceId escolhidos na Search.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Insurance.svc/getBookingConditions" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "InsuranceIds": [
    "100"
  ]
}'
Exemplo de response
{
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "Insurances": [
    {
      "InsuranceId": "100",
      "TotalPrice": 180,
      "Currency": "BRL",
      "Firm": true
    }
  ]
}
InsurancePOST

DoBooking — Insurance

O que faz: Emite a apólice de seguro.

Request: InsuranceId é um valor ÚNICO (string). Passengers usa o schema completo do Hotel e o Payment é ACHATADO (Payment.CreditCard).

URL
https://ws-cliente.cangooroo.net/API/REST/Insurance.svc/doBooking

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Tokenstringrequired

    Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

  • InsuranceIdstringrequired

    Plano escolhido, confirmado no GetBookingConditions.

  • Passengersarrayrequired

    Array de passageiros — mesmo schema completo do Hotel. Exatamente um passageiro com MainPax=true.

    Passengers[](cada item do array)

    CampoTipoObrigatórioValoresDescrição
    NamestringSim—Primeiro nome do passageiro.
    SurnamestringSim—Sobrenome do passageiro.
    AgeintSim—Idade do passageiro.
    CpfstringSim—CPF do passageiro (somente dígitos).
    TitleenumSimMr | Mrs | MsTratamento do passageiro.
    MainPaxboolSim—Titular da reserva. Exatamente um passageiro com MainPax=true.
    isChildboolSim—Indica se o passageiro é criança.
    AddressstringSim—Logradouro do passageiro.
    AddressNumberstringSim—Número do endereço.
    CitystringSim—Cidade.
    StatestringSim—Estado / UF.
    ZipCodestringSim—CEP.
    EmailstringSim—E-mail de contato.
    PhoneDDIstringSim—Código do país do telefone.
    PhoneDDDstringSim—Código de área do telefone.
    PhoneNumberstringSim—Número do telefone.
  • Paymentobjectrequired

    Bloco de pagamento ACHATADO (sem PaymentConditionId e sem ContractingParty).

    CampoTipoObrigatórioDescrição
    CreditCardobjectSimDados do cartão — ver estrutura abaixo.

    Payment.CreditCard

    CampoTipoObrigatórioDescrição
    HolderstringSimNome do titular impresso no cartão.
    CardNumberstringSimNúmero do cartão (somente dígitos).
    SecurityCodestringSimCódigo de segurança (CVV).
    YearExpirationintSimAno de validade (4 dígitos).
    MonthExpirationintSimMês de validade (1-12).
    InstallmentsintSimNúmero de parcelas (schema achatado usa Installments).
    CardOperatorstringSimBandeira do cartão (ex.: VISA).
  • SetWaitingPaymentboolean

    Se true, cria a reserva com status 'awaiting payment'.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

Plano escolhido, confirmado no GetBookingConditions.

Array de passageiros — mesmo schema completo do Hotel. Exatamente um passageiro com MainPax=true.

Bloco de pagamento ACHATADO (sem PaymentConditionId e sem ContractingParty).

Se true, cria a reserva com status 'awaiting payment'.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Insurance.svc/doBooking" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Token": "eyJhbGciOiJIUzI1NiIs...",
  "InsuranceId": "100",
  "Passengers": [
    {
      "Name": "Ana",
      "Surname": "Souza",
      "Age": 34,
      "Cpf": "12345678900",
      "Title": "Mrs",
      "MainPax": true,
      "isChild": false,
      "Address": "Av. Atlântica",
      "AddressNumber": "1702",
      "City": "Rio de Janeiro",
      "State": "RJ",
      "ZipCode": "22021-001",
      "Email": "[email protected]",
      "PhoneDDI": "55",
      "PhoneDDD": "21",
      "PhoneNumber": "999998888"
    }
  ],
  "Payment": {
    "CreditCard": {
      "Holder": "ANA SOUZA",
      "CardNumber": "4111111111111111",
      "SecurityCode": "123",
      "YearExpiration": 2029,
      "MonthExpiration": 12,
      "Installments": 3,
      "CardOperator": "VISA"
    }
  },
  "SetWaitingPayment": false
}'
Exemplo de response
{
  "BookingId": "CGR-2026-0001",
  "Status": "Confirmed",
  "SupplierLocator": "POL-778"
}
InsurancePOST

CancelAllInsuranceServices — Insurance

O que faz: Cancela TODOS os serviços de seguros associados a uma reserva (BookingId).

Request: Credential + BookingId.

Response: BookingId + Status do cancelamento.

Atenção

Atenção ao 'C' maiúsculo no nome do método: CancelAllInsuranceServices.

Atenção

Só considere cancelada após confirmação explícita na resposta.
  • Demais produtos da reserva permanecem inalterados.
URL
https://ws-cliente.cangooroo.net/API/REST/Insurance.svc/CancelAllInsuranceServices

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BookingIdnumberrequired

    BookingId (number) da reserva.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

BookingId (number) da reserva.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Insurance.svc/CancelAllInsuranceServices" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "BookingId": 1465
}'
Exemplo de response
{
  "BookingId": 1465,
  "Status": "Cancelled"
}
InsurancePOST

cancelByService — Insurance

O que faz: Cancela UM serviço de seguro específico.

Request: Credential + ServiceId (retornado no DoBooking).

Response: ServiceId + Status do cancelamento.

Atenção

Se a política de cancelamento já estiver ativa, pode haver multa.
URL
https://ws-cliente.cangooroo.net/API/REST/Insurance.svc/cancelByService

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • ServiceIdnumberrequired

    ServiceId retornado no DoBooking.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

ServiceId retornado no DoBooking.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Insurance.svc/cancelByService" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "ServiceId": 1466
}'
Exemplo de response
{
  "ServiceId": 1466,
  "Status": "Cancelled"
}

Payment

POST

GetPaymentConditionsByBookingId

O que faz: Retorna as condições de pagamento disponíveis para uma reserva existente.

Response: Métodos aceitos, parcelas mínimas/máximas por bandeira e PaymentConditionId.

  • O PaymentConditionId é enviado no payBooking ou no bloco Payment inline do DoBooking.
URL
https://ws-cliente.cangooroo.net/API/REST/Payment.svc/GetPaymentConditionsByBookingId

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BookingIdstringrequired

    Identificador da reserva.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Identificador da reserva.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Payment.svc/GetPaymentConditionsByBookingId" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "BookingId": "CGR-2026-0001"
}'
Exemplo de response
{
  "Conditions": [
    {
      "PaymentConditionId": 12,
      "Method": "CreditCard",
      "Brands": [
        {
          "Brand": "VISA",
          "MinInstallments": 1,
          "MaxInstallments": 10
        },
        {
          "Brand": "MASTER",
          "MinInstallments": 1,
          "MaxInstallments": 6
        }
      ]
    },
    {
      "PaymentConditionId": 20,
      "Method": "Pix",
      "MinInstallments": 1,
      "MaxInstallments": 1
    }
  ]
}
POST

getPaymentConditionByToken

O que faz: Retorna as condições de pagamento a partir do Token do GetBookingConditions — antes de criar a reserva.

Response: Condições e PaymentConditionId para o bloco Payment inline do DoBooking.

URL
https://ws-cliente.cangooroo.net/API/REST/Payment.svc/getPaymentConditionByToken

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Tokenstringrequired

    Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Token retornado pelo Search. Vinculado à Credential e válido por 30 minutos. Obrigatório em GetBookingConditions e DoBooking. Se o módulo Retoken estiver habilitado, um Token expirado enviado em getBookingConditions (Hotel) dispara automaticamente uma nova busca e devolve novo Token + RoomId — não há endpoint dedicado.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Payment.svc/getPaymentConditionByToken" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Token": "eyJhbGciOiJIUzI1NiIs..."
}'
Exemplo de response
{
  "Conditions": [
    {
      "PaymentConditionId": 12,
      "Method": "CreditCard",
      "Brands": [
        {
          "Brand": "VISA",
          "MinInstallments": 1,
          "MaxInstallments": 10
        }
      ]
    }
  ]
}
POST

payBooking

O que faz: Paga uma reserva EXISTENTE (fluxo com SetWaitingPayment: true no DoBooking).

Request: Credential + CreditCard + ContractingParty + campos de comissionamento (RetainCommission, SmartCommissionValue).

URL
https://ws-cliente.cangooroo.net/API/REST/Payment.svc/payBooking

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BookingIdstringrequired

    Identificador da reserva a pagar.

  • ServicesIdarray

    Se omitido, paga todos os serviços; se informado, paga apenas os serviços listados.

  • ContractingPartyobjectrequired

    Dados do titular da compra (todos os campos obrigatórios).

    CampoTipoObrigatórioDescrição
    PersonNamestringSimNome completo do titular da compra.
    CPFstringSimCPF do titular.
    EmailstringSimE-mail do titular.
    AddressstringSimLogradouro.
    AddressComplementstringSimComplemento do endereço.
    AddressNumberstringSimNúmero do endereço.
    CityNamestringSimCidade.
    CountryCodestringSimPaís (ISO 3166-1 alpha-2).
    DistrictNamestringSimBairro.
    PhoneNumberstringSimNúmero do telefone.
    PhoneNumberDDDstringSimCódigo de área.
    PhoneNumberDDIstringSimCódigo do país.
    ReceiveCreditCardReceiptstring (bool)SimSe o titular recebe o comprovante do cartão.
    StateCodestringSimEstado / UF.
    ZipCodestringSimCEP.
  • CreditCardobjectrequired

    Dados do cartão (schema Hotel / payBooking — parcelas em NumberPayments).

    CampoTipoObrigatórioDescrição
    HolderstringSimNome do titular impresso no cartão.
    CardNumberstringSimNúmero do cartão (somente dígitos).
    SecurityCodestringSimCódigo de segurança (CVV).
    MonthExpirationintSimMês de validade (1-12).
    YearExpirationintSimAno de validade (4 dígitos).
    NumberPaymentsintSimNúmero de parcelas (Hotel/payBooking usam NumberPayments, não Installments).
    CardOperatorstringSimBandeira do cartão (ex.: VISA).
  • RetainCommissionboolean

    Se true, a comissão da agência fica retida com o operador (a Cangooroo repassa depois).

  • SmartCommissionValuenumber

    Valor de comissão inteligente (override) — consulte a Cangooroo sobre habilitação.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Identificador da reserva a pagar.

Se omitido, paga todos os serviços; se informado, paga apenas os serviços listados.

Dados do titular da compra (todos os campos obrigatórios).

Dados do cartão (schema Hotel / payBooking — parcelas em NumberPayments).

Se true, a comissão da agência fica retida com o operador (a Cangooroo repassa depois).

Valor de comissão inteligente (override) — consulte a Cangooroo sobre habilitação.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Payment.svc/payBooking" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "BookingId": "CGR-2026-0001",
  "ServicesId": [
    "SVC-001"
  ],
  "ContractingParty": {
    "PersonName": "Ana Souza",
    "CPF": "12345678900",
    "Email": "[email protected]",
    "Address": "Av. Atlântica",
    "AddressComplement": "Apto 501",
    "AddressNumber": "1702",
    "CityName": "Rio de Janeiro",
    "CountryCode": "BR",
    "DistrictName": "Copacabana",
    "PhoneNumber": "999998888",
    "PhoneNumberDDD": "21",
    "PhoneNumberDDI": "55",
    "ReceiveCreditCardReceipt": "true",
    "StateCode": "RJ",
    "ZipCode": "22021-001"
  },
  "CreditCard": {
    "Holder": "ANA SOUZA",
    "CardNumber": "4111111111111111",
    "SecurityCode": "123",
    "MonthExpiration": 12,
    "YearExpiration": 2029,
    "NumberPayments": 3,
    "CardOperator": "VISA"
  },
  "RetainCommission": false
}'
Exemplo de response
{
  "BookingId": "CGR-2026-0001",
  "PaymentStatus": "Approved",
  "AuthorizationCode": "AUTH-9f8e"
}
POST

Payment — Charge (abstração da plataforma)

O que faz: Registra a cobrança na nossa plataforma e aciona o payBooking por baixo.

Nota

Endpoint de conveniência da nossa plataforma — não é 1:1 com o contrato Cangooroo.

Atenção

Envie sempre uma idempotencyKey; em caso de timeout, consulte GetPaymentStatus antes de reenviar.
URL
https://ws-cliente.cangooroo.net/API/REST/Payment.svc/charge

Parâmetros

  • idempotencyKeyuuidrequired

    UUID v4 exclusivo desta tentativa. Reenvie o mesmo valor após timeout — NUNCA gere um novo.

  • BookingIdnumberrequired

    BookingId da reserva (retornado no DoBooking).

  • amountnumberrequired

    Valor total a cobrar.

  • currencystringrequired

    ISO 4217 (BRL, USD, EUR).

  • methodstringrequired

    Método: credit_card | pix | bank_slip.

Try it outReferência

UUID v4 exclusivo desta tentativa. Reenvie o mesmo valor após timeout — NUNCA gere um novo.

BookingId da reserva (retornado no DoBooking).

Valor total a cobrar.

ISO 4217 (BRL, USD, EUR).

Método: credit_card | pix | bank_slip.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/Payment.svc/charge" \
  -H "Content-Type: application/json" \
  -d '{
  "idempotencyKey": "b3c1c9a2-8f2d-4a10-9c1f-1d2b6e0a4e77",
  "BookingId": 1465,
  "amount": 5250,
  "currency": "BRL",
  "method": "credit_card"
}'
Exemplo de response
{
  "paymentId": "pay_9f8e",
  "status": "Approved",
  "capturedAt": "2026-11-14T18:22:03"
}
GET

Payment — GetPaymentStatus (abstração da plataforma)

O que faz: Consulta o status atual de um pagamento.

  • Use em polling (backoff 1s → 30s) após timeout do Charge.
URL
https://ws-cliente.cangooroo.net/API/REST/Payment.svc/status/{paymentId}

Parâmetros

  • paymentIdstringrequired

    Identificador retornado pelo Charge.

Try it outReferência

Identificador retornado pelo Charge.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X GET "https://ws-cliente.cangooroo.net/API/REST/Payment.svc/status/{paymentId}"
Exemplo de response
{
  "paymentId": "pay_9f8e",
  "status": "Approved",
  "amount": 5250,
  "currency": "BRL"
}

ClientBackOffice

POST

authenticate

O que faz: Login dedicado do BackOffice — alternativa a enviar Credential inline em toda chamada.

Response: Sessão utilizável nas demais chamadas do ClientBackOffice.

URL
https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/authenticate

Parâmetros

  • Usernamestringrequired

    Usuário da agência.

  • Passwordstringrequired

    Senha correspondente.

Try it outReferência

Usuário da agência.

Senha correspondente.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/authenticate" \
  -H "Content-Type: application/json" \
  -d '{
  "Username": "meu_usuario",
  "Password": "minha_senha"
}'
Exemplo de response
{
  "SessionToken": "sess-abc",
  "ExpiresAt": "2026-11-14T22:00:00"
}
GET

GetBookingDetail

O que faz: Fonte-de-verdade para o estado real de uma reserva.

Request: BookingId (retornado pelo DoBooking).

Atenção

Chame após timeout do DoBooking, antes de qualquer nova tentativa.

Requer nível de usuário

Retorna apenas reservas da mesma agência do usuário autenticado. Buscar reserva de outra agência gera [ERR_0247] CangoorooLib_V2.Reserva.Reserva.carregar - Erro ao carregar uma Reserva.
URL
https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/getBookingDetail/{BookingId}

Parâmetros

  • BookingIdstringrequired

    Número da reserva.

Try it outReferência

Número da reserva.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X GET "https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/getBookingDetail/{BookingId}"
Campos da resposta
CampoTipoDescrição
StatusstringEstado real da reserva. Só considere confirmada quando for "Confirmed".
Services[].ServiceIdintIdentificador de cada serviço — usado nos cancelamentos por serviço.
Exemplo de response
{
  "BookingId": "CGR-2026-0001",
  "Status": "Confirmed",
  "Product": "hotel",
  "SupplierLocator": "SUP-4a7b",
  "CreatedAt": "2026-11-14T18:20:11",
  "Services": [
    {
      "ServiceId": "SVC-001",
      "ServiceType": "Hotel",
      "Status": "Confirmed"
    }
  ]
}
POST

GetBookingList

O que faz: Lista reservas com múltiplos filtros combinados.

  • Datas em horário local (sem timezone).
  • Performance: true acelera a consulta (não busca o nome da operadora e não ordena por ID de reserva).
URL
https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/GetBookingList

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • SearchBookingCriteriaobjectrequired

    Wrapper obrigatório dos filtros (mesmo padrão do CangoorooBackOffice.GetBookingList). Não envie filtros soltos na raiz.

    CampoTipoObrigatórioValoresDescrição
    BookingNumber[]array<string>Não—Lista de números de reserva.
    BookingStatus[]array<enum>NãoConfirmed | Pending | Cancelled | OnRequest | Rejected | WaitingPaymentStatus das reservas a retornar.
    ServiceTypes[]array<enum>NãoHotel | Insurance | Tour | Transfer | RentACar | Flight | Circuit | PackageTipos de serviço a considerar.
    PassengerNamestringNão—Nome (ou parte) do passageiro.
    ExternalReferencestringNão—Referência externa registrada pelo parceiro.
    InitialBookingDatestring (YYYY-MM-DD)Não—Início do intervalo de data da reserva.
    FinalBookingDatestring (YYYY-MM-DD)Não—Fim do intervalo de data da reserva.
    InitialServiceDatestring (YYYY-MM-DD)Não—Início do intervalo de data do serviço.
    FinalServiceDatestring (YYYY-MM-DD)Não—Fim do intervalo de data do serviço.
    InitialUpdateDatestring (YYYY-MM-DD)Não—Início do intervalo de última atualização.
    FinalUpdateDatestring (YYYY-MM-DD)Não—Fim do intervalo de última atualização.
    CancelationDateStartstring (YYYY-MM-DD)Não—Início do intervalo de data de cancelamento.
    CancelationDateEndstring (YYYY-MM-DD)Não—Fim do intervalo de data de cancelamento.
    PaymentDeadlineStartstring (YYYY-MM-DD)Não—Início do intervalo de vencimento de pagamento.
    PaymentDeadlineEndstring (YYYY-MM-DD)Não—Fim do intervalo de vencimento de pagamento.
    PerformanceboolNão—Quando true, a consulta é mais rápida: não busca o nome da operadora e não ordena os resultados por ID de reserva. Reduz o tempo de resposta em pelo menos metade.
Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Wrapper obrigatório dos filtros (mesmo padrão do CangoorooBackOffice.GetBookingList). Não envie filtros soltos na raiz.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/GetBookingList" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "SearchBookingCriteria": {
    "BookingStatus": [
      "Confirmed"
    ],
    "ServiceTypes": [
      "Hotel"
    ],
    "InitialBookingDate": "2026-11-01",
    "FinalBookingDate": "2026-11-30",
    "Performance": true
  }
}'
Exemplo de response
{
  "Total": 42,
  "Bookings": [
    {
      "BookingId": "CGR-2026-0001",
      "Status": "Confirmed",
      "ServiceType": "Hotel",
      "Total": 5250,
      "Currency": "BRL",
      "PassengerName": "Ana Souza"
    }
  ]
}
POST

cancelBooking

O que faz: Cancela TODOS os serviços de uma reserva, independentemente do produto.

Atenção

Só considere cancelada após confirmação explícita na resposta.
  • Complementa cancelAll*Services (por produto) e cancelByService (por serviço).
URL
https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/cancelBooking

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BookingIdstringrequired

    Identificador da reserva a cancelar (BookingId retornado pelo DoBooking).

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Identificador da reserva a cancelar (BookingId retornado pelo DoBooking).

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/cancelBooking" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "BookingId": "CGR-2026-0001"
}'
Exemplo de response
{
  "BookingId": "CGR-2026-0001",
  "Status": "Cancelled"
}
POST

getLastFXRate

O que faz: Retorna a última taxa de câmbio praticada pela agência para um par de moedas.

Atenção

Os nomes de campo aqui são CurrencyCodeFrom/CurrencyCodeTo — diferentes do CangoorooBackOffice, que usa CurrencyFrom/CurrencyTo. Não reutilize o mesmo tipo entre os dois back-offices.
URL
https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/getLastFXRate

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • CurrencyCodeFromstringrequired

    Moeda de origem (ISO 4217).

  • CurrencyCodeTostringrequired

    Moeda de destino (ISO 4217).

  • ServiceTypenumberrequired

    Tipo de serviço — ver valores aceitos abaixo.

    ServiceType (enum numérico)(valores aceitos)

    CampoTipoDescrição
    0intTodos os serviços
    1intRentACar
    2intCircuit
    3intCruise
    4intHotel
    5intInsurance
    6intTour
    7intTransfer
    8intTrainTicket
    9intTrainPass
    10intFlight
    11intPackage
Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Moeda de origem (ISO 4217).

Moeda de destino (ISO 4217).

Tipo de serviço — ver valores aceitos abaixo.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/getLastFXRate" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "CurrencyCodeFrom": "USD",
  "CurrencyCodeTo": "BRL",
  "ServiceType": 0
}'
Exemplo de response
{
  "CurrencyCodeFrom": "USD",
  "CurrencyCodeTo": "BRL",
  "ServiceType": 0,
  "Rate": 5.42,
  "UpdatedAt": "2026-11-14T09:00:00"
}
POST

getIncidents

O que faz: Lista incidentes (tickets) associados a uma reserva ou período.

  • Incidents são o subsistema de comunicação agência ↔ Cangooroo ↔ fornecedor.
URL
https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/getIncidents

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Incidentobjectrequired

    Wrapper obrigatório dos filtros. Não envie filtros soltos na raiz do request.

    CampoTipoObrigatórioDescrição
    BookingIdstringNãoFiltra pelos incidentes de uma reserva.
    CreationDateStartstring (YYYY-MM-DD)NãoInício do intervalo de criação.
    CreationDateEndstring (YYYY-MM-DD)NãoFim do intervalo de criação.
    IncidentIdstringNãoIdentificador de um incidente específico.
    MessagestringNãoBusca por conteúdo da mensagem.
    SendEmailboolNãoFiltra incidentes que dispararam e-mail.
    ServiceIdstringNãoServiço relacionado ao incidente.
    StatusstringNãoStatus do incidente.
    TitlestringNãoAssunto do incidente.
Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Wrapper obrigatório dos filtros. Não envie filtros soltos na raiz do request.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/getIncidents" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Incident": {
    "BookingId": "CGR-2026-0001",
    "CreationDateStart": "2026-11-01",
    "CreationDateEnd": "2026-11-30",
    "IncidentId": "",
    "Message": "",
    "SendEmail": "",
    "ServiceId": "",
    "Status": "Open",
    "Title": ""
  }
}'
Exemplo de response
{
  "Incidents": [
    {
      "IncidentId": 9001,
      "BookingId": "CGR-2026-0001",
      "Status": "Open",
      "Title": "Late check-in",
      "CreatedAt": "2026-11-14T18:22:03"
    }
  ]
}
POST

creatIncident

O que faz: Abre um novo incidente vinculado a uma reserva/serviço.

Request: Os campos vão dentro do wrapper Incident.

Nota

O nome oficial na documentação Cangooroo é creatIncident (sem o segundo 'e').

Atenção

O assunto é Title (não Subject).
URL
https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/creatIncident

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • Incidentobjectrequired

    Wrapper obrigatório do incidente. Não envie os campos soltos na raiz do request.

    CampoTipoObrigatórioDescrição
    BookingIdstringSimReserva relacionada ao incidente.
    MessagestringSimDescrição do incidente.
    SendEmailboolNãoDispara notificação por e-mail quando true.
    ServiceIdstringNãoServiço específico da reserva.
    TitlestringSimAssunto curto — substitui o antigo `Subject`.
Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Wrapper obrigatório do incidente. Não envie os campos soltos na raiz do request.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/creatIncident" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "Incident": {
    "BookingId": "CGR-2026-0001",
    "Message": "Cliente chegará às 23h. Favor comunicar o hotel.",
    "SendEmail": true,
    "ServiceId": "SVC-001",
    "Title": "Late check-in"
  }
}'
Exemplo de response
{
  "IncidentId": 9001,
  "Status": "Open"
}
POST

addIncidentMessage

O que faz: Anexa uma nova mensagem a um incidente existente (thread de conversa).

Request: Os campos vão dentro do wrapper IncidentMessage.

Atenção

O identificador do incidente chama-se OccurrenceId (não IncidentId).
URL
https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/addIncidentMessage

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • IncidentMessageobjectrequired

    Wrapper obrigatório da mensagem. Não envie os campos soltos na raiz do request.

    CampoTipoObrigatórioValoresDescrição
    MessagestringSim—Conteúdo da mensagem.
    OccurrenceIdstringSim—Identificador do incidente destino.
    TitlestringSim—Assunto da mensagem.
    TypeenumSimRequest | OccurrenceTipo da mensagem.
Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Wrapper obrigatório da mensagem. Não envie os campos soltos na raiz do request.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/ClientBackOffice.svc/addIncidentMessage" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "meu_usuario",
    "Password": "minha_senha"
  },
  "IncidentMessage": {
    "Message": "Hotel confirmou late check-in até 23h30.",
    "OccurrenceId": "9001",
    "Title": "Late check-in",
    "Type": "Occurrence"
  }
}'
Exemplo de response
{
  "IncidentId": 9001,
  "MessageId": 5501
}

CangoorooBackOffice

POST

updateFXRate

O que faz: Atualiza a taxa de câmbio praticada pela operação.

Requer nível de usuário

Operação de nível LICENSEE (operador Cangooroo). Usuário de agência recebe erro.
URL
https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/updateFXRate

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BranchOfficeIdstring

    Filial à qual a taxa se aplica.

  • ClientIDstring

    Agência (client) à qual a taxa se aplica.

  • CurrencyFromstringrequired

    Moeda de origem (ISO 4217).

  • CurrencyTostringrequired

    Moeda de destino (ISO 4217).

  • ServiceTypenumberrequired

    Tipo de serviço (mesmo enum de getLastFXRate) — ver valores aceitos abaixo.

    ServiceType (enum numérico)(valores aceitos)

    CampoTipoDescrição
    0intTodos os serviços
    1intRentACar
    2intCircuit
    3intCruise
    4intHotel
    5intInsurance
    6intTour
    7intTransfer
    8intTrainTicket
    9intTrainPass
    10intFlight
    11intPackage
  • SupplierIdstring

    Fornecedor ao qual a taxa se aplica.

  • Valuenumberrequired

    Nova taxa de câmbio (substitui o antigo campo Rate).

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Filial à qual a taxa se aplica.

Agência (client) à qual a taxa se aplica.

Moeda de origem (ISO 4217).

Moeda de destino (ISO 4217).

Tipo de serviço (mesmo enum de getLastFXRate) — ver valores aceitos abaixo.

Fornecedor ao qual a taxa se aplica.

Nova taxa de câmbio (substitui o antigo campo Rate).

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/updateFXRate" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "licensee_user",
    "Password": "licensee_pass"
  },
  "BranchOfficeId": "BO-1",
  "ClientID": "AG-42",
  "CurrencyFrom": "USD",
  "CurrencyTo": "BRL",
  "ServiceType": 0,
  "SupplierId": "SUP-10",
  "Value": 5.45
}'
Exemplo de response
{
  "Success": true,
  "UpdatedAt": "2026-11-14T18:30:00"
}
POST

confirmClientPayment

O que faz: Confirma manualmente o pagamento recebido do cliente (agência) para um SERVIÇO.

Request: Credential + ServiceId + ServiceType (não há BookingId, PaidAmount nem Currency).

Requer nível de usuário

Operação de nível LICENSEE (operador Cangooroo). Usuário de agência recebe erro.
  • Usado pela retaguarda quando o pagamento não flui pelo gateway automático.
URL
https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/confirmClientPayment

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • ServiceIdstringrequired

    Serviço a marcar como pago pelo cliente (retornado em GetBookingDetail).

  • ServiceTypenumberrequired

    Tipo de serviço — ver valores aceitos abaixo.

    ServiceType (enum numérico)(valores aceitos)

    CampoTipoDescrição
    0intTodos os serviços
    1intRentACar
    2intCircuit
    3intCruise
    4intHotel
    5intInsurance
    6intTour
    7intTransfer
    8intTrainTicket
    9intTrainPass
    10intFlight
    11intPackage
Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Serviço a marcar como pago pelo cliente (retornado em GetBookingDetail).

Tipo de serviço — ver valores aceitos abaixo.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/confirmClientPayment" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "licensee_user",
    "Password": "licensee_pass"
  },
  "ServiceId": "SVC-001",
  "ServiceType": 4
}'
Exemplo de response
{
  "ServiceId": "SVC-001",
  "ClientPaymentStatus": "Confirmed"
}
POST

confirmSupplierPayment

O que faz: Confirma manualmente o pagamento repassado ao fornecedor para um SERVIÇO.

Request: Mesmo contrato do confirmClientPayment: Credential + ServiceId + ServiceType.

Requer nível de usuário

Operação de nível LICENSEE (operador Cangooroo). Usuário de agência recebe erro.
URL
https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/confirmSupplierPayment

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • ServiceIdstringrequired

    Serviço cujo repasse ao fornecedor foi efetuado.

  • ServiceTypenumberrequired

    Tipo de serviço (mesmo enum de getLastFXRate) — ver valores aceitos abaixo.

    ServiceType (enum numérico)(valores aceitos)

    CampoTipoDescrição
    0intTodos os serviços
    1intRentACar
    2intCircuit
    3intCruise
    4intHotel
    5intInsurance
    6intTour
    7intTransfer
    8intTrainTicket
    9intTrainPass
    10intFlight
    11intPackage
Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Serviço cujo repasse ao fornecedor foi efetuado.

Tipo de serviço (mesmo enum de getLastFXRate) — ver valores aceitos abaixo.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/confirmSupplierPayment" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "licensee_user",
    "Password": "licensee_pass"
  },
  "ServiceId": "SVC-001",
  "ServiceType": 4
}'
Exemplo de response
{
  "ServiceId": "SVC-001",
  "SupplierPaymentStatus": "Confirmed"
}
POST

getClientDetail

O que faz: Retorna dados cadastrais de uma agência (client): nome, contatos e condições comerciais.

Requer nível de usuário

Operação de nível LICENSEE (operador Cangooroo). Usuário de agência recebe erro.
URL
https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/getClientDetail

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • ClientIdstringrequired

    Identificador da agência.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Identificador da agência.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/getClientDetail" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "licensee_user",
    "Password": "licensee_pass"
  },
  "ClientId": "AG-42"
}'
Exemplo de response
{
  "ClientId": "AG-42",
  "Name": "Agência Teste",
  "Email": "[email protected]",
  "CommissionRate": 0.1
}
POST

getLastFXRate (licensee)

O que faz: Retorna a última taxa de câmbio registrada para a operação do licensee.

Request: Aceita filtros por BranchOfficeId, ClientID, SupplierId e ServiceType.

Requer nível de usuário

Operação de nível LICENSEE (operador Cangooroo). Usuário de agência recebe erro.
URL
https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/getLastFXRate

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • CurrencyFromstringrequired

    Moeda de origem (ISO 4217).

  • CurrencyTostringrequired

    Moeda de destino (ISO 4217).

  • ServiceTypenumber

    Tipo de serviço — ver valores aceitos abaixo.

    ServiceType (enum numérico)(valores aceitos)

    CampoTipoDescrição
    0intTodos os serviços
    1intRentACar
    2intCircuit
    3intCruise
    4intHotel
    5intInsurance
    6intTour
    7intTransfer
    8intTrainTicket
    9intTrainPass
    10intFlight
    11intPackage
  • BranchOfficeIdstring

    Filial específica.

  • ClientIDstring

    Agência específica.

  • SupplierIdstring

    Fornecedor específico.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Moeda de origem (ISO 4217).

Moeda de destino (ISO 4217).

Tipo de serviço — ver valores aceitos abaixo.

Filial específica.

Agência específica.

Fornecedor específico.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/getLastFXRate" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "licensee_user",
    "Password": "licensee_pass"
  },
  "CurrencyFrom": "USD",
  "CurrencyTo": "BRL",
  "ServiceType": 0
}'
Exemplo de response
{
  "CurrencyFrom": "USD",
  "CurrencyTo": "BRL",
  "Rate": 5.42,
  "UpdatedAt": "2026-11-14T09:00:00"
}
POST

GetBookingList (licensee)

O que faz: Lista reservas do licensee com filtros amplos (SearchBookingCriteria).

Request: Além dos filtros do ClientBackOffice, aceita SupplierLoc (localizador do fornecedor).

Requer nível de usuário

Operação de nível LICENSEE (operador Cangooroo). Usuário de agência recebe erro.
  • Performance: true acelera a consulta (não busca o nome da operadora e não ordena por ID de reserva).
URL
https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/GetBookingList

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • SearchBookingCriteriaobjectrequired

    Wrapper obrigatório dos filtros de busca de reservas do licensee.

    CampoTipoObrigatórioValoresDescrição
    BookingNumber[]array<string>Não—Lista de números de reserva.
    BookingStatus[]array<enum>NãoConfirmed | Pending | Cancelled | OnRequest | Rejected | WaitingPaymentStatus das reservas a retornar.
    ServiceTypes[]array<enum>NãoHotel | Insurance | Tour | Transfer | RentACar | Flight | Circuit | PackageTipos de serviço a considerar.
    PassengerNamestringNão—Nome (ou parte) do passageiro.
    ExternalReferencestringNão—Referência externa registrada pelo parceiro.
    InitialBookingDatestring (YYYY-MM-DD)Não—Início do intervalo de data da reserva.
    FinalBookingDatestring (YYYY-MM-DD)Não—Fim do intervalo de data da reserva.
    InitialServiceDatestring (YYYY-MM-DD)Não—Início do intervalo de data do serviço.
    FinalServiceDatestring (YYYY-MM-DD)Não—Fim do intervalo de data do serviço.
    InitialUpdateDatestring (YYYY-MM-DD)Não—Início do intervalo de última atualização.
    FinalUpdateDatestring (YYYY-MM-DD)Não—Fim do intervalo de última atualização.
    CancelationDateStartstring (YYYY-MM-DD)Não—Início do intervalo de data de cancelamento.
    CancelationDateEndstring (YYYY-MM-DD)Não—Fim do intervalo de data de cancelamento.
    PaymentDeadlineStartstring (YYYY-MM-DD)Não—Início do intervalo de vencimento de pagamento.
    PaymentDeadlineEndstring (YYYY-MM-DD)Não—Fim do intervalo de vencimento de pagamento.
    PerformanceboolNão—Quando true, a consulta é mais rápida: não busca o nome da operadora e não ordena os resultados por ID de reserva. Reduz o tempo de resposta em pelo menos metade.
    SupplierLocstringNão—Localizador do fornecedor (exclusivo do CangoorooBackOffice).
Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Wrapper obrigatório dos filtros de busca de reservas do licensee.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/GetBookingList" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "licensee_user",
    "Password": "licensee_pass"
  },
  "SearchBookingCriteria": {
    "BookingStatus": [
      "Confirmed"
    ],
    "ServiceTypes": [
      "Hotel"
    ],
    "InitialBookingDate": "2026-11-01",
    "FinalBookingDate": "2026-11-30",
    "Performance": true
  }
}'
Exemplo de response
{
  "Bookings": [
    {
      "BookingId": "CGR-2026-0001",
      "Status": "Confirmed",
      "ClientId": "AG-42",
      "TotalPrice": 5250,
      "Currency": "BRL"
    }
  ]
}
POST

GetBookingDetail (licensee)

O que faz: Retorna detalhes completos de uma reserva na visão do licensee (inclui dados comerciais e de repasse ao fornecedor).

Requer nível de usuário

Só retorna dado com usuário operador (licensee). Usuário de agência recebe erro.
URL
https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/GetBookingDetail

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BookingIdstringrequired

    Identificador da reserva.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Identificador da reserva.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/GetBookingDetail" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "licensee_user",
    "Password": "licensee_pass"
  },
  "BookingId": "CGR-2026-0001"
}'
Exemplo de response
{
  "BookingId": "CGR-2026-0001",
  "Status": "Confirmed",
  "ClientId": "AG-42",
  "Services": [
    {
      "ServiceId": "SVC-001",
      "ServiceType": "Hotel",
      "Status": "Confirmed"
    }
  ]
}
POST

cancelBooking (licensee)

O que faz: Cancela TODOS os serviços de uma reserva a partir da retaguarda do licensee.

Requer nível de usuário

Operação de nível LICENSEE (operador Cangooroo). Usuário de agência recebe erro.

Atenção

Se a política de cancelamento já estiver ativa, pode haver multa.
URL
https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/cancelBooking

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • BookingIdstringrequired

    Reserva a cancelar.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Reserva a cancelar.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/cancelBooking" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "licensee_user",
    "Password": "licensee_pass"
  },
  "BookingId": "CGR-2026-0001"
}'
Exemplo de response
{
  "BookingId": "CGR-2026-0001",
  "Status": "Cancelled"
}
POST

cancelBookingByService (licensee)

O que faz: Cancela um serviço específico de uma reserva a partir da retaguarda do licensee.

Requer nível de usuário

Operação de nível LICENSEE (operador Cangooroo). Usuário de agência recebe erro.
URL
https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/cancelBookingByService

Parâmetros

  • Credentialobjectrequired

    Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

    CampoTipoObrigatórioDescrição
    UsernamestringSimUsuário da agência/parceiro na Cangooroo.
    PasswordstringSimSenha correspondente ao Username.
  • ServiceIdstringrequired

    Identificador do serviço a cancelar (retornado por GetBookingDetail).

  • ServiceTypestringrequired

    Tipo do serviço: Hotel | Insurance | Tour | Transfer | RentACar | Flight | Circuit | Package.

Try it outReferência

Bloco enviado em todas as chamadas dinâmicas. Identifica a agência/parceiro na Cangooroo.

Identificador do serviço a cancelar (retornado por GetBookingDetail).

Tipo do serviço: Hotel | Insurance | Tour | Transfer | RentACar | Flight | Circuit | Package.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/cancelBookingByService" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "licensee_user",
    "Password": "licensee_pass"
  },
  "ServiceId": "SVC-001",
  "ServiceType": "Hotel"
}'
Exemplo de response
{
  "BookingId": "CGR-2026-0001",
  "ServiceId": "SVC-001",
  "Status": "Cancelled"
}
POST

SetHotelConfirmationNumber

O que faz: Registra o HCN (Hotel Confirmation Number, número de confirmação do próprio hotel) em um serviço de hotel. Se já houver um HCN, o novo valor substitui o anterior.

Requer nível de usuário

Operação de nível LICENSEE (operador Cangooroo). Usuário de agência recebe erro.
URL
https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/SetHotelConfirmationNumber

Parâmetros

CampoTipoObrigatórioDescrição
CredentialobjectSimCredenciais do usuário operadora autorizado a utilizar a API de BackOffice.
BookingIdnumberSimIdentificador da reserva à qual o serviço de hotel pertence.
ServiceIdnumberSimIdentificador do serviço de hotel da reserva.
HotelConfirmationNumberstringSimNúmero de confirmação emitido pelo próprio hotel (HCN). Substitui o valor existente.
OperatorRemarksstringNãoObservação interna da operadora, acrescentada ao registrar o HCN.
AgencyRemarksstringNãoObservação visível para a agência, acrescentada ao registrar o HCN.

Credential

CampoTipoObrigatórioDescrição
UsernamestringSimUsuário da agência/parceiro na Cangooroo.
PasswordstringSimSenha correspondente ao Username.
Try it outReferência

Credenciais do usuário operadora autorizado a utilizar a API de BackOffice.

Identificador da reserva à qual o serviço de hotel pertence.

Identificador do serviço de hotel da reserva.

Número de confirmação emitido pelo próprio hotel (HCN). Substitui o valor existente.

Observação interna da operadora, acrescentada ao registrar o HCN.

Observação visível para a agência, acrescentada ao registrar o HCN.

Edite os parâmetros — o exemplo de código é atualizado ao vivo. Nenhuma chamada real é enviada.

Exemplo de request
curl -X POST "https://ws-cliente.cangooroo.net/API/REST/CangoorooBackOffice.svc/SetHotelConfirmationNumber" \
  -H "Content-Type: application/json" \
  -d '{
  "Credential": {
    "Username": "string",
    "Password": "string"
  },
  "BookingId": 0,
  "ServiceId": 0,
  "HotelConfirmationNumber": "string",
  "OperatorRemarks": "string",
  "AgencyRemarks": "string"
}'
Campos da resposta
CampoTipoDescrição
TotalTimenumberTempo total informado pela operação.
TokenstringToken retornado pela operação.
TimeSpanstringIntervalo de tempo informado pela operação.
ErrorobjectDetalhes de erro e diagnóstico, quando houver.
MessagesarrayMensagens da operação, incluindo avisos sobre falhas de notificação.
SInfostringInformação complementar retornada pela operação.
BookingIdnumberIdentificador da reserva.
ServiceIdnumberIdentificador do serviço de hotel.
OldHotelConfirmationNumberstringHCN anterior ao registro.
NewHotelConfirmationNumberstringHCN após o registro.

Error

CampoTipoDescrição
ServerstringServidor informado no diagnóstico.
MessagestringMensagem de erro.
StacktracestringDetalhes técnicos do erro.
TotalTimenumberTempo total informado no erro.
CodenumberCódigo de erro.
TokenstringToken informado no erro.
TimeSpanstringIntervalo de tempo informado no erro.
SupportInfostringInformações para suporte.

Messages[]

CampoTipoDescrição
valuestringValor da mensagem.
contentstringConteúdo da mensagem.
Exemplo de response
{
  "TotalTime": 0,
  "Token": "string",
  "TimeSpan": "string",
  "Error": {
    "Server": "string",
    "Message": "string",
    "Stacktrace": "string",
    "TotalTime": 0,
    "Code": 0,
    "Token": "string",
    "TimeSpan": "string",
    "SupportInfo": "string"
  },
  "Messages": [
    {
      "value": "string",
      "content": "string"
    }
  ],
  "SInfo": "string",
  "BookingId": 0,
  "ServiceId": 0,
  "OldHotelConfirmationNumber": "string",
  "NewHotelConfirmationNumber": "string"
}

Cache local

Downloads estáticos

Arquivos ZIP com o catálogo estático. Baixe, extraia e importe em seu banco local — atualize semanalmente.