API Reference
search
API REST · v1.0

API Iterpec

Documentação completa da API REST para integração B2B de turismo. Permite buscar e reservar hotéis, aluguéis de carro, transfers e passeios, além de gerenciar reservas via backoffice.

🏨Hotel🚗RentACar🚌Transfer🎡Tour & Tickets
Fluxo em 3 passos
Search → GetBookingConditions → DoBooking para todos os produtos.
Token de sessão
Tokens retornados no Search são válidos por 30 minutos.
Suporte
helpdesk@iterpec.com para dúvidas operacionais.
FLUXO DE RESERVA
1
Dados Estáticos
AirportDetail
2
Autocomplete
DestinationId
3
Hotel Detail
Hotel Detail
4a
Search
Availability
4b
GetBookingConditions
Validate price
4c
DoBooking
Confirm
4d
Cancel
Trip / Service

Production-Ready Integration Checklist

O que separa uma POC de uma integração production-grade com a Iterpec. Use como gate antes de subir tráfego real.

🔐
Segurança & Compliance
  • Bearer MCP em secret manager (nunca em repo)
  • Credenciais Iterpec rotacionadas a cada 90 dias
  • PCI: tokenização do cartão pelo gateway (sem PAN/CVV em log/DB)
  • LGPD: mascarar documento e e-mail em logs
  • mTLS opcional disponível para tráfego B2B
🔄
Idempotência & Concorrência
  • Idempotency-Key (UUID v4) por DoBooking, persistida
  • Lock distribuído por (HotelId+RoomIds+CheckIn+userId)
  • Em timeout, reconciliar via GetBooking antes de retentar
  • Máquina de estado persistente (PENDING/CONFIRMED/FAILED)
⏱️
Resiliência & Retries
  • Backoff exponencial (250ms→500ms→1s→2s, máx 5)
  • Respeitar header Retry-After em 429
  • Circuit breaker por endpoint (abre após 3 falhas 5xx)
  • Timeout configurável (Search 15s, DoBooking 45s)
📊
Observabilidade
  • Log estruturado JSON por etapa (sem PII sensível)
  • Trace ID propagado em todos os passos do fluxo
  • Métricas: latência p50/p95/p99, taxa de OnRequest, conversão
  • Alerta: PENDING > 24h, taxa de FAILED > 1%, 5xx em sequência
Validação de Negócio
  • GetBookingConditions SEMPRE < 5min antes de DoBooking
  • Comparar TotalSellingPrice Search vs Conditions
  • Tratar bookingStatus=FAILED dentro de HTTP 200
  • Apresentar PropertyTaxes + MoreInformation integralmente
📅
Datas & Localização
  • Todas as datas em ISO-8601 UTC no payload
  • Conversão para fuso local APENAS na apresentação
  • Idade exata para cada criança (não estimar)
  • Nacionalidade e Residência em ISO-3166-1 alpha-2
Uptime SLA
99.9%
~43min/mês
Latência Search
< 2.5s p95
Multi-supplier
Token TTL
30 min
Rotativo por etapa
Rate limit
120 req/min
Por credencial
Modelo de maturidade — onde sua integração está?
L1 — POC

Search + DoBooking happy path. Sem retries, sem logs.

L2 — Beta

GetBookingConditions, tratamento de erros, logs básicos.

L3 — Production

Idempotência, retries, observabilidade, polling OnRequest.

L4 — Enterprise

Circuit breaker, multi-region, SLO alerts, reconciliação diária.

Datas, UTC e Boas Práticas

Todas as datas devem ser enviadas como string no formato ISO 8601. Nunca inclua informações de fuso horário nas datas, a menos que a documentação do campo específico indique o contrário.

CampoFormatoExemploObservação
Datas (CheckinDate, CheckoutDate, ServiceDate)YYYY-MM-DD2024-12-20Sempre no fuso horário local do destino.
Horários (Time, CheckInHour, CheckOutHour)HH:MM14:00Sempre em UTC. Converta para o fuso local ao exibir ao usuário.
Timestamps de resposta (TimeSpan)YYYY-MM-DD HH:MM:SS2024-12-20 14:30:58Sempre em UTC.
Datas em políticas de cancelamento (StartDate, EndDate)YYYY-MM-DD2024-12-15Representam o intervalo em que a penalidade se aplica (inclusive).
⚠️

CheckInHour e CheckOutHour são sempre em UTC. Converta para o fuso local do usuário antes de exibir.

ReToken e Revalidação de Disponibilidade

O **Token** do Search expira para uso em DoBooking, mas a **chave de ReToken** permanece válida por **25 horas**, permitindo revalidar a mesma busca sem refazer todo o Search. Objetivo do ReToken: **manter o mesmo Search original** (mesmos hotéis, mesmos quartos, mesmas datas), apenas confirmando se disponibilidade e preço se mantêm. Pode haver alterações — sempre tratar os três estados de retorno.

ReToken — Revalidação de Disponibilidade
Search
Gera Token + chave de ReToken (válida 25h)
Usuário volta?
Se dentro de 25h, use ReToken para manter a mesma busca
Não expirado
GetBookingConditions normal
Expirado (>25h)
Refaça o Search completo
RevalidateBookingConditions
SameRoomsFound / RoomsFoundWithChanges / RoomsNotFound
SameRoomsFound
Mesmo quarto encontrado

Disponibilidade e preço idênticos ao Search original. Prossiga normalmente para o DoBooking com o novo Token retornado.

RoomsFoundWithChanges
Quarto encontrado com alterações

O quarto ainda está disponível, mas houve mudança de preço ou de condições. Exiba as novas condições ao usuário antes de confirmar.

RoomsNotFound
Quarto não encontrado

O quarto não está mais disponível. Retorne ao Search para buscar novas opções. Nenhuma penalidade é aplicada.

Autenticação e Autorização

A API utiliza uma combinação de credenciais fixas (Username/Password) e tokens de sessão dinâmicos para autenticar e autorizar cada requisição.

1{
2 "Credential": {
3 "Username": "seu_usuario",
4 "Password": "sua_senha"
5 }
6}

Erros & Configurações

A API retorna códigos HTTP padrão. Todas as respostas são em JSON com compressão GZip disponível.

CódigoNomeDescrição
200OKA API retorna códigos HTTP padrão. Todas as respostas são em JSON com compressão GZip disponível.
400Bad RequestInvalid body — check required fields
401UnauthorizedInvalid credentials
404Not FoundResource not found
500Internal Server ErrorInternal error — contact support
Como Solicitar Suporte
Seg–Sex, 09:00–18:00 (GMT-3)
WhatsApp (fora do horário): +55 11 9 9501-4348
⚠️ Os contatos de voz/WhatsApp são exclusivos para emergências: queda de sistema ou erros no fluxo de reserva. Questões de integração são tratadas apenas por e-mail.

Status de Reserva

Cada reserva possui um status que reflete seu estado atual no sistema Cangooroo.

CONFIRMADO

Reserva confirmada, encaminhada ao hotel e com garantia de pagamento ao fornecedor.

CANCELADO

Reserva cancelada. Cobranças de penalidade continuam se aplicáveis.

REJEITADO

Falta de disponibilidade, mudança de tarifa, timeout do fornecedor ou nomes com caracteres especiais. Refaça a reserva sem risco de penalidade.

PROBLEMA TÉCNICO

Timeout no recebimento do número de confirmação. Em 70% dos casos a reserva está confirmada. Não crie nova reserva — consulte comercial@iterpec.com.

SOLICITAÇÃO DE RESERVA

Ocorre quando o cadastro do cliente está bloqueado por falta de crédito disponível.

AGUARDANDO PAGAMENTO

Conteúdo pré-pago com tarifa em penalidade. O sistema aguarda pagamento via cartão.

PROBLEMA NO CANCELAMENTO

Alguma conexão não comunicou o cancelamento ao fornecedor. Envie e-mail para comercial@iterpec.com.

EM PROGRESSO

Status de transição. Use GetBookingDetail para recuperar o status real.

1

Dados Estáticos

Dados de destinos, aeroportos e conteúdo base que raramente mudam. Recomendado atualizar a cada 30 dias e armazenar em cache local.

GET🌐Geral

AirportDetail

GEThttp://commons.t4w.com.br/new/api/v1/mapping/airport/{airportCode}/token/{token}
Busca dados detalhados de um aeroporto pelo código IATA. Útil para exibir informações de origem/destino em buscas de transfer e pacotes.

URL Parameters

NomeTipoReq.Descrição
airportCodestringreqCódigo IATA do aeroporto
ex: GRU
tokenstringreqToken de acesso
ex: aac7faba-ca30-4071-a18a-41cda1424bdc
managerIdintegerreqID do manager
ex: 270
1{}
2

Autocomplete

Sugestões em tempo real de destinos, hotéis e pontos de interesse. Ideal para campos de busca com digitação progressiva.

3

Enriquecer dados estáticos com Hotel Detail

Enriquece os dados de um hotel com fotos, geolocalização, amenities e informações de quartos. Use o HotelId retornado pelo Autocomplete ou pelo Search.

GET🏨Hotel

HotelDetail

GEThttp://commons.t4w.com.br/new/api/v1/mapping/hotel/{hotelId}/token/{token}
Busca fotos, dados completos, geolocalização, fotos de quarto (se disponível) e amenities do hotel e dos quartos. Este endpoint é chamado **após** o Autocomplete ou o Search para enriquecer a exibição do hotel ao usuário antes da reserva.

URL Parameters

NomeTipoReq.Descrição
hotelIdintegerreqID do hotel (retornado pelo Autocomplete ou Search)
ex: 160459
tokenstringreqToken de acesso
ex: aac7faba-ca30-4071-a18a-41cda1424bdc
managerIdintegerreqID do manager
ex: 270

Response Fields

NomeTipoReq.Descrição
idintegeroptID do hotel
destinationobjectoptDados do destino com nome multilíngue
namestringoptNome do hotel
addressstringoptEndereço completo
latitudenumberoptLatitude geográfica
longitudenumberoptLongitude geográfica
categorystringoptCategoria em estrelas (1–5)
amenitiesarray[string]optLista de comodidades do hotel
photosarray[string]optURLs das fotos do hotel
roomsarray[object]optDados dos tipos de quarto com fotos e amenities
1{}

Payment

Pagamento de reservas via cartão de crédito. Utilizado quando `IsPrePayment: true` no Search.

POST💳Payment

payBooking

POSThttps://ws.iterpec.com/API/REST/Payment.svc/payBooking
Realiza o pagamento de uma reserva via cartão de crédito. Utilizado quando `IsPrePayment` é `true` no retorno do Search.

Request Body

NomeTipoReq.Descrição
BookingIdstringreqID da reserva
CredentialobjectreqCredenciais de acesso
PaymentConditionIdstringreqID da condição de pagamento
PaymentRequestCC1objectreqDados do cartão de crédito
1{
2 "BookingId": "1864605",
3 "Credential": {
4 "Password": "{{minhasenha}}",
5 "Username": "{{meuusuario}}"
6 },
7 "PaymentConditionId": "CC-001",
8 "PaymentRequestCC1": {
9 "ContractingParty": {
10 "Address": "Rua das Flores, 100",
11 "CPF": "123.456.789-00",
12 "CityName": "São Paulo",
13 "CountryCode": "BR",
14 "Email": "titular@email.com",
15 "PersonName": "João Silva",
16 "PhoneDDD": "11",
17 "PhoneNumber": "999999999"
18 }
19 }
20}

ClientBackOffice

Gestão e consulta de reservas. Use GetBookingList para monitorar alterações e GetBookingDetail para atualizar dados.

POST📋BackOffice

GetBookingDetail

POSThttps://ws.iterpec.com/API/REST/ClientBackOffice.svc/GetBookingDetail
💡 Chamar este método atualiza o status da reserva. Use polling a cada 5–30 min para resolver estados ambíguos (TechnicalProblem, PendingCancellation).
Obtém dados detalhados de uma reserva e **atualiza seu status** com o estado mais recente do fornecedor. É o método central para resolver reservas em estados ambíguos. Além de retornar dados para faturamento, voucher e número de confirmação do hotel (HCN), cada chamada sincroniza o status da reserva com o fornecedor. Isso torna o método essencial para monitoramento automático via polling.

Request Body

NomeTipoReq.Descrição
CredentialobjectreqCredenciais de acesso
BookingIdstringreqID da reserva (ReservationId)
ex: "1864605"

Response Fields

NomeTipoReq.Descrição
BookingobjectoptDados completos da reserva
⚠️
🔄 Chamar GetBookingDetail ATUALIZA o status da reserva
Cada chamada a este método sincroniza o status da reserva com o fornecedor. Não é apenas uma consulta — é uma atualização ativa. Use isso a seu favor: ao chamar periodicamente (polling), você obtém o status final de reservas que ficaram em estados ambíguos após o DoBooking.
📊 Estados Ambíguos que Requerem Polling
Após o DoBooking, uma reserva pode retornar em um dos seguintes estados que exigem acompanhamento ativo:
StatusSignificadoAnalogiaAção Recomendada
TechnicalProblemErro técnico durante a criação. Não se sabe se a reserva foi criada no fornecedor.HTTP 500 de uma APIPolling a cada 5 min por até 30 min
PendingReserva criada, aguardando confirmação do fornecedor (ex: OnRequest).HTTP 202 AcceptedPolling a cada 10 min por até 30 min
PendingCancellationSolicitação de cancelamento enviada, aguardando confirmação do fornecedor.HTTP 202 de um DELETEPolling a cada 5 min por até 30 min
RejectedReserva rejeitada pelo fornecedor. Status final — sempre resultará em cancelamento.HTTP 422Não requer polling — status final
Este PRD define como implementar o monitoramento automático de reservas em estados ambíguos usando GetBookingDetail como mecanismo de polling.
1{
2 "Credential": {
3 "Username": "{{meuusuario}}",
4 "Password": "{{minhasenha}}"
5 },
6 "BookingId": "1864605"
7}
POST📋BackOffice

GetBookingList

POSThttps://ws.iterpec.com/API/REST/ClientBackOffice.svc/GetBookingList
Recupera lista de reservas que sofreram alteração de status, valor, período ou dados dos passageiros.

Request Body

NomeTipoReq.Descrição
CredentialobjectreqCredenciais de acesso
SearchBookingCriteriaobjectoptFiltros de busca (todos opcionais)
1{
2 "Credential": {
3 "Password": "{{minhasenha}}",
4 "Username": "{{meuusuario}}"
5 },
6 "SearchBookingCriteria": {
7 "BookingNumber": [],
8 "CheckinDateFrom": "2024-01-01",
9 "CheckinDateTo": "2024-01-31"
10 }
11}

Conecte sua IA à Iterpec em 2 minutos

Plugue nosso servidor MCP em 20+ clientes de IA (Claude, Cursor, Windsurf, Cline, Zed, ChatGPT, Lovable, n8n…) e seu agente passa a consultar endpoints, montar payloads, ler o changelog e seguir as regras de reserva sozinho. Sem ticket, sem reunião de onboarding. Copie a configuração, cole no seu cliente, comece a integrar.

!
Pré-requisito — virar cliente Iterpec

Para usar MCP, Skills e Vibecoding em produção (chamar Search, GetBookingConditions, DoBooking de verdade) você precisa de 2 credenciais:

  • Bearer Token do MCP — autentica seu agente de IA contra https://iterpec.com/api/mcp.
  • Username + Password da API Iterpec — enviados no body de cada chamada produtiva (Credential.Username / Credential.Password). Sem eles, os endpoints de Search/Booking respondem 401.

Ambas são liberadas só após preencher o formulário comercial e assinar contrato com a Iterpec. Antes disso, o MCP responde apenas documentação (schema, exemplos, changelog) — útil para prototipar, mas sem acesso ao inventário real.

Endpoint
POST https://iterpec.com/api/mcp
Transport: Streamable HTTP (MCP 2025-06-18). Apenas POST é aceito.
Autenticação (2 camadas)
Authorization: Bearer <imcp.xxx.yyy>
1) Bearer no header — autentica o MCP.
2) Username + Password no body — autenticam a API de produção.
Solicite os dois a comercial@iterpec.com após assinar contrato. Nunca comite no código — use variável de ambiente / secret manager.

Tools disponíveis

NomeDescriçãoParâmetros
list_endpointsLista grupos e endpoints da API (com filtro opcional por produto ou termo).product?, search?
get_endpointDetalhes completos de um endpoint: parâmetros, exemplo curl e resposta.endpointId
get_changelogNotas de release da API Cangooroo, ordem cronológica decrescente.service?, since?, limit?
get_referenceFluxo de reserva, status, ReToken e convenções de data/UTC.topic ("booking_statuses" | "retoken" | "date_conventions" | "all")

Teste rápido (tools/list)

Faça um handshake JSON-RPC para listar as tools disponíveis. Substitua SEU_TOKEN_AQUI.

curl --location 'https://iterpec.com/api/mcp' \
  --header 'Authorization: Bearer SEU_SHARED_SECRET_AQUI' \
  --header 'Accept: application/json, text/event-stream' \
  --header 'Content-Type: application/json' \
  --data '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list"
  }'

Configuração por cliente

20 clientes MCP suportados. Clique no logo para ver a configuração específica.

Claude DesktopConfiguração para Claude Desktop · App nativo Anthropic
{
  "mcpServers": {
    "iterpec-api": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://iterpec.com/api/mcp",
        "--header", "Authorization:${ITERPEC_MCP_TOKEN}"
      ],
      "env": { "ITERPEC_MCP_TOKEN": "Bearer SEU_TOKEN_AQUI" }
    }
  }
}
Notas: o servidor exige o header Accept: application/json, text/event-stream em todas as requisições POST (padrão MCP Streamable HTTP). Apenas o método POST é aceito; GET/DELETE retornam 405. O shared secret é validado por comparação direta — rotacione via Lovable Cloud quando necessário.

© 2026 Iterpec · comercial@iterpec.com