DR0
ON0
SB0
OFF0
Webhooks
Subscribe to NovaELD events. We POST signed payloads to your URLs in real time.
Active subscriptions
2
Deliveries last 24h
187
Failures last 24h
0
Avg latency p50
64ms
| URL | Events | Status | Last delivery | 24h | Actions |
|---|---|---|---|---|---|
https://hooks.apex-tms.com/novaeld secret: whsec_…a3f8 · created 2026-04-15 | 3 events driver.status_change, load.delivered, vehicle.fault_code | Active | HTTP 200 · 47ms 2 min ago | 184 | |
https://ops.novatrans.us/api/eld-events secret: whsec_…b921 · created 2026-04-22 | 3 events anomaly.detected, compliance.coi_expiring, vehicle.malfunction | Active | HTTP 200 · 89ms 1 hr ago | 3 | |
https://legacy-tms.internal.net/webhook secret: whsec_…77ed · created 2025-11-20 | 1 event dvir.submitted | Paused | HTTP 502 · 30000ms yesterday | 0 |
Signature verification
Every webhook is signed HMAC-SHA256 with your endpoint's secret. Verify in Node:
import crypto from "node:crypto";
const sig = req.headers["x-novaeld-signature"]; // "t=<ts>,v1=<hex>"
const ts = sig.match(/t=(\d+)/)[1];
const v1 = sig.match(/v1=([a-f0-9]+)/)[1];
const expected = crypto
.createHmac("sha256", process.env.NOVAELD_WEBHOOK_SECRET)
.update(`${ts}.${rawBody}`)
.digest("hex");
if (!crypto.timingSafeEqual(Buffer.from(v1), Buffer.from(expected))) {
return res.status(401).end("bad signature");
}