{"id":1358,"date":"2026-07-09T07:08:31","date_gmt":"2026-07-09T07:08:31","guid":{"rendered":"https:\/\/easycommerce.dev\/docs\/?post_type=helpwp_doc&#038;p=1358"},"modified":"2026-07-09T07:08:31","modified_gmt":"2026-07-09T07:08:31","slug":"paystack-payment-integration","status":"publish","type":"helpwp_doc","link":"https:\/\/easycommerce.dev\/docs\/addons\/paystack-payment-integration\/","title":{"rendered":"Paystack Payment Integration"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Paystack connects to EasyCommerce with your Paystack API keys &#8211; no OAuth apps, no code. This guide walks you through enabling the gateway, adding your keys, choosing how customers pay, setting up the webhook, and testing the flow before you go live.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Navigate to Payment Settings<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"860\" height=\"651\" src=\"https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-1.png\" alt=\"\" class=\"wp-image-1359\" srcset=\"https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-1.png 860w, https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-1-300x227.png 300w, https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-1-768x581.png 768w\" sizes=\"auto, (max-width: 860px) 100vw, 860px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to <strong>Store &gt; Settings &gt; Payment &gt; Methods<\/strong>.<\/li>\n\n\n\n<li>Select <strong>Paystack<\/strong> as your payment gateway. Tap <strong>\u2018Save Settings\u2019<\/strong> to finalize the changes.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Get Your Paystack API Keys<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"595\" src=\"https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-3-1024x595.png\" alt=\"\" class=\"wp-image-1361\" srcset=\"https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-3-1024x595.png 1024w, https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-3-300x174.png 300w, https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-3-768x446.png 768w, https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-3-1536x892.png 1536w, https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-3.png 1646w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The addon authenticates with Paystack using your API keys. You will find them in your Paystack Dashboard before configuring the add-on.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Log in to your <strong>Paystack Dashboard<\/strong> and open <strong>Settings > API Keys &amp; Webhooks<\/strong>. Copy your <strong>Secret Key<\/strong> and <strong>Public Key<\/strong>. Paystack provides two pairs &#8211; a test pair (<code>sk_test_\u2026<\/code> \/ <code>pk_test_\u2026<\/code>) and a live pair (<code>sk_live_\u2026<\/code> \/ <code>pk_live_\u2026<\/code>). You will need them in the next step.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Configure Paystack Settings<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Access the Paystack addon settings tab beside the <strong>\u2018Methods\u2019<\/strong> tab, then work through the three groups:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Basic<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable <strong>\u2018Test Mode\u2019<\/strong> (optional). While it is on, the addon uses your test keys.<\/li>\n\n\n\n<li>Upload a <strong>logo<\/strong> and set the <strong>Name on Checkout<\/strong> shown to customers (defaults to \u201cPaystack\u201d).<\/li>\n\n\n\n<li>Choose the <strong>Default Order Status<\/strong> applied after a successful payment \u2014 Pending, Processing, or Completed.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Checkout<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Set the <strong>Checkout Display<\/strong>: <strong>Redirect<\/strong> sends the customer to Paystack\u2019s hosted page, while <strong>Inline<\/strong> opens Paystack\u2019s payment popup on your checkout with no redirect.<\/li>\n\n\n\n<li>Confirm your active store currency is one Paystack supports: NGN, USD, GHS, ZAR, KES, XOF, EGP, or RWF (and enabled on your account).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Credentials<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"754\" height=\"726\" src=\"https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-2.png\" alt=\"\" class=\"wp-image-1360\" srcset=\"https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-2.png 754w, https:\/\/easycommerce.dev\/docs\/wp-content\/uploads\/2026\/07\/EasyCommerce-paystack-configuration-2-300x289.png 300w\" sizes=\"auto, (max-width: 754px) 100vw, 754px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enter your <strong>Live Secret Key<\/strong> and <strong>Live Public Key<\/strong> from Step 2.<\/li>\n\n\n\n<li>Enter your <strong>Test Secret Key<\/strong> and <strong>Test Public Key<\/strong> as well if you plan to use Test Mode.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, tap <strong>\u2018Save Settings\u2019<\/strong> to store the changes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Set Up the Webhook<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Webhooks keep your order statuses in sync with Paystack in real time, even if a customer closes the browser before returning to your store.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Copy the <strong>Webhook URL<\/strong> shown in the <strong>Credentials<\/strong> section of the addon settings. It is the same for both test and live.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Go to <strong>Settings &gt; API Keys &amp; Webhooks<\/strong> in your Paystack Dashboard and paste the URL into the <strong>Webhook URL<\/strong> field, then save.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Note:<\/strong> Paystack signs each webhook with your secret key, so there is no separate webhook secret to paste. The addon verifies every event with an HMAC-SHA512 signature check before processing it.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Test the Integration<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Keep <strong>\u2018Test Mode\u2019<\/strong> enabled and use your Paystack test keys to run end-to-end test transactions.<\/li>\n\n\n\n<li>Place a test order and confirm that the payment completes, the order status updates, and the transaction appears in your Paystack Dashboard.<\/li>\n\n\n\n<li>Once testing is complete, disable Test Mode and start accepting live payments with your live keys.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">How Paystack Payments Work on Your Store<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">At checkout, customers pick Paystack and pay either on Paystack\u2019s hosted page or through an inline popup on your store &#8211; whichever display you choose. Their email and order details are passed to Paystack automatically.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every payment is verified directly with Paystack\u2019s API and checked against the order total before the order is marked successful, and each webhook is confirmed with an HMAC-SHA512 signature. Failed, unverified, or mismatched payments are marked as failed automatically and never silently completed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can issue full or partial refunds straight from your EasyCommerce order screen. The refund is processed via the Paystack Refund API and recorded against the order, ensuring your totals always reconcile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"author":3,"featured_media":0,"template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}}},"helpwp_product":[19],"helpwp_topic":[21],"class_list":["post-1358","helpwp_doc","type-helpwp_doc","status-publish","hentry","helpwp_topic-addons"],"_links":{"self":[{"href":"https:\/\/easycommerce.dev\/docs\/wp-json\/wp\/v2\/helpwp_doc\/1358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/easycommerce.dev\/docs\/wp-json\/wp\/v2\/helpwp_doc"}],"about":[{"href":"https:\/\/easycommerce.dev\/docs\/wp-json\/wp\/v2\/types\/helpwp_doc"}],"author":[{"embeddable":true,"href":"https:\/\/easycommerce.dev\/docs\/wp-json\/wp\/v2\/users\/3"}],"wp:attachment":[{"href":"https:\/\/easycommerce.dev\/docs\/wp-json\/wp\/v2\/media?parent=1358"}],"wp:term":[{"taxonomy":"helpwp_product","embeddable":true,"href":"https:\/\/easycommerce.dev\/docs\/wp-json\/wp\/v2\/helpwp_product?post=1358"},{"taxonomy":"helpwp_topic","embeddable":true,"href":"https:\/\/easycommerce.dev\/docs\/wp-json\/wp\/v2\/helpwp_topic?post=1358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}