> ## 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-Aadhaar Link

> Verify if a PAN number is linked to a specific Aadhaar number

## Overview

The PAN-Aadhaar Linkage Verification API allows you to verify whether a specific PAN (Permanent Account Number) is linked to a given Aadhaar number. This is essential for compliance workflows, KYC processes, and ensuring that customers have completed mandatory PAN-Aadhaar linkage as per government requirements.

## Key Features

* **Real-time Verification**: Instant validation of PAN-Aadhaar linkage status
* **Simple Binary Result**: Clear `is_linked` boolean response
* **Compliance Ready**: Helps meet regulatory requirements for PAN-Aadhaar linkage
* **Detailed Messages**: Descriptive messages explaining linkage status
* **Batch Support**: Optional task\_id and group\_id for tracking bulk verifications

## Government Requirement

As per Income Tax regulations, linking PAN with Aadhaar is mandatory for most taxpayers. This API helps verify compliance with this requirement.

## Best Practices

1. **Format Validation**: Validate PAN and Aadhaar formats client-side before API calls
2. **Case Sensitivity**: Ensure PAN is in uppercase before sending
3. **Remove Spaces**: Strip any whitespace from both PAN and Aadhaar numbers
4. **Error Handling**: Implement retry logic for 500 and 503 errors with exponential backoff
5. **Compliance Checks**: Use this API as part of your KYC/onboarding workflows
6. **Data Privacy**: Handle PAN and Aadhaar data in compliance with data protection regulations


## OpenAPI

````yaml POST /v2/verification/pan-aadhaar-link/
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-aadhaar-link/:
    post:
      tags:
        - Identity Verification
        - PAN
      summary: PAN-Aadhaar Linkage Verification
      description: >-
        Verifies if a specific PAN number is linked to a given Aadhaar number.
        Returns a boolean indicating linkage status along with a descriptive
        message.
      operationId: verifyPANAadhaarLink
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PANAadhaarLinkRequest'
            examples:
              basic_verification:
                summary: Basic linkage verification
                value:
                  pan_number: ABCDE1234F
                  aadhaar_number: '123456789012'
      responses:
        '200':
          description: >-
            Verification completed successfully (both linked and not-linked
            cases)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PANAadhaarLinkSuccessResponse'
              examples:
                linked:
                  summary: PAN and Aadhaar are linked
                  value:
                    status: success
                    code: 200
                    message: Operation completed successfully
                    data:
                      is_linked: true
                      message: PAN & Aadhaar are linked
                    credits_used: 5
                    credits_remaining: 95.5
                not_linked:
                  summary: PAN linked to different Aadhaar
                  value:
                    status: success
                    code: 200
                    message: Operation completed successfully
                    data:
                      is_linked: false
                      message: PAN linked to some other Aadhaar
                    credits_used: 5
                    credits_remaining: 90.5
        '400':
          description: Bad request - Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                invalid_pan:
                  summary: Invalid PAN format
                  value:
                    status: error
                    code: 400
                    message: 'Invalid PAN number format. Expected format: AAAAA9999A'
                invalid_aadhaar:
                  summary: Invalid Aadhaar format
                  value:
                    status: error
                    code: 400
                    message: Invalid Aadhaar number format. Must be 12 digits
        '401':
          $ref: '#/components/responses/401'
        '402':
          $ref: '#/components/responses/402'
        '500':
          $ref: '#/components/responses/500'
components:
  schemas:
    PANAadhaarLinkRequest:
      type: object
      required:
        - pan_number
        - aadhaar_number
      properties:
        pan_number:
          type: string
          pattern: ^[A-Z]{5}[0-9]{4}[A-Z]$
          description: >-
            PAN number (must be valid format - 5 uppercase letters, 4 digits, 1
            uppercase letter)
          example: ABCDE1234F
        aadhaar_number:
          type: string
          pattern: ^\d{12}$
          description: Aadhaar number (12 digits)
          example: '123456789012'
    PANAadhaarLinkSuccessResponse:
      allOf:
        - $ref: '#/components/schemas/APIBaseResponse'
        - type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/PANAadhaarLinkData'
        - $ref: '#/components/schemas/Credits'
    Error:
      allOf:
        - $ref: '#/components/schemas/APIBaseResponse'
    APIBaseResponse:
      type: object
      required:
        - status
        - code
        - message
      properties:
        status:
          $ref: '#/components/schemas/APIStatus'
        code:
          $ref: '#/components/schemas/HTTPCode'
        message:
          $ref: '#/components/schemas/APIMessage'
    PANAadhaarLinkData:
      type: object
      required:
        - is_linked
        - message
      properties:
        is_linked:
          type: boolean
          description: >-
            Whether the PAN and Aadhaar are linked. True if linked, false if PAN
            is linked to a different Aadhaar.
          example: true
        message:
          type: string
          description: >-
            Detailed message about linkage status. Either 'PAN & Aadhaar are
            linked' or 'PAN linked to some other Aadhaar'
          example: PAN & Aadhaar are linked
    Credits:
      type: object
      properties:
        credits_used:
          $ref: '#/components/schemas/CreditsUsed'
        credits_left:
          $ref: '#/components/schemas/CreditsLeft'
      required:
        - credits_used
        - credits_left
    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
    '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>`.

````