Check Mandate/Transaction Status

Check Mandate Transaction Status API

Purpose : This API is a multi-purpose tool used to verify the real-time status of your mandates and transactions. You can use it for three specific scenarios:

  • Check Mandate Status: Verify if a mandate is Active, Paused, or Revoked.
  • Check Transaction Status: Verify if a specific debit transaction was Successful or Failed.
  • Check Refund Status: Verify the status of a refund request.

Environment details:

Request Type : Post

Endpoint : /api/v1/checkTxn?v=10

Request Attributes

These are the Request Attributes of Check Mandate Transaction API

Fields DataType Mandatory Description
merchantIdentifier String Y Zaakpay’s unique alphanumeric merchant identifier. You can get it from Zaakpay dashboard.
mode String Y 1 digit only. i.e. "0"
orderDetail.orderId String Y The unique ID you want to check.
• To check Mandate Status: Pass the Mandate Order ID.
• To check Transaction Status: Pass the Transaction Order ID.
• To check Refund Status: Pass the Transaction Order ID (and the Ref ID below).
refundDetail.merchantRefId String N Conditional. This field is Mandatory only for Refund Status checks. Pass the unique refund reference ID you generated during the refund request.
checksum String Y To be calculated on above parameters using HMAC SHA 256.

Response Attributes

These are the response attributes of the check mandate transaction status API

Order Details
Fields Description
successIndicates if the response was successful.
merchantIdentifierUnique alphanumeric identifier for the merchant.
versionAPI version.
orderDetail.orderIdUnique identifier for the order.
orderDetail.txnIdTransaction ID for the order.
orderDetail.amountAmount for the transaction.
orderDetail.productDescriptionDescription of the product.
orderDetail.createDateDate when the order was created.
paymentInstrument.paymentModePayment mode used.
paymentInstrument.sendOtpIndicates if OTP is sent.
responseCodeResponse code from Zaakpay.
responseDescriptionDescription of the response code.
txnDateDate of the transaction.
txnStatusStatus of the transaction.
userAccountDebitedIndicates if the user's account was debited.
refundDetails.merchantRefIdMerchant reference ID for the refund.
refundDetails.amountRefund amount.
refundDetails.codeCode of the refund response.
refundDetails.descriptionDescription of the refund response.
bankRefNumReference number from the bank.
mandateDetails.isParentMandateIndicates if it is a parent mandate.
mandateDetails.parentOrderIdParent order ID for the mandate.

Sample Request & Response

For reference, below are the sample CURL request and Response of API . It takes all required attributes to hit the Check Mandate Transaction Status API.

cURL Request

We have created a sample request of Check Mandate Transaction Status API with all required attributes and their values, in the order in which they’ll be sent to the API.

The resulting checksum calculated should be posted to the Zaakpay API along with other required attributes.

curl --location 'https://api.zaakpay.com/checkTxn?v=12' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Cookie: JSESSIONID=A4C211B0FC1F713C69DD79521963AAD2; JSESSIONID=D0F3746C878A002329A0D7E61325630C.164.202' \
--data-urlencode 'data={"merchantIdentifier":"f9XXXXXXXXXXXXXX41d164f0","mode":"0","orderDetail":{"orderId":"ZP_AXXXXXXXXX23967"}}' \
--data-urlencode 'checksum=3e06aXXXXXXX0a26a67XXXXXXX09d2a1fcbbb8c46a'

Sample Request

{
  "merchantIdentifier": "f9176a1cXXXXXXXXXXX1d164f0",
  "mode": "0",
  "orderDetail": { "orderId": "ZP_XXXXXXXXX3967" }
}

Sample Response

The Response will be in JSON Format

{
    "success": true,
    "merchantIdentifier": "f9176aXXXXXXXXXXXd164f0",
    "orders": [
        {
            "orderDetail": {
                "orderId": "ZP_XXXXXXXXX3967",
                "txnId": "ZP6XXXXXXX48cb",
                "amount": "100",
                "productDescription": "Transaction",
                "createDate": "2026-03-05 12:59:45",
                "product1Description": "NA",
                "product2Description": "NA",
                "product3Description": "NA",
                "product4Description": "NA",
                "extra1": "NA",
                "extra2": "NA"
            },
            "paymentInstrument": {
                "paymentMode": "UPI_MANDATE",
                "netbanking": {
                    "paymentMethod": "Not Found"
                },
                "sendOtp": false
            },
            "responseCode": "1105",
            "responseDescription": "UPI Mandate update authorized successfully",
            "txnDate": "2026-03-05 13:02:57",
            "txnStatus": "2",
            "userAccountDebited": true,
            "bankRefNum": "NA",
            "amountBreakdown": {},
            "bankErrorCode": "NA",
            "bankErrorReason": "NA",
            "mandateDetails": {
                "isParentMandate": true,
                "parentOrderId": "ZPXXXXXXXX967"
            }
        }
    ],
    "version": "12"
}

Checksum Calculation

Create a string(JSON) using the request attributes as given below. Checksum string will create based on the request attributes which are posted to Zaakpay as same as given in the string below.

Now, Calculate the checksum using the HMAC SHA-256 algorithm using the string as data and your generated secret key. The resulting checksum calculated should be posted to the Zaakpay API along with other data.

{"merchantIdentifier":"f91XXXXXXXXXXXX1d164f0","mode":"0","orderDetail":{"orderId":"ZP_AXXXXXXX23967"}}