PAN Verification V2
Introduction
The PAN verification API provided by Signzy Technologies Private Limited enables users to extract information from PAN cards for verification purposes. The API accepts requests containing card details and at least one of the fields from Name. It returns the PAN card details along with the verification status. This API is suitable for businesses that require PAN card verification as a part of their KYC (Know Your Customer) process. However, it's important to note that card details should be manually validated, preferably by the card owner, before sending it for verification. This documentation will provide you with the details necessary to use the API effectively.
Use Cases
The PAN extraction API provided by Signzy Technologies Private Limited can be used in various use cases. Some of the use cases are:
- KYC Verification: This API can be used by businesses that require PAN card verification as a part of their KYC process. The businesses can use this API to extract PAN card details from the card provided by the customer and verify the details.
- Banking: Banks can use this API to verify the PAN card details of their customers. The API can be used to extract details such as cardholder name, PAN number, and PAN status.
- Insurance: Insurance companies can use this API to verify the PAN card details of their customers. The API can be used to extract details such as cardholder name, PAN number, and PAN status.
- Government: Government agencies can use this API to verify the PAN card details of citizens. The API can be used to extract details such as cardholder name, PAN number, and PAN status.
- Fintech: Fintech companies can use this API to verify the PAN card details of their customers. The API can be used to extract details such as cardholder name, PAN number, and PAN status.
API description
API Endpoint's
Identity Object
POST https://preproduction.signzy.tech/api/v2/patrons/<patron-id>/identitiesPOST https://signzy.tech/api/v2/patrons/<patron-id>/identitiesHeaders
Key | Value |
|---|---|
Authorization | access token (returned as id field of login request) |
Content-type | application/json |
Request Data
{
"type": "individualPan",
"email": "[email protected]",
"callbackUrl": "https://your-domain.com/your-callback-system",
"images": [
]
}PARAMETERS | DESCRIPTION | TYPE | VALUE (COMPULSORY OR OPTIONAL) |
|---|---|---|---|
type | Supported type parameter for creation of Identity objects
| String | COMPULSORY |
E-mail can't be empty | String | COMPULSORY | |
callbackUrl | callbackUrl is where the data is posted on each activity performed on this Identity object. | String | COMPULSORY |
images | blank | List | COMPULSORY |
Response
{
"type": "individualPan",
"email": "[email protected]",
"callbackUrl": "https://your-domain.com/your-callback-system",
"images": [
],
"autoRecognition": [],
"verification": [],
"forgeryCheck": [],
"accessToken": "..access-token-for-the-snoop-request..",
"id": "..itemId-for-the-snoop-request....",
"patronId": "..your-id-into-signzy-system-(userId-returned-from-the-login-call).."
}
Snoops
POST https://preproduction.signzy.tech/api/v2/snoopsPOST https://signzy.tech/api/v2/snoopsHeaders
Key | Value |
|---|---|
Authorization | access token (returned as id field of login request) |
Content-type | application/json |
Request Data
{
"service": "Identity",
"itemId": "<..itemId-from-the-Identity-Object-request....>",
"task": "verification",
"accessToken": "<..access-token-from-the-Identity-Object-request..>",
"essentials": {
"number": "<PAN-as-mentioned-on-the-card>",
"name": "<Name-corresponding-to-the-given-pan>",
"fuzzy": "true/false",
"panStatus": "true/false"
}
}Details of the request properties
Field | Type | Required | Description |
|---|---|---|---|
service | string | Yes | The type of service requested. This should always be "Identity" for PAN extraction. |
itemId | string | Yes | The unique identifier for the item. This should be a string. |
accessToken | string | Yes | The access token to be used for authentication purposes. This should be a string. |
task | string | Yes | The type of task to be performed. This should always be "verification" for PAN extraction. |
name | string | Yes | The name of the cardholder. This should be a string. |
number | string | Yes | The PAN number to be verified. This should be a string. |
fuzzy | bool | No | A boolean value that indicates whether the API should perform a fuzzy search. |
panStatus | bool | No | A boolean value that indicates whether the API should return the PAN status. |
Response
PARAMETERS | DESCRIPTION | TYPE | VALUE (COMPULSORY OR OPTIONAL) |
|---|---|---|---|
service | Category it belongs to | String | COMPULSORY |
itemId | id parameter value returned from the Identity Object creation request. | String | COMPULSORY |
task | Task can be
| String | COMPULSORY |
accessToken | accessToken parameter value returned from the Identity Object creation request. | String | OPTIONAL |
essentials | essentials will be empty in case of autoRecognition, but required input values needed for verification and fetch. | Object | COMPULSORY |
{
"service": "Identity",
"itemId": "<Identity-object-id>",
"task": "autoRecognition",
"essentials": {},
"accessToken": "<Identity-access-token>",
"id": "ID-of-the-snoop-request",
"response": {
"files": [],
"type": "individualPan | businessPan",
"id": ...integer...,
"instance": {},
"result": {
"verified": true,
"message": "Verification completed successfully",
"upstreamName": "..upstreamName..",
"panStatus": "..panStatus..",
"panStatusCode": "..panStatusCode.."
}
}
}The response object contains the following sub-properties:
Details of the response properties
Property | Example Value | Description |
|---|---|---|
verified | true | A boolean indicating whether the PAN verification was successful or not. |
message | "Verification completed with positive result" | A string containing a message about the verification process. |
upstreamName | "MILIND KUMAR" | A string containing the name on the PAN card extracted from the provided image. |
panStatus | "VALID" | A string indicating the status of the PAN number extracted from the provided image. |
panStatusCode | "E" | A string containing the code for the status of the PAN number extracted from the provided image. |
Note: If the verified property is true, then the remaining properties (upstreamName, panStatus, panStatusCode) will be present in the API response.
Error Codes
Error Code | Description |
|---|---|
400 | Bad Request - The request body is missing one or more required parameters or has invalid values |
401 | Unauthorized - The provided access token is invalid or has expired |
403 | Forbidden - The request is valid but the server is refusing to process it, such as when the user does not have the necessary permissions for the resource |
404 | Not Found - The requested PAN number could not be found or is invalid |
500 | Internal Server Error - The server encountered an unexpected condition that prevented it from fulfilling the request |
Troubleshooting
Error | Possible Causes | Troubleshooting |
|---|---|---|
400 Bad Request | - Missing or invalid input parameters in the request body. <br>- Invalid JSON format. | - Check if all the required parameters are present in the request body and are in the correct format. <br>- Check if the JSON format is valid. |
401 Unauthorized | - Invalid or missing access token. | - Check if the access token is correct and is included in the request headers. |
403 Forbidden | - The provided access token does not have the required permissions. | - Check if the access token has the required permissions. |
404 Not Found or 422 Unprocessable Entity (with an error object) | - Invalid PAN number. <br>- Missing or invalid fields in the request body. <br>- Invalid service, itemId, or task parameter values. | - Check if the PAN number is valid and is in the correct format. <br>- Check if all the required fields are present in the request body and are in the correct format. <br>- Check if the service, itemId, and task parameter values are correct. |
500 Internal Server Error | - Internal server error occurred. | - Try again later. |
Note: If there is an error, the response will contain an error object with a status code, name, message, and status properties.