# Stripe

> Veja como conectar a sua plataforma com o Stripe.

Com a integração da Stripe, cada pagamento confirmado libera o acesso do aluno aos cursos da entrega. Assinatura cancelada remove o acesso.

:::aviso Integração em validação
A leitura dos envios da Stripe ainda está em validação: a Stripe nem sempre manda o ID do produto ou do link de pagamento no formato que a plataforma reconhece, e a venda pode chegar "sem ID". Faça um pagamento de teste e confira o resultado (passo 3) **antes de vender**.
:::

## 1. Crie a entrega na sua plataforma

1. No painel, acesse **Vendas › Entregas** e clique em **Nova Entrega**.
2. Na tela **Selecione um Gateway**, digite "Stripe" no filtro e clique em **Stripe**.
3. Dê um nome à entrega e escolha a **Modalidade de Venda**: **Venda única** ou **Assinatura**.
4. Em **Conexão com o gateway**, preencha o campo **ID do Produto ou ID do Link de Pagamento** com os dois IDs, um por linha: o do produto e o do link de pagamento (veja abaixo).
5. Em **Conteúdo entregue**, marque os cursos ou vitrines que a venda libera e, se quiser, o **Tempo de acesso** e a turma em **Liberação**. Em **Tags**, marque as tags que o aluno deve receber.
6. Clique em **Salvar**.
7. Copie o endereço completo do campo **URL de Postback**, no formato `https://<sua-plataforma>/api/postback/stripe/<token>`. Ele só aparece depois de salvar.

### Onde encontrar os IDs na Stripe

- **ID do produto:** no dashboard da Stripe, menu **Produtos**, abra o produto e copie o ID na caixa **Detalhes**.
- **ID do link de pagamento:** menu **Mais › Payment Links**, abra o link (ou **... › editar**) e copie o ID.

Use o mesmo produto da Stripe para cobranças diferentes (mensal e anual, por exemplo) quando o aluno recebe exatamente o mesmo acesso. Se as regras de acesso mudam, crie outro produto na Stripe e outra entrega na sua plataforma.

## 2. Configure o webhook na Stripe

1. No dashboard da Stripe, abra **Desenvolvedores › Webhooks**.
2. Clique em **Adicionar Endpoint**.
3. Em **URL do endpoint**, cole a URL de postback copiada da entrega.
4. Em **Eventos para enviar**, selecione:
   - `checkout.session.completed`
   - `invoice.paid`
   - `invoice.payment_failed`
   - `customer.subscription.deleted`
5. Clique em **Adicionar Endpoint**.

:::aviso Uma URL para cada entrega
A URL de postback leva o token de **uma** entrega e só libera o conteúdo dela. Como o endpoint da Stripe recebe os eventos de todos os produtos, eventos de produtos que não estão nessa entrega aparecem com erro em **Vendas › Vendas** (você pode usar **Ignorar** neles).
:::

## 3. Teste

1. Faça um pagamento de teste com um e-mail que **não** seja de administrador da plataforma (vendas com e-mail de administrador são recusadas).
2. Acesse **Vendas › Vendas** e abra a venda (menu **···** › **Ver detalhes**).
3. Confira o campo **IDs de produto/oferta no payload**:
   - Se aparecer um ID (por exemplo, um ID de preço que começa com `price_`), acrescente esse ID na entrega, um por linha, salve e clique em **Reprocessar** na venda.
   - Se aparecer o erro "O payload não trouxe nenhum ID de produto/oferta", a plataforma ainda não consegue ligar esse evento a uma entrega. Não use a Stripe para liberar acesso até isso ser resolvido.
4. Confira também o evento recebido e, se houver, o **Motivo do erro**.

:::info Integração por leitura automática
A plataforma reconhece os campos mais comuns do envio da Stripe (e-mail, código, status e IDs). Valide com uma venda real antes de abrir as vendas. Se algo não for reconhecido, a venda aparece em **Vendas › Vendas**, na aba **Com erro**, com o motivo.
:::
