Headers
Every signed delivery includes:
These header names are platform-level (the same string across white-label deployments).
Message format
- Use the raw body bytes as received (the exact JSON posted). Do not re-serialise the parsed object.
- The body already includes the
eventfield (for examplePayment.Updated) at send time.
Algorithms
- SHA-256 hash the message
- Verify with RSA PKCS#1 v1.5 against your org PEM public key
- Decode signature as standard Base64
VerifySignature / SignMessage using PKCS#1 private/public keys).
Steps
- Read
X-BoomFi-TimestampandX-BoomFi-Signature - Reject if the timestamp is outside your freshness window (for example ±5 minutes)
- Build
message = timestamp + "." + rawBody - Verify RSA signature with the public key from Configure Webhooks
- Parse JSON only after verification succeeds
- Confirm
org_id(ororg.id) matches your organisation
Code examples
TypeScript (Node.js)
Python
Go
Rotate keys
Rotate from Business settings orPATCH https://mapi.zbx.boomfi.xyz/v1/orgs/webhook-secret. Deploy the new public key to all verifiers before or during rotation, depending on your dual-key window.