Moblix
Referência da API

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/bookings

Retorna a lista de reservas da sua equipe.

Query Parameters

ParâmetroTipoDescrição
pagenumberNúmero da página (padrão: 1)
limitnumberItens por página (padrão: 20, máx: 100)
statusstringFiltrar por status
customer_idstringFiltrar por cliente (UUID)
typestringFiltrar por tipo: flight, hotel, experience, package
start_date_fromstringFiltrar reservas a partir desta data (YYYY-MM-DD)
start_date_tostringFiltrar 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/bookings

Cria uma nova reserva de voo, hotel ou experiência.

Parâmetros

CampoTipoObrigatórioDescrição
customer_idstring (UUID)SimID do cliente cadastrado na sua equipe
typestringSimTipo: flight, hotel, experience, package
titlestringSimTítulo descritivo da reserva (ex: "Voo GRU-GIG")
descriptionstringNãoDescrição adicional
start_datestringNãoData de início (YYYY-MM-DD)
end_datestringNãoData de término (YYYY-MM-DD)
total_amountnumberNãoValor total da reserva
currencystringNãoMoeda (padrão: BRL)
passengersarrayNãoLista de passageiros/hóspedes
notesstringNãoObservações internas
metadataobjectNãoDados adicionais em formato livre

Passageiros

CampoTipoObrigatórioDescrição
namestringSimNome completo do passageiro
document_typestringNãoTipo: cpf, passport, rg
document_numberstringNãoNúmero do documento
birth_datestringNãoData de nascimento (YYYY-MM-DD)
emailstringNãoE-mail do passageiro
phonestringNãoTelefone 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/:id

Retorna 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/:id

Atualiza campos de uma reserva existente. Envie apenas os campos que deseja alterar.

Parâmetros

CampoTipoDescrição
statusstringNovo status: pending, confirmed, cancelled, completed
titlestringTítulo da reserva
descriptionstringDescrição
start_datestringData de início (YYYY-MM-DD)
end_datestringData de término (YYYY-MM-DD)
total_amountnumberValor total
notesstringObservações
metadataobjectDados 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/:id

Cancela 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

StatusDescrição
pendingAguardando confirmação/pagamento
confirmedReserva confirmada
cancelledReserva cancelada
completedViagem realizada

Tipos de Reserva

TipoDescrição
flightReserva de voo
hotelReserva de hotel
experienceReserva de experiência
packagePacote (voo + hotel)

Campos Obrigatórios

Independente do tipo de reserva, os campos obrigatórios são sempre os mesmos:

CampoObrigatórioDescrição
customer_idSimUUID do cliente cadastrado
typeSimflight, hotel, experience ou package
titleSimTí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.

On this page