Validação e dia do evento
Para quem: produtor, equipe de porta, operação no local
Última revisão: 2026-07-13
Rotas relacionadas: /seller/validate-ticket/[password], /seller/validate-ticket/bar/[barPassword], /seller/validate-ticket/store/[id]
O que você consegue fazer
Pré-requisitos
Passo a passo — Validar ingressos do evento
1. Acessar a página de validação
No card expandido do evento em /seller/events, clique em validar tickets.
A rota é /seller/validate-ticket/{password} — a senha tem 12 caracteres e é única por evento.
Atenção: este link contém a senha do evento. Compartilhe apenas com pessoas de confiança na equipe de porta. A UI exibe aviso de segurança ao abrir o link.
2. Validar por QR code
used, checkinTime é registrado, feedback de sucessoQR inválido: URLs, textos aleatórios ou IDs fora do formato são rejeitados.
3. Validar por nome ou e-mail
Útil quando o comprador não consegue exibir o QR (bateria, tela quebrada, etc.).
4. Resultados possíveis
| Resultado | Significado |
|---|---|
| Sucesso | Ingresso valid → marcado como used |
| Já usado | Ingresso já validado anteriormente (checkinTime exibido) |
| Reembolsado / cancelado | Ingresso não pode entrar |
Validação no bar digital
Rota: /seller/validate-ticket/bar/{barPassword}
events.getByBarPassword para identificar o evento/barQrScannerBarBarTicketSearchByEmailAcesse pelo painel do bar em /seller/bar/[id] ou pelo card do evento.
Validação na loja
Rota: /seller/validate-ticket/store/[id]
Para retirada/validação de produtos comprados na loja da organização.
Certificado de participação
Após check-in (status: used), o comprador pode acessar certificado em /tickets/[id]/certificate se o evento tiver issueCertificate ativo.
O que acontece nos bastidores
tickets.validateTicketStatus só aceita tickets com status: validsbc1.…), não o id do ingresso. Quando o ingresso é transferido, o QR muda: print, e-mail ou Wallet de quem enviou deixa de passar. QRs antigos (só o id) ainda são aceitos enquanto o ingresso não for transferidoevents.password) é diferente da senha do bar (barPassword)Problemas comuns
| Sintoma | Causa provável | O que fazer |
|---|---|---|
| QR não lê | Luz ruim ou QR de outro evento | Use busca por nome ou e-mail |
| "Já usado" | Check-in duplicado | Verifique checkinTime; pode ser tentativa de reentrada |
| "Inválido" num ingresso que a pessoa diz ser dela | Ingresso foi transferido e mostraram o QR antigo (print, e-mail ou Wallet de quem enviou) | Peça o QR atual no app de quem recebeu, ou valide pela busca por e-mail conferindo o titular |
| Página não carrega evento | Senha errada na URL | Copie link de validar tickets do card do evento |
| Câmera não abre | Permissão negada no browser | Libere câmera nas configurações do navegador |
| Ingresso não aparece na busca | E-mail diferente do da compra | Confirme e-mail usado no checkout |
Referências de código (time interno)
app/seller/validate-ticket/[password]/page.tsx — validação de ingressosapp/seller/validate-ticket/bar/[barPassword]/page.tsx — barapp/seller/validate-ticket/store/[id]/page.tsx — lojacomponents/seller/QrScanner.tsx — scanner de ingressoscomponents/seller/TicketSearchByEmail.tsx — busca por nome ou e-mailconvex/tickets.ts — validateTicketStatus, searchEventTicketsByEmail, suggestEventEmailsByPrefixconvex/events.ts — getByPassword, getByBarPassword