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 --request POST 'https://api.zaakpay.com/api/paymentTransact/V13?amount=100&buyerEmail=abc%40abc.com&currency=INR&merchantIdentifier=b19XXXXXXXXXXXXXXXXXX973&orderId=ORDERID_123&mandateSubscriptionId=SUB_XXXXXXX0453&checksum=9dd66aXXXXXXb24740f9f16e74XXXXXXX258603619306a7f9b410XXXXca4451' \
--header 'Cache-Control: no-cache' \
--header 'Postman-Token: c2376ff3-c001-4eeb-b828-ac3ebcc4d3b0' \
--header 'Cookie: JSESSIONID=C209398BAF749BB3935D44783B97C0A7; JSESSIONID=BE6FD474B787ADD8F87FB2329B544CB2.165.243'

Secret Key : 0678056d96914a8583fb518caf42828a

Generated Checksum : 9dd66ab300fcf9b24740f9f16e74fda5aaf258603619306a7f9b410210ca4451

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.

amount=100&buyerEmail=***@abc.com&currency=INR&merchantIdentifier=b19e8XXXXXXX47643XXXXX973&orderId=ORDERID_123&mandateSubscriptionId=SUBXXXXXXXe0453&
9dd66ab300fcf9b24740f9f16e74fda5aaf258603619306a7f9b410210ca4451