Skip to content

Pakistan · Overview ​

Merchant APIs for Pakistan: payin, payout, wallet, and webhooks.

Environment ​

EnvAPI base (example)
Productionhttps://api.soranopro.com
Sandboxhttps://sandbox-api.soranopro.com

Example: POST {API_BASE}/api/v1/merchant/payin/create

See Environment.

Credentials ​

ItemNotes
merchantNoHeader X-Merchant-No
Merchant RSA key pairYou sign outbound requests; submit public key PEM
Platform public keyVerify platform webhooks
Country / currencyBound to merchant account; not returned in payin/payout create, query, or completion webhooks

Auth: Signature.

Callback chain (important) ​

Merchant notifyUrl in API  →  stored on platform order only (not forwarded upstream)
Platform → upstream         →  uses platform-owned webhook URLs
Upstream → platform         →  verify, update order
Platform → merchant notifyUrl →  RSA2-signed POST; merchant returns OK

You only need to receive platform callbacks; upstream channel URLs are internal to RMpay.

Endpoints ​

ActionMethodPath
Create payinPOST/api/v1/merchant/payin/create
Query payinGET/api/v1/merchant/payin/query
Create payoutPOST/api/v1/merchant/payout/create
Query payoutGET/api/v1/merchant/payout/query
WalletGET/api/v1/merchant/wallet
Wallet txsGET/api/v1/merchant/wallet/transactions

Request body summary ​

TypeRequired highlights
PayinmerchantOrderNo, amount; payer_mobile required (real Pakistan mobile); recommend bankCode, payer_realname, payer_email
PayoutmerchantOrderNo, amount, bankCode, payee_realname, payee_account; send pay_type=EWALLET for wallets, or omit it/send BANK_TRANSFER for bank payouts
  • Payer fields: payer_* prefix
  • Payee fields: payee_* prefix
  • Extensions: extJson (object); do not use metadata
  • Remark: top-level remark

Flow ​

Payin: create → may return payUrl → completed → wallet credit (netAmount = amount - fee) + webhook.

Payout: create → freeze netAmount (amount + fee) → completed → webhook.

Ensure wallet balance >= netAmount before payout.

Pakistan notes ​

ItemNotes
CurrencyPKR, max 2 decimal places
Payin bankCodeAppendix · payin bankCode
Payout bankCodeAppendix · payout bankCode (banks + wallets)
Payout pay_typeBANK_TRANSFER (default) or EWALLET; wallet payouts must explicitly send EWALLET

Fees ​

TypeFeeMerchant amount
Payinamount × rate + fixednetAmount = amount - fee (credited)
Payoutamount × rate + fixednetAmount = amount + fee (frozen on create)

Rates are configured per merchant in the admin portal.

Docs ​

Released under the MIT License.

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