Court Record Check API

AI Tools

COURT RECORD VERIFICATION FOR SEARCHING LITIGATION AGAINST INDIVIDUALS AND BUSINESSES REGISTERED IN INDIAN COURTS.

FLOW v1 API v1


Description

Search through digital court records published by Honorable Supreme court, High courts, session and magistrate courts, district civil courts and tribunals in India.

API Details

Court record check is an asynchronous API. The request if first registered using the API definition described below, after which it is picked by the back end processing system and the legal team for review. Once ready, the result is made available through another API.

The legacy data processing model is being formally deprecated.

In order to ensure continued compliance with the Digital Personal Data Protection Act, 2023 (DPDP Act), we are implementing DPDP V3 (Consent-Driven Processing). Under this framework, clients are required to obtain explicit, informed, and verifiable consent from the data principal prior to accessing, processing, viewing, or storing any personal data through the platform. This regulatory transition may require modifications to existing configurations and workflows. Clients are advised to review and update their implementations to ensure ongoing compliance with applicable data protection obligations. Further information regarding this transition can be enquired here. Learn more about this change here.

Request Person Search

Type

URL

Min Version

Max Version

POST

https://api.attestr.com/api/{version}/public/riskx/person/ecourt

v2


Request Business Search

Type

URL

Min Version

Max Version

POST

https://api.attestr.com/api/{version}/public/riskx/business/ecourt

v2


Request Body Parameters

For Person Search

Type

Name

Description

Optional (default)

Min Version

Max Version

String

tag

Unique reference Id for this request to be provided by customer. Max 50 characters.

Required

v2


String

name

Name of the candidate to be searched. Max 256 characters.

Required

v2


String

fatherName

Candidate's father's name. Max 256 characters.

Required

v2


String

birthDate

Candidate's date of birth in DD-MM-YYYY format

Required

v2


String

address

Complete residential address with district, state, zip code, landmark etc. District, zip code etc are necessary for generating higher match score. Max 4192 characters.

Required

v2


String

mode

Report mode. One of the following values. See definitions below.

Quick, Extended

Required

v2


Boolean

webhook

Boolean indicating whether webhook should be triggered after request is processed. See Webhooks

Optional

v2


For Business Search

Type

Name

Description

Optional (default)

Min Version

Max Version

String

tag

Unique reference Id for this request to be provided by customer. Max 50 characters.

Required

v2


String

businessName

Registered legal entity name

Required

v2


String

address

Complete registered address of the company including district, state and zip code. Max 4192 characters.

Required

v2


String

reg

Company registration number such as CIN, LLPIN etc.

Optional

v2


String

mode

Report mode. One of the following values. See definitions below.

Quick, Extended

Required

v2


Boolean

webhook

Boolean indicating whether webhook should be triggered after request is processed. See Webhooks

Optional

v2


Court Check Request Mode

Court record check supports the following two modes.

Key

Description

Quick

Depending on the input search criteria entered, Quick mode is designed to produce precise matches with a match ratio of above 98% by using an advanced machine learning algorithm. Search results may include several nearly matched results that are unrelated to the subject being searched for, owing to the commonality of people's and companies' names. By using sophisticated name and address matching algorithms to weed out false positives and false negatives and filter out results with a match ratio of less than 98%, the Quick mode attempts to mitigate this issue and only provide correct matches. Quick mode generally takes a few minutes to complete.

Extended

In Extended mode, false positives and negatives are further filtered out by manual scrutiny of the Quick mode output. The back office team analyzes each result as part of this manual procedure and summarizes it following a comprehensive case analysis. Extended mode reports typically contain finer details and more in-depth information regarding the case; however, because this procedure requires a manual review, it takes longer than Quick mode.

Type

Name

Value / Description

Optional

Min Version

Max Version

String

Content-Type

application/json

Required

v2


String

Authorization

Basic {authToken}

Required

v2


Info

If you do not have the authentication token, please refer to Register App to generate one.

{ "tag": "123456" "name": "Gitanjali Raheja", "fatherName": "Shyam Kishore Raheja", "birthDate": "26-12-1985", "address": "8-2-293/K/57/101 Kamlapuri Colony Phase 3, Hyderabad, Telangana 500073", "mode": "Quick", "webhook": false }
{ "tag":"123456" "businessName": "ABC MEDIA PRIVATE LIMITED", "address": "634, 2nd Floor, 5th Cross 4th Block, Koramangala, Bangalore, Karnataka 500073", "reg":"ABHC32HFH92019", "mode": "Quick", "webhook": false }

Response

Http Status 200

An unique request ID is returned in the response from this API when a request for court record reports is made. Depending on the report mode selected, this request ID can then be used to query the results once the report is ready. See Querying Court Record Results section below for details.

Key

Description

Type

Min Version

Max Version

_id

Unique request Id to be used later for querying the result

String

v2


number

Unique human readable number to be used for any reference later

String

v2


Sample Response

[{ "_id": "AR02zfeuv2iz5ksij09nf", "number": "3801-575765-9695" }]

Error Response

Parameter

Type

Description

code

Number

Unique error codes for different errors. Always available.

message

String

Error message describing the error. Always Available.

details

String

Detail error message. Available only for certain types of errors.

HTTP Status

Error Code

Error Message

400

4001

Malformed data or missing required parameter values

400

4005

Operation could not be performed due to low credits balance

401

4016

Invalid client authorization

403

4031

Unauthorized access

403

4035

Requested service is not provisioned for your account

403

4039

Client's IP address is not whitelisted

403

4035

Requested service is not provisioned for your account

429

4291

Maximum account rate limit exceeded

429

4292

Maximum API rate limit exceeded

429

4293

Maximum account daily limit exceeded

429

4294

Maximum API daily limit exceeded

500

5001

Request could not be processed

Querying Court Check Result


Get Async Request Outcome API

Type

URL

Min Version

Max Version

GET

https://api.attestr.com/api/{version}/public/common/async/<asyncId>

v2


Request URL Parameters

Name

Description

Min Version

Max Version

asyncId

Replace <asyncId> in the URL with the _id received in the court record search API response as described above.

v2


Request Header Parameters

Type

Name

Value / Description

Optional

Min Version

Max Version

String

Content-Type

application/json

Required

v2


String

Authorization

Basic {authToken}

Required

v2


Response

Http Status 200

Key

Description

Type

Min Version

Max Version

_id

Request Id as queried in the URL

String

v2


number

Request number as generated in the court search API response

String

v2


requestId

Unique ID used by Attestr for request tracing purposes

String

v2


status

Status of the request. Possible values are - COMPLETED, INITIATED, ERRORED

String

v2


input

The input details used for court record search

String

v2


output

Court check output object. Details described below. Null if status is errored or initiated.

CourtCheckOutputRecord

v2


error

Error object if the operation ran into errors, null otherwise. Null if status is completed or initiated.

String

v2


created

Unix timestamp when the request was placed.

Number

v2


updated

Unix timestamp when the request was last updated. Null if status is initiated.

Number

v2


signature

Signature generated using the output and client secret. Used for validating the accuracy of data. Null if status is errored or initiated.

String

v2


CourtCheckOutputRecord

Key

Description

Type

Min Version

Max Version

valid

Boolean parameter to indicate if the request completed successfully.

Boolean

v2


finalRiskSummary

Text summary justifying the final risk level. This is a premium feature available on request.

String

v2


casesCount

No of cases found matching the search criteria. 0 if none.

Number

v2


records

Array of case records found. Refer to the table below for Case Record Object details.

Array of CaseRecord Object

v2


finalRiskLevel

Risk level associated with the profile. Possible values are. 0 - UNKNOWN - If the information available in the case details is not enough to analyse the risk level. 1 - NO RISK - No matching cases found. 2 - LOW RISK - One or more low severity cases discovered. 3 - MODERATE RISK - One or more moderate severity cases discovered. Moderate cases may or may not be criminal in nature. 4 - HIGH RISK - High severity cases discovered with involvement in criminal litigation primarily. 5 - VERY HIGH RISK - Very high risk cases discovered of criminal nature.

Number

v2


Case Record Object

Key

Description

Type

Min Version

Max Version

riskLevel

Risk level of individual case on a scale of 0-5. Risk level for individual case may not be available depending on the pack opted. This is a premium feature available on request.

Number

v2


riskSummary

Risk summary associated with the individual case. This is a premium feature available on request.

String

v2


caseSummary

Human readable summary of the case. This is a premium feature available on request.

String

v2


caseType

Case type

String

v2


caseTypeName

Case type description eg CC - CALENDAR CASE etc.

String

v2


filingNumber

File number assigned to the case eg 362/2018

String

v2


filingDate

Case filing date

String

v2


filingYear

Filing year if available

String

v2


registrationNumber

Case registration number eg 362/2018

String

v2


registrationDate

Date of registration of the case

String

v2


cnrNumber

Unique case identification number

String

v2


state

Court state where case is registered

String

v2


district

Court district where case is registered

String

v2


courtName

Name of the court eg Junior Civil Judge Court

String

v2


courtNumberAndJudge

Court number and judge info if available. Eg. 2-Additional Junior Civil Judge

String

v2


firstHearingDate

Date of first hearing of the case

String

v2


nextHearingDate

Next hearing date if case is in pending state. For disposed cases this could be empty.

String

v2


caseStage

Current stage of the case. Eg. BAIL HEARING etc.

String

v2


decisionDate

Date of decision if the case stands disposed.

String

v2


natureOfDisposal

Type of disposal, contested, uncontested etc if the case is disposed.

String

v2


caseStatus

Case status - Pending, Disposed etc.

String

v2


coram

Generally applies to Hon'able High courts, indicates the number of judges on the bench Eg, 1760 HONOURABLE MR. JUSTICE KALYAN RAI SURANA

String

v2


judicial

Judicial section information generally available for higher courts only e.g Criminal Section

String

v2


causeListName

Name of the cause list if available

String

v2


bench

Applicable for higher courts. Name of the bench that heard the case. eg Single Bench

String

v2


shortOrder

Short order if put up for hearing on another date

String

v2


petitioners

List of petitioners as mentioned in the case. Each petitioner has the following fields.

petitionerName - Name of the petitioner petitionerAge - Age or date of birth of the petitioner. Premium feature available on request. petitionerFather - Petitioner father's name. Premium feature available on request. petitionerAddress - Address of the petitioner if available. Premium feature available on request. petitionerCounsel - Counsel or the advocate name for the petitioner

Array

v2


petitionersText

All the petitioners's information combined in one long text format.

String

v2


respondents

List of respondents as mentioned in the case. Each respondent in the list has the following fields.

respondentName - Name of the respondent respondentAge - Age or date of birth of the respondent. Premium feature available on request. respondentFather - Respondent father's name. Premium feature available on request. respondentAddress - Address of the respondent if available. Premium feature available on request. respondentCounsel - Counsel or the advocate name for the respondent

Array

v2


respondentsText

All the respondent's information combined in one long text format

String

v2


acts

List of Acts and corresponding sections as applicable to this case. Each entry in the list has the following structure.

act - Name of the act as applied to the case sections - Applied sections from the corresponding act.

Array

v2


interlocutoryApplicationDetails

List of any interlocutory petitions/applications (IA) filed. An IA is generally filed in existing legal proceedings to request interim relief. Each item in the list has the following structure.

number IA file number party Party name and counsel that filed IA filingDate Date of filing of the IA application nextDate Next date as applicable status Status of the application - approved, rejected, in hearing etc.

Array

v2


caseHistory

History of case hearings. This is a list, each item in the list has the following structure.

reg - Registration number if available causeListType - Cause list name generally applicable for higher courts only judge - Judge / bench that heard the case. purpose - Purpose of hearing nextHearingDate - Date of next hearing as assigned businessDate - Date of hearing businessDescription - A brief description of what happened during this hearing adjournmentReason - Reason if the hearing was adjourned.

Array

v2


orders

List of order and judgement documents if available. Each order in the list has the following structure - number - Order number orderDate - Date on which the order was issued judge - Judge / bench that issued the order attachment - Link to order document Pdf attachment orderSummary - Summary of the order with a detailed explanation. This is a premium feature available on request.

Array

v2


objections

List of any objections raised by either of the parties during the trial. Each objection has the following structure. number - Objection number objection - Objection title / description scrutinyDate - Date of scrutiny as assigned for the object complianceDate - Compliance date if any receiptDate - Date of receipt of the scrutiny

Array

v2


category

Category of the case generally applies to the higher courts. Eg. 10266 - Bail Application Under section 439 Cr. P. C ( 308 )

String

v2


subCategory

Sub category if applicable

String

v2


subSubCategory

Further division under the sub category if applicable

String

v2


fir

Details of FIR if any mapped to this case. The FIR object has the following structure. state - State where the police station is located district - District where the police station is located policeStation - Name of the police station number - FIR number year - Date or year in which FIR is filed

Object

v2


lowerCourt

Lower court information if applicable. It has the following structure - courtNumberAndName - Name of the lower court caseNumberAndYear - Case number as year as registered in the lower court state - State where lower court is located district - District where lower court is located

Object

v2


documents

List of documents as filed by the counsels in the case. Each document object has the following structure. docNumber - Document number as assigned at the time of filing docName - Name of the document filed advocate - Counsel name who filed the document receivingDate - Date of receiving as registered in the court records filedBy - Party name

Array

v2


transfers

List of transfers to other courts if any. Each transfer object has the following structure. reg - Registration no transferred - Date of transfer from - Source court name to - Destination court name

Array

v2


Sample Output

{ "_id": "AR07Pg8MEqX9LX-15W", "number": "3964-174479-9074", "requestId": "02fb52da-6269-4fc5-8e77-8c3a72b75b87", "status": "COMPLETED", "input": { "tag": "OX02wacfO0qIS0cosU-batch5-12972505", "name": "PECHETTF VINAY CHAND", "fatherName": "Srinivasa Babu", "address": "DR.NO : 5-3-106 SURYA NAGAR AMALAPURAM,surya nagar, Amalapuram,533201", "birthDate": "24-09-2003", "priority": false, "extended": false, "mode": "Quick", "subject": null, "type": "ECOURT_PERSON", "webhook": false, "apiVersion": "v2" }, "output": { "valid": true, "finalRiskSummary": "Case 1 involves an uncontested disposal without any opposition from the other party, suggesting a low-stakes matter that was quickly resolved. The involved sections and acts are not severe or sensitive. Case 2 has an ex parte decree for disposal without contest, indicating a strong case by the plaintiff and potential severity in the alleged wrongdoing. However, without more details, it is difficult to determine the full extent of the alleged wrongdoing or potential harm caused to the plaintiff, resulting in a moderately serious rating of 3 out of 5.", "casesCount": 2, "records": [ { "riskLevel": 2, "riskSummary": "", "caseSummary": null, "caseType": "Civil", "caseTypeName": "EP - EXCEUTION PETITION", "filingNumber": "2348/2016", "filingDate": "15-03-2016", "filingYear": "2016", "registrationNumber": "164/2016", "registrationDate": "25-04-2016", "cnrNumber": "APEG010010762016", "state": "Andhra Pradesh", "district": "East Godavari", "courtName": "Prl. District Court,Rajamahendravaram", "courtNumberAndJudge": "1-Prinicipal District And Sessions Judge,Rajamahendravaram", "firstHearingDate": "16-June-2016", "nextHearingDate": null, "caseStage": null, "decisionDate": "18-February-2020", "natureOfDisposal": "Uncontested - TERMINATED", "caseStatus": "Case Disposed", "coram": null, "judicial": null, "causeListName": null, "bench": null, "shortOrder": null, "petitioners": [ { "petitionerName": "Shriram Transport Finance Ltd. Amalapuram", "petitionerAge": null, "petitionerFather": null, "petitionerAddress": null, "petitionerCounsel": "Advocate - Sri MSKH" } ], "petitionersText": "1) Name: Shriram Transport Finance Ltd. AmalapuramAddress: Sri Devarapalli NareshRecovery Executive and GPA Holder, S/o Narasimha Murthy, Visakhapatnam.", "respondents": [ { "respondentName": "Pechetti Srinivasa Babu", "respondentAge": null, "respondentFather": null, "respondentAddress": null, "respondentCounsel": null }, { "respondentName": "Dommeti Bhairava Sankar", "respondentAge": null, "respondentFather": null, "respondentAddress": null, "respondentCounsel": null } ], "respondentsText": "1) Pechetti Srinivasa Babu\n \n \n 2) Dommeti Bhairava Sankar", "acts": [ { "act": "CODE OF CIVIL PROCEDURE, 1908 (HB)", "sections": "55" }, { "act": "ARBITRATION AND CONCILIATION ACT, 1996 ALONG WITH SCHEME, 1996", "sections": "36AC7/2015" } ], "interlocutoryApplicationDetails": null, "caseHistory": [ { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "NOTICE", "nextHearingDate": "18-07-2016", "businessDate": "16-06-2016", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "FILING COUNTER", "nextHearingDate": "10-08-2016", "businessDate": "18-07-2016", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "FILING COUNTER", "nextHearingDate": "02-09-2016", "businessDate": "10-08-2016", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "FILING COUNTER", "nextHearingDate": "16-09-2016", "businessDate": "02-09-2016", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "FILING COUNTER", "nextHearingDate": "20-10-2016", "businessDate": "16-09-2016", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "FILING COUNTER", "nextHearingDate": "31-10-2016", "businessDate": "20-10-2016", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "PET/PLAINTIFF EVIDENCE", "nextHearingDate": "16-11-2016", "businessDate": "31-10-2016", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "PET/PLAINTIFF EVIDENCE", "nextHearingDate": "18-11-2016", "businessDate": "16-11-2016", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "PET/PLAINTIFF EVIDENCE", "nextHearingDate": "22-12-2016", "businessDate": "18-11-2016", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "PET/PLAINTIFF EVIDENCE", "nextHearingDate": "23-07-2018", "businessDate": "11-06-2018", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "ATTACHMENT", "nextHearingDate": "27-08-2018", "businessDate": "23-07-2018", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "ARREST OF JDR", "nextHearingDate": "17-09-2018", "businessDate": "27-08-2018", "businessDescription": null, "adjournmentReason": null }, { "reg": "164/2016", "causeListType": null, "judge": "Prinicipal District And Sessions Judge,Rajamahendravaram", "purpose": "Disposed", "nextHearingDate": null, "businessDate": "18-02-2020", "businessDescription": null, "adjournmentReason": null } ], "orders": [ { "number": "1", "orderDate": "18-02-2020", "judge": null, "attachment": "https://cdn.attestr.com/public/courtx/mx1somlj788lr9d5su2-e78d853598fc4e9724750c67686b59a1ba6405e9b11830dd0c468a1817168445-1704986870330.pdf", "orderSummary": null } ], "objections": null, "category": null, "subCategory": null, "subSubCategory": null, "fir": null, "lowerCourt": null, "documents": null, "linkedCases": null, "transfers": [] }, { "riskLevel": 1, "riskSummary": "", "caseSummary": null, "caseType": "Civil", "caseTypeName": "OS - ORIGINAL SUIT", "filingNumber": "2927/2015", "filingDate": "03-08-2015", "filingYear": "2015", "registrationNumber": "145/2015", "registrationDate": "06-08-2015", "cnrNumber": "APEG0B0009012015", "state": "Andhra Pradesh", "district": "East Godavari", "courtName": "Principal Junior Civil Judge Court, Amalapuram", "courtNumberAndJudge": "1-Principal Junior Civil Judge", "firstHearingDate": "14-September-2015", "nextHearingDate": null, "caseStage": null, "decisionDate": "03-November-2015", "natureOfDisposal": "Uncontested - EXPARTE DECREE", "caseStatus": "Case Disposed", "coram": null, "judicial": null, "causeListName": null, "bench": null, "shortOrder": null, "petitioners": [ { "petitionerName": "Pechetti Srinivasa Babu", "petitionerAge": null, "petitionerFather": null, "petitionerAddress": null, "petitionerCounsel": "Advocate - DVR" } ], "petitionersText": "1) Name: Pechetti Srinivasa BabuAddress: A/37, Dr.No. 5-3-106, Ramajogayya street, Surya nagar, Amalapuram.", "respondents": [ { "respondentName": "Pasupuleti Srinivasu", "respondentAge": null, "respondentFather": null, "respondentAddress": null, "respondentCounsel": null } ], "respondentsText": "1) Pasupuleti Srinivasu", "acts": [ { "act": "CODE OF CIVIL PROCEDURE, 1908 (HB)", "sections": "26o6R14" } ], "interlocutoryApplicationDetails": null, "caseHistory": [ { "reg": "145/2015", "causeListType": null, "judge": "Principal Junior Civil Judge", "purpose": "WRITTEN STATEMENT", "nextHearingDate": "01-10-2015", "businessDate": "14-09-2015", "businessDescription": null, "adjournmentReason": null }, { "reg": "145/2015", "causeListType": null, "judge": "Principal Junior Civil Judge", "purpose": "WRITTEN STATEMENT", "nextHearingDate": "13-10-2015", "businessDate": "01-10-2015", "businessDescription": null, "adjournmentReason": null }, { "reg": "145/2015", "causeListType": null, "judge": "Principal Junior Civil Judge", "purpose": "FOR PAYMENT OF COSTS", "nextHearingDate": "26-10-2015", "businessDate": "13-10-2015", "businessDescription": null, "adjournmentReason": null }, { "reg": "145/2015", "causeListType": null, "judge": "Principal Junior Civil Judge", "purpose": "PET/PLAINTIFF EVIDENCE", "nextHearingDate": "29-10-2015", "businessDate": "26-10-2015", "businessDescription": null, "adjournmentReason": null }, { "reg": "145/2015", "causeListType": null, "judge": "Principal Junior Civil Judge", "purpose": "PET/PLAINTIFF EVIDENCE", "nextHearingDate": "03-11-2015", "businessDate": "29-10-2015", "businessDescription": null, "adjournmentReason": null }, { "reg": "145/2015", "causeListType": null, "judge": "Principal Junior Civil Judge", "purpose": "Disposed", "nextHearingDate": null, "businessDate": "03-11-2015", "businessDescription": null, "adjournmentReason": null }, { "reg": "145/2015", "causeListType": null, "judge": "Principal Junior Civil Judge", "purpose": "Disposed", "nextHearingDate": null, "businessDate": "03-11-2015", "businessDescription": null, "adjournmentReason": null } ], "orders": [ { "number": "1", "orderDate": "03-11-2015", "judge": null, "attachment": "https://cdn.attestr.com/public/courtx/mx1somlj788lr9d62cj-f13477bee91f5154915f8cd4c7acedcbbf104ab44181cd7bb4e280dfab6c08a9-1704986882659.pdf", "orderSummary": null } ], "objections": null, "category": null, "subCategory": null, "subSubCategory": null, "fir": null, "lowerCourt": null, "documents": null, "linkedCases": null, "transfers": [] } ], "finalRiskLevel": 3 }, "error": null, "created": 1704954457725, "createdBy": null, "createdByOrg": "OX02wacfO0qIS0cosU", "client": "AC0UpnHQzkjGPHkyKe", "updated": 1704986882821, "signature": "791c1b6ae7f82218702ad1f4403881efa4ccccef26a62abf961803225ee2f506", "tracker": [], "metadata": null }

Webhooks

Court record check supports the following two webhook events.

See Webhooks for more details on how to register webhooks.

  1. async.completed

  2. async.errored

To enable webhooks, the API input parameter webhook must be set as true while initiating the request.

Key

Type

Description

Min Version

Max Version

_id

String

ID of the async request. This is same as received in the output of Person / Business search API as described above.

v1


requestId

String

Unique request ID for internal tracing purposes.

v1


status

String

One of COMPLETED OR ERRORED

v1


output

Object

Court record check output object same as output key described in Querying Court Check Result API above.

v1


error

Object

Error object if the court checks runs into errors. The structure of this is same as the Error Response object described above.

v1


signature

String

generated using hmacHexDigest of output object and client secret. Null if status is errored.

v1


Generate signature on your server side code base and check if it matches the signature returned in the payload. To generate the signature, use the SHA256 algorithm, the client secret and the output value to generate a HMAC Hex Digest as shown in the sample code below.

const crypto = require("crypto"); var clientSecret; // This should be initialized as client secret. var apiResponse; // This is apiResponse as retuned in step 6. function hmacHexDigest(secret, input) { const hmac = crypto.createHmac('sha256', secret) hmac.update(input) return hmac.digest('hex') } var signature = hmacHexDigest(clientSecret, JSON.stringify(eventPayload.output)); // Check if signature matches if(signature !== apiResponse.resultSignature){ // Flow is tampered. }
public String hmacHexDigest(String output, String secret) throws java.security.SignatureException { String hmacHexDigest; try { SecretKeySpec signingKey = new SecretKeySpec(secret.getBytes(), "HmacSHA1"); Mac mac = Mac.getInstance("HmacSHA1"); mac.init(signingKey); byte[] hmac = mac.doFinal(result.getBytes()); hmacHexDigest = DatatypeConverter.printHexBinary(rawHmac).toLowerCase(); } catch (Exception e) { throw new SignatureException("hmacHexDigest Failed With Error : " + e.getMessage()); } return hmacHexDigest; }


  Last updated