# HeroSpark

> Veja como conectar a sua plataforma com a HeroSpark.

Com esta integração, cada venda aprovada na Herospark libera o acesso do aluno aos cursos da entrega. Reembolso, chargeback e cancelamento removem o acesso daquela venda.

## 1. Crie a entrega na sua plataforma

1. No painel, abra **Vendas › Entregas** e clique em **Nova Entrega**.
2. Na tela **Selecione um Gateway**, escolha **Herospark**.
3. Dê um nome à entrega e escolha a **Modalidade de Venda**: **Venda única** ou **Assinatura**.
4. No campo **ID do Produto**, cole um código que identifique o produto. Ele pode ser o ID do produto na Herospark ou um código criado por você: o importante é usar o mesmo valor no campo `produto_id` das automações abaixo. Se mais de um ID deve liberar a mesma coisa, coloque um por linha.
5. Em **Conteúdo entregue**, marque os cursos que a venda libera e defina o **Tempo de acesso** e a **Liberação** de cada um. Se quiser, marque também as **Tags** que o aluno ganha.
6. Clique em **Salvar**.
7. No bloco **Conexão com o gateway**, copie a **URL de Postback**. Ela aparece depois de salvar e termina com o token desta entrega: copie o endereço inteiro.

## 2. Configure o webhook na Herospark

Antes de começar, peça ao suporte da Herospark, pelo chat da plataforma, que desative a área de membros nativa. Assim as vendas do seu checkout deixam de gerar acesso na Herospark.

A conexão é feita pelo **Piloto Automático** da Herospark, com uma automação para cada evento.

### Pagamento confirmado

1. No **Piloto Automático**, crie a automação **Pagamento Confirmado** e escolha a opção **webhook**.
2. Em **Filtro de disparo**, escolha um ou mais produtos.
3. Em **URL**, cole a URL de Postback da entrega.
4. Em **Método**, mantenha **POST**.
5. Em **Headers**, adicione a chave `Content-Type` com o valor `application/json`.
6. Em **Body**, cole o texto abaixo e troque `SEU_ID_DO_PRODUTO` pelo ID cadastrado na entrega:

```json
{"valor": "{{ offer_price | divided_by: 100.00}}", "codigo": "{{ payment_id }}", "status": "aprovado", "produto_id": "SEU_ID_DO_PRODUTO", "cliente_doc": "{{ buyer_document_id }}", "cliente_nome": "{{ buyer_name }}", "cliente_email": "{{ buyer_email }}", "recorrencia_id": "{{subscription_id}}", "cliente_celular": "{{ buyer_phone }}", "recorrencia_status": "ativo"}
```

7. Ative a automação.

### Cancelamento de assinatura

Se você vende assinaturas, crie também as automações **Assinatura cancelada pelo cliente** e **Assinatura cancelada pelo produtor**, com os mesmos campos. Só o **Body** muda:

```json
{"valor": "{{ offer_price | divided_by: 100.00}}", "codigo": "{{ payment_id }}", "status": "cancelado", "produto_id": "SEU_ID_DO_PRODUTO", "cliente_doc": "{{ buyer_document_id }}", "cliente_nome": "{{ buyer_name }}", "cliente_email": "{{ buyer_email }}", "recorrencia_id": "{{subscription_id}}", "cliente_celular": "{{ buyer_phone }}", "recorrencia_status": "cancelado"}
```

Ative as automações. Quando o cancelamento chega, a plataforma encerra os acessos de todas as cobranças daquela assinatura.

:::info Sobre o token
Com a URL de Postback da entrega, o token já vai no endereço e não precisa estar no corpo. Se preferir mandar para o endereço geral `https://<sua-plataforma>/api/postback/custom`, inclua no corpo o campo `"token"` com o **Token de postback** que aparece na tela da entrega. Os campos aceitos estão em [Seu próprio Gateway](/entregas/custom).
:::

## 3. Teste

1. Faça uma compra real de teste do produto.
2. No painel, abra **Vendas › Vendas** e confira se o envio chegou.
3. Se estiver como **Processada**, o acesso foi liberado. Se estiver **Com erro**, clique em **Ver detalhes** e leia o **Motivo do erro**. Corrija a causa (por exemplo, cadastrando na entrega o ID que veio no envio) e clique em **Reprocessar**.

Para a compra de teste, use um e-mail que não seja de um administrador da plataforma: vendas com e-mail de administrador não são processadas.
