Update Mandate

Update Mandate API

Purpose : This API modify the terms of an existing, active mandate. It is particularly useful when a customer upgrades their subscription plan or wishes to extend the duration of their service. Merchant can use this API to update:

  • Mandate Amount : Change the maximum limit amount (e.g., upgrading from a ₹500 plan to a ₹1000 plan).
  • Mandate End Date : Extend or shorten the validity period of the mandate.

Environment details:

Request Type : Post

Endpoint : /transactU?v=12

Request Attributes

These are the Request Attributes of Update Mandate API

Fields DataType Mandatory Description
merchantIdentifier String Y Zaakpay’s unique alphanumeric merchant identifier.
encryptionKeyId String Y Id of Merchant’s Public key as signed by Zaakpay.
merchantIpAddress String Y The IP address of the merchant's server.
showMobile String N `true` to show mobile optimized page, `false` for desktop.
mode String Y 1 digit only. `0` = Staging/Test, `1` = Production/Live.
returnUrl String N The URL where Zaakpay will post the response.
orderDetail.orderId String Y New Unique ID for this specific update request. (Do not pass the old mandate ID here).
orderDetail.amount String Y The New Amount to be updated (in Paisa).
orderDetail.currency String Y Currency Code. Default is `INR`.
orderDetail.email String Y Customer's email address.
orderDetail.phone String Y Customer's phone number.
orderDetail.productDescription String Y Description of the update (e.g., "Plan Upgrade").
paymentInstrument.paymentMode String Y Value: `upiCollectMandate`.
paymentInstrument.upiMandate.action String Y The action to be performed. Value must be `update`.
paymentInstrument.upiMandate.payerVpa String Y The VPA associated with the customer.
paymentInstrument.upiMandate.mandateParentOrderId String Y The Original Order ID of the mandate that you want to update.
paymentInstrument.upiMandate.mandateConfig.endDate String Y The New End Date for the mandate in `yyyy-MM-dd` format.
billingAddress.city String N Customer's city.
checksum String Y To be calculated on above parameters using HMAC SHA 256.

Sample Request & Response

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

cURL Request

We have created a sample request of Update Mandate 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/transactU?v=12' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Cookie: JSESSIONID=CD982B57935E84BA7D70996C618C0C69.11.52; JSESSIONID=AE2704BE6746B7DC1B99CB4C7F9E9A06.11.36; JSESSIONID=AE2704BE6746B7DC1B99CB4C7F9E9A06.11.36; JSESSIONID=69CCAE16E0983DC36355B6307ACD196C.11.59; JSESSIONID=7F97A0CA984EF3772692ECB30C469286.165.243' \
--data-urlencode 'data={"merchantIdentifier":"f917XXXXXXXX041d164f0","encryptionKeyId":"PvoXXXXXXD9ewv","merchantIpAddress":"127.0.0.1","showMobile":"true","mode":"0","returnUrl":"https://webhook.site/f91585dd-1cXXXXXX6-9b62d6790038","orderDetail":{"orderId":"ZaaXXXXXX2224","amount":"100","currency":"INR","purpose":"1","email":"[email protected]","txnDate":"2026-03-03","phone":"9999999999","extra1":"udf1","extra2":"udf2","productDescription":"Upi P2m Collect","product1Description":"pd1","firstName":"Test_First","lastName":"Test_Last"},"paymentInstrument":{"paymentMode":"upiCollectMandate","upiMandate":{"action":"update","payerVpa":"dvbsb7K8C++I51tZ6C4cKw5YIXXXXXXdIDpPNPWBm589fHi9kXXXXXXhAtUzFdvXll0aNXXXXXoqLgjewTW0EGOe8bngbP/RIRhQoc3pXwr4fU4N3WAma9hBG/CzLwQZjan609CZcXXXXXwCrrsFfBy+B1hgxOwxFrKWwKj9oaax/EWwaJ9k0y7QTPjt4I7fH0YjrAT5QCsU6mDV65aZPoODeB0XXXXX4owehzkKphxFeXXXXXwwsUioz+U2WyYMOdadEXXXX7hTsO8kTU2Aai8sVHHmdS9Bg==","mandateParentOrderId":"ZP_XXXXXXX3967","mandateConfig":{"endDate":"2026-04-21"}}},"billingAddress":{"city":"Gurgaon"},"shippingAddress":{"city":"Gurgaon"}}' \
--data-urlencode 'checksum=bc2adXXXXXa7e4964fccba6XXXX2d83b76a645XX2d3f14e'

Sample Request

{
    "merchantIdentifier": "f917XXXXXXXXXXXXXXX164f0",
    "encryptionKeyId": "Pvo1HKJGeZD9ewv",
    "merchantIpAddress": "127.0.0.1",
    "showMobile": "true",
    "mode": "0",
    "returnUrl": "https://wXXXXXsite/f91585ddXXXXXX-85b6-9b62d6790038",
    "orderDetail": {
        "orderId": "ZaaXXXXXX224",
        "amount": "100",
        "currency": "INR",
        "purpose": "1",
        "email": "[email protected]",
        "txnDate": "2026-03-03",
        "phone": "9999999999",
        "extra1": "udf1",
        "extra2": "udf2",
        "productDescription": "Upi P2m Collect",
        "product1Description": "pd1",
        "firstName": "Test_First",
        "lastName": "Test_Last"
    },
    "paymentInstrument": {
        "paymentMode": "upiCollectMandate",
        "upiMandate": {
            "action": "update",
            "payerVpa": "dvbsb7K8C++I51tZ6C4cKw5YIhIHpgXZ794XXXXXXXXpPNPWBm589fHi9kXXXXXXXsrjlrhAtUzFdvXll0aNh9AV6RmxUc6+4oqLgjewTW0EGOe8bngbP/RIRhQoc3pXwr4fU4N3WAXXXXXXLwQZjan609CZcpqEtvNjmtcwCrrXXXXXXgxOwxFrKWwKj9oaax/EWwaJ9k0y7QTPjt4I7fH0YjrAT5QCsU6mDV65aZPoODeB0lYCeLLbXXXXXXXphxFexYkLUQphheHNjwwsUioz+U2WyYMOdadEgbq5Wy7hTsO8kTU2Aai8sVHHmdS9Bg==",
            "mandateParentOrderId": "ZP_AcXXXXXX123967",
            "mandateConfig": {
                "endDate": "2026-04-21"
            }
        }
    },
    "billingAddress": {
        "city": "Gurgaon"
    },
    "shippingAddress": {
        "city": "Gurgaon"
    }
}

Sample Response

{
    "orderDetail": {
        "orderId": "ZaakXXXXX2224",
        "amount": "100",
        "currency": "INR",
        "productDescription": "UPI Mandate",
        "email": "teXXXXXXkpay.com",
        "phone": "99XXXXX999",
        "firstName": "L5dgXXXXXNEy1rYmCg==",
        "lastName": "v+SGInyXXXXXXOZUXqio1w==",
        "txnDate": "2026-03-03",
        "purpose": "1",
        "product1Description": "pd1",
        "extra1": "udf1",
        "extra2": "udf2",
        "amountBreakdown": {}
    },
    "responseCode": "1105",
    "responseDescription": "UPI Mandate update authorized successfully",
    "doRedirect": "true",
    "paymentInstrument": {
        "paymentMode": "UPI_XXXNDATE",
        "sendOtp": false,
        "upiMandate": {
            "action": "update",
            "payerVpa": "dvbsb7K8C++I51tZ6C4cKw5YIhIHpgXZ794CEXXXXXXXX89fHi9k0xJKJS3IyHIgsrjlrhAtUzFdXXXXXXUc6+4oqLgjewTW0EGOe8bngbP/RIRhQoc3pXwr4fU4N3WAma9hBG/CzLwQZjan609CZcpqEtvNjXXXXXXy+B1hgxOwxFrKWwKj9oaax/EWwaJ9k0y7QTPjt4I7fH0YjrAT5QCsU6mDV6XXXXXvj194owehzkKphxFexYkLUQphhXXXXioz+U2WyYMOdadEgbq5Wy7hTsO8kTU2Aai8sVHHmdS9Bg==",
            "mandateParentOrderId": "ZP_AcXXXXXr_123967",
            "mandateConfig": {
                "endDate": "Apr 21, 2026, 12:00:00 AM"
            }
        }
    },
    "bankPostData": {
        "txnid": ""
    },
    "paymentMode": "UPI_MANDATE"
}

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.

The Checksum string will be:

Secret Key used: 0678056d96914a8583fb518caf42828a

{"orderDetail":{"orderId":"ZaakXXXXX2224","amount":"100","currency":"INR","productDescription":"UPI Mandate","email":"teXXXXXXkpay.com","phone":"99XXXXX999","firstName":"L5dgXXXXXNEy1rYmCg==","lastName":"v+SGInyXXXXXXOZUXqio1w==","txnDate":"2026-03-03","purpose":"1","product1Description":"pd1","extra1":"udf1","extra2":"udf2","amountBreakdown":{}},"responseCode":"1105","responseDescription":"UPI Mandate update authorized successfully","doRedirect":"true","paymentInstrument":{"paymentMode":"UPI_XXXNDATE","sendOtp":false,"upiMandate":{"action":"update","payerVpa":"dvbsb7K8C++I51tZ6C4cKw5YIhIHpgXZ794CEXXXXXXXX89fHi9k0xJKJS3IyHIgsrjlrhAtUzFdXXXXXXUc6+4oqLgjewTW0EGOe8bngbP/RIRhQoc3pXwr4fU4N3WAma9hBG/CzLwQZjan609CZcpqEtvNjXXXXXXy+B1hgxOwxFrKWwKj9oaax/EWwaJ9k0y7QTPjt4I7fH0YjrAT5QCsU6mDV6XXXXXvj194owehzkKphxFexYkLUQphhXXXXioz+U2WyYMOdadEgbq5Wy7hTsO8kTU2Aai8sVHHmdS9Bg==","mandateParentOrderId":"ZP_AcXXXXXr_123967","mandateConfig":{"endDate":"Apr 21, 2026, 12:00:00 AM"}}},"bankPostData":{"txnid":""},"paymentMode":"UPI_MANDATE"}
bc2ad834XXXXXe4964fccba6XXXXX951402d8XXXXX7be5e2d3f14e