Title: AMSites Payment Gateway
Author: AM-Sites Web Experts
Published: <strong>August 20, 2026</strong>
Last modified: August 20, 2026

---

Search plugins

![](https://ps.w.org/amsites-payment-gateway/assets/banner-772x250.png?rev=3657072)

![](https://ps.w.org/amsites-payment-gateway/assets/icon-256x256.png?rev=3657072)

# AMSites Payment Gateway

 By [AM-Sites Web Experts](https://profiles.wordpress.org/amsiteswebexperts/)

[Download](https://downloads.wordpress.org/plugin/amsites-payment-gateway.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/amsites-payment-gateway/#description)
 * [Reviews](https://wordpress.org/plugins/amsites-payment-gateway/#reviews)
 *  [Installation](https://wordpress.org/plugins/amsites-payment-gateway/#installation)
 * [Development](https://wordpress.org/plugins/amsites-payment-gateway/#developers)

 [Support](https://wordpress.org/support/plugin/amsites-payment-gateway/)

## Description

**AMSites Payment Gateway** is a modern WooCommerce payment solution designed for
businesses in Pakistan. Accept payments through multiple local payment gateways —
including JazzCash, Easypaisa, Direct Bank Transfer, and future payment providers
such as Raast — from a single, easy-to-use interface.

The plugin is lightweight, secure, developer-friendly, and built following WordPress
coding standards.

#### Payment methods included in this release

On **WooCommerce > Settings > Payments** this plugin adds exactly **one row: “AMSites
Payment Gateway”** (Enable/Manage/Disable, exactly like any other WooCommerce gateway).
Clicking **Manage** opens one settings screen with a dropdown to select and configure
each payment method — add more methods later and they simply appear as additional
dropdown options:

 * **JazzCash** — shared Merchant ID, Password, Integrity Salt and Sandbox/Live 
   mode, entered once and used by all three JazzCash API methods below, plus a master
   Enable/Disable for JazzCash as a whole.
 * **JazzCash Mobile Account** (mobile wallet balance)
 * **JazzCash Credit/Debit Card** (Visa, Mastercard, via JazzCash’s hosted payment
   page, including 3-D Secure)
 * **JazzCash Over-the-Counter Voucher** (cash payment at any JazzCash outlet)
 * **JazzCash QR Payment** (manual — customer scans your JazzCash QR code, pays,
   and enters a Transaction ID for you to confirm; no merchant API account needed)
 * **Easypaisa QR Payment** (manual — same flow as above, for Easypaisa)
 * **Direct Bank Transfer** (manual/offline bank deposit, with support for listing
   multiple bank accounts)

Every method has its own Enable/Disable switch and its own **Checkout Icon** setting:
pick an image from your WordPress Media Library, or choose and recolour one of 35
+ bundled preset payment icons (card/wallet/bank/general) — shown before or after
the payment method title, your choice.

#### Coming in future updates

 * Easypaisa live API integration (Mobile Account/Card, beyond today’s manual QR
   option)
 * Raast (State Bank of Pakistan’s instant payment system)

#### Why this plugin

 * **PCI-DSS friendly by design.** JazzCash card and mobile account credentials 
   are entered on JazzCash’s own hosted payment page — your server never receives,
   stores, or transmits cardholder data.
 * **Secure Hash on every request and response.** Every outgoing JazzCash request
   and every inbound callback is signed and verified with HMAC-SHA256, exactly as
   specified in the JazzCash integration guide. Responses that fail verification
   are rejected and never applied to an order.
 * **Sandbox Mode built in.** Flip a single checkbox per JazzCash gateway to test
   end-to-end against the JazzCash Sandbox before going live — no code changes required.
 * **Clean, modern codebase.** 100% object-oriented, PSR-4 autoloaded, namespaced,
   and built strictly against the WordPress Plugin/WooCommerce Payment Gateway APIs.
   No inline CSS/JS, no direct file access, all output escaped, all input sanitized
   and validated.
 * **HPOS ready.** Declares compatibility with WooCommerce’s High-Performance Order
   Storage. Uses the classic (shortcode) checkout — the block-based Cart/Checkout
   is not yet supported, so gateways will not appear there until a dedicated Blocks
   integration ships in a future release.
 * **One plugin, one settings area.** All local payment methods for your store live
   under WooCommerce > Settings > Payments, instead of juggling several separate
   plugins.

#### How it works (JazzCash)

 1. The customer chooses Card, Mobile Account, or Voucher at WooCommerce checkout.
 2. They’re redirected to JazzCash’s secure hosted page to authorize payment (or, for
    vouchers, to receive a 12-digit voucher number by SMS).
 3. JazzCash posts the signed result back to your store, the Secure Hash is verified,
    and the order is updated automatically — no manual reconciliation.
 4. For vouchers paid later at a JazzCash outlet, an Instant Payment Notification (
    IPN) webhook updates the order the moment JazzCash confirms settlement.

#### How it works (Direct Bank Transfer)

 1. The customer chooses Direct Bank Transfer at checkout and places the order.
 2. The order is placed **on-hold** and the customer sees your configured bank account
    details on the order confirmation page and in their confirmation email.
 3. Once you confirm the funds have arrived in your account, you manually mark the 
    order as Processing/Completed from the WooCommerce Orders screen.

#### Requirements

 * WooCommerce 7.0+
 * For JazzCash: a JazzCash Merchant account (Sandbox account is free — see [Getting Started](https://sandbox.jazzcash.com.pk/sandbox/Home/GettingStarted))
   and store currency set to PKR
 * The classic (shortcode) checkout. If your theme/setup uses the WooCommerce Cart&
   Checkout Blocks, switch that page back to the classic `[woocommerce_checkout]`
   shortcode — block-based checkout support is not yet included in this release.

### External services

This plugin connects to JazzCash’s hosted payment page (Sandbox: `https://sandbox.
jazzcash.com.pk/CustomerPortal/transactionmanagement/merchantform/`, Live: `https://
payments.jazzcash.com.pk/CustomerPortal/transactionmanagement/merchantform/`) to
process JazzCash Card, Mobile Account, and Over-the-Counter Voucher transactions—
this is required for the plugin’s core purpose, as WooCommerce cannot process JazzCash
payments without it. It sends the order amount, currency (PKR), a merchant-generated
transaction reference number, the WooCommerce order number, a fixed order-description
string, a request timestamp/expiry, your store’s configured Merchant ID and Return
URL, and (for Mobile Account/Voucher only) your configured Bank ID and Product ID,
each time a customer submits checkout using a JazzCash payment method. No customer
name, email, phone number, or billing address is sent. The customer’s browser is
then redirected to JazzCash’s own hosted page to enter card or mobile account credentials
directly with JazzCash; those credentials never pass through this plugin or your
server. JazzCash sends a signed result back to your store’s Return URL and IPN endpoint
to confirm or reject the payment. This service is provided by JazzCash (Private)
Limited / Mobilink Microfinance Bank: [Terms & Conditions](https://www.jazzcash.com.pk/tc),
[Privacy Notice](https://www.jazzcash.com.pk/assets/documents/JCP-Customer-Privacy-Notice-30.01.26.pdf).

The Direct Bank Transfer method is a manual/offline payment method and does not 
connect to any external service.

## Screenshots

[⌊Payments settings screen listing all AMSites Payment Gateway methods.⌉⌊Payments
settings screen listing all AMSites Payment Gateway methods.⌉[

Payments settings screen listing all AMSites Payment Gateway methods.

[⌊JazzCash gateway settings with Sandbox Mode toggle.⌉⌊JazzCash gateway settings
with Sandbox Mode toggle.⌉[

JazzCash gateway settings with Sandbox Mode toggle.

[⌊Checkout with JazzCash Card, Mobile Account, Voucher, and Direct Bank Transfer
options.⌉⌊Checkout with JazzCash Card, Mobile Account, Voucher, and Direct Bank 
Transfer options.⌉[

Checkout with JazzCash Card, Mobile Account, Voucher, and Direct Bank Transfer options.

## Installation

 1.  Upload the plugin files to `/wp-content/plugins/amsites-payment-gateway`, or install
     the zip via **Plugins > Add New > Upload Plugin**.
 2.  Activate the plugin through the **Plugins** screen in WordPress.
 3.  Go to **WooCommerce > Settings > Payments**, make sure **AMSites Payment Gateway**
     is enabled, then click **Manage**.
 4.  From the dropdown, select **JazzCash**: enter your **Sandbox** credentials (Merchant
     ID, Password, Integrity Salt) from the JazzCash Sandbox Portal, keeping **Sandbox
     Mode** enabled while testing. Add the Return URL / IPN URL shown here to your 
     JazzCash Merchant/Sandbox Portal configuration.
 5.  Select **JazzCash Mobile Account**, **JazzCash Credit/Debit Card**, and **JazzCash
     Over-the-Counter Voucher** from the dropdown and enable whichever methods you 
     want to offer (they all use the credentials entered on the JazzCash option).
 6.  Select **JazzCash QR Payment** / **Easypaisa QR Payment** (optional, no API account
     needed): enable, then upload a screenshot of your JazzCash/Easypaisa QR code.
 7.  Select **Direct Bank Transfer**: enable it and enter your bank account details(
     Bank Name, Account Title, Account Number, IBAN).
 8.  Place a test order to confirm each enabled method works end-to-end.
 9.  When ready to accept real JazzCash payments, go back to the **JazzCash** option
     in the dropdown, enter your **Live** credentials, and disable **Sandbox Mode**.

## FAQ

### Does this plugin store customer card numbers?

No. Card and mobile-account entry happens entirely on JazzCash’s hosted payment 
page. This plugin only ever handles the order total, a transaction reference number,
and the signed pass/fail result — never a PAN, CVV, or MPIN.

### Where do I find my JazzCash Merchant ID, Password, and Integrity Salt?

Register for a free account at the [JazzCash Sandbox Portal](https://sandbox.jazzcash.com.pk/sandbox/Home/GettingStarted)
to get Sandbox credentials, and complete merchant verification on the live JazzCash
Merchant Portal to get Live credentials.

### What URL do I give JazzCash for the Return URL / IPN URL?

The **JazzCash** option (under AMSites Payment Gateway > Manage) displays the exact
URLs to configure. They follow the pattern `https://yourstore.com/?wc-api=amspg_jazzcash_return`
and `https://yourstore.com/?wc-api=amspg_jazzcash_ipn`.

### My JazzCash orders aren’t updating after payment — what should I check?

Enable **Debug Log** on the gateway and review **WooCommerce > Status > Logs** (
source: `jazzcash`). Most issues trace back to a mismatched Integrity Salt, an incorrect
Merchant ID for the selected mode (Sandbox vs Live), or a firewall/security plugin
blocking the inbound callback.

### Does Bank Transfer confirm payments automatically?

No. Since Pakistani banks do not currently offer a public online payment API, Bank
Transfer works like a standard offline/manual payment method: the order is placed
on-hold and you confirm receipt of funds yourself before marking the order Processing
or Completed.

### How do JazzCash QR Payment and Easypaisa QR Payment work?

They’re manual methods, like Bank Transfer — no merchant API account, Merchant ID,
or credentials required. You upload a screenshot of your own JazzCash or Easypaisa
QR code; the customer scans it with their app, pays, and enters the Transaction 
ID (and optionally the last 4 digits of the phone number they paid from) at checkout.
The order is placed on-hold with that Transaction ID saved to the order for you 
to verify in your JazzCash/Easypaisa app before marking it Processing or Completed.

### Is this plugin affiliated with JazzCash, Easypaisa, or any bank?

No. This is an independent, third-party integration built against publicly published
API documentation.

### Why don’t the payment options appear at checkout even though everything is configured correctly?

Check whether your Checkout page is using the WooCommerce Cart & Checkout Blocks.
This plugin currently supports the classic (shortcode) checkout only; block-based
checkout support is not yet included. Edit the Checkout page and confirm it uses
the classic `[woocommerce_checkout]` shortcode rather than the Checkout block.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“AMSites Payment Gateway” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ AM-Sites Web Experts ](https://profiles.wordpress.org/amsiteswebexperts/)

[Translate “AMSites Payment Gateway” into your language.](https://translate.wordpress.org/projects/wp-plugins/amsites-payment-gateway)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/amsites-payment-gateway/),
check out the [SVN repository](https://plugins.svn.wordpress.org/amsites-payment-gateway/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/amsites-payment-gateway/)
by [RSS](https://plugins.trac.wordpress.org/log/amsites-payment-gateway/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial public release.
 * One combined “AMSites Payment Gateway” row on WooCommerce > Settings > Payments—
   Enable/Manage/Disable like any other gateway. “Manage” opens a dropdown-based
   settings screen covering every payment method below, so the list never gets cluttered
   as more methods are added.
 * JazzCash Mobile Account, Credit/Debit Card, and Over-the-Counter Voucher — hosted-
   page redirection with HMAC-SHA256 Secure Hash generation and verification on 
   every request/response, Sandbox/Live mode, and automatic order updates via Return
   URL and IPN webhooks.
 * Shared JazzCash Merchant ID, Password, and Integrity Salt entered once and used
   by all three JazzCash API methods, alongside a master Enable/Disable for JazzCash
   as a whole.
 * JazzCash QR Payment and Easypaisa QR Payment — manual/offline methods, no merchant
   API account needed. Upload your QR code image; customers scan, pay, and enter
   a Transaction ID at checkout for you to confirm.
 * Direct Bank Transfer — manual/offline, supports multiple bank accounts.
 * Checkout Icon picker on every method: choose an image from the WordPress Media
   Library, or pick and recolour one of 35+ bundled preset icons (card/wallet/bank/
   payment), shown before or after the payment method title.
 * High-Performance Order Storage (HPOS) compatible. Classic (shortcode) checkout
   only in this release — block-based Cart/Checkout is not yet supported.

## Meta

 *  Version **1.0.0**
 *  Last updated **23 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.6 or higher **
 *  Tested up to **7.0.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [easypaisa](https://wordpress.org/plugins/tags/easypaisa/)[jazzcash](https://wordpress.org/plugins/tags/jazzcash/)
   [pakistan](https://wordpress.org/plugins/tags/pakistan/)[payment gateway](https://wordpress.org/plugins/tags/payment-gateway/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/amsites-payment-gateway/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/amsites-payment-gateway/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/amsites-payment-gateway/reviews/)

## Contributors

 *   [ AM-Sites Web Experts ](https://profiles.wordpress.org/amsiteswebexperts/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/amsites-payment-gateway/)