Skip to content
Fauran Pay — Docs
Documentation

Fauran Pay for JazzCash WooCommerce

Everything you need to install, configure, and use the plugin — written for store owners, no coding required.

Version 1.0.0Requires WooCommerce 7.0+WordPress 6.6+PHP 7.4+GPLv2 or later

1. Welcome / Introduction

Fauran Pay for JazzCash WooCommerceconnects your WooCommerce store to JazzCash, Pakistan's leading mobile financial services provider. It lets your customers pay using three methods, right from your normal WooCommerce checkout:

  • Credit/Debit Card— Visa and Mastercard, via JazzCash's secure hosted payment page (including 3-D Secure).
  • JazzCash Mobile Account — customers pay directly from their JazzCash mobile wallet balance.
  • Over-the-Counter Voucher — customers receive a 12-digit voucher number and pay in cash at any JazzCash outlet.

Who this plugin is for: WooCommerce store owners in Pakistan (or selling to Pakistani customers) who want to accept local payment methods without handling any cardholder data on their own server, and without paying for a third-party gateway aggregator.

Key benefit:customers enter their card or wallet details on JazzCash's own secure page, not on your site. Your server never sees a card number, CVV, or wallet PIN — this keeps your PCI compliance burden to a minimum.

2. Key Features

A quick overview of what's included in version 1.0.0.

Three Payment Methods

Card, JazzCash Mobile Account, and Over-the-Counter Voucher — each is its own toggleable WooCommerce payment method.

Hosted-Page Security

Card and wallet details are entered on JazzCash's own secure page — never on your server.

Secure Hash on Every Transaction

Every request and every response is signed and verified with HMAC-SHA256. Unverifiable responses are rejected automatically.

Built-in Sandbox Mode

A permanent, always-visible toggle lets you test the full payment flow before switching to live credentials — no code edits required.

Automatic Order Updates

A Return URL updates the order the moment the customer comes back, and an IPN webhook confirms Voucher payments once settled.

Transaction Details on Every Order

The order screen shows the JazzCash transaction reference, retrieval reference number (RRN), and response code/message.

Redacted Debug Logging

Optional request/response logging via WooCommerce > Status > Logs, with passwords, card numbers, and hashes always hidden.

HPOS & Checkout Blocks Ready

Fully compatible with WooCommerce's High-Performance Order Storage and the block-based checkout.

3. Requirements

Make sure your store meets these requirements before installing.

RequirementMinimum
WordPress6.6 or higher
PHP7.4 or higher
WooCommerce7.0 or higher (required — this plugin adds WooCommerce payment gateways and does nothing without it)
Store currencyPakistani Rupee (PKR) — JazzCash gateways only appear at checkout when the store currency is set to PKR
Checkout page typeClassic (shortcode) checkout. The WooCommerce Cart & Checkout Blocks are not yet supported — see the callout below.
JazzCash accountA free JazzCash Sandbox account for testing, and a verified JazzCash Merchant account for live payments

If your Checkout page uses the WooCommerce Cart & Checkout Blocks (common on newer themes/setups), edit that page and switch it to the classic [woocommerce_checkout] shortcode. JazzCash payment options will not appear on the block-based checkout in this release.

No other plugins are required. This is a standalone WooCommerce payment gateway — it does not depend on WP Job Manager, membership plugins, or any other add-on.

4. Installation

Follow these steps in order. The whole process takes about five minutes.

  1. 1

    Upload the plugin

    In your WordPress dashboard, go to Plugins > Add New Plugin > Upload Plugin, choose the plugin ZIP file you downloaded, and click Install Now.

    Plugins > Add New > Upload Plugin screen with the JazzCash plugin ZIP selected
    Plugins > Add New > Upload Plugin
  2. 2

    Activate the plugin

    Once installed, click Activate Plugin. If WooCommerce isn't active, you'll see a notice asking you to install/activate it first.

    WordPress Plugins list showing Fauran Pay for JazzCash WooCommerce active
    Plugins list after activation
  3. 3

    Open WooCommerce Payment settings

    Go to WooCommerce > Settings > Payments. You'll see three new payment methods: JazzCash - Credit/Debit Card, JazzCash - Mobile Account, and JazzCash - Over-the-Counter Voucher.

    WooCommerce Settings Payments tab listing the three JazzCash gateways
    WooCommerce > Settings > Payments
  4. 4

    Enable and configure a gateway

    Click Manage (or the gateway name) next to any method, tick Enable, then fill in your Sandbox credentials — see Getting Started below.

    JazzCash Card gateway settings screen with Sandbox Mode enabled and credential fields visible
    Gateway settings screen

5. Getting Started / Quick Setup

The first things to configure right after activation.

  1. 1

    Get your Sandbox credentials

    Sign up for a free account at the JazzCash Sandbox Portal to receive a Merchant ID, Password, and Integrity Salt. These are separate from your future live credentials.
  2. 2

    Enter your credentials per gateway

    On each gateway's settings screen, Sandbox Mode is enabled by default. Enter your Sandbox Merchant ID, Password, and Integrity Salt in the fields that appear underneath.
  3. 3

    Register your callback URLs with JazzCash

    Every gateway's settings screen displays a Return URL and an IPN URL, unique to your site. Copy both into your JazzCash Sandbox/Merchant Portal configuration so JazzCash knows where to send payment results.

    Return URL: https://yourstore.com/?wc-api=jazzcash_return
    IPN URL:    https://yourstore.com/?wc-api=jazzcash_ipn
  4. 4

    Place a test order

    Add a product to your cart, check out, and choose a JazzCash payment method. Complete the test transaction using JazzCash's Sandbox test credentials, then confirm the order updates automatically in WooCommerce > Orders.
  5. 5

    Go live

    When you're ready to accept real payments: enter your verified Live Merchant ID, Password, and Integrity Salt, then untick Sandbox Mode. The Sandbox Mode checkbox stays visible at all times, so you can always switch back to testing later if needed.

While Sandbox Mode is on, no real money moves — orders are processed against JazzCash's test environment only. A warning banner reminds you of this on the settings screen.

6. How to Use

Settings screen, field by field

Every gateway (Card, Mobile Account, Voucher) shares the same core settings:

FieldWhat it does
Enable/DisableTurns this specific payment method on or off at checkout.
TitleThe name customers see at checkout (e.g. "Credit/Debit Card").
DescriptionA short note shown under the title at checkout.
Sandbox ModeAlways visible. Checked = test/Sandbox environment. Unchecked = Live environment. Only the credential fields underneath change visibility — this checkbox itself never disappears.
Sandbox Merchant ID / Password / Integrity SaltYour test credentials from the JazzCash Sandbox Portal. Shown while Sandbox Mode is checked.
Live Merchant ID / Password / Integrity SaltYour verified live credentials from the JazzCash Merchant Portal. Shown while Sandbox Mode is unchecked.
Transaction Expiry (hours)How long the issuing bank has to approve payment, up to JazzCash's 2160-hour (3-month) maximum. Default: 72 hours.
Debug LogLogs gateway requests/responses to WooCommerce > Status > Logs for troubleshooting. Sensitive fields are always redacted.
Remove Data on UninstallOptional. Only if checked, deleting the plugin also removes its settings and order metadata. Left unchecked by default so nothing is lost if you reinstall later.

Gateway-specific fields

The Mobile Account and Voucher gateways additionally have Bank ID and Product ID fields, supplied by JazzCash (Sandbox defaults are TBANK and RETL).

How the payment flow works

  1. 1

    Customer chooses a method

    At checkout, the customer selects Card, Mobile Account, or Voucher.
  2. 2

    Redirect to JazzCash

    They're sent to JazzCash's secure hosted page to enter their card/wallet details, or to receive a voucher number.
  3. 3

    JazzCash reports back

    JazzCash sends a signed result to your store's Return URL. The plugin verifies the Secure Hash before trusting anything in that response.
  4. 4

    Order updates automatically

    On success, the order is marked Processing/Completed. On failure, it's marked Failed with the reason recorded as an order note.
  5. 5

    Vouchers settle later

    Voucher orders are placed On hold immediately (cash hasn't been paid yet). Once the customer pays at a JazzCash outlet, JazzCash calls your IPN URL and the order is completed automatically — no manual follow-up needed.
WooCommerce checkout page showing the JazzCash Card, Mobile Account, and Voucher payment options
Checkout with all three JazzCash options

Viewing transaction details on an order

Open any order paid via JazzCash in WooCommerce > Orders. A "JazzCash Transaction Details" box appears near the top, showing the Transaction Reference Number, Retrieval Reference Number (RRN) if provided, and the last known response code/message.

WooCommerce order edit screen showing the JazzCash Transaction Details box
Order screen — JazzCash Transaction Details

Debug logging

Enable Debug Log on any gateway, then check WooCommerce > Status > Logs and choose the log source jazzcash. Passwords, card numbers, CVVs, PINs, and secure hashes are always replaced with ***REDACTED*** — safe to share with support.

WooCommerce Status Logs screen showing a redacted JazzCash gateway log entry
WooCommerce > Status > Logs

Shortcodes, widgets & blocks

None are needed. Once a gateway is enabled, it registers itself automatically as a WooCommerce payment method and appears at checkout on its own. There is nothing to insert into a page or post.

7. Developer Hooks & Filters

For developers extending the plugin. These are the only custom hooks the plugin exposes — everything else is standard WooCommerce (WC_Payment_Gateway, order status transitions, etc.) and needs no special documentation here.

None of these are required for normal use. Skip this section unless you're a developer customizing the plugin from a theme or another plugin's functions.php.

HookPurpose
jazzcash_wc_payment_portal_urlFilter — overrides the JazzCash hosted-page endpoint URL the customer is redirected to. Params: $url (string), $sandbox (bool).
jazzcash_wc_card_iconFilter — overrides the checkout icon shown next to the Card gateway's title. Param: $icon_url (string).
jazzcash_wc_wallet_iconFilter — overrides the checkout icon shown next to the Mobile Account gateway's title. Param: $icon_url (string).
jazzcash_wc_voucher_iconFilter — overrides the checkout icon shown next to the Voucher gateway's title. Param: $icon_url (string).

Example: pointing at a JazzCash-communicated endpoint change

add_filter( 'jazzcash_wc_payment_portal_url', function ( $url, $sandbox ) {
	if ( ! $sandbox ) {
		return 'https://payments.jazzcash.com.pk/CustomerPortal/transactionmanagement/merchantform/';
	}
	return $url;
}, 10, 2 );

Example: replacing a checkout icon

add_filter( 'jazzcash_wc_card_icon', function ( $icon_url ) {
	return get_stylesheet_directory_uri() . '/images/my-custom-card-icon.svg';
} );

8. Frequently Asked Questions

Does this plugin store customer card numbers?
No. Card and mobile-account entry happens entirely on JazzCash's own hosted payment page. This plugin only ever handles the order total, a transaction reference number, and the signed pass/fail result — never a card number, CVV, or wallet PIN.
Where do I find my Merchant ID, Password, and Integrity Salt?
Register a free account on the JazzCash Sandbox Portal for test/Sandbox credentials. For live credentials, complete merchant verification on the live JazzCash Merchant Portal.
What URL do I give JazzCash for the Return URL / IPN URL?
Each gateway's own settings screen displays the exact URLs for your site. They follow the pattern https://yourstore.com/?wc-api=jazzcash_return and https://yourstore.com/?wc-api=jazzcash_ipn.
Why isn't the JazzCash option appearing at checkout?
Check three things: (1) your store currency is set to PKR in WooCommerce > Settings > General, (2) the gateway is enabled, and (3) all three credential fields for the active mode (Sandbox or Live) are filled in.
My orders aren't updating after payment — what should I check?
Enable Debug Log and review WooCommerce > Status > Logs (source: jazzcash). Most issues trace back to a mismatched Integrity Salt, mixing up Sandbox and Live credentials, or a firewall/security plugin blocking the inbound callback.
What happens to Voucher orders before the customer pays?
The order is placed On hold right away, since no cash has changed hands yet. It updates to Processing/Completed automatically once JazzCash confirms the voucher was paid at an outlet.
Can I run Sandbox and Live at the same time for different gateways?
Yes. Sandbox Mode is set independently per gateway, so you could, for example, keep Voucher in Sandbox while Card and Mobile Account run Live.
Does this plugin support subscriptions or recurring payments?
Not in version 1.0.0. Each transaction is a one-time, customer-initiated redirect to JazzCash's hosted page, so automatic recurring billing isn't currently supported.
Is this plugin affiliated with JazzCash or Mobilink Microfinance Bank?
No. This is an independent, third-party integration built against JazzCash's published API documentation.
Can I change the title and description customers see at checkout?
Yes — the Title and Description fields on each gateway's settings screen are fully customizable.
Does this plugin work with the WooCommerce Cart & Checkout Blocks?
Not yet. This release supports the classic (shortcode) checkout only. If your Checkout page uses the block-based checkout, JazzCash options will not appear there — switch that page to the classic [woocommerce_checkout] shortcode instead.

9. Troubleshooting

The gateway doesn't show up on the checkout page
Confirm your store currency is PKR, the gateway is enabled, every credential field for the currently active mode (Sandbox or Live) has a value, and your Checkout page uses the classic [woocommerce_checkout] shortcode rather than the Cart & Checkout Blocks (block-based checkout is not yet supported). A gateway with any blank credential field, or a block-based checkout page, will not show JazzCash options.
The redirect to JazzCash fails or shows a blank page
Make sure your site is served over HTTPS and that no security plugin or firewall is blocking outbound form submissions from the checkout/pay page. Try temporarily disabling other plugins to rule out a JavaScript conflict.
An order stays on "Pending" or "On hold" after the customer paid
This usually means JazzCash couldn't reach your Return URL or IPN URL. Check that your site isn't password-protected (common on staging sites), isn't blocking the JazzCash IP range, and that the URLs shown in the gateway settings were entered correctly in the JazzCash Portal.
The log shows "secure hash verification failed"
This means the Integrity Salt used to sign the response doesn't match what your store expects — almost always caused by entering a Live Integrity Salt while Sandbox Mode is on (or vice-versa), or a typo when copying the value from the JazzCash Portal. Re-copy the exact value and re-save.
A Voucher order never completes, even after the customer paid in cash
Voucher completion depends entirely on JazzCash's IPN webhook reaching your IPN URL. Confirm the IPN URL is registered correctly in your JazzCash Merchant Portal, and contact JazzCash merchant support to confirm IPN delivery is enabled for your account.
I see a red notice saying my PHP or WooCommerce version is too old
Update PHP to 7.4+ and WooCommerce to 7.0+ from your hosting control panel / WordPress admin. The plugin deliberately disables itself below these versions rather than risk unpredictable behavior.

10. Changelog

Version 1.0.0 — Initial release

  • Three payment gateways: JazzCash Card, Mobile Account, and Over-the-Counter Voucher.
  • Always-visible Sandbox/Live mode toggle, independent per gateway.
  • HMAC-SHA256 Secure Hash generation and verification on every request and response.
  • Return URL and IPN webhook handlers with automatic order status updates.
  • Order-screen transaction details box (reference number, RRN, response code/message).
  • Redacted debug logging via WooCommerce > Status > Logs.
  • High-Performance Order Storage (HPOS) compatibility.

Classic checkout only in this release. These gateways use the classic [woocommerce_checkout] shortcode checkout. If your Checkout page uses the WooCommerce Cart & Checkout Blocks, switch it back to the classic shortcode — block-based checkout support is not yet included, and no JazzCash options will appear there until it is.

11. Support

Support covers installation help, configuration questions, and fixing genuine bugs in the plugin for the current supported version.

Support email[email protected]
Support URLdevmubs.com/support
Typical response timeWithin 1–2 business days
Support period6 months included, extendable

What's not covered: custom development, third-party plugin/theme conflicts outside our control, and issues with your JazzCash merchant account itself (contact JazzCash directly for account-level issues).

12. Credits & License

This plugin is licensed under the GNU General Public License v2.0 or later, the same license as WordPress itself.

Read the full GPLv2 license text.

Credits

  • Built by Usama Saleem — devmubs.com
  • No third-party JavaScript or CSS libraries are bundled. jQuery, used by the settings-screen script, is the copy already included with WordPress core — it is never replaced or duplicated.
  • Built against JazzCash's publicly published Sandbox API documentation.

“JazzCash” is a trademark of its respective owner. This is an independent, third-party plugin and is not affiliated with or endorsed by JazzCash or Mobilink Microfinance Bank.

We use cookies

We use essential cookies to run this site, and optional cookies to understand usage and remember your preferences. Read our Cookie Policy to learn more.