Documentação da API Bravonda

Referência completa dos endpoints REST, esquemas de dados, autenticação e parâmetros para integração com os serviços da plataforma.

Módulos Ativos 4
Total de Endpoints 29
Versão da API v1 (REST)

Login & Autenticação

Core / Segurança
/auth

Autenticação de usuários na API, controle de sessão via tokens JWT, refresh token e recuperação de senhas.

Entidade: User (Usuário)

Entidade de usuário que representa operadores, caixas, gerentes e administradores do sistema.

Campo Tipo Obrigatório Descrição & Detalhes Exemplo
id int Sim Identificador primário único do usuário no banco de dados 1
key string Sim Identificador UUID / chave pública única de 32 caracteres 8e9f2a4b1c3d4e5f6a7b8c9d0e1f2a3b
active bool Sim Status ativo/inativo do cadastro no sistema true
name string Sim Nome completo do usuário Operações Bravonda
email string Sim E-mail principal do usuário utilizado para login e notificações operacoes@bravonda.com.br
login string Não (Opcional) Documento fiscal (CPF) ou identificador alternativo de login 012.345.678-90
type int Sim Perfil de acesso do usuário no sistema
  • 1: Administrador (Admin)
  • 2: Gerente (Manager)
  • 3: Comercial
  • 4: Marketing
  • 5: Financeiro
  • 6: Caixa (Cashier)
  • 7: Almoxarifado (Stockroom)
  • 8: Supervisor
  • 9: Editor
1
location int|null Não (Opcional) ID da localização / parque vinculado ao usuário 4
createdAt DateTime Sim Data e hora de criação do registro (ISO 8601) 2026-01-10 14:30:00
updatedAt DateTime Sim Data e hora da última alteração do registro 2026-09-22 00:00:00

Endpoints Disponíveis

POST /auth Autenticar Usuário (Login)
Pública (Sem autenticação)

Valida as credenciais (e-mail ou CPF e senha) e retorna o token JWT de autorização e os dados do usuário.

Cabeçalhos (Headers)

Header Valor
Content-Type application/json

Esquema do Corpo da Requisição (Payload)

Campo Tipo Obrigatório Descrição
login string Sim E-mail ou CPF do usuário cadastrado
pwd string Sim Senha de acesso do usuário

Exemplo de Requisição (JSON Body)

{
    "login": "operacoes@bravonda.com.br",
    "pwd": "SenhaSegura@2026"
}

Respostas Esperadas

HTTP 200 — Autenticação bem-sucedida
{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlciI6Im9wZXJhY29lcyIsInR5cGUiOjF9...",
    "user": {
        "id": 1,
        "key": "8e9f2a4b1c3d4e5f6a7b8c9d0e1f2a3b",
        "name": "Operações Bravonda",
        "email": "operacoes@bravonda.com.br",
        "type": 1,
        "location": 4
    }
}
HTTP 401 — Credenciais inválidas
{
    "error": "Login ou senha inválidos."
}
PUT /auth Renovar Token de Acesso (Refresh Token)
Autenticado

Gera um novo token JWT com validade estendida utilizando o token de autenticação atual.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — Token renovado com sucesso
{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlciI6Im5vdm9fdG9rZW4ifQ..."
}
HTTP 401 — Token expirado ou inválido
{
    "error": "N\u00e3o autorizado."
}
POST /password/reset Solicitar Recuperação de Senha
Pública

Envia um e-mail com instruções e token temporário para redefinição de senha do usuário.

Cabeçalhos (Headers)

Header Valor
Content-Type application/json

Esquema do Corpo da Requisição (Payload)

Campo Tipo Obrigatório Descrição
email string Sim E-mail cadastrado na conta

Exemplo de Requisição (JSON Body)

{
    "email": "operacoes@bravonda.com.br"
}

Respostas Esperadas

HTTP 200 — E-mail de recuperação enviado
{
    "message": "E-mail com instruções de recuperação enviado com sucesso."
}
POST /password/change Definir Nova Senha
Pública

Define uma nova senha utilizando o token recebido no fluxo de recuperação de senha.

Cabeçalhos (Headers)

Header Valor
Content-Type application/json

Esquema do Corpo da Requisição (Payload)

Campo Tipo Obrigatório Descrição
token string Sim Token de recuperação de senha
pwd string Sim Nova senha desejada
pwdNew string Sim Confirmação da nova senha

Exemplo de Requisição (JSON Body)

{
    "token": "f7a8b9c0d1e2f3a4b5c6",
    "pwd": "NovaSenhaSegura@2026",
    "pwdNew": "NovaSenhaSegura@2026"
}

Respostas Esperadas

HTTP 200 — Senha alterada com sucesso
{
    "message": "Senha alterada com sucesso."
}

Cadastro de Caixas (PDV)

Venue / Operações
/venue/pos

Gerenciamento de pontos de venda, abertura e fechamento de caixas, sangrias e controle de impressão.

Entidade: PointOfSale (Caixa / Ponto de Venda)

Representa um terminal de ponto de venda (PDV) físico ou virtual configurado para emitir ingressos e reservas.

Campo Tipo Obrigatório Descrição & Detalhes Exemplo
id int Sim Identificador numérico único do caixa 1
key string Sim Identificador público UUID do caixa c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6
active bool Sim Indica se o caixa está ativo true
name string Sim Nome comercial e identificação do caixa Caixa 01 - Bilheteria Principal
location Location (int) Sim ID da localização do parque associado 4
type PointOfSaleType (enum) Sim Tipo operacional do caixa
  • 1: Checkout (Balcão / Bilheteria)
  • 2: Site (E-commerce)
  • 3: Kiosk (Totem de Autoatendimento)
  • 4: Commercial (Vendas Comerciais)
  • 5: SalesCenter (Central de Vendas)
1
status PointOfSaleStatus (enum) Sim Status operacional atual do caixa
  • 1: Available (Disponível para uso)
  • 2: Opened (Aberto / Em operação)
  • 3: Unavailable (Indisponível)
1
cashier User|null Não (Opcional) Operador atualmente logado no caixa null
printReceipt int Sim Número de vias de impressão do comprovante de venda 1
printKitchen int Sim Número de vias de impressão de comandas de alimentação 0
queueNumber PointOfSaleQueueNumber (enum) Sim Regra de geração de senhas para fila
  • 1: KitchenOnly (Apenas cozinha)
  • 2: Always (Sempre emitir)
  • 3: Never (Nunca emitir)
  • 4: Manually (Emitir manualmente)
1
printWebSocket string|null Não (Opcional) URL do WebSocket para serviço local de impressão wss://localhost.bravonda.com:8070/
printerVersion string|null Não (Opcional) Identificador da versão de hardware/driver de impressão v2.1
tickets SimpleArray|null Não (Opcional) Array com IDs de ingressos restritos a este caixa (null = todos) [1, 2, 5]
paymentMethods PointOfSalePaymentMethod[]|null Não (Opcional) Lista de formas de pagamento habilitadas para o caixa [{"paymentMethod": 1}, {"paymentMethod": 2}]
createdAt DateTime Sim Data de criação do registro 2026-01-15 10:00:00
updatedAt DateTime Sim Data da última alteração 2026-09-22 00:00:00

Endpoints Disponíveis

GET /venue/pos Listar Caixas (Pontos de Venda)
Caixa, Supervisor, Gerente, Administrador

Retorna a lista paginada de caixas cadastrados no parque com suporte a filtros e busca textual.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Parâmetros de Consulta (Query Params)

Parâmetro Tipo Descrição
page int Número da página (padrão 1)
limit int Itens por página (padrão 15)
search string Termo de busca pelo nome do caixa
type int Filtrar por tipo de caixa (1: Checkout, 2: Site, 3: Kiosk, etc.)
status int Filtrar por status (1: Disponível, 2: Aberto, 3: Indisponível)
location int Filtrar por localização

Respostas Esperadas

HTTP 200 — Lista paginada de caixas
{
    "page": 1,
    "limit": 15,
    "total": 2,
    "items": [
        {
            "id": 1,
            "key": "c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6",
            "name": "Caixa 01 - Bilheteria Principal",
            "type": 1,
            "status": 1,
            "location": 4,
            "printReceipt": 1,
            "printKitchen": 0,
            "queueNumber": 1,
            "active": true
        }
    ]
}
GET /venue/pos/{idOrKey} Consultar Caixa
Caixa, Supervisor, Gerente, Administrador

Retorna os detalhes completos de um ponto de venda pelo seu ID numérico ou chave UUID.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — Dados do caixa
{
    "id": 1,
    "key": "c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6",
    "name": "Caixa 01 - Bilheteria Principal",
    "type": 1,
    "status": 1,
    "location": 4,
    "printReceipt": 1,
    "printKitchen": 0,
    "queueNumber": 1,
    "printWebSocket": "wss://localhost.bravonda.com:8070/",
    "paymentMethods": [
        {
            "id": 1,
            "paymentMethod": 1,
            "active": true
        },
        {
            "id": 2,
            "paymentMethod": 2,
            "active": true
        }
    ]
}
POST /venue/pos Cadastrar Caixa
Gerente, Administrador

Cria um novo ponto de venda para operação no parque.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>
Content-Type application/json

Esquema do Corpo da Requisição (Payload)

Campo Tipo Obrigatório Descrição
name string Sim Nome identificador do caixa
location int Sim ID da localização do parque
type int Não Tipo do caixa (1: Checkout, 2: Site, 3: Kiosk, etc. Padrão: 1)
status int Não Status do caixa (1: Disponível, 2: Aberto, etc. Padrão: 1)
printReceipt int Não Vias de impressão de cupom (Padrão: 1)
printKitchen int Não Vias de impressão na cozinha (Padrão: 0)
queueNumber int Não Regra de numeração de senha (Padrão: 1)
printWebSocket string Não URL do WebSocket do spooler local de impressão

Exemplo de Requisição (JSON Body)

{
    "name": "Caixa 02 - Bilheteria Entrada 2",
    "location": 4,
    "type": 1,
    "status": 1,
    "printReceipt": 1,
    "printKitchen": 0,
    "queueNumber": 1,
    "printWebSocket": "wss://localhost.bravonda.com:8070/"
}

Respostas Esperadas

HTTP 200 — Caixa criado com sucesso
{
    "id": 2,
    "key": "d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7"
}
PUT /venue/pos/{idOrKey} Atualizar Caixa
Gerente, Administrador

Atualiza as configurações operacionais de um ponto de venda existente.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>
Content-Type application/json

Exemplo de Requisição (JSON Body)

{
    "name": "Caixa 01 - Bilheteria Principal (Atualizado)",
    "printReceipt": 2
}

Respostas Esperadas

HTTP 200 — Caixa atualizado com sucesso
{
    "id": 1
}
DELETE /venue/pos/{idOrKey} Excluir / Desativar Caixa
Gerente, Administrador

Desativa o ponto de venda no sistema.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — Caixa excluído com sucesso
{
    "success": true
}
PUT /venue/pos/{idOrKey}/close Fechamento de Caixa
Caixa, Supervisor, Gerente, Administrador

Realiza o fechamento operacional do caixa, apuração dos valores por meio de pagamento e encerramento do turno.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>
Content-Type application/json

Esquema do Corpo da Requisição (Payload)

Campo Tipo Obrigatório Descrição
totals array Não Totais apurados em espécie e comprovantes
notes string Não Observações do fechamento de caixa

Respostas Esperadas

HTTP 200 — Caixa fechado com sucesso
{
    "message": "Caixa fechado com sucesso.",
    "historyId": 12
}
PUT /venue/pos/{idOrKey}/cash-drop Realizar Sangria de Caixa
Caixa, Supervisor, Gerente, Administrador

Registra a retirada de dinheiro em espécie do caixa (sangria de valores).

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>
Content-Type application/json

Esquema do Corpo da Requisição (Payload)

Campo Tipo Obrigatório Descrição
amount number Sim Valor da sangria em reais
reason string Não Motivo da retirada

Exemplo de Requisição (JSON Body)

{
    "amount": "500.00",
    "reason": "Transferência para o cofre central"
}

Respostas Esperadas

HTTP 200 — Sangria registrada com sucesso
{
    "message": "Sangria registrada com sucesso."
}
GET /venue/pos/{idOrKey}/history Histórico do Caixa
Caixa, Administrador

Lista o histórico de aberturas, fechamentos e sangrias efetuadas no caixa.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — Histórico retornado
{
    "items": [
        {
            "id": 1,
            "status": 2,
            "createdAt": "2026-09-21 18:00:00",
            "cashier": {
                "id": 1,
                "name": "Funky Kong"
            }
        }
    ]
}

Cadastro de Ingressos

Venue / Produtos
/venue/tickets

Gestão completa do catálogo de ingressos, regras de acesso, precificação, canais de venda e tabelas sazonais.

Entidade: Ticket (Ingresso / Passaporte)

Representa a definição de um tipo de ingresso com preços, regras de canal, quantidade de vouchers e validade.

Campo Tipo Obrigatório Descrição & Detalhes Exemplo
id int Sim Identificador primário único do ingresso 1
key string Sim Chave única UUID do ingresso e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8
active bool Sim Indica se o ingresso está ativo no sistema true
order int Sim Ordem de prioridade de exibição nas listagens 1
name string Sim Nome comercial do ingresso Passaporte Adulto
printLabel string Sim Texto resumido impresso na pulseira/voucher ADULTO
price Number (decimal) Sim Preço padrão de venda unitário 120.00
originalPrice Number (decimal)|null Não (Opcional) Preço original "De" para desconto comercial 150.00
available bool Sim Se o ingresso está liberado para venda geral true
ecommerce bool Sim Se o ingresso pode ser vendido no e-commerce / site true
pos bool Sim Se o ingresso pode ser vendido nas bilheterias / PDV true
totalVouchers int Sim Quantidade de vouchers emitidos por ingresso comprado 1
requireBookingNotes bool Sim Exige observações/nomes adicionais na reserva false
ignoreVenueRules bool Sim Ignora regras globais de cancelamento do parque false
combo Product|null Não (Opcional) Produto combo associado null
comboTickets SimpleArray|null Não (Opcional) Array de IDs de tickets incluídos no combo null
comboQuantity int|null Não (Opcional) Quantidade total de itens no combo null
startsAt Date|null Não (Opcional) Data inicial permitida para compra (YYYY-MM-DD) 2026-01-01
endsAt Date|null Não (Opcional) Data final permitida para compra (YYYY-MM-DD) 2026-12-31
dateStartsAt Date|null Não (Opcional) Data inicial de visitação permitida 2026-01-01
dateEndsAt Date|null Não (Opcional) Data final de visitação permitida 2026-12-31
days TicketDays|null Não (Opcional) Dias da semana em que o ingresso é válido [1, 2, 3, 4, 5, 6, 7]
partnerAttractionPrice Number|null Não (Opcional) Valor repassado para atração de parceiro 0.00
consumptionRedeem Number|null Não (Opcional) Valor de crédito para consumo embutido no ingresso 0.00
description string|null Não (Opcional) Descrição textual completa dos benefícios Acesso completo ao parque aquático
rules string|null Não (Opcional) Regras de utilização e restrições específicas Menores de 12 anos devem estar acompanhados
priceList PriceList|null Não (Opcional) Tabela de preços sazonal associada null
createdAt DateTime Sim Data de criação do registro 2026-01-05 09:00:00
updatedAt DateTime Sim Data da última alteração 2026-09-22 00:00:00

Endpoints Disponíveis

GET /venue/tickets Listar Ingressos
Caixa, Supervisor, Gerente, Administrador

Retorna a lista de ingressos e passaportes cadastrados no parque com paginação e filtros por disponibilidade.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Parâmetros de Consulta (Query Params)

Parâmetro Tipo Descrição
page int Página da listagem (padrão 1)
limit int Quantidade de itens por página
search string Buscar por nome do ingresso
available bool Filtrar por ingressos disponíveis para venda
ecommerce bool Filtrar por ingressos disponíveis no site
pos bool Filtrar por ingressos disponíveis na bilheteria/PDV

Respostas Esperadas

HTTP 200 — Lista de ingressos cadastrados
{
    "page": 1,
    "limit": 15,
    "total": 2,
    "items": [
        {
            "id": 1,
            "key": "e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
            "name": "Passaporte Adulto",
            "printLabel": "ADULTO",
            "price": "120.00",
            "originalPrice": "150.00",
            "available": true,
            "ecommerce": true,
            "pos": true,
            "totalVouchers": 1,
            "order": 1
        }
    ]
}
GET /venue/tickets/{idOrKey} Consultar Ingresso
Caixa, Supervisor, Gerente, Administrador

Retorna todos os detalhes, preços, regras e restrições de um ingresso por ID ou chave pública.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — Detalhes do ingresso
{
    "id": 1,
    "key": "e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8",
    "name": "Passaporte Adulto",
    "printLabel": "ADULTO",
    "price": "120.00",
    "available": true,
    "ecommerce": true,
    "pos": true,
    "totalVouchers": 1,
    "description": "Acesso livre a todas as atrações aquáticas do parque.",
    "rules": "Obrigatório apresentação de documento na entrada."
}
POST /venue/tickets Cadastrar Ingresso
Gerente, Administrador

Cadastra um novo tipo de ingresso ou passaporte no sistema do parque.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>
Content-Type application/json

Esquema do Corpo da Requisição (Payload)

Campo Tipo Obrigatório Descrição
name string Sim Nome do ingresso
printLabel string Sim Texto para impressão em etiquetas e vouchers
price string/number Sim Preço padrão de venda (ex: "120.00")
originalPrice string/number Não Preço "De" promocional
available bool Não Disponível para venda (Padrão: true)
ecommerce bool Não Liberado para venda no site (Padrão: true)
pos bool Não Liberado para venda na bilheteria (Padrão: true)
totalVouchers int Não Quantidade de vouchers emitidos (Padrão: 1)
order int Não Ordem de exibição na listagem
description string Não Descrição do ingresso
rules string Não Regras e restrições de uso

Exemplo de Requisição (JSON Body)

{
    "name": "Passaporte Infantil",
    "printLabel": "INFANTIL",
    "price": "60.00",
    "originalPrice": "80.00",
    "available": true,
    "ecommerce": true,
    "pos": true,
    "totalVouchers": 1,
    "order": 2,
    "description": "Válido para crianças de 1 a 12 anos acompanhadas dos responsáveis."
}

Respostas Esperadas

HTTP 200 — Ingresso criado com sucesso
{
    "id": 3,
    "key": "a1b2c3d4e5f60718293a4b5c6d7e8f90"
}
PUT /venue/tickets/{idOrKey} Atualizar Ingresso
Gerente, Administrador

Atualiza as configurações, preços e regras de um ingresso existente.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>
Content-Type application/json

Exemplo de Requisição (JSON Body)

{
    "price": "130.00",
    "available": true
}

Respostas Esperadas

HTTP 200 — Ingresso atualizado com sucesso
{
    "id": 1
}
DELETE /venue/tickets/{idOrKey} Excluir Ingresso
Gerente, Administrador

Remove ou desativa um ingresso do parque.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — Ingresso excluído com sucesso
{
    "success": true
}
GET /venue/tickets/pricing Listar Tabelas de Preço de Ingressos
Caixa, Supervisor, Gerente, Administrador

Lista as tabelas de preços sazonais vinculadas ao calendário de visitação.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — Tabelas de preço
{
    "items": [
        {
            "id": 1,
            "name": "Alta Temporada Verão",
            "price": "140.00"
        }
    ]
}

Reservas & Pedidos (Bookings)

Attraction / Vendas
/attraction/bookings

Gestão de pedidos e reservas de ingressos e quiosques, emissão de comprovantes, cancelamentos, remarcações e controle de vouchers.

Entidade: AttractionBooking (Reserva / Lote)

Representa a transação de compra/reserva contendo ingressos, quiosques, titularidade, status de pagamento e vouchers emitidos.

Campo Tipo Obrigatório Descrição & Detalhes Exemplo
id int Sim Identificador primário único da reserva 101
key string Sim Chave única UUID da reserva a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0
active bool Sim Indica se o registro da reserva está ativo true
status BookingStatus (enum) Sim Status do pedido/reserva
  • 1: Pending (Aguardando Pagamento)
  • 2: Paid (Pago e Confirmado)
  • 3: Canceled (Cancelado)
2
channel SalesChannel (enum) Sim Canal de venda originário da reserva
  • 1: BoxOffice (Bilheteria / Caixa Físico)
  • 2: Site (E-commerce Online)
  • 3: Kiosks (Totem Autoatendimento)
  • 4: Commercial (Comercial / Vendas Diretas)
  • 5: Partners (Parceiros e Agências)
2
date Date Sim Data agendada da visita ao parque (YYYY-MM-DD) 2026-10-15
pos PointOfSale|null Não (Opcional) Caixa / PDV físico onde a venda foi operada null
unidentified bool Sim Indica se a venda foi anônima sem identificação de cliente false
party Party|null Não (Opcional) Dados cadastrais do cliente titular da compra {"name": "João da Silva", "email": "joao@email.com"}
subtotal Number (decimal) Sim Valor subtotal somado de todos os itens 240.00
discount Number (decimal) Sim Valor total de desconto aplicado na reserva 0.00
refundCredit Number (decimal)|null Não (Opcional) Crédito de reembolso gerado em cancelamentos 0.00
total Number (decimal) Sim Valor total final pago da reserva 240.00
canceledAt DateTime|null Não (Opcional) Data e hora do cancelamento (se cancelado) null
notes string|null Não (Opcional) Observações internas registradas na reserva null
revalidationDate Date|null Não (Opcional) Nova data de visita caso tenha sido remarcada null
revalidationAmount Number|null Não (Opcional) Taxa cobrada pela remarcação/revalidação null
revalidationPayment Payment|null Não (Opcional) Pagamento vinculado à taxa de remarcação null
permalink string|null Não (Opcional) Link público para visualização da reserva https://bravonda.com.br/pedidos/a5b6c7...
voucherPermalink string|null Não (Opcional) Link público para visualização dos vouchers e QR Codes https://bravonda.com.br/vouchers/a5b6c7...
revalidatePermalink bool|null Não (Opcional) Se o link de remarcação pública está liberado true
cancelPermalink bool|null Não (Opcional) Se o link de cancelamento público está liberado true
tickets AttractionBookingTicket[]|null Não (Opcional) Lista de ingressos comprados na reserva [{"ticket": 1, "quantity": 2, "total": "240.00"}]
cabanas AttractionBookingCabana[]|null Não (Opcional) Lista de quiosques reservados []
payments Payment[]|null Não (Opcional) Pagamentos efetuados (PIX, Cartão, Dinheiro) [{"method": 3, "amount": "240.00"}]
logs AttractionBookingLog[] Sim Histórico cronológico de eventos e alterações []
createdAt DateTime Sim Data e hora de criação da reserva 2026-09-20 15:40:00
updatedAt DateTime Sim Data e hora da última atualização 2026-09-20 15:45:00

Endpoints Disponíveis

GET /attraction/bookings Listar Reservas (Lotes)
Caixa, Supervisor, Gerente, Administrador

Retorna a lista de reservas efetuadas com filtros avançados por data de visita, canal, status e cliente titular.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Parâmetros de Consulta (Query Params)

Parâmetro Tipo Descrição
page int Número da página (padrão 1)
limit int Itens por página (padrão 15)
date string Filtrar por data agendada de visita (YYYY-MM-DD)
status int Filtrar por status (1: Aguardando pagamento, 2: Pago, 3: Cancelado)
channel int Filtrar por canal de venda (1: Bilheteria, 2: Site, 3: Totem, etc.)
search string Buscar por nome, CPF ou e-mail do comprador

Respostas Esperadas

HTTP 200 — Lista de reservas
{
    "page": 1,
    "limit": 15,
    "total": 1,
    "items": [
        {
            "id": 101,
            "key": "a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0",
            "status": 2,
            "channel": 2,
            "date": "2026-10-15",
            "subtotal": "240.00",
            "discount": "0.00",
            "total": "240.00",
            "unidentified": false,
            "party": {
                "id": 50,
                "name": "João da Silva",
                "email": "joao.silva@exemplo.com.br"
            }
        }
    ]
}
GET /attraction/bookings/{idOrKey} Consultar Reserva
Caixa, Supervisor, Gerente, Administrador

Retorna todos os detalhes de uma reserva específica, itens de ingresso, quiosques, pagamentos e logs de auditoria.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — Detalhes completos da reserva
{
    "id": 101,
    "key": "a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0",
    "status": 2,
    "channel": 2,
    "date": "2026-10-15",
    "subtotal": "240.00",
    "discount": "0.00",
    "total": "240.00",
    "tickets": [
        {
            "id": 201,
            "ticket": {
                "id": 1,
                "name": "Passaporte Adulto"
            },
            "quantity": 2,
            "price": "120.00",
            "total": "240.00"
        }
    ],
    "payments": [
        {
            "id": 301,
            "method": 3,
            "amount": "240.00",
            "status": 2
        }
    ]
}
POST /attraction/bookings Criar Reserva (Venda)
Caixa, Supervisor, Gerente, Administrador

Cria uma nova reserva / lote de venda de ingressos e quiosques.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>
Content-Type application/json

Esquema do Corpo da Requisição (Payload)

Campo Tipo Obrigatório Descrição
date string Sim Data da visita agendada (YYYY-MM-DD)
channel int Sim Canal de venda (1: Bilheteria, 2: Site, 3: Kiosk, 4: Comercial, 5: Parceiros)
unidentified bool Não Venda anônima sem identificação (Padrão: true se sem titular)
party object Não Dados cadastrais do comprador/titular
tickets array Não Lista de ingressos comprados e quantidades
cabanas array Não Lista de quiosques reservados
notes string Não Observações internas da reserva

Exemplo de Requisição (JSON Body)

{
    "date": "2026-10-15",
    "channel": 1,
    "unidentified": false,
    "party": {
        "name": "João da Silva",
        "taxId": "123.456.789-00",
        "email": "joao.silva@exemplo.com.br"
    },
    "tickets": [
        {
            "ticket": 1,
            "quantity": 2,
            "price": "120.00"
        }
    ],
    "cabanas": [
        {
            "cabana": 1,
            "price": "180.00"
        }
    ]
}

Respostas Esperadas

HTTP 200 — Reserva criada com sucesso
{
    "id": 102,
    "key": "b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1"
}
PUT /attraction/bookings/{idOrKey} Atualizar Reserva
Caixa, Gerente, Administrador

Atualiza dados de uma reserva existente.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>
Content-Type application/json

Exemplo de Requisição (JSON Body)

{
    "notes": "Cliente solicitou inclusão de observação de aniversariante."
}

Respostas Esperadas

HTTP 200 — Reserva atualizada
{
    "id": 101
}
GET /attraction/bookings/{idOrKey}/print Imprimir Reserva / Vouchers
Caixa, Supervisor, Gerente, Administrador

Gera o comprovante de venda e os vouchers de acesso com QR Code para impressão térmica ou em PDF.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — Documento de impressão gerado
{
    "html": "<html>...</html>",
    "url": "https://api.bravonda.com.br/v1/attraction/bookings/101/print"
}
PUT /attraction/bookings/{idOrKey}/cancel Cancelar Reserva
Caixa, Supervisor, Gerente, Administrador

Cancela a reserva e invalida os vouchers gerados de acordo com as regras de cancelamento do parque.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>
Content-Type application/json

Esquema do Corpo da Requisição (Payload)

Campo Tipo Obrigatório Descrição
reason string Não Motivo do cancelamento

Respostas Esperadas

HTTP 200 — Reserva cancelada com sucesso
{
    "message": "Reserva cancelada com sucesso."
}
PUT /attraction/bookings/{idOrKey}/cabanas/{item}/no-show Marcar No-Show de Quiosque
Supervisor, Gerente, Administrador

Registra o não comparecimento do cliente no quiosque reservado.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — No-show registrado
{
    "message": "No-show registrado com sucesso."
}
GET /attraction/bookings/vouchers Listar Vouchers Emitidos
Caixa, Supervisor, Gerente, Administrador

Lista os vouchers gerados para conferência de portaria e catraca.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — Lista de vouchers
{
    "items": [
        {
            "key": "VOUCH-12345678",
            "ticket": "Passaporte Adulto",
            "status": "Disponível",
            "date": "2026-10-15"
        }
    ]
}
GET /attraction/bookings/vouchers/{key} Consultar Voucher
Caixa, Supervisor, Gerente, Administrador

Consulta os dados e status de um voucher individual pela chave do QR Code.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>

Respostas Esperadas

HTTP 200 — Status do voucher
{
    "key": "VOUCH-12345678",
    "valid": true,
    "ticketName": "Passaporte Adulto",
    "date": "2026-10-15"
}
GET /attraction/bookings/vouchers/{key}/redeem Resgatar / Validar Voucher (Consulta)
Pública / Catraca

Verifica e prepara o resgate do voucher para liberação de acesso na catraca/portaria.

Respostas Esperadas

HTTP 200 — Voucher validado
{
    "allowed": true,
    "message": "Acesso autorizado."
}
PUT /attraction/bookings/vouchers/revalidate Revalidar / Remarcar Voucher
Caixa, Supervisor, Gerente, Administrador

Altera a data de utilização de um voucher respeitando o prazo e políticas de remarcação.

Cabeçalhos (Headers)

Header Valor
Authorization Bearer <token_jwt>
Content-Type application/json

Esquema do Corpo da Requisição (Payload)

Campo Tipo Obrigatório Descrição
key string Sim Chave do voucher
newDate string Sim Nova data de visita (YYYY-MM-DD)

Respostas Esperadas

HTTP 200 — Voucher remarcado com sucesso
{
    "message": "Voucher remarcado com sucesso."
}