Every Payvessel webhook is signed with your secret key and sent from a known IP address. Always verify both signals—and prevent duplicate processing—before performing irreversible business actions.Documentation Index
Fetch the complete documentation index at: https://docs.payvessel.com/llms.txt
Use this file to discover all available pages before exploring further.
Signature Verification
- Read the raw request body exactly as received.
- Compute an HMAC using SHA-512 with your secret (
PVSECRET-) as the key. - Compare the result with the
HTTP_PAYVESSEL_HTTP_SIGNATUREheader using a constant-time comparison.
IP Allowlist
Accept webhook requests only from the following Payvessel IP addresses:3.255.23.38162.246.254.36
X-Forwarded-For header; otherwise, fall back to the connection’s remote address.
Duplicate Prevention
- Store processed
transaction.reference(ortrackingReference) values in persistent storage. - Wrap webhook logic in idempotent database transactions.
- Return
200 OKonly after your state changes succeed; otherwise Payvessel will retry.
End-to-End Examples
The following implementations verify signature, validate IP addresses, guard against duplicates, and respond with appropriate status codes.Failure Handling
- Respond with
4xxfor security violations (invalid signature, unknown IP). - Respond with
5xxwhen internal processing fails so Payvessel retries automatically. - Implement alerting for repeated failures and monitor retry logs.
