Borrower Eligibility Check — CGTMSE

Created by Rajatha B M, Modified on Fri, 27 Mar at 2:33 PM by Rajatha B M

What does this API do?

The CGTMSE Borrower Eligibility API allows Member Lending Institutions (MLIs) to check whether a prospective borrower is eligible for a CGTMSE guarantee before proceeding with a loan application. The borrower's IT PAN number is submitted, and the API returns an eligibility status and the eligible guarantee amount.

Eligibility is determined as follows:

  • Eligible: First-time borrower, or total guarantee amount is less than ₹5 crore.
  • Not Eligible: Total guarantee amount exceeds ₹5 crore.
  • Defaulter: Borrower has been marked as NPA.

Based on the eligibility status, the lender can decide to process the loan or inform the borrower accordingly.

Who can use it?

Any onboarded Member Lending Institution (MLI) that has subscribed to the CGTMSE service on the ULI Platform Developer Portal. Eligible institution types include scheduled commercial banks, small finance banks, regional rural banks (RRBs), NBFCs, and other financial institutions registered with CGTMSE.

Prerequisites

Complete all common platform prerequisites as described in Getting Started with ULI Platform APIs. Then ensure the following CGTMSE-specific steps are also complete:

  • CGTMSE service subscription: The CGTMSE service must be subscribed in the Platform Developer Portal separately for Sandbox and Production. Steps are available in the latest SOP for Lender Onboarding document (Section 10).
  • CGTMSE Sign-in token: Before calling this API, you must first obtain a CGTMSE authentication token by calling the CGTMSE Sign-in API. This token must be passed in the x-cgtmse-token request header.

API endpoints

EnvironmentURL
Sandbox (Non-Prod)https://extgw.nonprod.rbihub.io/cgtmse/borrowereligibility/1.3/en
Productionhttps://extgw.api.rbihub.io/cgtmse/borrowereligibility/1.3/en

HTTP Method: POST

URL path convention: /{service name}/{ver}/{lang} — for this API: service name = cgtmse/borrowereligibility, ver = 1.3, lang = en

Headers

HeaderDescriptionExample
AuthorizationBearer JWT token generated by the ULI Platform Authentication service. Refer to the Authentication and Authorization API specification for token generation steps.Bearer <JWT token>
client-idBase64-encoded Client ID issued by the platform during lender registration.pNRxiviTvgBrf7qMANqBVskDYfEa
providerService provider code for CGTMSE.112
x-cgtmse-tokenAuthentication token obtained from the CGTMSE Sign-in API. Required for all CGTMSE business APIs.<authToken from Sign-in API>
api-keyReserved for future use. A 24-character alphanumeric key issued during registration.434950ee34353tty33463399

Request body

The request body is a JSON-formatted encrypted payload following the standard platform envelope. The plain (unencrypted) request contains the borrower's IT PAN number:

{
  "itpan": "ABRPL3597R"
}

This plain payload is then encrypted and submitted as the data field within the standard platform envelope:

{
  "meta": {
    "ver": "1.3",
    "ts": "<ISO-8601 timestamp>",
    "txncode": "<unique transaction code>"
  },
  "hmac": "<SHA-256 hash of encrypted data value>",
  "data": "<encrypted payload>"
}
FieldDescription
meta.verVersion of the request template. Use 1.3.
meta.tsRequest initiation timestamp in ISO-8601 format (e.g. 2024-06-27T12:26:45+0530).
meta.txncodeUnique transaction code provided by the lender.
hmacSHA-256 hash of the value under the data key.
dataEncrypted request payload containing the borrower's IT PAN as per CGTMSE specification.

Plain payload fields:

FieldDescriptionRequired
itpanIT PAN number of the borrower whose CGTMSE guarantee eligibility is being checked.Yes

Response fields

On success, the encrypted data field decrypts to a plain response containing the eligibility status. Example plain response:

{
  "STATUS": [
    {
      "ITPAN": "ABRPL3597R",
      "ELIGIBILITY_STATUS": "PASS",
      "ELIGIBILITY_AMNT": 50000000
    }
  ]
}
FieldDescription
result.errcodeError code. E000 indicates success; any other value indicates failure.
result.statusTransaction status (success or fail).
dataEncrypted response payload. Decrypts to the STATUS array described below.
data → STATUS[].ITPANIT PAN number of the borrower as submitted in the request.
data → STATUS[].ELIGIBILITY_STATUSEligibility outcome: PASS (eligible), FAIL (not eligible — guarantee amount exceeds ₹5 crore), or DEFAULTER (borrower marked as NPA).
data → STATUS[].ELIGIBILITY_AMNTEligible guarantee amount in rupees.
signatureDigital signature (SHA256withECDSA) of the data value for source verification.
hmacSHA-256 hash of the data value.
publickeyPlatform public key for verifying the signature.
sig-algoSigning algorithm used. Value: SHA256withECDSA.
meta.txncodeUnique transaction code echoed from the request.
meta.verVersion of the response template.
meta.tsTimestamp of the request in ISO-8601 format.

Error codes

Error CodeDescription
E000Success — no error.
E801Authentication failed at CGTMSE.
E802Required header x-cgtmse-token is missing.
E043Provider internal error (message is dynamic).

For platform-level error codes, refer to the latest Platform Error Code reference document available in the Platform API Spec folder on the Developer Portal.

Who to contact?

If you encounter an issue, email support@rbihub.in with the following details:

  • Subject: CGTMSE API Error
  • Platform Service Name: CGTMSE
  • Platform Environment: Sandbox / Production
  • Service Provider Code: 112
  • Request Payload (headers + body) sent to platform
  • Error Code received from the platform
  • Error Message received from the platform
  • Attachment: Screenshot or log of the error
  • Prerequisites status: IP Whitelisting, URL Whitelisting, Service Subscription, Token Generation, CGTMSE Sign-in Token

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article