A versioned REST API and HMAC-signed webhooks let you push calibration data to your ERP, trigger automation workflows, and build custom integrations.
import crypto from "crypto";
export function verifyLabSync(
body: string,
header: string,
secret: string
): boolean {
const parts = Object.fromEntries(
header.split(",").map(p => p.split("="))
);
const expected = crypto
.createHmac("sha256", secret)
.update(`${parts.t}.${body}`)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(`v1=${expected}`),
Buffer.from(parts.v1 ? `v1=${parts.v1}` : "")
);
}
// Express example
app.post("/webhook", (req, res) => {
const sig = req.headers["x-labsync-signature"];
if (!verifyLabSync(req.rawBody, sig, SECRET)) {
return res.status(401).send("Invalid signature");
}
const { event, data } = req.body;
// handle event...
res.json({ ok: true });
});Subscribe to any combination of events. Each delivery includes the full object payload.
job.createdNew calibration job receivedjob.completedJob finished, cert readycertificate.issuedCertificate signed and availableinvoice.issuedTax invoice createdinvoice.paidPayment confirmedinvoice.overdueInvoice past due dateportal.slip_receivedCustomer uploaded payment sliplab.approvedLab verified and approvedClean, predictable JSON API under /api/v1/*. Authenticate with API keys scoped to read/write/admin. Rate-limited per key. OpenAPI schema available.
Stripe-style t=timestamp,v1=signature header on every delivery. Verify authenticity in your receiver with 3 lines of code. Delivery log with retry status in the admin panel.
Failed webhook deliveries are retried automatically: 30s, 5m, 30m, 2h, 8h, 24h. Permanently failed after 6 attempts â notified via Sentry for oncall.
Create multiple API keys with read, write, or admin scope. Revoke instantly. Each key shows last-used date and request count. Rotate without downtime.
Pre-built n8n workflow templates for common automations: new signup email, new article â social, lab approval, cert-expiry notify. Webhook trigger works with any automation platform.
Every webhook delivery is logged â payload, response code, response body, latency, and retry count. Inspect any delivery in the admin panel to debug integration issues.
API keys are available on all paid plans. Free trial includes full API access for 14 days.