Reservas
Criar e gerenciar reservas de viagens
Reservas (Bookings)
Crie e gerencie reservas de voos, hotéis e experiências.
Listar Reservas
GET /api/v1/bookingsRetorna a lista de reservas da sua equipe.
Query Parameters
| Parâmetro | Tipo | Descrição |
|---|---|---|
page | number | Número da página (padrão: 1) |
limit | number | Itens por página (padrão: 20, máx: 100) |
status | string | Filtrar por status |
customer_id | string | Filtrar por cliente (UUID) |
type | string | Filtrar por tipo: flight, hotel, experience, package |
start_date_from | string | Filtrar reservas a partir desta data (YYYY-MM-DD) |
start_date_to | string | Filtrar reservas até esta data (YYYY-MM-DD) |
Exemplo de Requisição
curl -X GET "https://app.moblix.co/api/v1/bookings?status=confirmed&limit=20" \
-H "Authorization: Bearer mbx_live_sua_chave_aqui"const response = await fetch(
'https://app.moblix.co/api/v1/bookings?status=confirmed&limit=20',
{
headers: {
'Authorization': 'Bearer mbx_live_sua_chave_aqui'
}
}
);
const data = await response.json();
console.log(data.bookings);import requests
response = requests.get(
'https://app.moblix.co/api/v1/bookings',
headers={
'Authorization': 'Bearer mbx_live_sua_chave_aqui'
},
params={
'status': 'confirmed',
'limit': 20
}
)
data = response.json()
print(data['bookings'])Resposta
{
"data": {
"bookings": [
{
"id": "uuid-da-reserva",
"booking_number": "BK-1234567890",
"type": "flight",
"status": "confirmed",
"title": "Voo GRU-GIG",
"description": "Ida e volta São Paulo - Rio de Janeiro",
"start_date": "2026-03-15",
"end_date": "2026-03-20",
"total_amount": 2500.00,
"currency": "BRL",
"customer": {
"id": "uuid-do-cliente",
"name": "João da Silva",
"email": "joao@example.com",
"phone": "+5511999999999"
},
"created_at": "2026-01-26T10:30:00Z",
"updated_at": "2026-01-26T10:35:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"totalPages": 8,
"hasNext": true,
"hasPrev": false
}
},
"timestamp": "2026-01-26T10:30:00Z"
}Criar Reserva
POST /api/v1/bookingsCria uma nova reserva de voo, hotel ou experiência.
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
customer_id | string (UUID) | Sim | ID do cliente cadastrado na sua equipe |
type | string | Sim | Tipo: flight, hotel, experience, package |
title | string | Sim | Título descritivo da reserva (ex: "Voo GRU-GIG") |
description | string | Não | Descrição adicional |
start_date | string | Não | Data de início (YYYY-MM-DD) |
end_date | string | Não | Data de término (YYYY-MM-DD) |
total_amount | number | Não | Valor total da reserva |
currency | string | Não | Moeda (padrão: BRL) |
passengers | array | Não | Lista de passageiros/hóspedes |
notes | string | Não | Observações internas |
metadata | object | Não | Dados adicionais em formato livre |
Passageiros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome completo do passageiro |
document_type | string | Não | Tipo: cpf, passport, rg |
document_number | string | Não | Número do documento |
birth_date | string | Não | Data de nascimento (YYYY-MM-DD) |
email | string | Não | E-mail do passageiro |
phone | string | Não | Telefone do passageiro |
Exemplo: Reserva de Voo
{
"type": "flight",
"customer_id": "uuid-do-cliente",
"title": "Voo GRU-GIG ida e volta",
"start_date": "2026-03-15",
"end_date": "2026-03-20",
"total_amount": 1250.00,
"passengers": [
{
"name": "João Silva",
"document_type": "cpf",
"document_number": "12345678900",
"birth_date": "1985-03-15",
"email": "joao@example.com",
"phone": "+5511999999999"
},
{
"name": "Maria Silva",
"document_type": "cpf",
"document_number": "98765432100"
}
],
"notes": "Cliente VIP - preferência por assento janela"
}Exemplo: Reserva de Hotel
{
"type": "hotel",
"customer_id": "uuid-do-cliente",
"title": "Hotel Copacabana Palace - 5 noites",
"start_date": "2026-03-15",
"end_date": "2026-03-20",
"total_amount": 4500.00,
"passengers": [
{
"name": "João Silva",
"document_type": "cpf",
"document_number": "12345678900"
}
],
"metadata": {
"hotel_name": "Copacabana Palace",
"room_type": "Deluxe"
}
}Exemplo: Reserva de Experiência
{
"type": "experience",
"customer_id": "uuid-do-cliente",
"title": "Passeio de barco em Angra dos Reis",
"start_date": "2026-03-16",
"total_amount": 350.00,
"passengers": [
{
"name": "João Silva"
},
{
"name": "Maria Silva"
}
]
}Exemplo de Requisição
curl -X POST https://app.moblix.co/api/v1/bookings \
-H "Authorization: Bearer mbx_live_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"type": "flight",
"customer_id": "uuid-do-cliente",
"title": "Voo GRU-GIG ida e volta",
"start_date": "2026-03-15",
"end_date": "2026-03-20",
"total_amount": 1250.00,
"passengers": [
{
"name": "João Silva",
"document_type": "cpf",
"document_number": "12345678900",
"birth_date": "1985-03-15",
"email": "joao@example.com",
"phone": "+5511999999999"
}
]
}'const response = await fetch('https://app.moblix.co/api/v1/bookings', {
method: 'POST',
headers: {
'Authorization': 'Bearer mbx_live_sua_chave_aqui',
'Content-Type': 'application/json'
},
body: JSON.stringify({
type: 'flight',
customer_id: 'uuid-do-cliente',
title: 'Voo GRU-GIG ida e volta',
start_date: '2026-03-15',
end_date: '2026-03-20',
total_amount: 1250.00,
passengers: [
{
name: 'João Silva',
document_type: 'cpf',
document_number: '12345678900',
birth_date: '1985-03-15',
email: 'joao@example.com',
phone: '+5511999999999'
}
]
})
});
const data = await response.json();
console.log(data);import requests
response = requests.post(
'https://app.moblix.co/api/v1/bookings',
headers={
'Authorization': 'Bearer mbx_live_sua_chave_aqui',
'Content-Type': 'application/json'
},
json={
'type': 'flight',
'customer_id': 'uuid-do-cliente',
'title': 'Voo GRU-GIG ida e volta',
'start_date': '2026-03-15',
'end_date': '2026-03-20',
'total_amount': 1250.00,
'passengers': [
{
'name': 'João Silva',
'document_type': 'cpf',
'document_number': '12345678900',
'birth_date': '1985-03-15',
'email': 'joao@example.com',
'phone': '+5511999999999'
}
]
}
)
data = response.json()
print(data)Resposta de Sucesso (201 Created)
{
"data": {
"id": "uuid-da-reserva",
"booking_number": "BK-1234567890",
"type": "flight",
"status": "pending",
"title": "Voo GRU-GIG ida e volta",
"customer_id": "uuid-do-cliente",
"start_date": "2026-03-15",
"end_date": "2026-03-20",
"total_amount": 1250.00,
"currency": "BRL",
"created_at": "2026-01-26T10:30:00Z"
},
"timestamp": "2026-01-26T10:30:00Z"
}Buscar Reserva por ID
GET /api/v1/bookings/:idRetorna os detalhes completos de uma reserva específica.
Exemplo de Requisição
curl -X GET https://app.moblix.co/api/v1/bookings/booking_abc123 \
-H "Authorization: Bearer mbx_live_sua_chave_aqui"Resposta
{
"data": {
"id": "uuid-da-reserva",
"booking_number": "BK-1234567890",
"type": "flight",
"status": "confirmed",
"title": "Voo GRU-GIG ida e volta",
"description": "Ida e volta São Paulo - Rio de Janeiro",
"start_date": "2026-03-15",
"end_date": "2026-03-20",
"total_amount": 1250.00,
"currency": "BRL",
"customer": {
"id": "uuid-do-cliente",
"name": "João da Silva",
"email": "joao@example.com",
"phone": "+5511999999999",
"cpf": "123.456.789-00"
},
"passengers": [
{
"name": "João Silva",
"document_type": "cpf",
"document_number": "12345678900"
}
],
"items": [
{
"id": "uuid-do-item",
"type": "flight",
"name": "GRU → GIG",
"description": "GOL G3 1234",
"quantity": 1,
"unit_price": 625.00,
"total_price": 625.00,
"currency": "BRL",
"details": {}
}
],
"notes": "Cliente VIP",
"metadata": {},
"created_at": "2026-01-26T10:30:00Z",
"updated_at": "2026-01-26T10:35:00Z"
},
"timestamp": "2026-01-26T10:30:00Z"
}Atualizar Reserva
PATCH /api/v1/bookings/:idAtualiza campos de uma reserva existente. Envie apenas os campos que deseja alterar.
Parâmetros
| Campo | Tipo | Descrição |
|---|---|---|
status | string | Novo status: pending, confirmed, cancelled, completed |
title | string | Título da reserva |
description | string | Descrição |
start_date | string | Data de início (YYYY-MM-DD) |
end_date | string | Data de término (YYYY-MM-DD) |
total_amount | number | Valor total |
notes | string | Observações |
metadata | object | Dados adicionais |
Exemplo de Requisição
curl -X PATCH https://app.moblix.co/api/v1/bookings/uuid-da-reserva \
-H "Authorization: Bearer mbx_live_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"status": "confirmed",
"notes": "Confirmado pelo cliente via telefone"
}'Resposta
{
"data": {
"id": "uuid-da-reserva",
"booking_number": "BK-1234567890",
"type": "flight",
"status": "confirmed",
"title": "Voo GRU-GIG ida e volta",
"updated_at": "2026-01-26T11:00:00Z"
},
"timestamp": "2026-01-26T11:00:00Z"
}Cancelar Reserva
DELETE /api/v1/bookings/:idCancela uma reserva (soft delete — altera o status para cancelled). Apenas reservas com status pending ou confirmed podem ser canceladas.
Exemplo de Requisição
curl -X DELETE https://app.moblix.co/api/v1/bookings/uuid-da-reserva \
-H "Authorization: Bearer mbx_live_sua_chave_aqui"Resposta
{
"data": {
"id": "uuid-da-reserva",
"status": "cancelled",
"message": "Booking cancelled successfully"
},
"timestamp": "2026-01-26T11:00:00Z"
}Reservas com status completed ou cancelled não podem ser canceladas. Tentativas retornarão erro 400.
Status de Reservas
| Status | Descrição |
|---|---|
pending | Aguardando confirmação/pagamento |
confirmed | Reserva confirmada |
cancelled | Reserva cancelada |
completed | Viagem realizada |
Tipos de Reserva
| Tipo | Descrição |
|---|---|
flight | Reserva de voo |
hotel | Reserva de hotel |
experience | Reserva de experiência |
package | Pacote (voo + hotel) |
Campos Obrigatórios
Independente do tipo de reserva, os campos obrigatórios são sempre os mesmos:
| Campo | Obrigatório | Descrição |
|---|---|---|
customer_id | Sim | UUID do cliente cadastrado |
type | Sim | flight, hotel, experience ou package |
title | Sim | Título descritivo da reserva |
Todos os outros campos (start_date, end_date, total_amount, passengers, etc.) são opcionais mas recomendados para uma reserva completa.
Notas Importantes
O customer_id deve ser de um cliente cadastrado na sua equipe. Use a API de Clientes para cadastrar novos clientes.
Para reservas de voo, os IDs de flight_group_id são obtidos na resposta da busca de voos e têm validade limitada. Crie a reserva logo após a busca.
Reservas confirmadas junto aos fornecedores podem ter custos de cancelamento. Verifique a política antes de cancelar.