API Levve Pay · v1

Documentação da API

Integre sua agência à Levve Pay: busque voos e hotéis em tempo real com poucas chamadas.

URL basehttps://api.levvepay.com.br

Visão geral

A API é organizada em torno de dois recursos: busca de voos e busca de hotéis. Todas as requisições e respostas usam JSON.

Os endpoints de busca são autenticados e gravam o histórico de buscas na conta da sua agência.

Autenticação

A API usa Bearer token (JWT). Autentique uma vez com as credenciais da sua agência e reutilize o token nas chamadas seguintes, até ele expirar.

POST/auth/loginPúblico
Requisição
curl -X POST https://api.levvepay.com.br/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "contato@suaagencia.com.br",
    "password": "sua-senha"
  }'
200 OK
{
  "access_token": "eyJhbGciOiJIUzI1NiIs...",
  "token_type": "bearer"
}

Envie o token no header em toda chamada autenticada:

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Buscar voos

Retorna tarifas de voos disponíveis pra uma rota e data, ordenadas por preço.

POST/flights/searchRequer autenticação
Requisição
curl -X POST https://api.levvepay.com.br/flights/search \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "origin": "GYN",
    "destination": "VCP",
    "departure_date": "2026-08-20",
    "return_date": "2026-08-27",
    "adults": 1,
    "children": 0,
    "cabin_class": "economy"
  }'
200 OK
{
  "success": true,
  "source": "levve",
  "search_id": 4821,
  "results": [
    {
      "id": 1,
      "airline": "LATAM",
      "origin": "GYN",
      "destination": "VCP",
      "final_price": 739.90,
      "currency": "BRL",
      "departure_time": "06:10",
      "arrival_time": "08:45",
      "duration": "2h35",
      "stops": 0
    }
  ]
}

cabin_class aceita economy, premium_economy, business ou first.

Buscar hotéis

Retorna hotéis disponíveis num destino, com preço, comodidades e avaliações.

POST/hotels/searchRequer autenticação
Requisição
curl -X POST https://api.levvepay.com.br/hotels/search \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "destination_query": "Rio de Janeiro",
    "check_in_date": "2026-08-10",
    "check_out_date": "2026-08-12",
    "adults": 2,
    "children": 0
  }'
200 OK
{
  "results": [
    {
      "name": "Hotel Hilton Copacabana",
      "overall_rating": 4.7,
      "reviews": 13295,
      "rate_per_night": 1257.50,
      "final_rate": 1332.50,
      "currency": "BRL"
    }
  ],
  "notice": "Valores estimados e sujeitos à disponibilidade."
}

Erros

Toda falha retorna o código HTTP correspondente e uma mensagem legível em detail:

401 Unauthorized
{
  "detail": "Token inválido ou expirado"
}
CódigoSignificado
400Requisição inválida — dado obrigatório ausente ou incorreto
401Token ausente, inválido ou expirado
404Recurso não encontrado
502Falha temporária ao consultar o fornecedor (companhia aérea ou hotel)