Skip to main content

Paystack

Accept international cards, mobile money, and bank transfers using Paystack's hosted checkout.

Collect payments with Paystack

Paystack utilizes a hosted checkout model: Nukta initializes a transaction, redirects the customer's browser to Paystack's secure authorization page, and cryptographically verifies the result against Paystack before crediting customer accounts.

  • Supported Regions: Available in the regional catalog for Kenya, Rwanda, Ghana, Côte d'Ivoire, South Africa, Egypt, and Nigeria.
  • Payment Channels: International and regional debit/credit cards (Visa, Mastercard, Verve), mobile money, Apple Pay, and bank transfers (depending on what Paystack has enabled on your merchant account).

Before you start

  • Complete merchant onboarding with Paystack in an account registered to your ISP, ensuring business verification is finalized so live keys are issued.
  • From your Paystack Dashboard, obtain your Live Secret Key (sk_live_...) and Live Public Key (pk_live_...).
  • Plan your Hotspot Walled Garden: Because the customer's browser must reach Paystack's external checkout servers, an unauthenticated Wi-Fi customer cannot pay unless Paystack's domains are permitted before login.

Configuring the gateway

  1. In your Nukta dashboard, navigate to Settings → Payments.
  2. Select Paystack from the payment marketplace.
  3. Configure your API credentials:
    • Secret Key: Required string starting with sk_live_. This is stored as a secret and is not echoed back into the form after saving.
    • Public Key: Required string starting with pk_live_.
  4. Click Save Settings to switch the gateway live. (Switching payment gateways may request a secure action OTP).
CAUTION
Live Production Keys Only

This form strictly expects production live keys (sk_live_... and pk_live_...). Never paste test keys (sk_test_...) into production settings—a test secret initializes transactions that simulate success without transferring actual money, creating discrepancies that are easy to overlook.

  1. Allow Paystack through the captive walled garden: Add Paystack's checkout domain to the walled garden on every Hotspot router, then confirm from a device that is not yet authenticated. See Hotspot Captive Portal.
  2. Run a Controlled Test: Make a small test payment from an unauthenticated mobile device on your captive portal. Verify that the payment completes and appears in Finance → Payments under the Paystack method.

Credentials reference

FieldRequiredNotes
Secret KeyYesSecret (masked after save). Must be a live key (sk_live_...).
Public KeyYesMust be a live public key (pk_live_...).

Callback URLs

Under Settings → Payments, your workspace displays your pre-configured callback URL:

https://{subdomain}.nukta.one/api/payments/paystack/callback

Paystack redirects the customer back to this address following checkout completion to finalize verification.

Customer checkout experience

  • Customer Input: The customer interacts directly with Paystack's hosted payment screen, selecting their preferred payment method (credit/debit card, mobile money, or bank transfer).
  • Pre-Set Amount: The invoice or package amount and unique reference are locked before the customer reaches Paystack.

How transactions complete

Initialize Transaction → Redirect to Paystack → Customer Authorizes → Return & Server Verification → Service Activated
  1. Initialize: Nukta calls https://api.paystack.co/transaction/initialize with the package price and customer email, receiving a secure checkout authorization URL.
  2. Payment: The customer's browser navigates to Paystack's hosted page, where they enter card details or authorize mobile money.
  3. Verification: Upon return, Nukta verifies the transaction reference directly against Paystack's server API. Only transactions reported as successfully settled by Paystack are credited and activated—the client redirect alone is never trusted as proof of payment.
  4. Duplicate Protection: Repeated verifications of an already-settled reference are rejected as duplicates, preventing double-crediting.
NOTE
Bank Settlement vs. Ledger

Paystack settles accumulated customer funds into your bank account according to their standard payout schedule. Always reconcile your ledger records against your Paystack settlement payouts.

Troubleshooting

SymptomCauseRecommended Action
"Payment initiation failed: Paystack secret key not configured..."The secret key is missing or blank in workspace settings.Re-enter your live secret key in Settings → Payments and save.
"Payment initiation failed: Paystack API request failed with status: 401..."Paystack rejected the secret key.Verify you copied the key correctly. Ensure your business account is fully activated and the key is live (sk_live_...).
"...Payment authorization URL not found in Paystack response"Paystack accepted the request but failed to generate a checkout URL.Retry the transaction. If it persists, contact Paystack support with the transaction reference.
The checkout page never loads on a Hotspot deviceThe walled garden does not allow Paystack.Allow Paystack’s checkout domain pre-authentication — see Captive device cannot reach checkout.
"Payment not successful"The transaction completed verification, but Paystack marked the status as failed.Have the customer check with their bank or mobile wallet provider. No package is applied.
"Payment reference not found"The verified reference does not match any pending checkout session in your Nukta workspace.Contact Nukta support with the Paystack transaction reference for trace verification.
Funds visible in Paystack but not in bank accountPaystack settles according to periodic payout schedules.Check your Paystack payout settings and bank statement dates.

For a complete overview of all gateway parameters in one place, see the Gateway Credential Reference. For broader transaction inquiries, consult Payment Troubleshooting.