One API for EasyPaisa and JazzCash deposits and instant payouts — built for gaming apps, color-trading and 3patti platforms, investment and plan sites, and other high-risk businesses. No bank integration, no paperwork stack, no months of approval. Get your keys today and take a real deposit this afternoon.
EasyPaisa
JazzCash
·
No setup fee · No monthly fee · Pay only when money moves
EasyPaisaPay from your wallet
JazzCashPay from your wallet
Banks and mainstream processors freeze payouts, ask for a year of paperwork, or say no outright. We are built for wallet-based deposits and fast payouts at volume — so these merchants can actually run.
Ludo, rummy, poker and 3patti tables, fantasy contests, tournaments — instant deposits into the wallet and instant winning payouts back out.
Color, up/down and number-prediction rounds where players top up and cash out constantly. Webhooks confirm the deposit before you credit a round.
Daily-return plans, staking and referral programs. Collect plan purchases, run scheduled payouts to member wallets, keep every rupee on a ledger.
Sportsbook, cards, spin and crash-style games. High deposit frequency, small tickets, and payouts that have to clear in seconds — that is exactly what we tuned for.
Recharge portals, in-app currency, subscription and credits systems that need EasyPaisa and JazzCash in one integration.
Adult, forex signals, gift-card resale, crypto on-ramps — if a normal PSP has turned you down, start a conversation with us.
You are responsible for operating within the law that applies to your players and your jurisdiction. We review every merchant before going live.
Your server creates a payment, we host the checkout, the customer pays from their wallet, and we tell your server the moment the money lands.
POST an amount and your own order ID. You get back a hosted checkout URL, ready to open.
A clean PAKPAY page takes them to EasyPaisa or JazzCash. Nothing sensitive touches your server.
A signed JSON webhook hits your endpoint the instant it confirms. Retried for six hours if you are down.
Your balance builds up in the panel. Send it to your own wallet number — automatically.
No SDK to install, no OAuth dance, no sandbox that behaves differently from production. Sign your parameters, POST them, redirect the customer. That is the whole integration.
curl -X POST https://pakpay.org/api/v1/create.php \
-d api_key=pk_live_xxx \
-d order_id=INV-10428 \
-d amount=2500.00 \
-d return_url=https://yourstore.pk/thanks \
-d sign=$SIGN
# { "status": true,
# "payment_url": "https://pakpay.org/pay/?t=…",
# "fee": 87.50, "net_amount": 2,412.50 }
$p = [
'api_key' => PAKPAY_PUBLIC,
'order_id' => 'INV-10428',
'amount' => '2500.00',
'return_url' => 'https://yourstore.pk/thanks',
];
ksort($p);
$q = [];
foreach ($p as $k => $v) $q[] = "$k=$v";
$p['sign'] = hash_hmac('sha256', implode('&', $q), PAKPAY_SECRET);
$r = json_decode(file_get_contents(
'https://pakpay.org/api/v1/create.php', false,
stream_context_create(['http' => [
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => http_build_query($p),
]])
), true);
header('Location: ' . $r['payment_url']);
import crypto from 'node:crypto';
const p = {
api_key: process.env.PAKPAY_PUBLIC,
order_id: 'INV-10428',
amount: '2500.00',
return_url: 'https://yourstore.pk/thanks',
};
const base = Object.keys(p).sort().map(k => `${k}=${p[k]}`).join('&');
p.sign = crypto.createHmac('sha256', process.env.PAKPAY_SECRET)
.update(base).digest('hex');
const res = await fetch('https://pakpay.org/api/v1/create.php', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams(p),
});
const { payment_url } = await res.json();
import hmac, hashlib, requests
p = {
"api_key": PAKPAY_PUBLIC,
"order_id": "INV-10428",
"amount": "2500.00",
"return_url": "https://yourstore.pk/thanks",
}
base = "&".join(f"{k}={p[k]}" for k in sorted(p))
p["sign"] = hmac.new(
PAKPAY_SECRET.encode(), base.encode(), hashlib.sha256
).hexdigest()
r = requests.post("https://pakpay.org/api/v1/create.php", data=p).json()
redirect(r["payment_url"])
No setup fee, no monthly fee, no minimum volume. Drag the slider — these are our real rates.
Doing serious volume? Rates are set per merchant and we will review yours before you launch.
Not a thin wrapper. A real gateway with a real ledger behind it.
Every request you send is HMAC-SHA256 signed with your secret, and so is every webhook we send back. Optional IP whitelisting locks it down further.
Every rupee in and out is a ledger line with a running balance. Nothing about your money is a black box you have to email us about.
If your endpoint is down we retry after 1m, 5m, 15m, 1h and 6h — and you can replay any delivery by hand from the panel.
If a withdrawal is rejected by the network, the full amount goes straight back to your balance. You are never left short.
Volume, success rate, fees and settlement in one screen — filterable by date, wallet, status or customer number.
Rotate your secret key whenever you want. Nothing is emailed in plain text and nothing is stored where we can read it back.
Included free with every account. No extra dashboard fee, no per-seat pricing.
| Order | Method | Amount | Net | Status |
|---|---|---|---|---|
| INV-10428 | EasyPaisa | 2,500.00 | 2,412.50 | Success |
| INV-10427 | JazzCash | 7,900.00 | 7,623.50 | Success |
| INV-10426 | EasyPaisa | 1,200.00 | — | Pending |
| INV-10425 | JazzCash | 15,000.00 | 14,475.00 | Success |
Free account, no setup fee, built for gaming, prediction and high-risk sites — and you keep your own wallet numbers.