In production fintech applications, the client-side price is never trusted. When Paystack completes a payment, it dispatches an asynchronous HTTP POST webhook to your backend with a cryptographic signature header: x-paystack-signature.
if (hash === req.headers['x-paystack-signature']) { // 1. Atomic DB transaction: mark slot as PAID // 2. Trigger receipt email via Resend
res.sendStatus(200);
}
Test Webhook Payload SignatureSimulate incoming `charge.success` event