API para desenvolvedores
Pare de consultar, nós avisamos
Cadastre uma URL e escolha eventos. Enviamos um POST assinado segundos após cada mudança e tentamos de novo por até 24 horas se falhar.
Eventos
rate.updatedUma cotação mudou em algum bancorate.best_changedA venda mais barata ou a compra mais alta mudourate.threshold_crossedUma cotação passou de um limite que você definiucbe.rate_changedA cotação do Banco Central mudougold.updatedOs preços do ouro mudaramsilver.updatedOs preços da prata mudaramtransfer.quotes_updatedOs preços dos provedores de transferência mudaramcertificate.createdUm banco lançou um novo certificadocertificate.rate_changedO rendimento de um certificado mudoutbill.auction_resultUm resultado de leilão de títulos do tesourofund.price_updatedO preço da cota de um fundo foi atualizadostatus.incidentUm incidente no serviço começou ou terminouO que enviamos
POST https://example.com/geneh
Geneh-Event: rate.best_changed
Geneh-Signature: t=1792118220,v1=5f2b9c1e7a
{
"id": "evt_01JB7Q2K",
"type": "rate.best_changed",
"created_at": "2026-10-16T00:37:00Z",
"data": {
"currency": "USD",
"side": "sell",
"previous": { "bank": "nbe", "rate": 53.52 },
"current": { "bank": "credit_agricole", "rate": 53.47 }
}
}Verifique a assinatura
Cada requisição é assinada com o segredo do seu endpoint usando HMAC SHA-256. Rejeite tudo que tiver mais de 5 minutos.
import crypto from "node:crypto";
function verify(rawBody, header, secret) {
const [t, v1] = header.split(",").map(p => p.split("=")[1]);
const mac = crypto.createHmac("sha256", secret)
.update(t + "." + rawBody).digest("hex");
const fresh = Math.abs(Date.now() / 1000 - t) < 300;
return fresh && crypto.timingSafeEqual(Buffer.from(mac), Buffer.from(v1));
}Entrega e novas tentativas
- Tempo limite
- Responda com 2xx em até 10 segundos
- Novas tentativas
- 8 tentativas em 24 horas, cada vez mais espaçadas
- Duplicados
- Um evento pode chegar duas vezes, então use o id para ignorar repetições
- Ordem
- Compare created_at, porque a ordem não é garantida
- Pausa
- Pausamos um endpoint após 3 dias de falhas e avisamos você por e-mail, e você pode reenviar o que perdeu
Seus endpoints
Os webhooks estão chegandoVocê vai adicionar endpoints aqui quando os webhooks abrirem. Eles vêm com o Pro e planos acima.
Em breve