VillageHub Create Account
Payments

Paystack

Configure Paystack as a payment gateway for subscribers in Kenya, Ghana, South Africa, Nigeria, and more. Supports card, bank transfer, mobile money, and USSD payments.

You need a Paystack business account. Sign up at dashboard.paystack.com.

Paystack is available when your country is one of: Kenya (KE), Ghana (GH), South Africa (ZA), Nigeria (NG), Rwanda (RW), Côte d'Ivoire (CI), or Egypt (EG).

How It Works

Paystack uses a redirect-based checkout, which differs from M-Pesa's STK push:

1.Subscriber selects a package and enters their phone number on the captive portal
2.They are redirected to Paystack's hosted checkout page
3.They pay via card, bank transfer, mobile money, or USSD
4.After payment, they are redirected back and the package activates automatically

Supported Payment Channels

Card

Visa, Mastercard, Verve

Bank Transfer

Direct bank debit

Mobile Money

M-Pesa, Airtel Money, MTN

USSD

Dial-based payments

Setup Guide

1

Get Your API Keys

Log in to Paystack DashboardSettingsAPI Keys & Webhooks. Copy both keys:

Public KeyStarts with pk_live_...
Secret KeyStarts with sk_live_...
2

Enter Keys in VillageHub

Admin PanelSettingsPayment Integration. Select Paystack and paste your Public Key and Secret Key.

Use your live keys for production. Test keys won't process real payments.
3

Set Your Webhook URL

In the Paystack dashboard under API Keys & Webhooks, set your webhook URL:

Webhook URL
https://isp.village-hub.net/api/payments/paystack/callback/{subdomain}

Replace {subdomain} with your VillageHub subdomain (e.g. myisp).

4

Test the Integration

Use Paystack's test mode first. Create a test transaction from the captive portal and verify it appears in both your Paystack dashboard and VillageHub payment logs.

Paystack test cards: 4084 0840 8408 4081 (success) or 4084 0840 8408 4042 (failure).

Paystack is live!

Subscribers can now pay via card, bank transfer, mobile money, and USSD through Paystack.

Troubleshooting

Payment redirects but doesn't activate package

Check that your webhook URL is correctly set in the Paystack dashboard and that your server is accessible from the internet. Verify webhook signature validation isn't failing (check server logs for [PAYSTACK] entries).

Checkout page not loading on captive portal

Ensure *.paystack.com and *.paystack.co are in your MikroTik walled garden. VillageHub's auto-provisioning includes these by default.

"Paystack is not enabled" error

Go to Admin PanelSettingsPayment Integration and ensure the gateway is set to Paystack (not another provider).