Idea+Cash Developers
Login
Webhooks

Configuração de webhooks

Cadastre endpoints HTTPS para receber, em tempo real, eventos de liquidação e devolução — sem precisar de polling.

Cadastrar webhook

POST/integration/v1/webhooks
Campos
CampoTipoDescrição
eventType*enumTipo de evento. Ver Catálogo de eventos.
endpointUrl*uri (https)URL HTTPS pública que receberá o POST do evento.
applicationIdstringIdentificador livre da sua aplicação consumidora.
enabledbooleanHabilita/desabilita a entrega (default true).
refuuidSua referência interna de configuração.
curl -X POST https://apiapp.dev.ideabank.com.br/integration/v1/webhooks \
  -H "Authorization: Bearer $TOKEN" \
  -H "tenantid: $TENANT_ID" -H "hostdevelop: apiapp.dev.ideabank.com.br" -H "Content-Type: application/json" \
  -d '{
    "eventType": "PIX_DYNAMIC_PAID",
    "endpointUrl": "https://minha-loja.com/webhooks/pix",
    "applicationId": "checkout-service",
    "enabled": true
  }'

Atualizar webhook

PUT/integration/v1/webhooks

Listar webhooks

GET/integration/v1/webhooks
{
  "data": [
    {
      "eventType": "PIX_DYNAMIC_PAID",
      "endpointUrl": "https://minha-loja.com/webhooks/pix",
      "applicationId": "checkout-service",
      "enabled": true
    }
  ],
  "results": 1
}

Para desativar uma entrega, use PUT com enabled: false — não há rota DELETE de webhooks.

Webhooks não exigem vínculo de conta
As rotas de webhook configuram a própria integração (por applicationId), não operam sobre uma conta — basta um token M2M válido, sem headers de conta.

Como sua aplicação recebe

O evento chega como um POST JSON. Responda rapidamente com HTTP 2xx:

app.post("/webhooks/pix", express.json(), async (req, res) => {
  const evt = req.body;
  // 1. Responda 2xx o mais rápido possível
  res.status(200).end();

  // 2. Enfileire o processamento (BullMQ, SQS, etc.) com idempotência por evt.id
  await queue.add("pix-event", evt, { jobId: evt.id });
});

Retries

  • Respostas fora de 2xx acionam retentativas com backoff exponencial.
  • Um mesmo evento pode chegar mais de uma vez — deduplique por id do evento.
  • Timeouts longos do seu lado degradam a fila. Devolva 2xx e processe em background.

Segurança do endpoint

  • Sempre HTTPS com certificado válido.
  • Se seu ambiente exigir, coordene lista de IPs de origem com o time Idea+Cash.
  • Assinatura HMAC-SHA256 do payload (header X-Idea-Signature) está no roadmap — ver Em breve.
Fonte de verdade
Webhook é notificação. Antes de faturar, liberar produto ou pagar seller, recupere o estado real consultando GET /integration/v1/pix/cob/{txId} ou GET /integration/v1/pix/transaction?endToEndId=.... A API de consulta é a fonte de verdade e permite reconciliar mesmo se um webhook falhar.

Ver: catálogo de eventos.