Paystack website screenshot

Paystack

Paystack is an African payment processor (acquired by Stripe in 2020) that lets businesses accept payments in Nigeria, Ghana, South Africa, Kenya, Côte d'Ivoire, and Egypt across cards, bank transfers, USSD, QR, EFT, and mobile money channels. Its single REST API covers one-time charges, recurring subscriptions, marketplace splits, dedicated virtual accounts, invoices, transfers (payouts), refunds, disputes, settlements, and KYC/identity verification — all wrapped in a developer experience that has made it one of the most respected public APIs on the continent.

14 APIs 19 Features
PaymentsAfricaFintechRecurring BillingMarketplacesPayoutsMobile MoneyStripe

APIs

Paystack Accept Payments API

Initialize, verify, charge, and manage one-time card, bank, USSD, mobile money, QR, and bank transfer payments. The Transaction and Charge resources are the core of Paystack — a...

Paystack Subscriptions API

Create plans and run recurring subscriptions against stored card authorizations. Includes plan management, subscription lifecycle (create / disable / enable), customer self-serv...

Paystack Customers API

Create, list, and update customer profiles; whitelist or blacklist customers via risk_action; deactivate stored authorizations; and run KYC validation against customer identities.

Paystack Transfers API

Send money out of your Paystack balance to bank accounts and mobile money wallets across supported markets. Covers transfer recipients, single and bulk transfers, OTP workflows,...

Paystack Splits and Subaccounts API

Build marketplaces by automatically splitting a single payment between the main account and multiple subaccounts. Configure percentage or flat splits, set fee-bearers, and manag...

Paystack Dedicated Virtual Accounts API

Provision dedicated NUBAN virtual bank accounts for individual customers so they can pay by bank transfer with automatic reconciliation back to the customer profile. Includes sp...

Paystack Products and Payment Pages API

Manage products in your Paystack inventory and assemble them into Paystack-hosted Payment Pages so you can collect payments without operating your own checkout.

Paystack Payment Requests API

Issue invoice-style payment requests to customers by email, with verification, notification, finalization, and archival flows.

Paystack Refunds and Disputes API

Process partial and full refunds against successful transactions and respond to cardholder disputes — including evidence upload via signed URL, resolution workflows, and exports.

Paystack Settlements API

Fetch settlement records and the underlying transactions that comprise each payout to your bank account.

Paystack Verification API

Identity, BVN, bank account, card BIN, country, bank, and address-verification lookups used to validate customers, beneficiary accounts, and cards before transacting.

Paystack Balance API

Fetch your Paystack balance per currency and read the balance ledger for treasury operations and reconciliation.

Paystack Integration Settings API

Read and update integration-wide settings such as the payment session timeout for hosted checkout.

Paystack Webhooks

Outbound webhook surface that notifies a single merchant-configured POST endpoint of transaction, dispute, refund, transfer, subscription, invoice, payment request, customer ide...

Collections

Arazzo Workflows

Paystack Add a Subaccount to an Existing Split

Create a new subaccount, add it to an existing transaction split, then fetch the split to confirm membership.

ARAZZO

Paystack Blacklist a Customer After a Dispute

List the disputes raised against a transaction, fetch the customer, then blacklist them and deactivate the card authorization.

ARAZZO

Paystack Bulk Recipients and Bulk Transfer

Bulk-create transfer recipients, list them to confirm registration, then initiate a bulk transfer to pay them all.

ARAZZO

Paystack Charge and Refund a Transaction

Initialize and verify a transaction, then create a refund against it and fetch the refund status.

ARAZZO

Paystack Create Charge and Submit OTP

Create a direct charge, branch when an OTP is required, submit the OTP, then check the final charge status.

ARAZZO

Paystack Create Charge and Submit PIN

Create a direct card charge, branch when a PIN is required, submit the PIN, then check the final charge status.

ARAZZO

Paystack Check Authorization and Partial Debit

Check that an authorization can bear a charge, then take a partial debit against it for whatever is available.

ARAZZO

Paystack Create Customer and Charge Authorization

Create a customer, initialize a first transaction, verify it to obtain an authorization, then charge that authorization for a recurring debit.

ARAZZO

Paystack Create Customer and Send Payment Request

Create a customer, raise an invoice-style payment request for them, send the email notification, then verify the request.

ARAZZO

Paystack Provision a Dedicated Virtual Account

Look up an available bank provider, create a customer, assign a dedicated NUBAN virtual account, then fetch its details.

ARAZZO

Paystack Create Customer, Plan and Subscription

Create a customer, define a billing plan, then subscribe the customer to the plan for recurring charges.

ARAZZO

Paystack Create Product and Payment Page

Create a product, check a page slug is available, create a hosted payment page, then attach the product to the page.

ARAZZO

Paystack Create Recipient and Initiate Transfer

Create a transfer recipient from bank details, initiate a transfer to it, then verify the transfer by reference.

ARAZZO

Paystack Create Subaccount and Transaction Split

Create a subaccount, build a transaction split that pays it, then initialize a transaction against the split.

ARAZZO

Paystack Disable and Re-enable a Subscription

Fetch a subscription to read its email token, disable it, then re-enable it using the same code and token.

ARAZZO

Paystack Submit Dispute Evidence and Resolve

Fetch a dispute, attach evidence to it, request an upload URL for supporting files, then resolve the dispute.

ARAZZO

Paystack Finalize and Archive a Draft Payment Request

Create a draft payment request, finalize it to issue the invoice, verify it, then archive it once handled.

ARAZZO

Paystack Initialize and Verify Transaction

Initialize a checkout transaction and then verify its final status by reference.

ARAZZO

Paystack Initiate and Finalize Transfer with OTP

Initiate a transfer, finalize it with the OTP sent to the business phone, then verify the completed transfer.

ARAZZO

Paystack Initiate and Monitor a Bulk Charge

Initiate a bulk charge batch against saved authorizations, fetch the batch, then list the charges in the batch.

ARAZZO

Paystack Resolve Account and Create Transfer Recipient

Resolve a bank account number to confirm the account name, then create a transfer recipient and initiate a transfer.

ARAZZO

Paystack Resolve Card BIN and Charge Authorization

Resolve a card BIN to learn the card brand and country, then charge a saved authorization for that card.

ARAZZO

Paystack Settlement Reconciliation

Fetch settlement records, then list the transactions that make up a chosen settlement payout.

ARAZZO

Paystack Subscribe and Generate a Management Link

Create a subscription, fetch it to read its status, then generate a self-service management link for the customer.

ARAZZO

Paystack Create and Validate Customer (KYC)

Create a customer, resolve their BVN, then submit a bank-account identification to validate the customer.

ARAZZO

GraphQL

Paystack GraphQL Schema

This document describes a GraphQL schema that represents the Paystack REST API domain model. Paystack is a Nigerian payments platform (acquired by Stripe in 2020) that provides ...

GRAPHQL

Pricing Plans

Paystack Plans Pricing

8 plans

PLANS

Rate Limits

Paystack Rate Limits

6 limits

RATE LIMITS

FinOps

Features

Hosted Checkout

Paystack-hosted authorization URL that handles PCI, SCA, OTP, USSD, QR, and 3DS flows for you.

Direct Charge API

Initiate charges programmatically with structured PIN, OTP, phone, birthday, and address challenge steps.

Recurring Subscriptions

Plans plus subscriptions with self-service customer management and email/SMS invoice notifications.

Transaction Splits

Route a single payment to multiple subaccounts on a percentage or flat basis for marketplaces.

Subaccounts

Vendor or merchant profiles with their own settlement bank and percentage charge.

Dedicated Virtual Accounts

NUBAN virtual accounts assigned to individual customers for bank-transfer-based payments with auto-reconciliation.

Payment Pages

No-code Paystack-hosted pages for selling products or accepting donations.

Payment Requests

Email-based invoices with verification, notification, finalization, and archive flows.

Single and Bulk Transfers

Pay out from balance to bank accounts and mobile money wallets, one at a time or as batches.

Bulk Charge

Charge many stored authorizations in a single batch with pause and resume controls.

Refunds

Partial or full refunds with merchant and customer notes.

Disputes and Chargebacks

Programmatic dispute response with signed evidence-upload URLs and resolution workflow.

Settlements

Read net settlement payouts and drill down into the transactions that composed each batch.

Identity Verification

BVN match, BVN resolution, account number resolution, card BIN lookup, country/bank lookup, and AVS state lists.

Multi-Currency

Accept NGN, GHS, ZAR, KES, XOF, EGP, and USD across supported markets.

Multi-Channel

Card, bank transfer, USSD, QR, mobile money (M-Pesa, MTN MoMo, Orange Money, Wave), EFT, Apple Pay, Visa QR.

Webhooks

Signed webhook deliveries for transaction, dispute, refund, transfer, subscription, and invoice events with 72-hour retries.

Test Mode

A complete test environment with test cards covering success, decline, OTP, PIN, and 3DS flows.

Dashboard

First-class merchant dashboard for transactions, customers, subscriptions, transfers, settlements, and disputes.

Use Cases

E-commerce Checkout

Drop-in checkout for online stores accepting cards, USSD, bank transfer, and mobile money across Africa.

SaaS Recurring Billing

Subscription-based revenue with plans, automatic renewal, self-service updates, and dunning.

Marketplaces and Multi-Vendor Platforms

Split-payment routing to vendor subaccounts with platform fee retention.

Cross-Border Payments

Accept cards from international customers while settling locally.

Mobile Money Acceptance

M-Pesa, MTN, Orange Money, Wave acceptance in Ghana, Kenya, Côte d'Ivoire.

Bank Transfer Acceptance

Dedicated virtual accounts auto-reconcile inbound NUBAN transfers.

Payouts and Vendor Disbursement

Single and bulk transfers to bank or mobile money for gig platforms and payroll-light apps.

Invoicing and B2B Collections

Issue payment requests by email with verification and reminders.

Donations and Crowdfunding

Payment Pages for one-off donations or product sales without writing checkout code.

Integrations

WooCommerce

Official Paystack payment gateway for WooCommerce stores.

Magento and Magento 2

Official Magento extensions for Paystack acceptance.

PrestaShop

Plugins for PrestaShop 1.6 and 1.7.

OpenCart

OpenCart extensions for Paystack.

WHMCS

Hosting and billing platform integration.

Moodle

Course enrolment via Paystack.

Odoo

Payment gateway integration for Odoo 14.

Omnipay

Paystack gateway driver for the PHP Omnipay payment-abstraction library.

Joomla, Drupal, Ghost, Wordpress

Community and official plugins across major CMS platforms.

Stripe

Paystack is a Stripe subsidiary; merchants can operate in Stripe-aligned multi-region setups.

Solutions

Online Businesses

Hosted checkout for e-commerce and SaaS.

Marketplaces

Splits + subaccounts for multi-vendor platforms.

Subscription Businesses

Plans, subscriptions, and dunning for recurring revenue.

Platforms and Apps

Transfers, dedicated virtual accounts, and identity verification for fintech and platform builds.

Education and Nonprofits

Payment Pages and Payment Requests for donations and tuition collection.

Event Specifications

Paystack Webhooks

AsyncAPI 2.6 description of Paystack's outbound webhook surface. Paystack notifies a single merchant-configured POST endpoint (the "webhook URL") whenever an event occurs agains...

ASYNCAPI

Semantic Vocabularies

Paystack Context

41 classes · 4 properties

JSON-LD

API Governance Rules

Paystack API Rules

10 rules · 2 errors 7 warnings

SPECTRAL

JSON Structure

Paystack Customer Structure

11 properties

JSON STRUCTURE

Paystack Split Structure

12 properties

JSON STRUCTURE

Paystack Subscription Structure

12 properties

JSON STRUCTURE

Paystack Transaction Structure

14 properties

JSON STRUCTURE

Paystack Transfer Structure

12 properties

JSON STRUCTURE

Example Payloads

Resources

🔗
PostmanWorkspace
PostmanWorkspace
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🌐
Portal
Portal
🔗
Documentation
Documentation
🔗
APIReference
APIReference
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
📝
Signup
Signup
🔗
Documentation
Documentation
🔑
Authentication
Authentication
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
📄
ChangeLog
ChangeLog
📰
Blog
Blog
📰
Blog
Blog
🟢
StatusPage
StatusPage
💬
Support
Support
💰
Pricing
Pricing
💰
Pricing
Pricing
💰
Pricing
Pricing
💰
Pricing
Pricing
💰
Pricing
Pricing
💰
Pricing
Pricing
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
🔗
TrustCenter
TrustCenter
👥
GitHubOrganization
GitHubOrganization
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
🔗
Plugins
Plugins
🔗
Plugins
Plugins
🔗
Plugins
Plugins
🔗
Plugins
Plugins
🔗
Plugins
Plugins
🔗
Plugins
Plugins
🔗
Plugins
Plugins
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary
🔗
JSONLD
JSONLD
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Paystack Verification API
  version: 1.0.0
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Verification
    type: folder
  items:
  - info:
      name: Match Service
      type: http
    http:
      method: POST
      url: https://api.paystack.co/bvn/match
      body:
        type: json
        data: '{}'
    docs: Match Service
  - info:
      name: Resolve BVN
      type: http
    http:
      method: GET
      url: https://api.paystack.co/bank/resolve_bvn/:bvn
      params:
      - name: bvn
        value: ''
        type: path
    docs: Resolve BVN
  - info:
      name: Resolve Account Number
      type: http
    http:
      method: GET
      url: https://api.paystack.co/bank/resolve
      params:
      - name: account_number
        value: '22728151'
        type: query
      - name: bank_code
        value: '063'
        type: query
    docs: Resolve Account Number
  - info:
      name: Resolve Card BIN
      type: http
    http:
      method: GET
      url: https://api.paystack.co/decision/bin/:bin
      params:
      - name: bin
        value: ''
        type: path
    docs: Resolve Card BIN
  - info:
      name: List Countries
      type: http
    http:
      method: GET
      url: https://api.paystack.co/country
    docs: List Countries
  - info:
      name: Fetch Banks
      type: http
    http:
      method: GET
      url: https://api.paystack.co/bank
      params:
      - name: country
        value: ''
        type: query
      - name: pay_with_bank_transfer
        value: ''
        type: query
      - name: use_cursor
        value: ''
        type: query
      - name: perPage
        value: ''
        type: query
      - name: next
        value: ''
        type: query
      - name: previous
        value: ''
        type: query
      - name: gateway
        value: ''
        type: query
    docs: Fetch Banks
  - info:
      name: List States (AVS)
      type: http
    http:
      method: GET
      url: https://api.paystack.co/address_verification/states
      params:
      - name: type
        value: ''
        type: query
      - name: country
        value: ''
        type: query
      - name: currency
        value: ''
        type: query
    docs: List States (AVS)
bundled: true