O **webhook** é o que faz o status da cobrança atualizar **sozinho** quando o paciente paga. Sem ele, você dependeria sempre do botão **Sincronizar**.

## Passo 1 — Gerar o secret e copiar a URL

Na seção **Webhook** da configuração do Pagar.me:

1. Clique em **Gerar novo secret**.

2. Clique em **Copiar URL**.

A URL tem o formato:

```
https://app.medsac.com.br/webhooks/medsac/payments/pagarme/whsec_xxxxxxxxxxxx
```

> **Você não copia o secret separadamente.** O secret **já está embutido na URL** — é ela que autentica as chamadas do Pagar.me. Não existe campo de secret avulso para colar no painel.

## Passo 2 — Cadastrar no painel Pagar.me

No painel do Pagar.me, vá em **Webhooks/Postbacks**, crie um endpoint e **cole a URL** copiada.

## Passo 3 — Marcar os eventos

| Evento                  | Para que serve                           |
| ----------------------- | ---------------------------------------- |
| `charge.paid`           | Pagamento confirmado → status **Pago**   |
| `charge.payment_failed` | Pagamento recusado → status **Recusado** |
| `charge.refunded`       | Estorno → status **Estornado**           |
| `order.paid`            | Confirmação no nível do pedido           |

## Segurança

* A proteção é o **token secreto na URL** (comparado com segurança a cada chamada). Uma URL errada recebe **404 silencioso** (não vaza informação).

* Cada evento é processado **uma única vez** (idempotência por id do evento) — reenvios do Pagar.me não duplicam nada.

* **Basic Auth (usuário/senha)** no webhook **não** está disponível nesta versão; o token na URL é suficiente e obrigatório.

## Regenerar o secret

Clicar em **Gerar novo secret** **invalida a URL anterior**. Se fizer isso, lembre de **recadastrar a nova URL** no painel do Pagar.me, senão os webhooks param de chegar.