Welcome to the Zaakpay developer hub!

You'll find comprehensive guides and documentation to help you start integrating Zaakpay Payment gateway as quickly as possible, as well as support if you get stuck. Let's jump right in!

Guides would be the best place to start.
Checkout "Discussions" forum for frequently asked questions or simply use the search option if you're unsure of where to look.
Api Endpoints provides the specification on our APIs with an option to explore the API

Guides    Discussions

Zaakpay Express Checkout

Web Redirection flow

In Zaakpay Express Checkout Flow, you can easily integrate it with your website and start accepting online payment through various payment methods such as Credit and Debit Card, Net banking, UPI and Wallet.
Once the customer clicks on the payment button, It redirects to the Zaakpay Standard Checkout Page.


Haven't created your account yet?

Please follow our Getting started guide.

Transact API

Purpose: This API can be used to initiate a transaction and redirect user to Zaakpay Express Checkout Page.

Request Type: POST

Environment details:

Request Attributes

These Parameters are mentioned in the same order in which Zaakpay Payment Gateway calculates the checksum (Excluding checksum).

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
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.
buyerFirstName String N Max length 30, alphanumeric characters, no special characters or dashes. First Name on card.
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 Curreny 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 Check your Zaakpay Account. Alphanumeric.
merchantIpAddress String N buyer’s IP address as recorded by your website. e.g.
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 alphanummeric 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 inMobiKwik 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.

Response Attributes

Fields Description
orderId Order Id as per the request
responseCode Refer to Table 9: Transact-API Responses Codes
responseDescription Refer to Table 9: Transact-API Responses Codes
checksum Checksum calculated by ​ MobiKwik Payment Gateway ​ on all above response parameters
amount amount Txn amount in paisa, Integer
doRedirect True or False
paymentMode Mode of Payment eg. "card"
cardId Unique number generated for card (to fetch the stored card)
cardScheme Main Issuer e.g. Visa
cardToken First four and last four digits of card number
bank for Bank Name
bankid for Net Banking, ID of selected bank
paymentmethod Defined below
cardhashId Unique number generated for card (same for all devies)
productDescription As Received with the Request
product1Description As Received with the Request
product2Description As Received with the Request
product3Description As Received with the Request
product4Description As Received with the Request
pgTransId Txn ID
pgTransTime Txn Date & Time


Facing Issue in Response Checksum Calculation?

Please use the same sequence in checksum calculation.
amount=1000&bank=AXIS BANK LTD.&bankid=NA&cardId=2ba58e263f0f89f87080ac95ee46eea90389d1b29e9b5364b531d08a5e40175c~366&cardScheme=Visa&cardToken=4000 XXXX XXXX 0002&cardhashid=CH466&doRedirect=false&orderId=ZPLive1509350715217&payment Method=400000&paymentMode=Debit Card&responseCode=100&responseDescription=The transaction was completed successfully. &productDescription=NA&product1Description=NA&product2Description=NA&product3Drescription=NA&product4Description=NA&pgTransId=ZP55cbfff01a00d&pgTransTime=10/30/2017 14:40:25&

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.

To calculate the checksum please follow the process below:

  • Create a list of all parameters which you are passing to the API. String used in checksum calculation has a predefined sequence in which parameters are to be concatenated.
  • Create a concatenated string of all data values in your list, with ampersand '&' at the end of each item with the parameter name. e.g.merchantIdentifier=merchantIdentifiervalue&orderid=orderIdvalue&amount=amountvalue&buyerEmail=buyerEmailvalue&buyerAddress=buyerAddressvalue&...
  • Calculate the checksum using the HMAC SHA-256 algorithm, the concatenated string as data and your generated secret key. Checksum String should be in the same order in which request parameters are posted.
  • The resulting checksum calculated should be posted to the Zaakpay API along with other data.

Note : The empty parameters are not to be used in the checksum calculation string.

You can check the checksum string generated against the provided request parameters here
The secret key , returnUrl and currency was configured for the sandbox environment.


Want to simulate Zaakpay Express Checkout Flow?

Follow below steps to initiate the transactions.

Initiate Transaction

  1. Click on Transact API to make a test transaction. Please refer to the below Image.
  2. Insert Merchant Identifier and other fields on our Demo Page.
  3. Click on the "Pay Now" button to proceed with the transaction on Zaakpay.
  4. Use the Test Card details for our Staging Credentials and use live cards for our Live Environment.
  5. Zaakpay will post the response of the transaction to the provided return URL.

Sample Request

Please refer the below CURL request for reference.

curl --location --request POST 'https://zaakstaging.zaakpay.com/api/paymentTransact/V8?amount=200&[email protected]&currency=INR&merchantIdentifier=889653b03ce04a57b54db6463b1e5445&orderId=ZPLive162774621544906&checksum=ad423b02a9a6c6a7d0810be6b313d4f5243dda65b4ea81c03ab169ad35b1ff54' \
--header 'Cache-Control: no-cache' \
--header 'Postman-Token: c2376ff3-c001-4eeb-b828-ac3ebcc4d3b0' \
--header 'Cookie: JSESSIONID=AA2827C1F972CDD7D6147D284F9FCF1D'

Checksum String :
amount=200&[email protected]¤cy=INR&merchantIdentifier=889653b03ce04a57b54db6463b1e5445&orderId=ZPLive162774621544906&

Secret Key :

Generated Checksum : ad423b02a9a6c6a7d0810be6b313d4f5243dda65b4ea81c03ab169ad35b1ff54

Sample Response

orderId     ZPLive162774621544906
responseCode        100
responseDescription The transaction was completed successfully.
checksum        c5cd7aa4e0001d1b3ba47729229fda26adab2dc2609c705c3646ef573a9f2b6f
amount          200
doRedirect      false
paymentMode     Credit Card
cardId          bce8e4e1e66520cb0bc2bf3a0e760412d53273a844bf0931f2b3136a2ee0ada3~1
cardScheme      Visa
cardToken       4012 XXXX XXXX 1881
bank            HDFC
bankid          NA
paymentMethod       401288
cardhashid      CH101
productDescription  NA
product1Description NA
product2Description NA
product3Description NA
product4Description NA
pgTransId       ZP5caa1910371f2
pgTransTime     08/28/2021 22:33:03
SGST            0
CGST            0
IGST            0
statusCode      7
orderAmount     200
zaakpayFee      500
totalTax        0
txnAmount       200
         "paymentMode":"Debit Card",
         "cardToken":"4012 XXXX XXXX 1112",
         "responseDescription":"The transaction was completed successfully. ",
         "pgTransTime":"09\/24\/2021 16:11:06",
         "txnDate":"2021-09-24 16:11:07.272",
         "productDescription":"Zaakpay subscription fee"

Download our Express Checkout Flow Document Directly from here


Transactions Failing on Live Environment?

  • Make sure you are using Live cards for Live Transactions.
  • For more details, Please refer to our FAQ.


Updated 3 days ago

Zaakpay Express Checkout

Web Redirection flow

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.