How to Add Paystack to Your Website: Every Integration Route Explained

What you need before adding Paystack
Before touching your website, you need a Paystack account with compliance in progress, your API keys, an HTTPS website, and clarity on what customers will pay for. Compliance is the slowest step, so start it on day one. Preparation checklist:
- Paystack account. Sign up with the business's email. Paystack distinguishes registered businesses (CAC documents, directors' ID and BVN, settlement account in the business name) from starter or individual businesses with lower limits and fewer features. Verify current requirements on Paystack's compliance page.
- API keys. In the dashboard settings you will find a test public key, a test secret key, and after activation, live equivalents. Public keys go in the browser; secret keys must never leave your server.
- HTTPS. Paystack's checkout requires your site to be served over SSL. Most Nigerian hosting plans include a certificate.
- A settlement account. A Nigerian naira account; settlements arrive there on Paystack's schedule.
- Payment scenarios. Fixed amounts (a course, a ticket), variable amounts (invoices, fees), recurring amounts (subscriptions) or a shopping cart. Each points to a different route.
- Customer email. Paystack requires an email address per transaction, so your form must collect one even if your customers live on WhatsApp.
Which Paystack integration route fits your website?
The right Paystack route depends on your website platform, whether amounts are fixed or variable, and whether payment must update your records automatically. Payment Pages need no code; plugins suit WordPress, WooCommerce and Shopify; Inline suits a custom page with a simple pay button; the Initialize-and-redirect API with webhooks suits web apps, portals and anything with variable amounts.
| Route | Platform | Fixed or variable amounts | Auto-updates your records? | Skill needed |
|---|---|---|---|---|
| Payment Pages | Any (link or embedded button) | Fixed, or customer-entered | No (dashboard only, unless webhooks added) | None |
| Official plugins | WordPress, WooCommerce, Shopify, form plugins | Cart-driven or form-driven | Yes, within the platform | Low |
| Inline pop-up | Custom HTML or any site you can add scripts to | Set by your page | Only if you verify server-side | Front-end basics |
| Initialize-and-redirect API | Custom sites, web apps, portals | Any, calculated by your server | Yes, with verification and webhooks | Back-end developer |
Rule of thumb: if a human currently checks the Paystack dashboard and updates a spreadsheet, you are one route too low.
The four integration routes step by step
Route 1: Paystack Payment Pages (no code)
Payment Pages are hosted checkout pages created in the Paystack dashboard. They suit deposits, event tickets, course fees, donations and any product you sell without a cart.
- In the dashboard, open Payment Pages and create a new page.
- Choose the page type: a single payment with a fixed amount, a page where the customer enters the amount, or a product page where you list items and quantities.
- Set the name, description, amount, optional custom fields (student ID, order note, phone number) and whether the page collects delivery details.
- Add a redirect URL where customers land after paying, such as a thank-you page on your website.
- Save, then copy the page link. Place it behind a "Pay now" button on your site, in your Instagram bio or in WhatsApp messages.
- Watch payments in the dashboard and export transactions for your records.
Custom fields matter: without a reference such as an invoice number, reconciliation becomes guesswork.
Route 2: Official plugins for WordPress, WooCommerce and Shopify
Plugins are the fastest route for stores and form-driven sites because they handle the checkout, order status and receipts inside the platform.
- Install the official Paystack plugin: the WooCommerce gateway for stores, the Paystack Forms plugin or a form-builder add-on for fixed-price services, or connect Paystack as a third-party payment provider in Shopify's payment settings.
- Paste your test public and secret keys into the plugin settings.
- Enable test mode, choose the payment channels to display and set the order status to apply on success.
- Set the webhook URL the plugin gives you in your Paystack dashboard, so transfers completed after the customer closes the page still update the order.
- Place a test order with Paystack's test card details, confirm the order status changes, then switch to live keys.
On Shopify, Paystack is selected as a payment provider rather than installed as a plugin, and Shopify may add its own transaction fee for third-party providers on some plans; check Shopify's pricing for Nigeria.
Route 3: Paystack Inline (pop-up) on a custom page
Paystack Inline is a JavaScript library that opens the Paystack checkout in a pop-up on your own page. It suits custom-built pages with a simple pay button.
- Load Paystack's Inline script on the page.
- On button click, call the library with your public key, the customer's email, the amount in kobo (naira multiplied by 100), a unique reference you generate, and optional metadata such as an order ID or phone number.
- Provide a callback that runs when the customer completes payment, and an onClose handler for when they abandon it.
- In the callback, send the reference to your server, which calls Paystack's verify endpoint with the secret key and checks status, amount and currency before treating the payment as successful.
- Show a confirmation page and send a receipt only after server-side verification passes.
The amount-in-kobo detail catches many first integrations: ₦5,000 must be sent as 500000.
Route 4: Initialize-and-redirect with server-side verification
For web applications, portals and variable amounts, your server creates the transaction and redirects the customer to Paystack's hosted checkout.
- When the customer clicks pay, your server calls Paystack's transaction initialize endpoint with the secret key, the customer's email, the amount in kobo, a unique reference, a callback URL and any metadata.
- Paystack returns an authorisation URL; redirect the customer there.
- After payment, Paystack sends the customer to your callback URL with the reference. Your server verifies the transaction with the verify endpoint.
- Only on a verified success with the expected amount do you mark the order, invoice or booking as paid and issue the receipt.
- Register a webhook (next section) so that payments completed without the customer returning to your site are still recorded.
Webhooks: making payments update your website automatically
A webhook is a URL on your server that Paystack calls when events happen, most importantly a successful charge. Without it, a customer who pays by bank transfer and then closes the browser before returning to your site will have paid without your records changing. Webhooks fix that, and they are the difference between a payment button and a payment system. Setting up Paystack webhooks:
- Create an endpoint on your server that accepts POST requests over HTTPS.
- Add its URL in the Paystack dashboard under API keys and webhooks, separately for test and live modes.
- Validate each request by computing an HMAC SHA-512 hash of the raw request body using your secret key and comparing it with the signature header Paystack sends. Reject anything that does not match.
- Respond with a 200 status quickly, then process the event: look up your order by the reference, check the amount and currency, update its status, and trigger the receipt or WhatsApp message.
- Make processing idempotent: if the same event arrives twice, your system must not fulfil twice.
- Log every webhook received; those logs are how you resolve "I paid but nothing happened" complaints.
Paystack sends other useful events too, such as failed subscription charges and transfer status updates, which matter if you use Plans or payouts.
Testing and going live
Test everything in test mode with Paystack's published test cards and simulated bank transfers, then repeat a smaller set of checks with live keys and a real payment that you refund. Skipping the live check is how businesses discover that the webhook URL still points at the test environment. Test-mode checklist:
- Successful card payment updates the record and sends the receipt.
- Declined card shows a helpful message and leaves the record unpaid.
- Bank transfer completed after closing the page is captured by the webhook.
- Abandoned payment (onClose) leaves the record unpaid and lets the customer retry.
- Duplicate webhook delivery does not fulfil twice.
- Amount and currency mismatches are rejected.
- Test on a real Android phone over mobile data, not only on a laptop.
Going live:
- Replace test keys with live keys in server configuration, not in page code.
- Set the live webhook URL in the dashboard.
- Make a small real payment by card and by transfer, confirm the record updates, then refund from the dashboard.
- Confirm the settlement appears in your bank account on the expected day.
- Confirm your business name displays correctly on the checkout and on customers' bank statements.
What changes for Nigerian businesses
For a Nigerian business, adding Paystack differs from a generic card integration in the channels customers expect, the fee structure, settlement timing and the compliance file that enables live payments. Build for transfers and USSD, model fees at your real transaction sizes, and keep CAC and bank documents current.
- Channels. Paystack supports card, bank transfer through dynamic virtual accounts, USSD and other channels depending on your setup. Show transfer prominently; many customers prefer it to typing card details.
- Fees. Paystack publishes its pricing; at the time of writing the published local rate has been a small percentage plus a fixed charge, waived on low-value transactions and capped per transaction, with a higher rate for international cards. Confirm the current schedule on Paystack's pricing page and model it at your typical amounts.
- Settlement. Payments are typically settled to your Nigerian bank account on the next business day by default. Weekends and public holidays shift the schedule; verify options in your dashboard.
- Compliance and limits. Starter businesses face lower limits until they upgrade with CAC documents. If you expect large fee or invoice payments, complete registered-business compliance first.
- Connectivity. Pop-ups and redirects can fail on unstable connections. Give the customer a clear "check payment status" option that uses the reference, and rely on webhooks rather than the customer's browser.
- Data protection. Emails, phone numbers and payment references are personal data under the Nigeria Data Protection Act 2023. Publish a privacy notice and restrict dashboard access; verify obligations with the NDPC.
Example (hypothetical): an Ibadan tutoring centre adds Paystack
Example (hypothetical): a tutoring centre in Ibadan runs weekend classes for secondary students and collects monthly fees by transfer, then chases parents for receipts and records. Its website is a five-page WordPress site with a contact form. The centre starts with a Paystack Payment Page per class level, each with a custom field for the student's name and a redirect to a thank-you page, and puts the links behind "Pay fees" buttons on the site and in the WhatsApp group. Within a term the dashboard export replaces the receipt-chasing. When the centre adds a student portal a few months later, the developer moves to the Initialize-and-redirect route so that fees are calculated per student, with webhooks marking each account paid and sending a WhatsApp confirmation to the parent. The first phase costs nothing beyond transaction fees and an afternoon of setup; the portal-phase integration is a few days of developer work inside the wider portal project. The measures that matter are the share of fees paid online without a follow-up call and the time the administrator spends reconciling each month. This is a hypothetical scenario to illustrate route progression, not a client case study.
How much does it cost to add Paystack to a website?
Indicatively, adding Paystack costs nothing beyond transaction fees if you use Payment Pages or an official plugin yourself, ₦80,000–₦250,000 for a developer to install and configure a plugin or Inline checkout with server-side verification, and ₦250,000–₦1,000,000+ for an API integration with webhooks, receipts and reconciliation inside a custom site or portal. Indicative 2026 ranges; actual quotes vary with scope, vendor and exchange rate.
| Item | Type | Indicative cost | Notes |
|---|---|---|---|
| Paystack account | One-off | Free | Compliance documents required for live limits |
| Payment Pages | Recurring | Transaction fees only | Self-serve in the dashboard |
| Plugin installation and configuration | One-off | ₦80,000–₦150,000 | WordPress, WooCommerce, form plugins |
| Inline checkout with server verification | One-off | ₦120,000–₦250,000 | Custom pages |
| API integration with webhooks and reconciliation | One-off | ₦250,000–₦1,000,000+ | Portals, web apps, variable amounts, subscriptions |
| Transaction fees | Per payment | Published percentage plus fixed fee, capped locally | Verify on Paystack's pricing page |
| Ongoing maintenance | Monthly | Part of a ₦20,000–₦150,000 website retainer | Plugin updates, key rotation, monitoring |
Mistakes to avoid
- Putting the secret key in page code. Anyone can read it and initiate refunds or transfers. Secret keys live on the server only.
- Fulfilling on the browser callback alone. The callback can be faked. Verify with the server and confirm amount and currency.
- Skipping webhooks. Transfer payments completed after the page closes will not be recorded. Register and validate webhooks in both test and live modes.
- Sending amounts in naira instead of kobo. A ₦20,000 fee sent as 20000 charges ₦200. Test with real figures.
- Reusing references. Each transaction needs a unique reference; reuse causes verification errors and confused reconciliation.
- Leaving test keys in production. Customers "pay" successfully and no money arrives. Check keys and the webhook URL on go-live.
- Collecting no reference data. A payment page without an order or student ID field turns reconciliation into detective work.
Conclusion
Adding Paystack to your website is straightforward once you match the route to the way you sell: Payment Pages for fixed-price items and deposits, official plugins for WordPress, WooCommerce and Shopify, Inline for a custom pay button, and the Initialize-and-redirect API with webhooks for applications and variable amounts. Whatever the route, keep secret keys on the server, verify every payment before fulfilling, register webhooks so transfers are never missed, test with real Nigerian payment methods, and confirm live settlement before announcing the feature to customers. If you need Paystack integrated into a Nigerian business website, customer portal or web application, with webhooks, receipts and reconciliation handled properly, Linestech can build the integration and help you choose the right route for your volume.
Frequently asked questions
Can I add Paystack to a website without a developer?
Yes. Payment Pages need no code, and the official plugins for WordPress, WooCommerce and Shopify are configured by pasting keys and setting a webhook URL. You need a developer when amounts are calculated by your own system, when payment must trigger actions in a custom application, or when you want automated reconciliation.
Does Paystack work with Wix, Squarespace or other website builders?
Any builder that lets you add a button link can use Paystack Payment Pages. Deeper integration depends on whether the builder allows custom scripts or has a Paystack option in its payment settings, which varies by builder and region. Check Paystack's integrations list and your builder's payment documentation before committing to a platform.
How do I accept bank transfers through Paystack on my website?
Enable bank transfer as a channel; the Paystack checkout then shows the customer a temporary account number to pay into, and the payment is confirmed automatically when the transfer lands. Because customers sometimes close the page before confirmation, register a webhook so your website is updated when the transfer completes.
Can I take recurring subscription payments with Paystack?
Yes. Paystack supports Plans and Subscriptions, which charge a customer's card on a schedule after an initial authorisation. This suits memberships, SaaS and instalment plans. Your integration must handle failed renewals through webhooks and give customers a way to update their card.
Why does a customer say they paid but my website shows unpaid?
The usual causes are a transfer completed after the customer left the page with no webhook registered, a webhook that failed signature validation or timed out, or live and test keys mixed up. Ask for the transaction reference, check the Paystack dashboard, and review your webhook logs.
How long does it take to add Paystack to a website?
A Payment Page can be live in an hour once your account is active. A plugin setup takes a few hours including testing. An API integration with webhooks and reconciliation typically takes three to ten working days depending on your application. Compliance review for a registered business is often the longest step.
Sources and further reading
Figures, platform rules and regulations change. These are the primary references behind this article and the places to check before you act on it.


