India · Merchant API
SoPay merchant API for India (IN / INR): Payin, Payout, wallet, webhooks. Integrate with SoPay only — no upstream channel details exposed.
Environment
| Environment | API Base |
|---|---|
| Production | https://api.soranopro.com |
| Sandbox | https://sandbox-api.soranopro.com |
Credentials & headers
| Item | Description |
|---|---|
X-Merchant-No | Merchant ID |
X-Timestamp / X-Nonce / X-Sign | RSA2 auth |
| Country / currency | IN / INR |
See Signature.
API list
| Action | Method | Path |
|---|---|---|
| Create payin | POST | /api/v1/merchant/payin/create |
| Query payin | GET | /api/v1/merchant/payin/query |
| Create payout | POST | /api/v1/merchant/payout/create |
| Query payout | GET | /api/v1/merchant/payout/query |
| Wallet | GET | /api/v1/merchant/wallet |
| Transactions | GET | /api/v1/merchant/wallet/transactions |
Payout
Bank transfer (IMPS / NEFT). metadata.ifsc required.
Create payout
POST /api/v1/merchant/payout/create
| Field | Required |
|---|---|
merchantOrderNo, countryCode, currency, amount | Yes |
receiverName, receiverAccount | Yes |
metadata.ifsc | Yes |
receiverPhone | Recommended |
receiverBankCode | Not used for India |
Response: status=processing, payoutMethod=BANK_TRANSFER, fulfillmentMode=upstream.
Query payout
GET /api/v1/merchant/payout/query?orderNo= or ?merchantOrderNo=
Payout notify
Terminal: completed / failed / timeout. Respond HTTP 200 + OK. See Webhooks.
Payin
Online checkout — response includes payUrl.
Create payin
POST /api/v1/merchant/payin/create
| Field | Required |
|---|---|
merchantOrderNo, countryCode, currency, amount | Yes |
notifyUrl | Yes |
metadata.payerName, metadata.payerMobile | Recommended |
metadata.returnUrl | Optional |
Response: status=processing, payUrl checkout URL.
Query payin
GET /api/v1/merchant/payin/query?orderNo= or ?merchantOrderNo=
Payin notify
Terminal statuses posted to notifyUrl. Verify signature, respond OK.
General query
Merchant balance
GET /api/v1/merchant/wallet
Wallet transactions
GET /api/v1/merchant/wallet/transactions?page=1&pageSize=20
Bank transfer fields
| Field | Meaning |
|---|---|
receiverName | Account name |
receiverAccount | Account number |
metadata.ifsc | IFSC code |
receiverPhone | Mobile |
Appendix
Payout status
created → processing → completed / failed / timeout / cancelled
Payin status
created → processing → completed / failed / timeout / cancelled
Payout methods
BANK_TRANSFER (recommended), PROMPTPAY (default when bank fields empty)
metadata
Payin: returnUrl, payerName, payerMobile, extra
Payout: ifsc, recipientEmail, recipientContact
Error codes
Use code === 0 for success. Common: merchant balance insufficient, signature invalid, duplicate merchantOrderNo.
