McTaba Labs logo
Software EngineeringThe WhiteboardProjectsEventsMasterclassesWebinarsLearn
Book Call

500+ developers already in the community

Get answers, find accountability partners, and stay ahead

Join Discord →
McTaba Labs logo

Educating 1 million students in tech by 2030.

Programs

  • HighSchool Graduates Launchpad
  • AI & Business Automation
  • Corporate Training
  • McTaba Story & Mission
  • Full-Stack Curriculum
  • Course Pricing & Plans
  • Frequently Asked Questions

Resources

  • Join Discord Community
  • Tech Events in Nairobi
  • Masterclasses
  • Free Resources
  • Learn
  • Campus
  • Africa Tech Talent Report
  • Partner With Us
  • Start a Project
  • Our Work

Contact Us

  • 124 Manyani East Road, Lavington, Nairobi
  • +254727795603
  • Book a Discovery Call

Office Hours:

Mon-Fri: 9am - 2pm EAT

Sat: 10am - 12pm EAT

© 2027 McTaba Labs - A product of Edtech Industries. All rights reserved.

Privacy PolicyTerms of ServiceRefund Policy
  1. Learn
  2. Paystack for African Developers
  3. Paystack Payment Pages: When No-Code Beats Code
Bonaventure OgetoBy Bonaventure Ogeto|Updated July 20, 2026

Paystack Payment Pages: When No-Code Beats Code

Paystack Payment Pages are hosted payment forms you create from the dashboard or API. Each page has a unique URL you share with customers. They support fixed or variable amounts, custom fields, and multiple payment channels. Use them when you need to collect payments quickly without building a checkout flow: event registrations, donations, product launches, or freelance invoicing.

In this article

  1. 1. What Payment Pages Are
  2. 2. Creating a Payment Page via Dashboard
  3. 3. Creating a Payment Page via API
  4. 4. Fixed vs Flexible Amounts
  5. 5. Custom Fields on Payment Pages
  6. 6. When to Switch to Code
  7. 7. Tracking Payments from Pages
  8. 8. Stay Up to Date

What Payment Pages Are

A Paystack Payment Page is a hosted web page where customers can make payments. You create the page, specify what it is for, set the amount (or let the customer choose), and Paystack gives you a URL like https://paystack.com/pay/your-event. Share that URL anywhere: WhatsApp, email, social media, printed flyers. When someone clicks it, they see a payment form and can pay immediately.

Payment pages require zero code. You do not need a website, a server, or any technical setup. They are Paystack's fastest path from "I need to collect money" to "money is in my account."

Common uses:

  • Event registration: "Pay N5,000 to register for DevFest Lagos" with a link on the event poster
  • Donations: "Support our cause" with a flexible-amount page
  • Freelance invoicing: Send a client a payment page link instead of bank details
  • Product pre-orders: "Pre-order the new merch" before your e-commerce site is ready
  • Class or course fees: Collect tuition for workshops, bootcamps, or tutoring sessions
  • Quick product sales: Selling a few items without building a full store

Creating a Payment Page via Dashboard

The fastest way to create a payment page is through the Paystack dashboard:

  1. Log in to your Paystack dashboard
  2. Navigate to Payment Pages
  3. Click "Create New Page"
  4. Fill in the page name, description, and amount
  5. Optionally add custom fields (phone number, address, etc.)
  6. Set the page URL slug
  7. Publish the page

The dashboard gives you a shareable URL and optionally an embed code if you want to put the payment form on an existing website using an iframe.

Dashboard-created pages are great for non-technical team members. Your marketing team can create a payment page for an event without involving engineering.

Get weekly developer tips

Join 25,000+ developers. Practical guides, job tips, and new content — straight to your inbox.

No spam. Unsubscribe anytime.

Creating a Payment Page via API

For programmatic creation, use the Paystack Page API:

async function createPaymentPage(name, amount, description, slug) {
  var response = await fetch('https://api.paystack.co/page', {
    method: 'POST',
    headers: {
      Authorization: 'Bearer ' + process.env.PAYSTACK_SECRET_KEY,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      name: name,
      amount: amount, // In kobo. Set to 0 for flexible amount.
      description: description,
      slug: slug, // Custom URL slug
      redirect_url: 'https://yoursite.com/thank-you',
      metadata: {
        custom_fields: [
          {
            display_name: 'Phone Number',
            variable_name: 'phone',
            required: true,
          },
          {
            display_name: 'Full Name',
            variable_name: 'full_name',
            required: true,
          },
        ],
      },
    }),
  });

  var data = await response.json();

  if (data.status) {
    return {
      slug: data.data.slug,
      url: 'https://paystack.com/pay/' + data.data.slug,
      id: data.data.id,
    };
  }

  throw new Error('Failed to create page: ' + data.message);
}

// Create a page for an event
var page = await createPaymentPage(
  'DevFest Lagos 2026 Registration',
  500000, // 5,000 NGN
  'Register for DevFest Lagos 2026. Includes lunch and a t-shirt.',
  'devfest-lagos-2026'
);
console.log('Page URL: ' + page.url);

The API is useful when you need to create pages dynamically: generating a payment page for each new workshop, product, or campaign without manual dashboard work.

Fixed vs Flexible Amounts

Fixed amount: Set a specific amount and every customer pays exactly that amount. Use for products, event tickets, or service fees with a defined price.

Flexible amount: Set the amount to 0 (or omit it in the dashboard) and the customer enters their own amount. Use for donations, tips, custom orders, or "pay what you want" models.

You can also set a minimum amount with flexible pricing to ensure the customer does not pay less than a threshold:

// Flexible amount with minimum
var response = await fetch('https://api.paystack.co/page', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer ' + process.env.PAYSTACK_SECRET_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Support Our Cause',
    amount: 0,  // Flexible
    description: 'Make a donation. Minimum N1,000.',
    slug: 'support-our-cause',
  }),
});

With fixed amounts, the customer cannot change the price. This is the right choice when the price is non-negotiable.

Custom Fields on Payment Pages

Custom fields let you collect information beyond email and amount. The customer fills in additional fields on the payment page before paying.

Common custom fields:

  • Phone number: For sending receipts or event details via SMS
  • Full name: For personalized receipts or certificates
  • T-shirt size: For event merchandise
  • Company name: For B2B invoicing
  • Delivery address: For physical product sales

Custom field data appears in the transaction metadata. When you view the transaction on your dashboard or receive a webhook, the custom field values are in data.metadata.custom_fields.

You can mark fields as required or optional. Required fields must be filled before the customer can proceed to payment.

When to Switch to Code

Payment pages are great for getting started, but they have limitations. Switch to a code-based integration (Initialize Transaction with your own frontend and backend) when you need:

  • Automated fulfillment: Payment pages do not trigger your server code. If you need to automatically send a download link, activate an account, or generate a ticket after payment, you need a webhook handler connected to your own backend.
  • Inventory management: Payment pages do not track stock. If you are selling 50 t-shirts and 50 people pay, you need your own system to stop selling when inventory hits zero.
  • Dynamic pricing: If the price depends on options the customer selects (size, quantity, add-ons), you need custom code to calculate the total.
  • User accounts: If the payment needs to be linked to a user account on your platform, you need server-side logic to associate the transaction with the logged-in user.
  • Custom branding: Payment pages show Paystack's branding. If you need your own branded checkout experience, build a custom integration.
  • Multiple products in one cart: Payment pages are one product per page. For a shopping cart with multiple items, you need a custom checkout.

Many businesses start with payment pages, validate demand, and then build a custom integration when volume and requirements justify the development effort. This is a smart approach.

Tracking Payments from Pages

Even without code, you can track payments from payment pages in several ways:

  • Paystack dashboard: View all transactions under the Transactions tab. Filter by the payment page name to see payments for a specific page.
  • Email notifications: Paystack sends you an email for each successful payment. Configure this in your dashboard settings.
  • Transaction export: Export transactions to CSV for reconciliation in a spreadsheet.
  • Webhooks: If you have a server and want real-time notifications, configure a webhook URL. Payments from payment pages generate the same charge.success webhook as any other Paystack transaction.

For more on webhooks, see the complete webhook engineering guide. For transaction exports, see transaction export and reporting.

Stay Up to Date

Paystack updates payment page features periodically, including new custom field types and page management options.

Sign up for the McTaba newsletter to stay informed about Paystack features and integration guides.

Key Takeaways

  • ✓Payment pages are hosted forms on paystack.com with unique URLs. No website, no server, no code needed.
  • ✓Create pages from the Paystack dashboard for quick setup, or use the API for programmatic creation.
  • ✓Pages support fixed amounts (everyone pays the same) or flexible amounts (customers enter their own amount).
  • ✓Custom fields let you collect additional information (name, phone, address) alongside payment.
  • ✓Payment pages handle all payment channels automatically: card, bank transfer, USSD, mobile money.
  • ✓Switch to a code-based integration when you need server-side verification, inventory management, dynamic pricing, or automated fulfillment.

Frequently Asked Questions

Can I use a custom domain for my payment page?
Payment pages are hosted on paystack.com and use the paystack.com/pay/ URL format. You cannot use your own domain for the page. If you need a custom domain, build a checkout page on your own site using Initialize Transaction and link to it from your domain.
Can I limit the number of payments a page accepts?
The Paystack dashboard may offer an option to set a payment limit or deactivate a page after a certain number of payments. If not available in the dashboard, you would need to monitor payment count manually and deactivate the page when the limit is reached.
Do payment pages support recurring payments?
Payment pages are designed for one-time payments. For recurring billing, use Paystack subscriptions or build a custom integration with saved authorization codes.
Can I embed a payment page on my website?
Yes. Paystack provides an embed code (an iframe snippet) for each payment page. You can paste this code into your website HTML to display the payment form inline on your page.
What payment channels are available on payment pages?
Payment pages support all payment channels enabled on your Paystack account: card, bank transfer, USSD, mobile money, QR, and Apple Pay. You cannot restrict channels on a per-page basis through the dashboard.

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

Keep reading

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.

Read more

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.

Read more

Paystack Customer Objects: Create, Fetch, Update, Whitelist

Paystack creates a customer object every time a new email hits your checkout. You can also create customers explicitly, update their details, fetch their transaction history, and whitelist or blacklist them for risk control. This guide covers every operation with working Node.js code.

Read more

Building a Wallet Top-Up Flow on Paystack

A step-by-step guide to building wallet top-up flows with Paystack. Initialize payment, handle webhooks, credit wallets safely, enforce minimum amounts, and prevent double-crediting in production.

Read more

charge.success: The Only Event Most Apps Actually Need

The charge.success event tells you that money moved from a customer to your Paystack balance. For most applications, this is the only webhook event you need to handle. This guide breaks down the payload field by field and shows you the minimum viable handler.

Read more

Explore related topics

M-Pesa & African Stack

M-Pesa Daraja API tutorials, USSD development, and WhatsApp Business API guides. The African Stack that global bootcamps do not teach.

Learn to Code in Kenya

Everything a Kenyan needs to know before writing their first line of code. Career paths, real costs, hardware requirements, and honest answers about what it takes.

Learning to Code

Roadmaps, language guides, and practical advice for learning to code and launching a programming career.

Breaking Into Tech

Practical, no-nonsense guides for anyone looking to start or change their career in tech. From choosing your first language to acing interviews.

The African Stack: Skills for This Market

The skills that make Kenyan developers hard to replace: M-Pesa, USSD, WhatsApp, fintech, and building for the African market.

Bonaventure Ogeto

Bonaventure Ogeto

Founder, McTaba Labs

Bonaventure is the founder of McTaba Labs, a coding bootcamp in Nairobi, Kenya. He has spent years building products for the African market and mentoring the next generation of developers across the continent.