McTaba Labs logo

Paystack for African Developers

Paystack is how most African startups accept their first payment. But knowing the API docs is not the same as knowing how to build a production payment system. This hub is the engineering guide that Paystack's own documentation does not provide.

These guides cover the full surface: accepting payments, webhooks, verification, recurring billing, transfers, split payments, terminal, identity verification, security, testing, and building real products on top of it all. Every code example runs. Every claim is sourced or marked for verification.

  • Step-by-step integration guides for every major framework and language
  • Troubleshooting guides for every common Paystack error
  • Kenya-specific guides: M-Pesa through Paystack, Pesalink, Daraja comparisons
  • Project build guides: real applications with payment flows you can ship
  • Career guides: how to get paid to build payment integrations

If you already know M-Pesa from our M-Pesa and African Stack hub, start with Paystack in Kenya to understand how the two fit together. If you are new to payment integrations entirely, start with the complete engineering guide.

At McTaba Labs, payment integration is not optional. Every developer who graduates our programme has shipped code that moves real money. These guides are the public version of what we teach.

Articles in this topic

Paystack: The Complete Engineering Guide for African Developers

Everything an African developer needs to integrate Paystack: accepting payments, verifying transactions, handling webhooks, recurring billing, transfers, split payments, M-Pesa in Kenya, security, testing, and common errors. Code examples in Node.js.

guide

Accepting Payments with Paystack: Complete Guide

Everything you need to accept your first payment with Paystack: choosing between Initialize Transaction and the Charge API, handling amounts in kobo, attaching metadata, setting callback URLs, and designing transaction references that keep your system clean.

guide

How Paystack Accept Payments Actually Works Under the Hood

Most tutorials show you the API call and skip to "payment successful." This guide traces what actually happens between your server, Paystack, the card networks, the issuing bank, and the acquiring bank. Every step, every handshake, every place things can fail.

guide

Initialize Transaction vs Charge API: Which Paystack Endpoint to Use

Paystack gives you two ways to collect payments: Initialize Transaction and the Charge API. One gives you a hosted checkout in minutes. The other gives you full control but demands more code. This guide walks through both with code examples and a decision matrix so you pick the right one.

guide

Why You Must Never Call the Paystack API From Your Frontend

Putting your Paystack secret key in frontend JavaScript is the most dangerous mistake in payment integration. This guide shows exactly what goes wrong, why CORS will also fight you, and the correct pattern: frontend talks to your server, your server talks to Paystack.

guide

Paystack Popup (InlineJS) Explained Line by Line

Paystack Inline JS lets you open a payment popup on your page instead of redirecting to Paystack. This guide breaks down V2 line by line: the script tag, PaystackPop constructor, every configuration option, onSuccess, onClose, onLoad callbacks, and the two checkout modes.

guide

Migrating from Paystack InlineJS V1 to V2

Paystack Inline.js v2 changes the script URL, the initialization pattern, and how callbacks work. This guide walks through every breaking change, shows you how to update your code, and flags the subtle differences that cause silent failures if you miss them.

guide

Paystack Access Codes: What They Are and How Long They Live

When you initialize a Paystack transaction, you get back both an authorization_url and an access_code. They point to the same checkout session, but they serve different purposes. This guide explains what access codes are, how long they remain valid, and what to do when one expires.

guide

Paystack Redirect Checkout vs Inline Checkout: Choosing Correctly

Paystack gives you two ways to present the checkout page: a full-page redirect to checkout.paystack.com, or an inline popup that overlays your site. Both collect payment identically. The difference is user experience, implementation complexity, and how you handle the post-payment flow.

guide

Understanding Kobo, Pesewa and Cents: Paystack Amount Handling

Paystack expects amounts in the smallest currency unit: kobo for Naira, pesewas for Cedis, cents for Rand, Shillings, and Dollars. This guide covers the conversion rules, the floating-point traps that cause wrong charges, and the helper functions that keep your amounts correct.

guide

Currency Handling in Paystack: NGN, GHS, ZAR, KES and USD

Paystack supports NGN, GHS, ZAR, KES, and USD, but each currency comes with different available payment channels, settlement behaviors, and account requirements. This guide covers what you need to know to handle currencies correctly in your integration.

guide

Paystack Payment Channels: Card, Bank, USSD, Mobile Money, QR

Paystack supports six payment channels: card, bank transfer, USSD, mobile money, QR, and Apple Pay. Each channel has different availability by market, different settlement behaviors, and different user experiences. This guide covers all of them so you know what your customers can use and what your code needs to handle.

guide

Restricting Payment Channels at Checkout in Paystack

By default, Paystack checkout shows all available payment channels. But there are good reasons to restrict which channels appear: instant confirmation requirements, amount limits, or simpler support. This guide shows you how to use the channels parameter and the decision logic behind when to restrict.

guide

Paystack Metadata: Passing Custom Data Through a Transaction

Paystack metadata lets you attach arbitrary JSON data to a transaction that flows through the entire lifecycle: from initialization to verification to webhooks. This guide shows you what to put in metadata, how to structure it for different use cases, and the limits you need to stay within.

guide

Using Paystack Custom Fields to Collect Extra Checkout Information

Paystack custom fields let you attach structured, human-readable data to a transaction that shows up on the checkout page, in your dashboard, and in webhook payloads. This guide covers display_name vs variable_name, common field patterns, and how to extract custom field data when the webhook arrives.

guide

Learn Paystack Integration

KES 2,999

The definitive guide to building payment systems with Paystack — from your first transaction to production-grade payment infrastructure across Africa. 9 modules, 47 lessons. Free preview available.

Start Paystack Course

Not ready? Create Free Account