Skip to main content

Overview

Accept customer payments through mobile wallets in Bangladesh, Nepal, Egypt, and Iraq using the same two REST APIs. Regional differences are limited to headers (region, operator) and operator-specific configuration—not separate endpoints or integration patterns.

Not covered here: Pakistan pay-in uses a different API surface (/v2/wallets/...). See Pakistan — Wallet APIs.


Payment Flow

All unified regions follow a redirect-based flow.

StepActionAPI
1Create payment sessionInitiate
2Redirect customer to payment_url from the Initiate response
3Customer pays on the wallet operator's page
4Customer lands on your successUrl or failureUrl
5Confirm final status server-sideInquire
6Receive async notification (if configured)Webhooks
warning

Always call Inquire on your success/failure landing page. Do not treat the redirect alone as proof of payment. Status 0037 (Transaction-Pending) means the customer has not finished paying yet.


APIs At A Glance

APIMethodPath
Initiate PaymentPOST/payins/payments/initiate
Inquire PaymentPOST/payins/payments/inquire

Environments

EnvironmentBase URL
Sandboxhttps://sandbox.simpaisa.com
Productionhttps://payin.simpaisa.com

Regional Configuration

Set these values per region and operator. Use the same merchantId in sandbox and production.

Regionregion headerCurrencyOperatorsOperator codeBody / response field
BangladeshBDBDTbKash10001operator
BangladeshBDBDTNagad10002operator
NepalNPNPRKhalti100025operatorId
EgyptEGEGPPaymob100026operatorId
IraqIQIQDZainCash100027operatorId

Common Request Headers

HeaderValueRequired
Accepttext/plain, application/json, application/*+jsonYes
Content-Typeapplication/jsonYes
api-tokenAPI token issued by SimpaisaYes
modepayinYes
regionBD · NP · EG · IQYes
operatorIdOperator code from table aboveYes
version3.0Yes
info

Pass the operator in both the operatorId header and the request/response payload field. Field name is region-specific: operator for Bangladesh only; operatorId for Nepal, Egypt, and Iraq. See Initiate samples.


Authentication

Unified pay-in regions authenticate with an api-token header or Signature. Simpaisa provides this token with your merchant credentials during onboarding.

For webhook setup and postback handling, see Webhooks and Platform webhooks reference.


Operator Use Cases

Each operator uses the same Initiate and Inquire APIs. Examples with region-specific payloads:

OperatorRegionGuide
bKashBangladeshUse case: bKash
NagadBangladeshUse case: Nagad
KhaltiNepalUse case: Khalti
PaymobEgyptUse case: Paymob
ZainCashIraqUse case: ZainCash

Status Codes

See Unified Pay-In status codes.

Key codes:

CodeMessageMeaning
0000SuccessPayment completed
0037Transaction-PendingCustomer has not finished paying
0021Channel-Failed-TransactionOperator rejected the payment
0101Invalid-CredentialCheck api-token and merchantId

Getting Started

  1. Request sandbox credentials and api-token from the Simpaisa integration team.
  2. Configure your postback URL.
  3. Implement Initiate → redirect → Inquire.
  4. Test each operator you plan to go live with using the use-case guides above.
  5. Move to production (payin.simpaisa.com) after sign-off.