Raast QR Payment Gateway: How to Accept QR Payments Online in Pakistan

Raast QR Payment Gateway: How to Accept QR Payments Online in Pakistan

A Raast QR payment gateway lets customers pay your online business by scanning a QR code with their bank or wallet app. There is no card to type and no wallet number to approve: the customer scans, pays the exact amount, and the checkout updates by itself.

This guide explains how Raast QR payments work with ZurvaPay, what makes them reliable for merchants, and the details developers should handle.

What is Raast QR?

Raast is Pakistan's instant payment system. Raast QR builds on it: a merchant shows a QR code, and the customer scans it from a supported banking or wallet app to pay. Because the payment happens inside the customer's own app, it suits shoppers who bank on their phone but do not use a mobile wallet.

How a Raast QR payment works on ZurvaPay

  1. Choose Raast QR. On the ZurvaPay checkout the customer selects Raast QR and enters their mobile number.
  2. A QR code appears. ZurvaPay generates a dynamic QR code for that order and amount. A countdown shows how long it stays valid.
  3. Scan and pay. The customer opens their bank or wallet app, chooses Scan QR and pays.
  4. The page updates itself. ZurvaPay detects the payment and moves the customer on. There is no need to refresh.

If the QR expires before the customer pays, it can no longer be paid. The checkout says so and the customer can generate a fresh QR with one click. Customers who open checkout on the same phone they pay with can also download the QR image and scan it from another device.

Benefits for merchants

  • The exact amount, every time. Each QR is created for one order, so customers cannot underpay or overpay by mistake.
  • No manual matching. ZurvaPay links the payment to your order and notifies your server, so you do not reconcile transfers by hand.
  • Stale codes cannot be paid. QR codes expire, which prevents confusion over old screenshots.
  • Works from bank and wallet apps. Customers pay from the app they already trust.
  • One integration. The same API request also covers JazzCash and Easypaisa.

Technical notes for developers

You do not write any QR code. You start the payment exactly as for any other method, and the customer picks Raast QR on the hosted checkout:

curl -X POST "https://zurvapay.com/payment/initiate" \
  -F "public_key=YOUR_PUBLIC_KEY" \
  -F "identifier=ORD1790000000123" \
  -F "currency=PKR" \
  -F "amount=1500" \
  -F "details=Order 1234" \
  -F "ipn_url=https://yourdomain.com/zurvapay/ipn.php" \
  -F "success_url=https://yourdomain.com/payment/success" \
  -F "cancel_url=https://yourdomain.com/payment/cancel" \
  -F "customer_name=John Doe" \
  -F "customer_email=john@example.com"

From there:

  • The IPN is the only trusted confirmation. It is signed, so verify both signatures with your secret key before you mark an order as paid.
  • If your server does not answer HTTP 200, ZurvaPay retries the IPN up to 8 times in total.
  • A payment that is confirmed later by ZurvaPay's automatic verification is notified the same way.
  • The Payment Status API (/payment/status) lets your server check one payment, or up to 50, with your secret key. Statuses are success, pending, failed and not_found.
  • Your ipn_url, success_url and cancel_url must be on the website domain approved for your account.

The full parameter list and code samples are in the API documentation.

Checkout tips for a smooth experience

  • Tell customers to keep the checkout page open until it confirms the payment.
  • Do not mark the order paid on the success page. Wait for the verified IPN.
  • Show a friendly message if a QR expires and point to the "generate a new QR" button.
  • Offer a second method so a customer can switch if their banking app is unavailable.

Raast QR or a wallet payment?

Wallet payments such as JazzCash and Easypaisa ask the customer to type a wallet number and approve a request on their phone. Raast QR asks them to scan and pay from a bank or wallet app. Neither is better for everyone. Customers differ in which app they open first, so offering both on one checkout lets each customer choose, and ZurvaPay's single integration means you do not build either yourself.

Troubleshooting common situations

The customer paid but the page did not update

Ask them to wait a moment and keep the page open. ZurvaPay re-checks payments that were not confirmed straight away and, if the payment was made, confirms it and sends your IPN. You can also ask the Payment Status API about the order.

The QR code expired

Expired codes cannot be paid. The customer should use the button to generate a new QR and scan that one instead of an old screenshot.

The customer cannot scan from the same phone

They can download the QR image on that device and open it in their banking app, or open the checkout on a computer and scan the screen with their phone.

Your server was down when the IPN was sent

ZurvaPay retries the IPN up to 8 times in total. If you also run the optional status job, any order that was paid is completed even if every attempt failed.

Who it is for

Raast QR suits online stores, invoicing and B2B payments, event and ticket sales, education and fee collection, and digital services. Agencies that manage several clients can use sub-merchant accounts to give each client its own API keys and transactions under one verified account.

Frequently asked questions

What is Raast QR?

Raast QR is a QR-based payment method on Pakistan's Raast instant payment system. The customer scans a QR code with a supported bank or wallet app and pays the amount shown.

How do I accept Raast QR payments with ZurvaPay?

Integrate the ZurvaPay initiate endpoint once. On the hosted checkout your customer selects Raast QR, receives a dynamic QR code and scans it. You receive a signed IPN when the payment is confirmed.

What happens when the QR code expires?

An expired QR can no longer be paid. The checkout shows that it expired and the customer can generate a new one in a click.

Do customers need to refresh the page after paying?

No. The checkout keeps checking and updates by itself once the payment lands.

Can I also accept JazzCash and Easypaisa?

Yes. They share the same checkout and the same API.

Start accepting Raast QR payments with ZurvaPay

Open a merchant account, connect your website with one API and let customers pay by scanning. Learn more on the Raast QR payment gateway page.

Related guides

Brand, bank and card network names are used only to describe payment methods and belong to their respective owners. ZurvaPay is an independent payment gateway and is not affiliated with or endorsed by them.

Start accepting payments with ZurvaPay

Open a merchant account, connect your website with one API and get notified the moment a customer pays.