# Stripe e taxas

**Para quem:** produtor, organizador, gerente  
**Última revisão:** 2026-07-13  
**Rotas relacionadas:** `/guides`, `/connect/return/[id]`, `/connect/refresh/[id]`

---

## O que você consegue fazer

- Conectar uma conta Stripe para receber pagamentos de ingressos, bar e crowdfunding
- Acompanhar o status da conta (ativa, pendências, saques)
- Entender quanto a Subcena retém e quanto você recebe líquido

---

## Pré-requisitos

- Conta na Subcena com role de organizador (não se aplica a curadores no onboarding)
- Pelo menos uma organização criada
- Dados comerciais válidos para o Stripe (CPF/CNPJ, conta bancária, etc.)

---

## Passo a passo — Stripe Connect

### 1. Acessar o onboarding

Abra [subcena.com/guides](https://subcena.com/guides) e vá até o passo **Ativar pagamentos**.

### 2. Criar perfil comercial

Clique em **criar perfil comercial**. Isso cria uma conta Stripe Connect **Standard** vinculada ao seu usuário (`users.stripeConnectId`).

### 3. Completar configuração no Stripe

Se a conta exigir informações adicionais, use **Completar configuração**. Você será redirecionado ao fluxo de onboarding da Stripe.

- **Retorno com sucesso:** `/connect/return/[id]` → redireciona para `/seller`
- **Link expirado:** `/connect/refresh/[id]` → gera novo link de onboarding

### 4. Verificar status

Na página `/guides`, confira:

| Indicador | Significado |
|-----------|-------------|
| **Ativo** | Conta pronta para operar |
| **Precisa configurar** | Pendências no Stripe |
| **Pode receber pagamentos** | `chargesEnabled` ativo |
| **Pode fazer saque** | `payoutsEnabled` ativo |

Use **Atualizar status** após concluir etapas no Stripe.

### 5. Acessar o painel Stripe

Com conta ativa, use **Painel de vendas Stripe** para ver transações, repasses e configurações financeiras diretamente no dashboard da Stripe.

---

## Taxas da plataforma Subcena

A Subcena cobra via `application_fee_amount` no Stripe Connect. O valor vai para a plataforma; o restante vai para você.

| Produto | Taxa Subcena | Regra |
|---------|--------------|-------|
| **Ingressos** | 5% (legado) | Compras antes de 03/07/2026 14:06 BRT |
| **Ingressos** | **9%** (atual) | Compras a partir de 03/07/2026 14:06 BRT |
| **Bar digital** | **3%** | Desde o lançamento |
| **Crowdfunding** | **4%** | Doador paga o valor bruto; a taxa sai do total |

Fonte de verdade: `convex/lib/platformFees.ts`.

---

## Taxas de processamento (Stripe)

Usadas no cálculo do valor final pago pelo comprador (gross-up):

| Método | Percentual | Fixo |
|--------|------------|------|
| Cartão | 3,99% | R$ 0,39 |
| Pix | 1,19% | R$ 0,00 |

O comprador vê o total com taxas embutidas para que você receba o valor de face do ingresso. Se a bilheteria foi R$ 1.000, o repasse de ingressos é R$ 1.000.

---

## Compra segura (ingressos)

Se o comprador ativa **compra segura**, o cálculo do gross-up dobra a estimativa de taxa de cartão. Isso cobre a possibilidade de reembolso e aumenta a margem de segurança da transação.

---

## Crowdfunding

O doador escolhe o valor bruto. A Subcena retém 4% como taxa de plataforma; o restante (menos taxas Stripe) vai para a organização.

---

## O que acontece nos bastidores

- A conta Stripe é **por usuário**, não por organização. Todas as orgs do mesmo dono usam o mesmo `stripeConnectId`.
- A Subcena **não armazena** dados de cartão ou conta bancária — tudo fica na Stripe (PCI compliance).
- Pagamentos usam Stripe Connect Standard com `card_payments`, `pix_payments` e `transfers`.
- Curadores **não** precisam do passo Stripe no onboarding (`/guides` omite o passo 4 para convites de curadoria).

---

## Problemas comuns

| Sintoma | Causa provável | O que fazer |
|---------|----------------|-------------|
| Botão "+ evento" não aparece | Stripe sem `payoutsEnabled` | Complete o onboarding em `/guides` |
| "Precisa configurar" persistente | Documentos ou dados pendentes no Stripe | Clique em **Completar configuração** |
| Link de onboarding expirou | Sessão Stripe expirada | Acesse `/connect/refresh/[id]` ou gere novo link em `/guides` |
| Não consigo acessar painel Stripe | Conta ainda não ativa | Resolva pendências antes de abrir o dashboard |
| Valor no Stripe menor que o ingresso | Bar e crowdfunding descontam taxa do total; ingressos não | Na aba Repasses do evento, o líquido de ingressos deve bater com a bilheteria. Bar (3%) e vaquinha (4%) saem do valor bruto. |

---

## Referências de código (time interno)

- `app/guides/page.tsx` — UI de onboarding e status Stripe
- `app/actions/createStripeConnectCustomer.ts` — criação da conta
- `app/actions/createStripeConnectAccountLink.ts` — link de onboarding
- `app/actions/getStripeConnectAccountStatus.ts` — polling de status
- `convex/users.ts` — `stripeConnectId`, `getUsersStripeConnectId`
- `convex/lib/platformFees.ts` — percentuais e gross-up
