Webhooks & Events
Receive real-time HTTP POST notifications on your servers when QR scans occur or new leads are captured.
1. Supported Event Types
| Event Name | Trigger Description |
|---|---|
| scan.recorded | Triggered whenever an end-user scans a dynamic QR code. |
| qr.created | Triggered when a new QR code is registered in the workspace. |
| qr.updated | Triggered when a destination URL or design configuration is updated. |
| document.uploaded | Triggered when a new PDF or image document is uploaded. |
| lead.captured | Triggered when a scanner submits a contact form on a landing page. |
2. HMAC-SHA256 Signature Verification
Every webhook payload includes an x-qrsimple-signature HTTP header generated using your workspace webhook secret:
const crypto = require('crypto');
function verifyWebhook(payloadRaw, signatureHeader, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payloadRaw)
.digest('hex');
return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signatureHeader));
}