JazzCash payment gateway integration in a website takes three things: an approved JazzCash merchant account, its credentials (Merchant ID, Password and Integrity Salt), and a plugin or server code that signs each request with HMAC-SHA256 and verifies the response. Test in the sandbox first, then switch to live credentials. Easypaisa follows a similar pattern.
Key takeaways
- You cannot go live without a merchant account approved by JazzCash, Easypaisa or a licensed aggregator; free sandbox access is for testing only.
- Sandbox and live credentials are separate. Mixing them is the most common reason payments fail.
- Most order-status failures trace back to a wrong Integrity Salt or hash key, or to a return/IPN URL not registered in the merchant portal.
- Store currency must be PKR, and many Pakistani gateway plugins only support the classic WooCommerce checkout.
Quick answer: how JazzCash integration works
The customer picks JazzCash at checkout. Your site builds a payment request (amount, order reference, return URL), signs it with your Integrity Salt, and sends the customer to JazzCash's hosted page. The customer pays by card, JazzCash mobile account or over-the-counter voucher. JazzCash then returns a signed response to your site, which verifies the signature and marks the order paid, pending or failed.
JazzCash introduced a hosted checkout so card details are processed on payment-network servers rather than stored by the merchant, which keeps most card-security compliance off your plate. For WooCommerce you can use a plugin; for custom PHP, Laravel or Node.js sites you write the signing and callback handling yourself.
Store owners deciding how to accept wallet payments, and developers doing the integration. If you would rather have it done, our ecommerce development team handles gateway setup as part of a store build.
Key factors before you integrate an online payment gateway in Pakistan
1. Direct merchant account or aggregator
You can apply to JazzCash and Easypaisa separately, or use a licensed aggregator that offers several methods under one contract. Aggregators such as PayFast, which got a commercial licence from the State Bank of Pakistan in 2021, accept cards, wallets and bank accounts through one integration. Fewer contracts and one dashboard come at the cost of an extra party in the settlement chain.
| Direct (JazzCash / Easypaisa) | Aggregator | |
|---|---|---|
| Contracts | One per provider | One |
| Integrations to build | One per provider | One |
| Payment methods | That provider's wallet, cards, vouchers | Cards, several wallets, bank accounts |
| Support | Provider's merchant support | Aggregator's support |
| Best for | Stores wanting one wallet quickly | Stores wanting every method in one checkout |
2. Documents and approval
Providers verify your business before issuing live credentials. Expect to supply business registration or NTN details, owner CNIC, a business bank account and a working website showing products, prices, contact details, and refund and delivery policies. Requirements vary by provider and business type, so confirm the current list with their merchant team. Start this in week one of a build; approval is often the slowest step.
3. Your platform and checkout
WooCommerce has the widest choice of Pakistani gateway plugins. Shopify needs a gateway app approved for your store; our Shopify development team can advise which apps support Pakistani wallets. Custom sites need server-side code, which our software development team writes and maintains. In every case the store currency must be PKR.
4. Hosting and SSL
Callbacks only reach a site that is publicly accessible over HTTPS with a valid certificate. Cheap hosting that blocks outgoing requests or times out under load causes silent payment failures. Our guide to hosting in Pakistan covers what to look for.
Step-by-step plan: JazzCash and Easypaisa on WooCommerce
- Get sandbox credentials
Register on the JazzCash sandbox portal. You receive a test Merchant ID, Password and Integrity Salt. Wallet and voucher methods may also need a Bank ID and Product ID.
- Install a gateway plugin
On WooCommerce, install a JazzCash plugin such as Fauran Pay with JazzCash, which supports cards, mobile account and vouchers. Check it supports your WooCommerce and PHP versions.
- Enter credentials in sandbox mode
Go to WooCommerce > Settings > Payments, enable each JazzCash method, paste the sandbox credentials and keep Sandbox Mode on. Turn on debug logging.
- Register return and IPN URLs
Copy the Return URL and IPN URL the plugin shows and add them in your JazzCash portal. The IPN lets JazzCash update orders paid later, such as vouchers paid at a shop.
- Run test transactions
Test a successful payment, a cancelled payment, insufficient balance and an expired voucher. Confirm each order lands in the right WooCommerce status.
- Apply for live credentials
Complete merchant verification on the JazzCash merchant portal. Live credentials are different from sandbox ones.
- Switch to live and test with real money
Paste live credentials, turn off Sandbox Mode, and place a small real order with each method. Refund it through the merchant portal.
- Add Easypaisa the same way
Easypaisa issues a Store ID and Hash Key after the merchant agreement. Install an Easypaisa plugin, test in its sandbox, register the postback URL, then go live.
For custom PHP, Laravel or Node.js sites
- Build the request with the required pp_ fields (amount, bill reference, transaction reference, date-time, expiry, return URL).
- Send the amount in paisa: PKR multiplied by 100 as an integer, so PKR 1,500 becomes 150000, per community integration notes such as this JazzCash connector reference.
- Compute pp_SecureHash with HMAC-SHA256 over the sorted field values using your Integrity Salt, on the server only.
- On return and IPN, recompute the hash and compare before changing order status. Never trust the browser redirect alone.
- Treat response code 000 as success and handle pending and failure codes explicitly. Verify field names and endpoints against the integration document JazzCash gives you, since public references are unofficial.
Real examples of how Pakistani stores set up payments
These are typical setups we recommend by business type. They are patterns, not client results.
| Business | Recommended setup | Why |
|---|---|---|
| Fashion brand, mostly COD | COD + JazzCash + Easypaisa, prepaid discount | Nudges buyers to prepay and cuts refused parcels |
| Electronics store | Cards + wallets via aggregator, COD capped by value | High-value orders need protection from fake COD |
| School or academy fees | Wallets + vouchers, IPN-driven confirmation | Parents often pay at a shop after ordering |
| Clinic booking deposits | Wallet payment on a booking form | Reduces no-shows without a full store |
| Exporter selling abroad | International card processor, not PK wallets | Overseas buyers do not hold PK wallets |
Courier and COD workflows sit next to payments, and stores selling via chat often send payment links after click-to-WhatsApp ads or WhatsApp broadcasts. Plugins such as TrackKaro reconcile COD collected by PostEx, TCS, Leopards and others against courier payouts, which helps finance match wallet and cash income in one place.
Mistakes to avoid
| Symptom | Likely cause | Fix |
|---|---|---|
| Payment succeeds but order stays pending | IPN/return URL not registered or blocked | Register both URLs in the portal; check firewall and security plugins |
| Hash or signature mismatch | Wrong Integrity Salt or hash key, or wrong field order | Recopy the salt without spaces; match the field order in the provider's spec |
| Gateway missing at checkout | Block-based checkout or non-PKR currency | Use the classic checkout shortcode; set currency to PKR |
| Works in sandbox, fails live | Sandbox credentials still in use, or live account not activated | Swap all credentials and confirm activation with merchant support |
| Random timeouts | Slow or restricted shared hosting | Move to better hosting; allow outbound HTTPS |
- Storing the Integrity Salt or hash key in front-end JavaScript. Keep it server-side.
- Marking orders paid on the browser redirect without verifying the hash.
- Leaving debug logs on in production, where they may record transaction details.
- Not testing refunds and partial failures before launch.
- Applying for the merchant account after the site is finished, then waiting weeks to go live.

When a client tells us JazzCash is broken, nine times out of ten the gateway is fine. The callback URL was never added to the portal, or the salt was pasted with a trailing space.
Junaid Tariq, FounderWhen to get help
A WooCommerce store owner comfortable with plugin settings can usually finish a sandbox setup in an afternoon. If you want a second opinion first, a free website audit covers checkout and gateway checks. Get a developer involved if you run a custom-coded site, need several gateways in one checkout, want COD rules tied to payment method, or have orders stuck in the wrong status.
Gateway work is included in our Scale tier and available as an add-on; see the website development price page. For full builds, start with our website development services in Pakistan, or our Lahore team if you want to meet in person. If wallet payments are part of a wider sales flow, our CRM development work can log every payment against the customer record. You can also contact our team directly with your store URL.
Frequently asked questions
What is the quickest way to start?
Open a free JazzCash sandbox account, install a JazzCash WooCommerce plugin, enter the sandbox credentials and run test orders the same day. In parallel, apply for a live merchant account, since approval usually takes the longest. If you want every method under one contract, ask a licensed aggregator about onboarding instead of applying to each wallet separately.
What mistakes should I avoid?
Do not mix sandbox and live credentials, skip registering the return and IPN URLs, or mark orders paid without verifying the hash. Keep the Integrity Salt on the server, set store currency to PKR, and check that your plugin supports your checkout type. Test cancelled, failed and expired payments, plus refunds, before you launch.
Do I need an agency for this?
Not always. A WooCommerce owner who is comfortable with plugin settings can set up JazzCash with a plugin and the provider's instructions. An agency or developer makes sense for custom-coded sites, several gateways in one checkout, COD rules linked to payment method, or troubleshooting orders stuck on pending. We offer a free audit if you are unsure.
Can I accept Easypaisa and JazzCash on the same website?
Yes. You can install separate plugins for each provider, each with its own credentials, or use an aggregator that offers both wallets plus cards through one integration. Customers then choose their wallet at checkout. Test both methods end to end, since each provider has its own callback format and response codes.
Sources & further reading
- WordPress.org — Fauran Pay with JazzCash for WooCommerce
- ProPakistani — JazzCash introduces hosted checkout
- ProPakistani — PayFast gets commercial licence from SBP
- Ecosire docs — JazzCash payment gateway connector reference
- Ecosire docs — Easypaisa payment gateway connector reference
- WordPress.org — TrackKaro Pakistan courier tracking & COD