Status: Approved · v2 · SPEC-UX-FINANCE-001
depends_on: SPEC-DOMAIN-WALLET-001, SPEC-DOMAIN-PAYMENT-001, SPEC-DOMAIN-SPONSOR-001
used_by: IS-MVP-09.1, IS-MVP-09.2, IS-MVP-09.3, IS-MVP-09.4, IS-MVP-10.1
Carteira, apoio, patrocínio e pagamentos
Experiência financeira clara, rastreável e explicitamente diferente de aposta, investimento ou conta bancária.
Objetivo
Experiência financeira clara, rastreável e explicitamente diferente de aposta, investimento ou conta bancária.
Pontos de entrada
- Gestão de time/torcida.
- Apoiar em página pública.
- Contratar sponsor.
- Publicar campeonato.
- Campanha paga.
Hierarquia da tela
- Wallet summary com saldo, expiração e ações.
- Extrato filtrável.
- Fluxo Apoiar: entidade → identificação → valor → Pix → status.
- Fluxo Transferir: destino permitido → valor → revisão.
- Fluxo Sponsor: pacote → dados → preview → Pix → status.
- Fluxo Publish: checklist → preço → Pix.
Componentes e comportamento
Balance Card
Créditos disponíveis e a expirar; nunca usa linguagem de saque/rendimento.
Ledger
Data, tipo, origem, entrada/saída, status e referência. Valores em BRL para leitura, centavos em contrato.
Support Amounts
R$5, R$10, R$20, R$50 e Outro com mínimo R$50. Anônimo sem login; identificado com AuthIntent.
Pix Panel
QR, copia e cola, timer, status e novo Pix. Sem botão “marcar pago”.
Sponsor Slot Status
Mostra 0–3 slots e reserva pending. Não oferece fila.
Confirmation Review
Taxa/split, período, saldo ou consequência antes de confirmar.
Ações do usuário
| Ação | Pré-condição | Resultado | Falha/alternativa |
|---|---|---|---|
| Apoiar anônimo | Entidade eligible | Payment waiting | Provider indisponível |
| Apoiar identificado | Auth | Payment waiting + supporter após paid | Intent/payment |
| Transferir | wallet.transfer | Ledger espelhado | Saldo/vínculo |
| Contratar sponsor | sponsor.create | Slot reserved/payment | Lotado |
| Usar créditos | wallet.spend | Ação confirmada | Insuficiente |
| Gerar novo Pix | Expired/failed | Novo payment | — |
Estados obrigatórios
| Estado | Representação | Ação disponível |
|---|---|---|
| Wallet empty | Explica como receber apoio | Compartilhar link |
| Credits expiring | Aviso e lotes | Usar |
| Insufficient | Custo/saldo e alternativa | Voltar |
| Payment waiting | QR/timer | Copiar/checar |
| Paid | Confirma efeito | Abrir entidade |
| Expired/failed | Explicação | Novo Pix |
| Restricted | Banner | Suporte |
Autenticação e permissões
- Saldo/extrato só financial/admin/owner.
- Apoio público.
- Sponsor/publish exigem gestão.
- Public supporter não mostra valor.
Responsividade
- Pix ocupa tela inteira no mobile e painel no desktop.
- Extrato vira lista mobile e tabela desktop.
- QR mantém tamanho mínimo.
Acessibilidade
- QR possui copia e cola.
- Timer não é único indicador.
- Valores narrados corretamente.
- Confirmações com foco.
Eventos de produto e observabilidade
- wallet_viewed
- support_started
- support_payment_created
- payment_status_changed
- wallet_transfer_started
- sponsorship_started
- credits_spend_started
Dados e endpoints
- Wallet/payments/sponsors API.
Critérios de aceite
- Sem linguagem de aposta.
- Todos os estados Pix.
- Splits explicados.
- Saldo privado.
- Apoio anônimo/identificado.
- Sponsor slots completos.
Pós-MVP
- Provider real, refunds e métricas.
Decisões registradas
- Crédito interno não sacável.
- Pix fake inicial com UX realista.
Machine summary
spec: SPEC-UX-FINANCE-001
screen_or_flow: Carteira, apoio, patrocínio e pagamentos
required_states:
- loading
- success
- empty
- error
must_use:
- contracts
- service
- hook
- design_tokens
must_not:
- direct_fetch
- direct_fixture_import
- hardcoded_brand_colors