Settlement API Authentication Process

Onboarding of Merchant

During the onboarding of merchants, for every merchant, a unique client id and client secret is provided to the merchants.


Sample Client Information

    "clientId": "4A75XXXXXXXXXXXXXXXX3434",
    "clientSecret": "ee00XXXXXXXXXXXXXXX9eaa",
    "merchantId": "JublXXXXXXXXX2744"



The following parameters need to be passed in header by the merchants for the JWT authorization.

  1. Client Id  - As provided above 
  2. Authorization - Jwt token  

How to generate this jwt token ?

To generate this, the client secret is to be passed in the following source code - 


Sample Secret Key

private final static String secret = "ee0024XXXXXXXXXXX619eaa"; // use the secret key here

Source Code to generate Token

public static String generateToken(String email) throws IllegalArgumentException, JWTCreationException {
        return JWT.create()
                .withClaim("email", email) // any payload info needed to passed is added through claims
                .withIssuedAt(new Date())

Generation of Request Message Id

The merchant needs to pass a request message id in the request head so that every request can be uniquely identified.


Source Code to generate request message id

public static String uuidGenerator(String merchantId){
        StringBuilder sb = new StringBuilder();
        return sb.append(UUID.randomUUID()).append(merchantId).toString();





Sample Request Structure

  "request": {
    "head": {
      "reqMsgId": "6af7c70c-36f9-400b-90c7-865b917533efFINALL26592576951102"
    "body": {
      "mid": "JublXXXXXXXXX2744",
      "startDate": "2022-06-23",
      "endDate": "2022-06-26",
      "pageNum": 1,
      "pageSize": 20