Troubleshooting
Common issues and solutions
Last updated
Common issues and solutions
1. Signature Verification Fails
Problem: The computed signature doesn't match the received signature.
Solutions:
β Ensure you're using the raw request body (not parsed JSON)
β Verify you're using the correct Secret Key from your merchant settings
β Check that you're computing HMAC-SHA256 (not SHA256)
β Ensure the output is a lowercase hex string
β Remove any whitespace/line breaks from the secret key
2. Webhooks Not Being Received
Checklist:
β Is your endpoint publicly accessible?
β Is it using HTTPS?
β Is there a firewall blocking Paymento's servers?
β Is the webhook URL correctly configured in the payment link?
β
Are you returning a 200 status code quickly?
3. Receiving Duplicate Webhooks
Solution: This is expected behavior. Implement idempotency using event.id (see Best Practices #4).
4. Timeout Errors
Problem: Your endpoint takes too long to respond. Solution: Move heavy processing to background jobs and respond immediately.
Last updated
// β Wrong - Using parsed JSON
const signature = crypto
.createHmac('sha256', secretKey)
.update(JSON.stringify(req.body)) // β Don't stringify
.digest('hex');
// β
Correct - Using raw body
const signature = crypto
.createHmac('sha256', secretKey)
.update(req.rawBody) // β
Use raw body
.digest('hex');