responses.py•1.39 kB
"""Response data models."""
from typing import Literal, Optional
from pydantic import BaseModel, Field
class PANVerificationResponse(BaseModel):
"""Response model for PAN verification."""
pan: str = Field(..., description="Verified PAN number")
category: Literal[
"individual",
"company",
"trust",
"association_of_persons",
"body_of_individuals",
"firm",
] = Field(..., description="PAN holder category")
status: Literal["valid", "invalid"] = Field(..., description="PAN validation status")
remarks: Optional[str] = Field(
None, description="Additional remarks (e.g., 'Holder is Deceased')"
)
name_as_per_pan_match: bool = Field(
..., description="Whether provided name matches PAN records"
)
date_of_birth_match: bool = Field(
..., description="Whether provided DOB matches PAN records"
)
aadhaar_seeding_status: Literal["y", "n", "na"] = Field(
...,
description="Aadhaar seeding status (y=seeded, n=not seeded, na=not applicable)",
)
class PANAadhaarLinkResponse(BaseModel):
"""Response model for PAN-Aadhaar link status."""
aadhaar_seeding_status: Literal["y", "n"] = Field(
..., description="Link status (y=linked, n=not linked)"
)
message: str = Field(..., description="Descriptive message about link status")