Redirect Flow (Mandate Checkout)

Purpose : After subscription creation, redirect the user to the hosted checkout page.

Request Attributes

These are the request attributes of the redirect UPI Autopay flow.

Fields DataType Mandatory Description
amount String Y Value should be in paisa. Min Value 100 & Max Value 10000000.
bankid String N For Net Banking, ID of selected bank. e.g. SBI
mandateSubscriptionId String N Unique subscription/mandate identifier for recurring transactions. e.g. SUB987654321
buyerAddress String N Max length 100 alphanumeric Street address of the buyer. (Part of billing address)
buyerCity String N Max length 30 alphabet, Min length 3. (Part of billing address).
buyerCountry String N Country of the buyer.
buyerEmail String Y Valid email address of the buyer. Should be unique for each user.
buyerFirstName String N Max length 30, alphanumeric characters, no special characters or dashes.
buyerLastName String N Max length 30, alphanumeric characters, no special characters or dashes. First name and last name cannot be same. Last Name on card.
buyerPhoneNumber String N Buyer’s landline or mobile phone number, numeric only, no dashes, no spaces. e.g. 123456778
buyerPincode String N Buyer’s pin/zip code. Can have numbers, spaces & hyphens (-) only ( Part of billing address ). e.g. 110092
buyerState String N State of the buyer. (Part of billing address). e.g. Delhi
currency String Y Currency Values defined by Zaakpay. e.g. INR
isAutoRedirect String N Value should be True/False.
debitorcredit N Values must be netbanking/wallet/upi
bankid String N Value should be bankid. e.g. SBI
merchantIdentifier String Y Zaakpay’s unique alphanumeric merchant identifier. You can get it from Zaakpay dashboard.
merchantIpAddress String N buyer’s IP address as recorded by your website. e.g. 127.0.0.1
mode String N 1 digit only, Numeric. Value 1 = Domain check, 0=To skip Domain check.
orderId String Y Merchant's unique transaction identifier. Max Length should be 40 and must be unique per website. Note: Orderid should be an alphanumeric value. eg.ZAAK20170421.
product1Description String N Max length 100. Free text, alphanumeric.
product2Description String N Max length 100. Free text, alphanumeric.
product3Description String N Max length 100. Free text, alphanumeric.
product4Description String N Max length 100. Free text, alphanumeric.
productDescription String N Max length 100. Free text, alphanumeric. Text description of what you are selling. Atleast 1 product description is mandatory to show in the bill on payment page. e.g. name of book, name of mobile etc
productInfo JSON N To show Order Details with Offers on Checkout Page. e.g. productInfo= ""customizationField"":""Cashback"", ""listProduct"":[ ""description"":""Apollo Health Insurance"", ""cost"":""Rs.80,000.00"", ""customizationValue"":""Rs.8,123.00"" ], ""terms"":""Cashback will get credited in MobiKwik Wallet"".
purpose String N 1 digit only, Numeric. e.g. Value 0=Service, 1=Goods, 2=Auction, 3=Other
returnUrl String N Url where you want Zaakpay PG to post the response. This must be the domain(or a sub- domain of it).
shipToAddress String N Max length 30, alphanumeric. You may specify this only when buyer’s address is different from shipping address.
shipToCity String N Max length 30, minimum length 3 alphabet. Shipping address city.
shipToCountry String N Shipping address country.
shipToFirstname String N Max length 30, alphanumeric characters, no special characters or dashes.
shipToLastname String N Max length 30, alphanumeric characters, no special characters or dashes.
shipToPhoneNumber String N Shipping address landline or mobile phone number. Numeric only, no dashes,no spaces.
shipToPincode String N Shipping address pin/zip code. Can have Numbers 2-12 digits, Spaces and Hyphens (-)only.
shipToState String N Shipping address state
showMobile String N False:We show the full-fledged version unconditionally. DETECT:We do detection of the user Agent of the browser from which the request is sent & route accordingly. True: Only allowed, if PG represent mobile view. We show the mobile page unconditionally. missing/not sent: Same as DETECT (i.e. We do detection at our end ).
txnDate String N Transaction date in yyyy-mm-dd format. e.g. 1996-04-15
txnType String N Numeric: Zaakpay Checkout will show the tab on the payment page which corresponds to the txnType you provide. e.g. 1-All, 11- Card, 12- Net-Banking, 13- Wallets, 14- UPI, 15 - Only allow Credit Cards, 16 -Only allow Debit Cards, 17 - EZEClick, 18 - ATM+PIN, 19 - MasterPass, 20 - EMI.
paymentOptionTypes String N To display more than one payment options on the Checkout page corresponds to paymentOptionTypes provided. parameter can now have values 1,11,12,13,14,15,16 and be "_" underscore separated. e.g. 11_12.
zpPayOption String N Which Zaakpay Payment Gateway option have you used for this transaction. 1 digit only, numeric default value is 1. e.g. 0=on_zaakpay, 1=button_redirect, 2=widget_redirect, 3=api.
checksum String Y To be calculated on all request parameters that are posted to Zaakpay API.

Mandatory Parameters for Mandate Checkout

While calling /paymentTransact/V8, ensure the following:

  1. Pass mandateSubscriptionId

    • mandateSubscriptionId=SUBXXXXX321
  2. Pass Mandate Amount

    • Amount must be passed in the amount field.
    • This should match the mandate amount defined in the subscription.
  3. Pass Registered Subscription Order ID

    • The orderId must be the same as used in Mandate Subscription API.

CheckSum Calculation

For both integrity & data-authenticity verification before sending data to the API. We use an algorithm HMAC SHA-256 to calculate the checksum. Checksum is calculated on all request parameters that is posted to the API. We require data to be posted to Zaakpay server in the NVP (Name-Value Pairs) format.

Sample Request

curl --location 'https://api.zaakpay.com/api/paymentTransact/V13?merchantIdentifier=b19e8XXXXXX406cbd347643XXXXb6b7973&orderId=orderid340&amount=1000&currency=INR&buyerEmail=uttam.test%40mobikwik.com&buyerFirstName=Uttam&buyerLastName=Test&buyerPhoneNumber=9876543210&buyerAddress=Test%20Address&buyerCity=Delhi&buyerState=DL&buyerCountry=India&buyerPincode=110001&productDescription=Mandate%20Payment&returnUrl=https%3A%2F%2Fwebhook.site%2F194f2580-9089-42b2-bfa8-eec71fb50c9e&mandateSubscriptionId=SUB_XXXXXbf9af866&paymentOptionTypes=25_26&debitorcredit=netbanking&bankid=HDFC&v=13&isRestResponse=true&checksum=220277XXXXXbcac4b06e08XXXXae313cf976cXXXfcecdf74887' \
--header 'Cookie: JSESSIONID=342C92324A9766C1E45ED4F23653A120.162.243; JSESSIONID=39D91F9C01935752C761F5B5927E687A.162.243'

Sample Response

amount 	1000
authCode 	NA
bank 	NA
bankErrorCode 	NA
bankErrorReason 	NA
bankRefNum 	NA
bankid 	NA
cardId 	NA
cardScheme 	NA
cardToken 	NA
cardhashid 	NA
checksum 	90a5e95dXXXXb662bdce2f205f9XXXXXcd91189fXX759f213e30d
doRedirect 	false
extra1 	NA
extra2 	NA
orderAmount 	1000
orderId 	orderid340
paymentMethod 	Not Found
paymentMode 	UPI_MANDATE
pgTransId 	ZPXXff4eXXc2133
pgTransTime 	04/21/2026 14:49:54
product1Description 	NA
product2Description 	NA
product3Description 	NA
product4Description 	NA
productDescription 	Mandate Payment
responseCode 	100
responseDescription 	The transaction was completed successfully.
tokenizedCardId 	NA 
txnData={
    "merchantIdentifier": "b19eXXXe406cbdXXXXb6b7973",
    "mandateDetails": {
        "isParentMandate": true,
        "parentOrderId": "orderid340"
    },
    "txns": [
        {
            "pgTransId": "ZPXXff4eXXc2133",
            "orderId": "orderid340",
            "cardScheme": "NA",
            "bankErrorCode": "NA",
            "extra2": "NA",
            "extra1": "NA",
            "cardToken": "NA",
            "responseCode": "100",
            "bank": "NA",
            "bankid": "NA",
            "orderAmount": "1000",
            "product1Description": "NA",
            "product4Description": "NA",
            "pgTransTime": "04\/21\/2026 14:49:54",
            "productDescription": "Mandate Payment",
            "amount": "1000",
            "authCode": "NA",
            "paymentMode": "UPI_MANDATE",
            "product3Description": "NA",
            "bankErrorReason": "NA",
            "tokenizedCardId": "NA",
            "doRedirect": "false",
            "responseDescription": "The transaction was completed successfully. ",
            "cardhashid": "NA",
            "cardId": "NA",
            "paymentMethod": "Not Found",
            "product2Description": "NA",
            "bankRefNum": "NA",
            "txnDate": "2026-04-21 14:49:54.419"
        }
    ]
}&checksum=c8d6e812c3dd7*****71e8afeb81d59b91fecc4d81******93cf83f05


Generated Checksum : 220277XXXXXbcac4b06e08XXXXae313cf976cXXXfcecdf74887

Response Checksum

Response Checksum will be calculated on all parameters in the same order as given below. Prepare checksum string by concatenating all param value with ampersand '&' at the end of each value with the parameter name. For Instance, Please refer to below Response Checksum String and Generated Checksum.

merchantIdentifier=b19e8XXXXXX406cbd347643XXXXb6b7973&orderId=orderid340&amount=1000&currency=INR&buyerEmail=uttam.test%40mobikwik.com&buyerFirstName=Uttam&buyerLastName=Test&buyerPhoneNumber=9876543210&buyerAddress=Test%20Address&buyerCity=Delhi&buyerState=DL&buyerCountry=India&buyerPincode=110001&productDescription=Mandate%20Payment&returnUrl=https%3A%2F%2Fwebhook.site%2F194f2580-9089-42b2-bfa8-eec71fb50c9e&mandateSubscriptionId=SUB_XXXXXbf9af866&paymentOptionTypes=25_26&debitorcredit=netbanking&bankid=HDFC&v=13&isRestResponse=true&checksum=220277XXXXXbcac4b06e08XXXXae313cf976cXXXfcecdf74887
220277XXXXXbcac4b06e08XXXXae313cf976cXXXfcecdf74887