Notify & Execute Mandate

Purpose : Use the Notify & Execute Mandate API to notify the customer about an upcoming debit against an existing UPI mandate. This API sends the mandate debit notification and automatically debits the amount on the specified execution date and time.

Possible values for paymentMode : upiCollectMandate, upiIntentMandate, upiQrMandate

Request Type : POST

Endpoint : /transactU?v=12

This API flow is only for Adhoc frequency mandates. Use it when you need to notify the customer for an execution linked to an existing mandate parent order ID.

Request Attributes

These are the Request Attributes of the Notify & Execute Mandate API.

Fields DataType Mandatory Description
merchantIdentifier String Yes Zaakpay’s unique alphanumeric merchant identifier. Get it from the Zaakpay dashboard.
encryptionKeyId String Yes ID of the merchant’s public key as signed by Zaakpay. You can generate it from the Zaakpay dashboard.
merchantIpAddress String No The IP address of the merchant's server.
showMobile String No Controls the checkout page rendering. false: Shows the full-fledged version unconditionally. DETECT: Detects the browser user agent and routes accordingly. true: Shows the mobile page unconditionally. If missing, Zaakpay treats it the same as DETECT.
mode String No One-digit numeric value. For example, 1 = Domain check, 0 = Domain check skip.
returnUrl String No The URL where Zaakpay posts the transaction response.
orderDetail.orderId String Yes Unique transaction identifier generated by the merchant. Maximum limit is 20 alphanumeric characters.
orderDetail.amount String Yes Transaction amount in paisa. Default minimum amount is 100 paisa and maximum amount is 10000000 paisa.
orderDetail.currency String Yes The currency code. Default value: INR.
orderDetail.purpose String Yes Purpose of the transaction. Default value: 1.
orderDetail.productDescription String Yes A brief description of the product or service.
orderDetail.email String Yes The email address of the customer.
orderDetail.txnDate String Yes The transaction date.
billingAddress.first name String Yes The first name of the customer in the billing address.
billingAddress.last name String Yes The last name of the customer in the billing address.
billingAddress.address String Yes The customer's billing address.
billingAddress.city String Yes The city of the customer's billing address.
billingAddress.state String Yes The state of the customer's billing address.
billingAddress.country String Yes The country of the customer's billing address.
billingAddress.pincode String Yes The pincode of the customer's billing address.
billingAddress.Phone Number String Yes The phone number of the customer.
shippingAddress.address String No The customer's shipping address.
shippingAddress.city String No The city of the customer's shipping address.
shippingAddress.state String No The state of the customer's shipping address.
shippingAddress.country String No The country of the customer's shipping address.
shippingAddress.pincode String No The pincode of the customer's shipping address.
paymentInstrument.paymentMode String Yes Specifies the mandate payment flow type. For this ad hoc execution notification request, use upiCollectMandate.
paymentInstrument.upiMandate.action String Yes Action to be performed for the mandate. For ad hoc execution notification, the value must be notify.
paymentInstrument.upiMandate.mandateParentOrderId String Yes The original mandate parent order ID against which the ad hoc execution notification is sent.
paymentInstrument.upiMandate.executionDate String Yes Scheduled execution date and time for the mandate debit. Format: yyyy-MM-dd HH:mm:ss. This date and time must be at least 24 hours after the notification request time.
debitorcredit String Yes The debit or credit instrument type. For this request, use upi.
checksum String Yes Checksum calculated on the request parameters using HMAC SHA-256.

Response Attributes

These are the Response Attributes of the Notify & Execute Mandate API

Fields DataType Description
orderDetail Object Contains the order details for the ad hoc mandate execution notification.
orderDetail.orderId String Unique order ID generated by the merchant for the ad hoc execution request.
orderDetail.amount String Transaction amount in paisa.
orderDetail.currency String Transaction currency. For example, INR.
orderDetail.productDescription String Description of the product or service for the transaction.
orderDetail.email String Email address of the customer.
orderDetail.txnDate String Transaction date sent in the request.
orderDetail.purpose String Purpose value for the transaction.
orderDetail.amountBreakdown Object Breakdown of the transaction amount, if applicable.
responseCode String Zaakpay response code for the request. For a successful notification, the value is 1109.
responseDescription String Description of the response code. For a successful notification, the value is UPI Mandate notification sent successfully.
doRedirect String Indicates whether a redirect is required. In the sample response, the value is true.
paymentInstrument Object Contains payment instrument details returned for the mandate execution notification.
paymentInstrument.paymentMode String Payment mode returned by Zaakpay. For this flow, the value is UPI_MANDATE.
paymentInstrument.sendOtp Boolean Indicates whether OTP needs to be sent. In the sample response, the value is false.
paymentInstrument.upiMandate Object Contains UPI mandate details for the execution notification.
paymentInstrument.upiMandate.action String Mandate action performed. For this ad hoc execution notification, the value is notify.
paymentInstrument.upiMandate.mandateParentOrderId String Original mandate parent order ID against which the ad hoc execution notification was sent.
paymentInstrument.upiMandate.executionDate String Scheduled execution date and time for the mandate debit. Format: yyyy-MM-dd HH:mm:ss.
bankPostData Object Contains bank posting details for the mandate notification.
bankPostData.amount String Amount sent for the mandate execution notification.
bankPostData.initDateTime String Date and time when the mandate notification was initiated.
paymentMode String Top-level payment mode returned by Zaakpay. For this flow, the value is UPI_MANDATE.

Note - Set executionDate at least 24 hours from the notification request time. Zaakpay notifies the customer and automatically debits the amount on the scheduled execution date and time.

Sample Request & Response

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

Sample Request

We have created a sample request of Notify & Execute 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=7905AC8D5DDC76EEFA667222571B4B19.162.243; JSESSIONID=3B6EBC278784D2FE8CA2BC1A3C3A8A2E.163.230' \
--data-urlencode 'data={"merchantIdentifier":"b19e8f*********647973","encryptionKeyId": "xf8******bfq","merchantIpAddress":"127.0.0.1","showMobile":"true","mode":"0","returnUrl":"https://webhook.site/04087ce3-beb0-4ade-991b-8a60c8651307","orderDetail":{"orderId":"Zaak*****234","amount":"1000","currency":"INR","purpose":"1","productDescription":"Upi P2m Collect","email":"[email protected]","txnDate":"2026-02-07"},"billingAddress":{"first name":"Test_FirName","last name":"Test_LasName","address":"sector 56","city":"Gurugram","state":"Haryana","country":"India","pincode":"122003","Phone Number":"9999999999"},"shippingAddress":{"address":"sector 54","city":"Gurugram","state":"Haryana","country":"India","pincode":"122003"},"paymentInstrument":{ "paymentMode": "upiCollectMandate", "upiMandate": { "action": "notify", "mandateParentOrderId": "Zaa*****1234", "executionDate": "2026-05-28 16:00:00" } },"debitorcredit":"upi"}' \
--data-urlencode 'checksum=3053622d*************a93bb0d98bb73ed8f'

Sample Request

{
    "merchantIdentifier": "b19e8***********6b7973",
    "encryptionKeyId": "xf********bfq",
    "merchantIpAddress": "127.0.0.1",
    "showMobile": "true",
    "mode": "0",
    "returnUrl": "https://webhook.site/04087ce3-beb0-4ade-991b-8a60c8651307",
    "orderDetail": {
        "orderId": "Zaa&******234",
        "amount": "1000",
        "currency": "INR",
        "purpose": "1",
        "productDescription": "Upi P2m Collect",
        "email": "[email protected]",
        "txnDate": "2026-02-07"
    },
    "billingAddress": {
        "first name": "Test_FirName",
        "last name": "Test_LasName",
        "address": "sector 56",
        "city": "Gurugram",
        "state": "Haryana",
        "country": "India",
        "pincode": "122003",
        "Phone Number": "9999999999"
    },
    "shippingAddress": {
        "address": "sector 54",
        "city": "Gurugram",
        "state": "Haryana",
        "country": "India",
        "pincode": "122003"
    },
    "paymentInstrument": {
        "paymentMode": "upiCollectMandate",
        "upiMandate": {
            "action": "notify",
            "mandateParentOrderId": "Zaa*******1234",
            "executionDate": "2026-05-28 16:00:00"
        }
    },
    "debitorcredit": "upi"
}

Sample Response

The Response will be in JSON Format

{
    "orderDetail": {
        "orderId": "Zaa******234",
        "amount": "1000",
        "currency": "INR",
        "productDescription": "Upi P2m Collect",
        "email": "[email protected]",
        "txnDate": "2026-02-07",
        "purpose": "1",
        "amountBreakdown": {}
    },
    "responseCode": "1109",
    "responseDescription": "UPI Mandate notification sent successfully",
    "doRedirect": "true",
    "paymentInstrument": {
        "paymentMode": "UPI_MANDATE",
        "sendOtp": false,
        "upiMandate": {
            "action": "notify",
            "mandateParentOrderId": "Zaa******234",
            "executionDate": "2026-05-28 16:00:00"
        }
    },
    "bankPostData": {
        "amount": "1000",
        "initDateTime": "2026-05-27 15:45:32"
    },
    "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.

{"merchantIdentifier":"b19e8f103bce406cbd3476431b6b7973","encryptionKeyId": "xf8utxlDZA76bfq","merchantIpAddress":"127.0.0.1","showMobile":"true","mode":"0","returnUrl":"https://webhook.site/04087ce3-beb0-4ade-991b-8a60c8651307","orderDetail":{"orderId":"Zaakstg1234","amount":"1000","currency":"INR","purpose":"1","productDescription":"Upi P2m Collect","email":"[email protected]","txnDate":"2026-02-07"},"billingAddress":{"first name":"Test_FirName","last name":"Test_LasName","address":"sector 56","city":"Gurugram","state":"Haryana","country":"India","pincode":"122003","Phone Number":"9999999999"},"shippingAddress":{"address":"sector 54","city":"Gurugram","state":"Haryana","country":"India","pincode":"122003"},"paymentInstrument":{ "paymentMode": "upiCollectMandate", "upiMandate": { "action": "notify", "mandateParentOrderId": "Zaakstagg1234", "executionDate": "2026-05-28 16:00:00" } },"debitorcredit":"upi"}
3053622dcba2fea53871895b6e8780aff76f5864a95557b4c3bb0d98bb73ed8f