> ## Documentation Index
> Fetch the complete documentation index at: https://docs.konnectnxt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PAN Verification v2

> Verify PAN details with comprehensive information including address and Aadhaar seeding status

## Overview

The PAN Verification v2 API validates PAN details using PAN number, full name, and date of birth. It returns comprehensive information including personal details, registered address, and Aadhaar seeding status.

### Key Features

* **Complete Verification**: Validates PAN number, name, and date of birth
* **Comprehensive Details**: Returns full name, address, contact information
* **Aadhaar Seeding Status**: Check if PAN is linked with Aadhaar
* **Real-time Validation**: Instant verification in under 2 seconds
* **Masked Data**: Secure display of sensitive information

### What's New in v2

* **Enhanced Data**: More comprehensive personal and address details
* **Better Validation**: Full name and DOB matching for accuracy
* **Structured Address**: Separate fields for line1, line2, street, city, state
* **Aadhaar Integration**: Masked Aadhaar and seeding status
* **Consistent Format**: Unified response structure across all v2 APIs

<Note>
  **Data Availability**: PAN status and cardholder name are always returned.
  Additional details such as address, contact information, and Aadhaar seeding
  status are provided when available in the records.
</Note>


## OpenAPI

````yaml POST /v2/verification/pan
openapi: 3.0.0
info:
  title: KonnectNXT API Store
  description: >-
    A sample API that uses a plant store as an example to demonstrate features
    in the OpenAPI specification
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://bgv.konnectnxt.com/api
    description: Production
  - url: https://testbgv.konnectnxt.com/api
    description: QA
security:
  - bearerAuth: []
paths:
  /v2/verification/pan:
    post:
      tags:
        - Identity Verification
      summary: PAN Verification (v2)
      description: >-
        Verify PAN details using PAN number, full name, and date of birth.
        Returns comprehensive PAN holder information including address and
        Aadhaar seeding status.
      operationId: verifyPANV2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PANVerificationV2Request'
            examples:
              Example:
                summary: PAN verification with full details
                value:
                  pan_number: AABCI6363G
                  full_name: RAJESH KUMAR SHARMA
                  dob: '1995-05-15'
      responses:
        '200':
          description: PAN verification successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/APIBaseResponse'
                  - type: object
                    required:
                      - data
                    properties:
                      data:
                        $ref: '#/components/schemas/PANVerificationV2Data'
                  - $ref: '#/components/schemas/Credits'
              examples:
                Success:
                  summary: Successful PAN verification
                  value:
                    status: success
                    code: 200
                    message: Operation completed successfully
                    data:
                      status: SUCCESS
                      message: Existing and Valid. PAN is Operative
                      panStatus: VALID
                      panType: Individual
                      typeOfHolder: Resident Individual
                      firstName: RAJESH
                      middleName: KUMAR
                      lastName: SHARMA
                      name: RAJESH KUMAR SHARMA
                      gender: Male
                      mobile: 98XXXX5678
                      email: rajesh.sharma@example.com
                      dateOfBirth: '1990-05-15'
                      line1: Flat 101, Sunrise Apartments
                      line2: Sector 15
                      streetName: Main Road
                      pincode: '400001'
                      city: Mumbai
                      state: Maharashtra
                      country: India
                      full: >-
                        Flat 101, Sunrise Apartments, Sector 15, Main Road,
                        Mumbai, Maharashtra - 400001
                      aadhaarSeedingStatus: Successful
                      maskedAadhaar: XXXX-XXXX-7890
                    credits_used: 10
                    credits_remaining: 984138.5
        '400':
          description: Bad request due to invalid input data
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - $ref: '#/components/schemas/APIErrorData'
              examples:
                Missing DOB:
                  summary: Date of birth missing
                  value:
                    status: error
                    code: 400
                    message: '`dob` is required.'
                    data: null
                Missing Full Name:
                  summary: Full name missing
                  value:
                    status: error
                    code: 400
                    message: '`full_name` is required.'
                    data: null
                Invalid PAN Format:
                  summary: PAN format is invalid
                  value:
                    status: error
                    code: 400
                    message: 'Invalid PAN format. Expected format: ABCDE1234F'
                    data: null
        '401':
          $ref: '#/components/responses/401'
        '402':
          $ref: '#/components/responses/402'
        '403':
          $ref: '#/components/responses/403'
        '404':
          description: PAN not found or details mismatch
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - $ref: '#/components/schemas/APIErrorData'
              examples:
                PAN Not Found:
                  summary: PAN not found in database
                  value:
                    status: error
                    code: 404
                    message: No records found for the provided PAN
                    data: null
                Details Mismatch:
                  summary: Name or DOB doesn't match PAN records
                  value:
                    status: error
                    code: 404
                    message: Provided details do not match PAN records
                    data: null
        '500':
          $ref: '#/components/responses/500'
components:
  schemas:
    PANVerificationV2Request:
      type: object
      required:
        - pan_number
        - full_name
        - dob
      properties:
        pan_number:
          type: string
          description: >-
            Permanent Account Number (10 characters: 5 letters + 4 digits + 1
            letter)
          pattern: ^[A-Z]{5}[0-9]{4}[A-Z]$
          minLength: 10
          maxLength: 10
          example: AABCI6363G
        full_name:
          type: string
          description: Full name as per PAN records (must match exactly)
          minLength: 1
          example: RAJESH KUMAR SHARMA
        dob:
          type: string
          format: date
          description: Date of birth as per PAN records (YYYY-MM-DD format)
          example: '1990-05-15'
    APIBaseResponse:
      type: object
      required:
        - status
        - code
        - message
      properties:
        status:
          $ref: '#/components/schemas/APIStatus'
        code:
          $ref: '#/components/schemas/HTTPCode'
        message:
          $ref: '#/components/schemas/APIMessage'
    PANVerificationV2Data:
      type: object
      required:
        - status
        - panStatus
        - name
      properties:
        status:
          type: string
          enum:
            - SUCCESS
            - FAILURE
          description: Overall verification status
          example: SUCCESS
        message:
          type: string
          description: Detailed status message
          example: Existing and Valid. PAN is Operative
        panStatus:
          type: string
          enum:
            - VALID
            - INVALID
            - DEACTIVATED
          description: Current PAN status
          example: VALID
        panType:
          type: string
          description: Type of PAN holder
          example: Individual
        typeOfHolder:
          type: string
          description: Category of PAN holder
          example: Resident Individual
        firstName:
          type: string
          description: First name of PAN holder
          example: RAJESH
        middleName:
          type: string
          description: Middle name of PAN holder
          example: KUMAR
        lastName:
          type: string
          description: Last name of PAN holder
          example: SHARMA
        name:
          type: string
          description: Full name of PAN holder
          example: RAJESH KUMAR SHARMA
        gender:
          type: string
          enum:
            - Male
            - Female
            - Transgender
          description: Gender of PAN holder
          example: Male
        mobile:
          type: string
          description: Registered mobile number (partially masked)
          example: 98XXXX5678
        email:
          type: string
          format: email
          description: Registered email address
          example: rajesh.sharma@example.com
        dateOfBirth:
          type: string
          format: date
          description: Date of birth (YYYY-MM-DD format)
          example: '1990-05-15'
        line1:
          type: string
          description: Address line 1
          example: Flat 101, Sunrise Apartments
        line2:
          type: string
          description: Address line 2
          example: Sector 15
        streetName:
          type: string
          description: Street name
          example: Main Road
        pincode:
          type: string
          pattern: ^[0-9]{6}$
          description: 6-digit PIN code
          example: '400001'
        city:
          type: string
          description: City name
          example: Mumbai
        state:
          type: string
          description: State name
          example: Maharashtra
        country:
          type: string
          description: Country name
          example: India
        full:
          type: string
          description: Complete formatted address
          example: >-
            Flat 101, Sunrise Apartments, Sector 15, Main Road, Mumbai,
            Maharashtra - 400001
        aadhaarSeedingStatus:
          type: string
          enum:
            - Successful
            - Not Seeded
            - Failed
          description: Aadhaar seeding status with PAN
          example: Successful
        maskedAadhaar:
          type: string
          description: Masked Aadhaar number (if seeded)
          example: XXXX-XXXX-7890
    Credits:
      type: object
      properties:
        credits_used:
          $ref: '#/components/schemas/CreditsUsed'
        credits_left:
          $ref: '#/components/schemas/CreditsLeft'
      required:
        - credits_used
        - credits_left
    Error:
      allOf:
        - $ref: '#/components/schemas/APIBaseResponse'
    APIErrorData:
      type: object
      properties:
        data:
          type: object
          nullable: true
          example: null
    APIStatus:
      type: string
      enum:
        - success
        - error
      description: Overall status of the API
    HTTPCode:
      type: integer
      description: HTTP status code
      example: 400
    APIMessage:
      type: string
      description: Description of the response or error
      example: Invalid request parameters
    CreditsUsed:
      type: integer
      description: Represents the total number of credits used in this request.
      example: 3
    CreditsLeft:
      type: integer
      description: 'Represents the remaining credits available for use. '
      example: 4040
  responses:
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - $ref: '#/components/schemas/APIErrorData'
          examples:
            Missing Token:
              summary: Bearer token is missing or invalid.
              value:
                status: error
                code: 401
                message: Bearer token is missing or invalid.
                data: null
            Incorrect Token Format:
              summary: Token format is incorrect
              value:
                status: error
                code: 401
                message: Token format is incorrect
                data: null
            No Admin Found:
              summary: No admin found for this request
              value:
                status: error
                code: 401
                message: No admin user found for this organization
                data: null
            Invalid API Key:
              summary: Invalid API Key
              value:
                status: error
                code: 401
                message: Invalid API key (organization ID)
                data: null
            User not Found:
              summary: User not found
              value:
                status: error
                code: 401
                message: User not found.
                data: null
    '402':
      description: Payment Required
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - $ref: '#/components/schemas/APIErrorData'
          examples:
            Credit Limit Exceed:
              summary: Credit Limit Exceeded.
              value:
                status: error
                code: 402
                message: Credit Limit Exceeded.
                data: null
            Insufficient Credits:
              summary: Insufficient credits
              value:
                status: error
                code: 402
                message: 'Insufficient credits: 2 required, 1 remaining.'
                data: null
    '403':
      description: Forbidden
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - $ref: '#/components/schemas/APIErrorData'
          examples:
            Token Revoked:
              summary: Token access has been Revoked, Contact Support.
              value:
                status: error
                code: 403
                message: Token access has been Revoked, Contact Support.
                data: null
            Token Inactive:
              summary: Token is Inactive, Contact Support.
              value:
                status: error
                code: 403
                message: Token is Inactive, Contact Support.
                data: null
    '500':
      description: Internal Server Error
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - $ref: '#/components/schemas/APIErrorData'
          examples:
            Internal Server Error:
              summary: Internal Server Error.
              value:
                status: error
                code: 500
                message: Internal Server Error.
                data: null
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key issued by KonnectNXT. Pass as `Authorization: Bearer
        <your_api_key>`.

````