{"id":302812,"date":"2026-05-26T11:23:49","date_gmt":"2026-05-26T11:23:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/paybridgenp-for-woocommerce\/"},"modified":"2026-06-20T19:07:43","modified_gmt":"2026-06-20T19:07:43","slug":"paybridgenp-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/paybridgenp-for-woocommerce\/","author":23484806,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"PayBridgeNP for WooCommerce","header_author":"PayBridgeNP","header_description":"Accept payments via eSewa, Khalti, and more through PayBridgeNP.","assets_banners_color":"0f172a","last_updated":"2026-06-20 19:07:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/paybridgenp.com\/integrations\/woocommerce","header_author_uri":"https:\/\/paybridgenp.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":128,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.1":{"tag":"1.1.1","author":"paybridgenp","date":"2026-05-26 13:13:56"},"1.2.0":{"tag":"1.2.0","author":"paybridgenp","date":"2026-06-20 19:07:43"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3549178,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3549178,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3549178,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3549178,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3549178,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.1","1.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[27582,220728,14484,6593,286],"plugin_category":[45],"plugin_contributors":[264451],"plugin_business_model":[],"class_list":["post-302812","plugin","type-plugin","status-publish","hentry","plugin_tags-esewa","plugin_tags-khalti","plugin_tags-nepal","plugin_tags-payment-gateway","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-paybridgenp","plugin_committers-paybridgenp"],"banners":{"banner":"https:\/\/ps.w.org\/paybridgenp-for-woocommerce\/assets\/banner-772x250.png?rev=3549178","banner_2x":"https:\/\/ps.w.org\/paybridgenp-for-woocommerce\/assets\/banner-1544x500.png?rev=3549178","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/paybridgenp-for-woocommerce\/assets\/icon.svg?rev=3549178","icon":"https:\/\/ps.w.org\/paybridgenp-for-woocommerce\/assets\/icon.svg?rev=3549178","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>PayBridgeNP for WooCommerce lets your store accept payments through the most popular Nepali\ndigital wallets and payment methods without writing a single line of code.<\/p>\n\n<p><strong>Supported payment methods<\/strong><\/p>\n\n<ul>\n<li>eSewa<\/li>\n<li>Khalti<\/li>\n<li>Fonepay<\/li>\n<\/ul>\n\n<p>Customers choose their preferred method on a branded, mobile-friendly checkout page hosted by\nPayBridgeNP. Your store never handles raw payment credentials.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>One-time setup: enter your PayBridgeNP secret key and you're live<\/li>\n<li>Sandbox mode: use test API keys for safe development and QA<\/li>\n<li>Webhook support: reliable order updates via signed server-to-server callbacks<\/li>\n<li>HMAC-SHA256 signature verification on all webhooks<\/li>\n<li>HPOS (High-Performance Order Storage) compatible<\/li>\n<li>Block checkout compatible: works with both the classic shortcode checkout and the modern WooCommerce Blocks checkout<\/li>\n<li>Works with any WordPress permalink structure<\/li>\n<\/ul>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ol>\n<li>Customer places an order and selects <em>PayBridgeNP<\/em> at checkout<\/li>\n<li>They are redirected to the PayBridgeNP hosted payment page where they pick a wallet<\/li>\n<li>After payment they return to your store's order-received page; the order is set to <em>On Hold<\/em> immediately<\/li>\n<li>A signed <code>payment.succeeded<\/code> webhook from PayBridgeNP confirms the payment server-to-server and moves the order to <em>Processing<\/em><\/li>\n<\/ol>\n\n<p>The webhook is what provides authoritative confirmation. Without it, orders stay On Hold indefinitely.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the PayBridgeNP payment API to process payments. PayBridgeNP is the\npayment service this plugin is built for, and a PayBridgeNP account and API key are required for\nthe plugin to function.<\/p>\n\n<p>The plugin contacts the PayBridgeNP API (https:\/\/api.paybridgenp.com) in these cases:<\/p>\n\n<ul>\n<li>When a customer places an order and chooses PayBridgeNP, the plugin creates a checkout session.\nIt sends the order amount and currency, your store's return and cancel URLs, the WooCommerce\norder id and order key, and the customer's billing details entered at checkout (name, email,\nphone, and billing address) so the hosted payment page can be pre-filled for the customer.<\/li>\n<li>When \"Provider tiles\" display mode is enabled, the plugin requests the list of payment providers\nenabled for your account so it only offers providers you can actually accept. Only your secret\nAPI key is sent for this request.<\/li>\n<li>PayBridgeNP sends signed server-to-server webhooks back to your store to confirm payment results.\nThe plugin verifies each one with an HMAC-SHA256 signature before updating the order.<\/li>\n<\/ul>\n\n<p>No data is sent to any other third party. Payment card and wallet credentials are never handled by\nyour store; the customer enters them on PayBridgeNP's hosted page.<\/p>\n\n<p>Use of the PayBridgeNP service is governed by its terms and privacy policy:<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/paybridgenp.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/paybridgenp.com\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<p><strong>From ZIP (recommended)<\/strong><\/p>\n\n<ol>\n<li>Download the latest <code>paybridge-np-woocommerce.zip<\/code> from the releases page<\/li>\n<li>In your WordPress admin go to <em>Plugins \u2192 Add New \u2192 Upload Plugin<\/em><\/li>\n<li>Upload the ZIP and click <em>Install Now<\/em>, then <em>Activate<\/em><\/li>\n<li>Go to <em>WooCommerce \u2192 Settings \u2192 Payments<\/em> and enable <em>PayBridgeNP<\/em><\/li>\n<li>Enter your secret key and (optionally) your webhook signing secret<\/li>\n<\/ol>\n\n<p><strong>From source (developers)<\/strong><\/p>\n\n<ol>\n<li>Clone or copy the <code>packages\/woocommerce<\/code> directory into <code>wp-content\/plugins\/paybridge-np-woocommerce<\/code><\/li>\n<li>Run <code>composer install --no-dev<\/code> inside the plugin directory<\/li>\n<li>Activate the plugin in WordPress admin and follow steps 4-5 above<\/li>\n<\/ol>\n\n<p><strong>Webhook setup (required for orders to reach Processing)<\/strong><\/p>\n\n<ol>\n<li>In your PayBridgeNP dashboard go to <em>Webhooks \u2192 Add endpoint<\/em><\/li>\n<li>Set the URL to: <code>https:\/\/yourstore.com\/?wc-api=paybridge_webhook<\/code><\/li>\n<li>Subscribe to: <code>payment.succeeded<\/code>, <code>payment.failed<\/code>, <code>payment.cancelled<\/code><\/li>\n<li>Copy the signing secret and paste it into the <em>Webhook Signing Secret<\/em> field in WooCommerce settings<\/li>\n<\/ol>\n\n<p><strong>Local development webhook testing<\/strong><\/p>\n\n<p>PayBridgeNP needs a publicly reachable URL to deliver webhooks. Use a tunnel tool to expose your local server:<\/p>\n\n<pre><code>`bash\n<\/code><\/pre>\n\n<p>ngrok http 80\n    `<\/p>\n\n<p>Then use the generated <code>https:\/\/xxx.ngrok.io\/paynep\/?wc-api=paybridge_webhook<\/code> as your webhook endpoint URL in the dashboard.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20currency%20does%20this%20gateway%20support%3F\"><h3>What currency does this gateway support?<\/h3><\/dt>\n<dd><p>Your WooCommerce store currency must be set to NPR (Nepalese Rupee).<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20paybridgenp%20account%3F\"><h3>Do I need a PayBridgeNP account?<\/h3><\/dt>\n<dd><p>Yes. Sign up at paybridgenp.com to get your API keys.<\/p><\/dd>\n<dt id=\"is%20sandbox%2Ftest%20mode%20available%3F\"><h3>Is sandbox\/test mode available?<\/h3><\/dt>\n<dd><p>Yes. Create a sandbox project in your PayBridgeNP dashboard, use the <code>sk_test_<\/code> key, and all\npayments will go through the eSewa\/Khalti sandbox environments.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20webhook%20is%20not%20configured%3F\"><h3>What happens if the webhook is not configured?<\/h3><\/dt>\n<dd><p>Orders will still be created and marked <em>On Hold<\/em> when the customer returns from payment.\nWithout a webhook the order will not automatically move to <em>Processing<\/em>. Webhooks are strongly\nrecommended for a reliable store experience.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20the%20woocommerce%20block%20checkout%3F\"><h3>Is this plugin compatible with the WooCommerce block checkout?<\/h3><\/dt>\n<dd><p>Yes. PayBridgeNP works with both the classic shortcode checkout and the modern WooCommerce Blocks checkout out of the box.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: \"Provider tiles\" display mode. In WooCommerce &gt; Settings &gt; Payments &gt; PayBridgeNP, switch \"Display style\" to \"Provider tiles (direct redirect)\" to show your enabled providers as branded tiles on the checkout. The customer picks one and is sent straight to that provider, skipping the PayBridgeNP hosted picker.<\/li>\n<li>New: provider tiles show only the providers enabled for your PayBridgeNP account, so customers never see a method you cannot accept.<\/li>\n<li>New: the customer's billing details (name, email, phone, and address) are now forwarded to the PayBridgeNP hosted checkout, so they are pre-filled and the customer does not have to re-enter them.<\/li>\n<li>Fix: webhook signature verification now reads the X-PayBridgeNP-Signature header that PayBridgeNP sends, so payment confirmation works reliably and paid orders move from On Hold to Processing.<\/li>\n<li>Fix: the gateway icon now renders at a consistent small size on every theme, including block themes.<\/li>\n<li>The chosen provider is stored on the order as <code>_paybridge_provider<\/code> meta and noted in the order log.<\/li>\n<li>Block checkout (WooCommerce Blocks) is fully supported for the provider tiles and all of the above.<\/li>\n<li>Default remains \"Single button (hosted picker)\" so existing installs behave exactly as before until a merchant opts in.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Rename gateway classes and the icon filter to use a consistent <code>Paybridge_WC<\/code> \/ <code>paybridge_wc_<\/code> prefix, matching the existing <code>PAYBRIDGE_WC_*<\/code> constants (WordPress.org plugin guidelines on unique prefixes)<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Bundle the latest PayBridgeNP PHP SDK (3.0.0) with the new typed exception hierarchy and nested error envelope handling<\/li>\n<li>Errors thrown from PayBridgeNP API calls are now typed exceptions (AuthenticationException, AccountException, PermissionException, InvalidRequestException, IdempotencyException, RateLimitException). Branch with instanceof in custom integrations.<\/li>\n<li>Every exception now carries getErrorType(), getErrorCode(), and getRequestId(). Quote getRequestId() in support requests for fastest triage.<\/li>\n<li>Backward compatible: the SDK still parses the legacy flat error shape during the API transition window<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Add <code>Requires Plugins: woocommerce<\/code> header so WordPress 6.5+ enforces the WooCommerce dependency at activation<\/li>\n<li>Bundle the latest PayBridgeNP PHP SDK (2.0.0)<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>eSewa, Khalti, and Fonepay support via PayBridgeNP hosted checkout<\/li>\n<li>Classic shortcode checkout and WooCommerce Blocks checkout support<\/li>\n<li>Webhook handler with HMAC-SHA256 signature verification (signing secret required)<\/li>\n<li>HPOS compatible<\/li>\n<\/ul>","raw_excerpt":"Accept payments from Nepali customers via eSewa, Khalti, and more, powered by PayBridgeNP.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/302812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=302812"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/paybridgenp"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=302812"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=302812"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=302812"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=302812"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=302812"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=302812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}