Referência da API
Orçamentos
Criar propostas e orçamentos comerciais para viagens
Orçamentos (Quotes)
Crie orçamentos e propostas comerciais personalizadas para seus clientes.
Criar Orçamento
POST /api/v1/quotesCorpo da Requisição
{
"customer_id": "cust_abc123",
"title": "Pacote Rio de Janeiro - Março 2026",
"valid_until": "2026-02-15",
"items": [
{
"type": "flight",
"description": "Voo GRU → GIG (ida e volta) - GOL",
"details": "15/03 08:00 → 09:05 | 20/03 18:00 → 19:10",
"quantity": 2,
"unit_price": 625.00
},
{
"type": "hotel",
"description": "Copacabana Palace - Quarto Superior Vista Mar",
"details": "5 diárias (15/03 a 20/03) - café da manhã incluso",
"quantity": 1,
"unit_price": 4500.00
},
{
"type": "experience",
"description": "Passeio de Helicóptero pelo Rio",
"details": "16/03 às 10:00 - 2 pessoas",
"quantity": 2,
"unit_price": 890.00
},
{
"type": "service",
"description": "Transfer aeroporto/hotel",
"details": "Ida e volta - veículo executivo",
"quantity": 2,
"unit_price": 150.00
}
],
"discount_type": "percentage",
"discount_value": 5,
"notes": "Preços sujeitos a disponibilidade no momento da confirmação.",
"terms": "Pagamento: 50% na confirmação, 50% até 7 dias antes da viagem."
}Campos
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
customer_id | string | Sim | ID do cliente |
title | string | Sim | Título do orçamento |
valid_until | string | Sim | Data de validade (YYYY-MM-DD) |
items | array | Sim | Lista de itens |
items[].type | string | Sim | Tipo: flight, hotel, experience, service, other |
items[].description | string | Sim | Descrição do item |
items[].details | string | Não | Detalhes adicionais |
items[].quantity | number | Sim | Quantidade |
items[].unit_price | number | Sim | Preço unitário |
discount_type | string | Não | percentage ou fixed |
discount_value | number | Não | Valor do desconto |
notes | string | Não | Observações para o cliente |
terms | string | Não | Termos e condições |
Exemplo de Requisição
curl -X POST https://app.moblix.co/api/v1/quotes \
-H "Authorization: Bearer mbx_live_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"customer_id": "cust_abc123",
"title": "Pacote Rio de Janeiro - Março 2026",
"valid_until": "2026-02-15",
"items": [
{
"type": "flight",
"description": "Voo GRU → GIG (ida e volta)",
"quantity": 2,
"unit_price": 625.00
}
]
}'const response = await fetch('https://app.moblix.co/api/v1/quotes', {
method: 'POST',
headers: {
'Authorization': 'Bearer mbx_live_sua_chave_aqui',
'Content-Type': 'application/json'
},
body: JSON.stringify({
customer_id: 'cust_abc123',
title: 'Pacote Rio de Janeiro - Março 2026',
valid_until: '2026-02-15',
items: [
{
type: 'flight',
description: 'Voo GRU → GIG (ida e volta)',
quantity: 2,
unit_price: 625.00
}
]
})
});
const data = await response.json();
console.log(data.quote);import requests
response = requests.post(
'https://app.moblix.co/api/v1/quotes',
headers={
'Authorization': 'Bearer mbx_live_sua_chave_aqui',
'Content-Type': 'application/json'
},
json={
'customer_id': 'cust_abc123',
'title': 'Pacote Rio de Janeiro - Março 2026',
'valid_until': '2026-02-15',
'items': [
{
'type': 'flight',
'description': 'Voo GRU → GIG (ida e volta)',
'quantity': 2,
'unit_price': 625.00
}
]
}
)
data = response.json()
print(data['quote'])Resposta
{
"data": {
"quote": {
"id": "quote_xyz789",
"number": "ORC-2026-00015",
"customer": {
"id": "cust_abc123",
"name": "João da Silva"
},
"title": "Pacote Rio de Janeiro - Março 2026",
"status": "draft",
"valid_until": "2026-02-15",
"items": [...],
"subtotal": 8030.00,
"discount": {
"type": "percentage",
"value": 5,
"amount": 401.50
},
"total": 7628.50,
"currency": "BRL",
"share_url": "https://app.moblix.co/q/abc123xyz",
"created_at": "2026-01-26T10:30:00Z"
}
},
"timestamp": "2026-01-26T10:30:00Z"
}Listar Orçamentos
GET /api/v1/quotesQuery Parameters
| Parâmetro | Tipo | Descrição |
|---|---|---|
page | number | Número da página (padrão: 1) |
limit | number | Itens por página (padrão: 50, máx: 100) |
status | string | Filtrar por status |
customer_id | string | Filtrar por cliente |
Exemplo de Requisição
curl -X GET "https://app.moblix.co/api/v1/quotes?status=sent&limit=20" \
-H "Authorization: Bearer mbx_live_sua_chave_aqui"Resposta
{
"data": {
"quotes": [
{
"id": "quote_xyz789",
"number": "ORC-2026-00015",
"customer": {
"id": "cust_abc123",
"name": "João da Silva"
},
"title": "Pacote Rio de Janeiro - Março 2026",
"status": "sent",
"total": 7628.50,
"valid_until": "2026-02-15",
"created_at": "2026-01-26T10:30:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 45,
"totalPages": 3
}
},
"timestamp": "2026-01-26T10:30:00Z"
}Buscar Orçamento por ID
GET /api/v1/quotes/:idRetorna todos os detalhes do orçamento, incluindo itens e histórico.
Atualizar Orçamento
PATCH /api/v1/quotes/:idAtualizar Status
{
"status": "sent"
}Atualizar Itens
{
"items": [
{
"type": "flight",
"description": "Voo GRU → GIG (ida e volta) - LATAM",
"quantity": 2,
"unit_price": 680.00
}
]
}Deletar Orçamento
DELETE /api/v1/quotes/:idApenas orçamentos com status draft podem ser deletados. Orçamentos enviados ou aceitos devem ser cancelados.
Status de Orçamentos
| Status | Descrição |
|---|---|
draft | Rascunho - ainda não enviado ao cliente |
sent | Enviado - aguardando resposta do cliente |
accepted | Aceito pelo cliente |
declined | Recusado pelo cliente |
expired | Expirado - passou da data de validade |
cancelled | Cancelado |
Tipos de Itens
| Tipo | Descrição |
|---|---|
flight | Passagens aéreas |
hotel | Hospedagem |
experience | Passeios e atividades |
transfer | Traslados |
service | Serviços adicionais |
insurance | Seguro viagem |
other | Outros |
Compartilhamento
Cada orçamento possui uma URL pública (share_url) que pode ser enviada ao cliente para visualização. A URL não requer autenticação.
https://app.moblix.co/q/abc123xyzO cliente pode visualizar o orçamento, aceitar ou recusar diretamente pela página.
Notas Importantes
Orçamentos aceitos podem ser convertidos em reservas. Use o campo booking_id para vincular após a conversão.
Os preços no orçamento são informativos. A disponibilidade e preços finais devem ser confirmados no momento da reserva.