BitBusca › Desenvolvedores › Webhooks

O dado novo vem até você, assinado e sem polling

Em vez de perguntar a cada minuto, cadastre um endpoint HTTPS e receba o evento quando acontece: intimação nova, edital novo, empresa aberta no seu filtro, créditos acabando. Cada entrega vem assinada com HMAC-SHA256.

Hoje: Um cron perguntando à API a cada minuto, gastando processamento e ainda chegando atrasado. Com a API: Cadastre um endpoint HTTPS e receba o evento quando acontece, assinado, com até 7 tentativas em 24 horas.

Sem custo por entrega · escopo webhooks · planos a partir de R$ 19,90/mês. Chave de teste grátis.

Conferir a assinatura (Node.js)

import crypto from 'node:crypto';

// corpo cru (string), como chegou — antes de JSON.parse
function assinaturaValida(corpo, cabecalho, segredo) {
  const partes = Object.fromEntries(cabecalho.split(',').map((p) => p.split('=')));
  const esperado = crypto.createHmac('sha256', segredo)
    .update(`${partes.t}.${corpo}`).digest('hex');
  const recente = Math.abs(Date.now() / 1000 - Number(partes.t)) < 300;
  return recente && partes.v1?.length === esperado.length &&
    crypto.timingSafeEqual(Buffer.from(partes.v1), Buffer.from(esperado));
}
POST https://seu-app.com/webhooks/bitbusca
X-BitBusca-Evento: licitacoes.edital
X-BitBusca-Entrega: ent_01J…
X-BitBusca-Assinatura: t=1793300000,v1=5f2c…

{
  "id": "evt_01J…",
  "tipo": "licitacoes.edital",
  "criadoEm": "2026-10-29T12:00:00Z",
  "ambiente": "producao",
  "dados": { "alerta": "alr_…", "edital": { "id": "ed_01J…" } }
}

Exemplo fictício, formato resumido. Referência completa: OpenAPI.

Por que integrar

Para quem é

O que chega em cada entrega

O que entrega

Endpoints e custo

Limites e proteção

Casos de uso

Prompt para Lovable, Cursor ou Bolt

Crie um endpoint POST /webhooks/bitbusca que leia o corpo cru, confira o cabeçalho X-BitBusca-Assinatura (t=<unix>,v1=<HMAC-SHA256 hex de "t.corpo" com o segredo em BITBUSCA_WEBHOOK_SECRET>), recuse se tiver mais de 5 minutos, responda 200 rápido e processe o evento pelo campo "tipo".

Use a API da BitBusca (base https://api.bitbusca.net/api). A especificação OpenAPI está em https://api.bitbusca.net/api/v1/openapi.json.
Autentique com o cabeçalho "Authorization: Bearer <chave>", lendo a chave da variável de ambiente BITBUSCA_API_KEY.
Nunca coloque a chave no código do navegador: faça as chamadas por uma função de servidor (edge function, API route ou backend).
Trate os erros pelo campo "code" da resposta: 402 NO_CREDITS (sem créditos), 429 RATE (respeite o cabeçalho Retry-After), 429 COTA_DIARIA (teto do dia atingido), 404 NOT_FOUND (mostre "nada encontrado", não é cobrado).
Comece com a chave de teste (bk_test_…), que devolve dados fictícios e não gasta créditos.

Perguntas frequentes

E se o meu servidor estiver fora do ar?

Tentamos de novo por 24 horas (1 min, 5 min, 30 min, 2 h, 6 h e 24 h) e você pode reenviar qualquer entrega pelo painel.

Como sei que o evento veio da BitBusca?

Confira a assinatura X-BitBusca-Assinatura com o segredo do webhook (HMAC-SHA256 de "t.corpo") e recuse eventos com mais de 5 minutos.

Recebo aviso no WhatsApp?

Não. Os avisos ao desenvolvedor vão por e-mail e webhook.

Funciona com n8n, Make ou Zapier?

Sim: qualquer ferramenta que receba POST em HTTPS. Confira a assinatura quando a ferramenta permitir.

Outras APIs

Todas as APIs e os planos

Farejando…