POST com JSON para essa URL.
Configurar
Crie um endpoint no seu app
Uma rota HTTP pública que aceita
POST com JSON. Pode ser em qualquer linguagem ou framework.Cadastre a URL no painel
No Simplo, vá em Configurações → Webhooks e cole a URL (
https://, não http://).Eventos disponíveis
| Evento | Quando dispara |
|---|---|
invoice.created | Fatura foi gerada (ainda não paga) |
invoice.paid | Fatura recebeu pagamento confirmado |
invoice.voided | Fatura foi cancelada |
charge.created | Cobrança foi tentada (boleto/cartão/Pix gerado) |
charge.refunded | Cobrança foi reembolsada (total ou parcialmente) |
charge.rejected | Cobrança foi recusada (cartão negado, etc.) |
Estrutura do payload
Todo webhook tem o mesmo envelope:event.id— identificador único do evento. Use para deduplicação no seu lado (veja abaixo).event.type— qual evento aconteceu.event.created_at— timestamp Unix em segundos.event.data— os recursos relacionados.
Boas práticas
1. Responda rápido (timeout de 15s)
O Simplo aguarda até 15 segundos pela resposta (com timeout de conexão de 5 segundos). Se passar disso, a entrega é marcada como falha e o evento não é reentregue automaticamente. A regra de ouro: valide e enfileire. Não processe o evento direto na request — armazene o payload, retorne200 rápido, e processe em job de background.
2. Deduplique pelo event.id
Mesmo que o Simplo entregue cada evento uma única vez hoje, é recomendável deduplicar pelo event.id no seu lado — isso te protege contra reprocessamento acidental do seu próprio sistema (re-deploy, replay manual de fila, etc.):
3. Sempre retorne 2xx no sucesso
Códigos200, 201, 204 são todos válidos. Qualquer 4xx ou 5xx é tratado como falha.
4. Cada evento é entregue uma única vez
Hoje o Simplo não faz retry automático de webhooks com falha. Cada evento é entregue uma única vez — se sua URL retornar erro ou estourar o timeout de 15 segundos, o evento fica marcado como falho e não é reentregue. Por isso vale extra cuidado:- Sempre retorne
2xxrapidamente, mesmo que o processamento ainda não tenha acontecido (use jobs de background). - Logue o
event.idem todas as falhas — você pode precisar reprocessar manualmente. - Monitore a saúde do seu endpoint. Toda entrega (sucesso ou falha) fica registrada no painel.
5. Saúde do webhook e desativação automática
Para proteger sua integração contra endpoints quebrados, o Simplo monitora falhas consecutivas:- A cada falha, um contador de falhas consecutivas incrementa.
- A cada sucesso, o contador volta a zero.
- Após 5 falhas consecutivas, o webhook é marcado como
unhealthye as próximas entregas são pausadas. - O dono da conta recebe uma notificação avisando da pausa.
Testar localmente
Use ferramentas como ngrok ou cloudflared para expor seu servidor local:invoice.paid para sua URL.
