Skip to content

Pakistan Payment API

SoPay Pakistan Payment API documentation helps merchants collect and disburse PKR through platform-level Merchant Collection API and Merchant Payout API endpoints. This page is written for overseas engineering teams evaluating Pakistan expansion, local wallet usage, and bank transfer payouts without direct integration to every payment channel in the market.

For request fields, environment URLs, and error handling, use the Pakistan Payment API documentation as the source of truth.

Platform API vs local rails

Pakistan Payment API in merchant terms is the HTTPS contract between your backend and SoPay:

  • Create and query payin orders
  • Create and query payout orders
  • Receive signed webhooks on terminal status
  • Sign outbound requests per Merchant Signature Verification

Wallet brands such as JazzCash and Easypaisa, and bank transfer rails, are selected via bankCode (uppercase platform codes) and payer_* / payee_* beneficiary fields—see payin and payout API docs. Availability depends on onboarding—not on generic marketing claims here.

Documented Pakistan capabilities

AreaNotesDocumentation
OverviewEnvironment, API list, PKR rulesPakistan Payment API documentation
PayinCollection flowsPakistan Payin API
PayoutDisbursement flowsPakistan Payout API
WebhooksPOST JSON, return OKMerchant Callback API
SigningRSA2 headersSignature guide

Merchant Collection API (Payin)

Payin orders move from creation through platform processing to completed or failure states. Wallet or bank confirmation timing varies by channel; your integration should rely on webhook and query status—not on assumed instant completion.

Implementation details: Pakistan Payin API.

Merchant Payout API (Payout)

Pakistan Payout API sends PKR to beneficiaries. Use bankCode plus payee_realname, payee_account, and (recommended) payee_mobile / payee_email / payee_id_no. Wallets (JAZZCASH, EASYPAISA) prioritize payee_mobile; banks use payee_account.

Always validate required fields against Pakistan Payout API before production traffic.

JazzCash, Easypaisa, and bank transfer

  • JazzCash and Easypaisa — wallet bankCode values JAZZCASH, EASYPAISA
  • Bank transfer — other bankCode values in the appendix enum
  • PKR — Pakistani Rupee; amounts typically limited to two decimal places

Use the published bankCode tables in the appendix; do not rely on legacy receiver* or metadata fields.

Integration path

  1. Complete merchant onboarding and key exchange (Quick Start)
  2. Study Pakistan Payment API documentation
  3. Implement signing and webhooks (Signature, Callback)
  4. Integrate Payin and Payout
  5. Run reconciliation tests with query endpoints

Cross Border Payment API

International merchants use SoPay as a Cross Border Payment API hub: Pakistan is one country module alongside India and Thailand. Shared webhook and signature patterns reduce engineering cost; country-specific fields still apply.

Frequently Asked Questions

Does SoPay guarantee JazzCash or Easypaisa for every merchant?

No. Channel access is contract-driven. Use sandbox responses and Pakistan overview to see what your profile supports.

What currency and precision apply?

PKR with documented decimal rules on the overview page.

How are webhooks secured?

Verify platform signatures using the public key PEM provided at onboarding. Process only verified payloads. See Merchant Callback API.

Can I use one integration for India and Pakistan?

You reuse patterns (sign, callback, idempotency) but must use country-scoped merchant accounts; country/currency are bound per merchant—do not send countryCode/currency on Pakistan create requests.

Where do engineers start?

Pakistan Payment API documentationSignaturePayin / PayoutCallback.

Last updated:

Released under the MIT License.

2-1-2 Nihonbashi-Hongokucho,Chuo-ku,Tokyo