/quote, /confirm, and /ping request we send carries an X-Novig-Signature header.
Check it on every request.
A valid signature proves the request came from us and that nobody changed the body on the way.
How we sign
The signature is a BLAKE3 keyed hash of the raw request body.
Your shared secret comes from the
POST /rfq/pricer response. Registration explains it.
Check a signature
Use a BLAKE3 library and a constant-time comparison.verify the raw body as bytes and the value of the X-Novig-Signature header.
Reject a bad signature
Return401 when the signature doesnβt match.
Donβt process the body, echo it back, or log the signature.
Never answer a bad signature with a 2xx status.
A 2xx tells the sender you accepted the request.
Test your check
CallPOST /rfq/pricer/ping.
We send a real signed request to your /ping handler and report how you answered.
Run it before any live RFQ depends on your check.
