Paystack
Receive Paystack payment events in Wexio flows
Wexio verifies the x-paystack-signature header, an HMAC-SHA512 of the raw body. The signature carries no timestamp, so there is no replay protection. Inbound webhooks need the Pro or Enterprise plan.
Provider docs: Setting up webhooks in Paystack
Setup
1. Connect It in Wexio
Go to Settings → Webhooks and API → Webhooks → New connection → Inbound and click the Paystack chip under Dedicated providers, or set Authentication mode to Paystack manually. Copy the Wexio endpoint URL.
2. Set Up the Provider
In the Paystack Dashboard, open Settings → API Keys & Webhooks and set the webhook URL to the Wexio endpoint URL.
Paystack signs with your secret key (sk_live_… or sk_test_…). Copy it from Settings → API Keys & Webhooks → Secret key. Paste it into the Wexio Signing secret field.
Send X-Idempotency-Key where you can, because a captured request can be sent again.
3. Resolve Contacts
Pick the field in the Paystack payload that matches a Wexio contact, for example $.data.customer.email. Capture a sample event to see the payload shape, as described in Inbound Webhooks.
4. Bind a Flow
Attach a Webhook Received trigger to the connection and branch on the event type field in the payload.
Check That It Works
Trigger a Paystack event, then open Webhook History. A request that passed verification is listed as received. A failed one shows its error.
Troubleshooting
| Symptom | Fix |
|---|---|
UNAUTHORIZED: HMAC signature mismatch | The secret key is wrong. Copy it again from Paystack |
UNAUTHORIZED: Missing x-paystack-signature header | The request did not come from Paystack, or a proxy removed the header |
Related
- Inbound Webhooks - auth modes, contact resolution and response codes
- Webhook Received - the trigger that starts your flow
- Webhook History - check why a request failed