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

Quick Integrations

Prerequisites

  1. Staging Credentials
  2. Test Cards
  3. Knowlefe of the flow
    Refer This

📘

Haven't created your account yet?

Please follow our Getting started guide.

For both integrity & data-authenticity verification before sending data to the API, you need to
calculate a checksum of all the data that you send to MobiKwik Payment Gateway. We use an
HMACSHA-256 algorithm to calculate the checksum of ALL data that is posted to the API. We require data to be posted to our server in the NVP (Name-Value Pairs) format.

Request Parameters Sequence for Checksum

"amount","bankid","buyerAddress","buyerCity","buyerCountry","buyerEmail","buyerFirstName","buyerLastName","buyerPhoneNumber","buyerPincode","buyerState","currency","debitorcredit","merchantIdentifier","merchantIpAddress","mode","orderId","product1Description","product2Description","product3Description","product4Description","productDescription","productInfo","purpose","returnUrl","shipToAddress","shipToCity","shipToCountry","shipToFirstname","shipToLastname","shipToPhoneNumber","shipToPincode","shipToState","showMobile","txnDate","txnType","zpPayOption"

HMAC SHA 256 Algorithms

public static String calculateChecksum(String secretKey, String allParamValue) throws Exception { 
    byte[] dataToEncryptByte = allParamValue.getBytes();
    byte[] keyBytes = secretKey.getBytes();
    SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "HmacSHA256");
    Mac mac = Mac.getInstance("HmacSHA256");
    mac.init(secretKeySpec);
    byte[] checksumByte = mac.doFinal(dataToEncryptByte);
    String checksum = toHex(checksumByte);
    
    return checksum;
  }
static function calculateChecksum($secret_key, $checksumString) {
    $hash = hash_hmac('sha256', $checksumString , $secret_key);
        $checksum = $hash;
        return $checksum;
    }
require 'openssl'
require "base64"

hash  = OpenSSL::HMAC.digest('sha256', "secretKey", "checksumString")
import hashlib
import hmac
import base64

message = bytes('checksumString', 'utf-8')
secret = bytes('secretKey', 'utf-8')

signature = base64.b64encode(hmac.new(secretKey, checksumString, digestmod=hashlib.sha256).digest())
print(signature)
using System.Security.Cryptography;

namespace Test
{
  public class MyHmac
  {
    private string CreateToken(string checksumString, string secretKey)
    {
      secretKey = secretKey ?? "";
      var encoding = new System.Text.ASCIIEncoding();
      byte[] keyByte = encoding.GetBytes(secretKey);
      byte[] messageBytes = encoding.GetBytes(checksumString);
      using (var hmacsha256 = new HMACSHA256(keyByte))
      {
        byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
        return Convert.ToBase64String(hashmessage);
      }
    }
  }
}

Response Parameters Sequence for Checksum

"amount","bank","bankid","cardId","cardScheme","cardToken","cardhashid","doRedirect","orderId","paymentMethod","paymentMode","responseCode","responseDescription","productDescription","product1Description","product2Description","product3Description","product4Description","pgTransId","pgTransTime"

Refer to our API section for intiating a request

Try our API's

Updated 11 months ago


Quick Integrations


Suggested Edits are limited on API Reference Pages

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