Skip to main content

Tokenization — Direct Charge

Charge a customer on a defined schedule using a saved sourceId from a completed tokenization flow. No OTP is required for direct charges.

Applies to: Easypaisa · JazzCash


Endpoint

MethodPOST
Path/v2/wallets/transaction/direct-payment
Sandboxhttps://sandbox.simpaisa.com/v2/wallets/transaction/direct-payment
Productionhttps://payin.simpaisa.com/v2/wallets/transaction/direct-payment

Headers

HeaderRequiredDescription
Content-TypeYesapplication/json
modeYespayin
regionYesPK
operatorIdYes100007 (Easypaisa) or 100008 (JazzCash)
versionYes3.0

Prerequisites

  • Customer completed initial tokenization (Easypaisa Verify or JazzCash Finalize)
  • Valid sourceId (SP token) was returned and stored
  • Customer approved the initial charge via wallet app or flash message
warning

Direct Charge cannot run without a sourceId. If the customer was delinked, they must complete the tokenization flow again.


Request Body

ParameterTypeRequiredLengthDescription
merchantIdStringYes07Simpaisa-assigned merchant ID
operatorIdStringYes06100007 or 100008
transactionTypeStringYes018 = tokenized charge
amountStringYesAmount to charge
userKeyStringYesYour unique order reference for this charge
sourceIdStringYesSP token from tokenization
platformStringNo1Set to 3 to route charge/refund IPNs to separate webhook endpoints

Response Body

ParameterDescription
statusResponse code
messageHuman-readable status
operatorIdPayment channel ID
merchantIdYour merchant ID
sourceIdEcho of the SP token
transactionIdSimpaisa transaction ID for this charge

CURL

curl --location 'https://sandbox.simpaisa.com/v2/wallets/transaction/direct-payment' \
--header 'Content-Type: application/json' \
--header 'mode: payin' \
--header 'region: PK' \
--header 'operatorId: 100007' \
--header 'version: 3.0' \
--data '{
"merchantId": "xxxx",
"operatorId": "100007",
"transactionType": "8",
"amount": "100",
"userKey": "xxxxxxx",
"sourceId": "sp_xxxxxxxxxxxxxxxx"
}'

Samples

{
"merchantId": "xxxx",
"operatorId": "100007",
"transactionType": "8",
"amount": "100",
"userKey": "xxxxxxx",
"sourceId": "sp_xxxxxxxxxxxxxxxx"
}

With platform Parameter

{
"merchantId": "xxxx",
"operatorId": "100008",
"transactionType": "8",
"amount": "100",
"userKey": "xxxxxxx",
"sourceId": "sp_xxxxxxxxxxxxxxxx",
"platform": "3"
}