1.
Read the original HTTP request body.
2.
Read the X-VM-SIGN request header.
3.
Base64-decode the signature.
4.
Use the VM Webhook verification public key to perform RSA-SHA256 signature verification.
5.
Parse and process the JSON only after signature verification succeeds.
6.
Reject the message if signature verification fails.
Do not use the merchant's own public key for verification.
Do not use the API public key configured for the merchant's requests to VM.
VM's private key will not be provided to the merchant.
Sandbox and Production public keys must be obtained separately and must not be assumed to be interchangeable.
The public key and its SHA-256 fingerprint should be obtained through a controlled channel.