Skip to main content
Use Hookdrop as your Paystack webhook URL to capture payment, transfer, subscription, and invoice events — and inspect every payload in real time without a public endpoint.

Setup

1

Open API Keys & Webhooks settings

Go to the Paystack Dashboard and navigate to Settings → API Keys & Webhooks.
2

Paste your Hookdrop URL

In the Webhook URL field, enter your capture URL:
https://hookdrop.dev/in/{your-token}
Replace {your-token} with the token shown on your Hookdrop dashboard.
3

Save changes

Click Save. Paystack will begin sending events to your Hookdrop URL immediately.
Paystack supports one webhook URL per account (live and test environments each have their own). Make sure you set the URL in the correct environment — use your test-mode secret key and Hookdrop URL together when building.

Common events

EventWhen it fires
charge.successA payment completes successfully
transfer.successA transfer to a recipient completes
subscription.createA new subscription is created
invoice.createA subscription invoice is generated

Signature verification

Paystack signs every webhook request with an X-Paystack-Signature header containing an HMAC SHA-512 hex digest. Verify it in your handler before processing any event.
paystack-webhook.ts
import crypto from 'crypto'

const verifyPaystackWebhook = (
  payload: string,
  signature: string,
  secret: string
): boolean => {
  const expected = crypto
    .createHmac('sha512', secret)
    .update(payload)
    .digest('hex')

  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature)
  )
}
Use your secret key (not the public key) as the secret parameter. Find it in Paystack Dashboard → Settings → API Keys & Webhooks.
Paystack uses SHA-512, not SHA-256. Using the wrong algorithm will cause every verification check to fail.

Testing locally

Point your Paystack test-mode webhook URL at your Hookdrop capture URL. Every test charge and transfer appears in your Hookdrop dashboard instantly — replay any event to your handler without re-running a payment flow each time.

Back to quickstart

Return to the quickstart guide to set up your first Hookdrop endpoint.