Pular para o conteúdo principal

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

  1. Wallet summary com saldo, expiração e ações.
  2. Extrato filtrável.
  3. Fluxo Apoiar: entidade → identificação → valor → Pix → status.
  4. Fluxo Transferir: destino permitido → valor → revisão.
  5. Fluxo Sponsor: pacote → dados → preview → Pix → status.
  6. 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”.

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çãoPré-condiçãoResultadoFalha/alternativa
Apoiar anônimoEntidade eligiblePayment waitingProvider indisponível
Apoiar identificadoAuthPayment waiting + supporter após paidIntent/payment
Transferirwallet.transferLedger espelhadoSaldo/vínculo
Contratar sponsorsponsor.createSlot reserved/paymentLotado
Usar créditoswallet.spendAção confirmadaInsuficiente
Gerar novo PixExpired/failedNovo payment

Estados obrigatórios

EstadoRepresentaçãoAção disponível
Wallet emptyExplica como receber apoioCompartilhar link
Credits expiringAviso e lotesUsar
InsufficientCusto/saldo e alternativaVoltar
Payment waitingQR/timerCopiar/checar
PaidConfirma efeitoAbrir entidade
Expired/failedExplicaçãoNovo Pix
RestrictedBannerSuporte

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