Área do cliente
Painel do doador
Documentação Técnica

Webhooks: a Doare avisa o seu sistema quando algo acontece

A API responde quando você pergunta; o webhook fala quando algo acontece. Você cadastra uma URL, escolhe os eventos, e a Doare chama a URL com um JSON a cada doação paga, assinatura cancelada, doador novo. É a base de qualquer integração em tempo real: atualizar o ERP, mandar uma mensagem no Slack, abrir uma tarefa. Este artigo cobre a configuração, o payload, a segurança e os erros comuns.

8 min de leituraAtualizado em 7 de setembro de 2026Documentação Técnica
Em resumo
  • Cadastre a URL em Integrações › Webhooks e escolha os eventos.
  • Cada chamada é um POST com JSON, assinado com HMAC no cabeçalho X-Doare-Signature.
  • Responda 2xx em até 10 s; senão a Doare reenvia com intervalo crescente por 24 h.
  • Trate como idempotente: o mesmo evento pode chegar duas vezes.
  • Sem programador? Zapier ou Make recebem o webhook e fazem o resto.
Neste artigo
  1. Os eventos
  2. Configurar
  3. O payload
  4. Segurança e confiabilidade
  5. Sem código

Os eventos

painel.doare.org/dashboard/integrations
Instituto Semear
Dashboard
Gestão
Captação
Relacionamento
Finanças
Análise
Configurações
Personalizar Remetente
Usuários
Bloqueio de usuários
Integrações
Dados da Organização
Planos
Ajuda
DashboardIntegrações
PTMarinaM
Webhooks
A Doare chama a sua URL quando algo acontece
Novo endpoint
URLEventosStatusÚltimas 24 hÚltimo envio
https://api.institutosemear.org.br/doaredonation.paid · subscription.canceledAtivo148 ok · 0 falhashá 4 min···
https://hooks.zapier.com/hooks/catch/…donation.paidAtivo148 ok · 2 falhashá 4 min···
https://staging.institutosemear.org.br/doaretodosPausado12/08/2026···
Os endpoints cadastrados, com eventos, status e as entregas das últimas 24 horas.
EventoQuandoUso típico
donation.paidPagamento confirmadoRegistrar no ERP; avisar a equipe; agradecer em outro canal.
donation.pendingPix ou boleto gerado, ainda não pagoRégua própria de lembrete.
donation.refundedEstorno ou chargebackAjustar o ERP; cancelar benefício.
subscription.createdNova assinatura ativaBoas-vindas em outro sistema; carteirinha.
subscription.payment_failedCobrança recorrente falhouAlerta ao financeiro.
subscription.canceledAssinatura canceladaEncerrar benefício; registrar o motivo.
donor.createdNovo contato no CRMSincronizar com outro CRM.

Como configurar?

painel.doare.org/dashboard/integrations
Instituto Semear
Dashboard
Gestão
Captação
Relacionamento
Finanças
Análise
Configurações
Personalizar Remetente
Usuários
Bloqueio de usuários
Integrações
Dados da Organização
Planos
Ajuda
DashboardIntegrações
PTMarinaM
Webhooks
Novo endpoint
URL
https://api.institutosemear.org.br/doare
HTTPS obrigatório. Responda 2xx em até 10 segundos.
Eventos
donation.paid · doação confirmada
donation.refunded · doação estornada
donation.pending · Pix/boleto gerado
subscription.created · nova assinatura
subscription.payment_failed · cobrança falhou
subscription.canceled · assinatura cancelada
donor.created · novo contato no CRM
Segredo de assinatura
whsec_8f3k…2m9p
Usado no cabeçalho X-Doare-Signature. Guarde como senha.
Falhas são reenviadas com intervalo crescente por 24 horas. Depois disso, o evento fica em Entregas para reenvio manual.
CancelarSalvar e enviar teste
Um endpoint novo: URL, eventos, o segredo de assinatura e a regra de reenvio.
  1. Tenha uma URL HTTPS que aceite POST

    Seu sistema, ou um webhook do Zapier/Make.

  2. Em Integrações › Webhooks, clique em Novo endpoint

    Cole a URL e marque os eventos.

  3. Guarde o segredo de assinatura

    É com ele que o seu sistema confere que a chamada veio da Doare.

  4. Salve e envie o teste

    Um evento de teste chega na hora. Confira o log do seu lado.

O payload

POST na sua URL · donation.paid
{
  "id": "evt_01J7X4K9M2",
  "type": "donation.paid",
  "created_at": "2026-09-07T14:32:10-03:00",
  "data": {
    "id": 4831207,
    "doador_id": 90214,
    "doador_nome": "Carlos Eduardo Lins",
    "doador_email": "carlos@exemplo.com.br",
    "data": "2026-09-07T14:32:08-03:00",
    "status": "pago",
    "moeda": "BRL",
    "valor_bruto": 100.00,
    "valor_liquido": 96.01,
    "forma_pagamento": "pix",
    "tipo_captacao": "crowdfunding",
    "recorrente": false,
    "id_assinatura": null,
    "campanha": "Bolsas de Estudo 2026",
    "utm_source": "instagram",
    "utm_medium": "bio",
    "utm_campaign": "bolsas-set"
  }
}
  • id é único por evento: use-o para ignorar duplicatas.
  • type diz o evento; data tem o objeto, com os mesmos campos da API de transações.
  • CPF/CNPJ do doador não vai no webhook; consulte pela API quando precisar.
  • Datas em ISO 8601 com fuso.

Segurança e confiabilidade

Conferir a assinatura (Node.js)
const crypto = require('crypto');
const esperado = crypto.createHmac('sha256', SEGREDO).update(corpoBruto).digest('hex');
const ok = crypto.timingSafeEqual(Buffer.from(esperado), Buffer.from(req.headers['x-doare-signature']));
  • Assinatura: HMAC-SHA256 do corpo bruto com o segredo, no cabeçalho X-Doare-Signature. Rejeite o que não confere.
  • Resposta: 2xx em até 10 segundos. Processe depois, em fila, se for demorar.
  • Reenvio: falha (timeout, 5xx) gera novas tentativas com intervalo crescente por 24 horas. Depois, o evento fica em Entregas para reenvio manual.
  • Idempotência: guarde o id do evento processado e ignore repetições.
  • Ordem: não é garantida. Um donation.refunded pode chegar antes do donation.paid em caso de reenvio; use as datas.

Nunca use o webhook como única fonte da verdade financeira. Ele é um aviso; a confirmação é a API ou o painel. Para conciliação, use a exportação.

Webhooks sem código

Zapier, Make e ferramentas parecidas oferecem uma URL de webhook que aceita o POST e deixa você montar o resto por cliques: uma linha na planilha, uma mensagem no Slack, um contato no HubSpot. Cadastre a URL deles como endpoint, marque donation.paid, e monte o fluxo lá. É o caminho para a maioria das organizações.

Este artigo respondeu sua dúvida?

Dúvidas rápidas

Perguntas frequentes

Vários. Um por sistema é o normal: produção, homologação, Zapier.

Não. Só a partir da criação do endpoint. Para o histórico, use a API.

Sim, em Entregas, no menu do endpoint: cada evento tem Reenviar.

Os eventos são reenviados por 24 horas. Depois, ficam em Entregas para reenvio manual, sem perda.

Gere um novo no menu do endpoint; o antigo para de valer na hora. Atualize o seu sistema.

Pronto para captar mais com a Doare?

Sem compromisso · 30 min · Resposta em até 24h