Skip to content

Master Dataset

This is the single most comprehensive reference in the entire documentation set. It defines every field the KYC system captures, stores, or generates — roughly 454 fields across 30 sections, covering everything from the customer’s PAN (Permanent Account Number) to the audit trail of every modification made to their record. You will not read this cover-to-cover, but you will come back to it regularly when building forms, writing validation logic, debugging field-mapping issues, or answering compliance questions about where a particular piece of data comes from and why it is required.

1.1 Two-Part KYC Structure (SEBI Mandated)

Section titled “1.1 Two-Part KYC Structure (SEBI Mandated)”

SEBI (Securities and Exchange Board of India) mandates that KYC is split into two parts. This is not an implementation choice — it is a regulatory requirement. Part I is standardized across all intermediaries (brokers, mutual funds, insurance), while Part II is specific to each intermediary’s line of business.

PartNamePurposeTemplate
Part IKYC Form / CIP (Customer Identification Procedure)Basic client identification - standardized across all SEBI intermediariesCERSAI prescribed template
Part IICDD (Customer Due Diligence)Activity-specific information for the intermediary (trading prefs, segments, risk)Intermediary-designed

These are all the external systems our KYC application communicates with. You will see their abbreviations throughout this document and the codebase.

SystemEntityPurpose
KRACVL/NDML/DOTEX/CAMS/KFintechSecurities-market KYC registry (SEBI regulated)
CKYC (CKYCR)CERSAI / ProteanCross-sector KYC registry (RBI/SEBI/IRDAI)
PAN VerificationNSDL/Protean (ITD authorized)Identity & PAN-Aadhaar linkage check
DigiLockerMeitY / UIDAIConsent-based document fetch (Aadhaar, PAN, DL)
e-KYC SetuNPCIAadhaar e-KYC without disclosing Aadhaar number
Bank VerificationPenny Drop / UPIAccount ownership verification
e-SignUIDAI / CCAAadhaar OTP-based digital signature
NSE/BSE/MCXExchangesUCC registration for trading
CDSL/NSDLDepositoriesBO/Demat account creation

This is the high-level decision tree that determines how much data the system needs to capture from the customer. If a KRA (KYC Registration Agency) record already exists for their PAN, much of the form is prefilled. If neither KRA nor CKYC (Central KYC) has a record, the customer goes through the full capture flow.

Client Initiates -> PAN Lookup in KRA -> KRA Found?
-> Yes: KRA Fetch + CKYC Search -> Compare & Prefill -> Capture Delta
-> No: CKYC Search -> CKYC Found?
-> Yes: Download & Prefill -> Capture Delta
-> No: Fresh KYC Capture (Full)
All Paths Lead To:
-> PAN Verification (Protean)
-> Aadhaar/DigiLocker Consent
-> Bank Account Verification (Penny Drop)
-> IPV/VIPV
-> Capture Remaining Data (Segments, Nominees, FATCA, DDPI)
-> e-Sign on Application
-> Submit to KRA + CKYC
-> Register UCC on NSE/BSE/MCX
-> Open BO Account on CDSL/NSDL
-> Activate Segments
-> Client Ready to Trade

Source: CERSAI KYC Template (Part I) + KRA Fields Required By: KRA, CKYC, NSE, BSE, MCX, CDSL, NSDL

This is the foundational identity section. Every downstream system — exchanges, depositories, KRA, CKYC — needs these fields. The name fields (A05-A07) must match the PAN card exactly; even minor spelling differences will cause KRA rejections.

#Field NameData TypeSizeMandatoryValidationSource/Notes
A01panString10Y[A-Z]{5}[0-9]{4}[A-Z]Primary identifier. 4th char: P=Individual
A02pan_exemptBoolean1NY/NOnly for specific govt categories
A03pan_exempt_categoryString2Cond.Code tableRequired if pan_exempt=Y
A04prefixString5NMr/Mrs/Ms/DrName prefix/salutation
A05first_nameString70YAlpha + spacesMust match PAN card
A06middle_nameString70NAlpha + spaces
A07last_nameString70YAlpha + spacesMust match PAN card
A08full_nameString200YDerivedConcatenation of A05+A06+A07
A09maiden_prefixString5N
A10maiden_first_nameString70NIf name changed after marriage
A11maiden_middle_nameString70N
A12maiden_last_nameString70N
A13father_spouse_flagString1YF=Father, S=SpouseIndicates which relation
A14father_spouse_prefixString5YMr/Mrs/Ms
A15father_spouse_nameString70YFull name of father or spouse
A16mother_prefixString5N
A17mother_nameString70NMother’s full name
A18genderString1YM/F/TMale/Female/Transgender
A19marital_statusString1NS/M/OSingle/Married/Others
A20date_of_birthDate10YDD/MM/YYYYMust match PAN. Age >= 18
A21nationalityString2YISO country codeIN=Indian
A22residential_statusString2YRI/NRI/FN/PIOResident Indian / NRI / Foreign National / PIO
A23aadhaar_numberString12N12 digits, Verhoeff algoMasked in storage: XXXX-XXXX-1234
A24aadhaar_reference_numberString28NVirtual ID or reference from DigiLocker
A25ckyc_numberString14N14 digitsCentral KYC Identification Number (KIN)
A26dinString8N8 digitsDirector Identification Number (if applicable)
A27place_of_birthString50NCity/Town of birth
A28country_of_birthString2NISO country codeRequired for FATCA
A29is_differently_abledBoolean1YY/NCKYC mandatory field
A30disability_typeString2Cond.Code tableRequired if A29=Y
A31disability_percentageNumber3Cond.0-100Required if A29=Y
A32udid_numberString18Cond.[A-Z]{2}\d{16}Unique Disability ID

Source: CERSAI KYC Template + KRA Fields Required By: KRA, CKYC, NSE, BSE, CDSL, NSDL

Address data typically comes from DigiLocker (Aadhaar XML). If the permanent address is the same as the correspondence address, the customer sets perm_same_as_corr to Y and the permanent fields are auto-copied.

#Field NameData TypeSizeMandatoryValidation
B01corr_address_line1String100Y
B02corr_address_line2String100N
B03corr_address_line3String100N
B04corr_cityString50Y
B05corr_districtString50N
B06corr_stateString30YState code table
B07corr_pincodeString6Y6 digits
B08corr_countryString30YDefault: India
B09corr_address_proof_typeString2YPOA code table
#Field NameData TypeSizeMandatoryValidation
B10perm_same_as_corrBoolean1YY/N
B11perm_address_line1String100Cond.Required if B10=N
B12perm_address_line2String100N
B13perm_address_line3String100N
B14perm_cityString50Cond.
B15perm_districtString50N
B16perm_stateString30Cond.
B17perm_pincodeString6Cond.
B18perm_countryString30Cond.
B19perm_address_proof_typeString2Cond.

#Field NameData TypeSizeMandatoryValidation
C01mobile_isd_codeString5YDefault: +91
C02mobile_numberString15Y10 digits for India, starts with 6/7/8/9
C03alternate_mobileString15N
C04emailString100YRFC 5322 format
C05alternate_emailString100N
C06phone_std_codeString5NLandline STD
C07phone_numberString15NLandline number
C08fax_std_codeString5N
C09fax_numberString15N

Officially Valid Documents (OVDs) per PMLA (Prevention of Money Laundering Act) Rules

These are the Proof of Identity documents accepted under Indian law. In practice, almost all customers use Aadhaar (via DigiLocker) or PAN as their POI (Proof of Identity).

#Field NameData TypeSizeMandatoryValidation
D01poi_typeString2YPOI code table (see Appendix A)
D02poi_document_numberString30YFormat per document type
D03poi_expiry_dateDate10Cond.DD/MM/YYYY - for Passport, DL
D04poi_issue_dateDate10N
D05poi_issuing_authorityString50N
D06poi_verified_from_issuerBoolean1YY/N
D07poi_document_imageBLOB-YJPEG/PNG/PDF, max 2MB
CodeDocumentID Format
APassport[A-Z]\d{7}
BVoter ID Card[A-Z]{3}\d{7}
CDriving LicenseState-specific format
DPAN Card (with photo)[A-Z]{5}\d{4}[A-Z]
EAadhaar / UID12 digits (Verhoeff)
FNREGA Job CardState-specific
GNPR Letter-
ZOthers (Govt/Defense ID)-

POA (Proof of Address) documents have validity constraints. A utility bill older than two months is not acceptable. You will encounter these constraints in the document upload validation logic.

#Field NameData TypeSizeMandatoryValidation
E01poa_typeString2YPOA code table
E02poa_document_numberString30Y
E03poa_expiry_dateDate10Cond.For Passport, DL
E04poa_issue_dateDate10N
E05poa_verified_from_issuerBoolean1Y
E06poa_address_same_as_corrBoolean1YY/N
E07poa_document_imageBLOB-YJPEG/PNG/PDF, max 2MB
CodeDocumentValidity Constraint
APassportValid / not expired
BVoter ID CardNo expiry
CDriving LicenseValid / not expired
DAadhaar / UIDNo expiry
EUtility BillNot older than 2 months
FBank StatementNot older than 3 months
GProperty/Municipal Tax ReceiptCurrent year
HGovt/Defense ID CardValid
ZOthersCase-specific

Required By: PMLA/AML compliance, Segment activation, KRA (optional), Exchange registration

The financial profile drives two critical decisions: which trading segments the customer can access (F&O and Commodity require income proof), and what risk category they fall into for AML (Anti-Money Laundering) screening.

#Field NameData TypeSizeMandatoryValidationNotes
F01occupationString2YOccupation code tableSee Appendix A
F02occupation_othersString50Cond.If F01=99 (Others)
F03gross_annual_income_rangeString2YIncome range codeSee Appendix A
F04declared_annual_incomeDecimal15,2NINRExact amount if provided
F05net_worthDecimal15,2NINR Lakhs
F06net_worth_dateDate10Cond.DD/MM/YYYYRequired if F05 provided. Must be < 1 year old
F07source_of_wealthString100NSalary/Business/Inheritance/etc
F08income_proof_typeString2Cond.Required for F&O/Commodity segments
F09income_proof_documentBLOB-Cond.PDF/JPEG, max 5MB
F10income_proof_financial_yearString9Cond.YYYY-YYYYe.g., 2025-2026

Income Proof Types (for F&O/Derivatives activation)

Section titled “Income Proof Types (for F&O/Derivatives activation)”
CodeDocumentKey Field Extracted
BSBank Statement (6 months)Average monthly balance
SSSalary Slip (last 3 months)Gross monthly salary
ITITR AcknowledgementGross total income
F16Form 16Annual salary
NWNet Worth Certificate (CA certified)Net worth amount, CA details
DHDemat Holding StatementHolding value
FDFixed Deposit ReceiptFD value
CodeRange (INR)Proposed New Ranges (SEBI Jan 2026)
01Below 1 Lakh0 - 5 Lakhs
021 - 5 Lakhs5 - 10 Lakhs
035 - 10 Lakhs10 - 50 Lakhs
0410 - 25 Lakhs50 Lakhs - 1 Crore
0525 Lakhs - 1 Crore1 - 2 Crore
06Above 1 CroreAbove 2 Crore

Required By: Broker (pay-in/pay-out), Exchange (settlement), SEBI regulation Validation: Penny Drop verification mandatory for primary account Multiple Accounts: Up to 5 bank accounts allowed

The bank section is where many onboarding failures occur. The penny drop verification (a Rs.1 IMPS credit to confirm the account exists and the name matches) is a blocking step. If the name returned by the bank does not match the PAN name above a configurable threshold, the application cannot proceed.

Per Bank Account (repeat for each, max 5):

Section titled “Per Bank Account (repeat for each, max 5):”
#Field NameData TypeSizeMandatoryValidation
G01bank_account_seqNumber1Y1-5
G02is_primaryBoolean1YExactly one must be Y
G03bank_nameString100Y
G04branch_nameString100Y
G05account_numberString18YAlphanumeric
G06ifsc_codeString11Y[A-Z]{4}0[A-Z0-9]{6}
G07micr_codeString9N9 digits
G08account_typeString2YSB=Savings, CA=Current, NRE, NRO
G09account_holder_nameString100YMust match PAN name
G10bank_proof_typeString2YCC=Cancelled Cheque, BS=Bank Statement
G11bank_proof_documentBLOB-YJPEG/PNG/PDF
G12penny_drop_statusString2YS=Success, F=Failed, P=Pending
G13penny_drop_refString30Cond.UTR from penny drop
G14penny_drop_name_returnedString100Cond.Name returned by bank
G15penny_drop_name_match_scoreNumber3Cond.0-100 percentage
G16penny_drop_dateDateTime-Cond.ISO 8601

Required By: CDSL/NSDL (BO account), Broker (settlement)

The BO (Beneficiary Owner) ID format differs between the two depositories. CDSL uses a 16-digit numeric ID, while NSDL uses “IN” followed by 14 alphanumeric characters. You will see this distinction in every depository-related integration.

#Field NameData TypeSizeMandatoryValidationNotes
H01depositoryString4YCDSL/NSDL
H02dp_nameString100YDepository Participant name
H03dp_idString8YCDSL: 8 digits, NSDL: IN+6 digits
H04client_idString8Y8 digits
H05bo_idString16YCDSL: 16 digits, NSDL: IN+14 charsDerived: dp_id + client_id
H06account_typeString2YIN=Individual, JO=Joint, MN=Minor
H07account_statusString2YAC=Active, FR=Frozen, CL=Closed
H08bsda_flagBoolean1NY/NBasic Services Demat Account
H09opening_dateDate10YDD/MM/YYYY

Regulatory Basis: SEBI circular Jan 10, 2025 (up to 10 nominees), SEBI circular Jun 10, 2024 (simplified to 3 mandatory fields) Required By: CDSL/NSDL demat, Broker trading account

Nomination rules changed significantly in 2024-2025. Previously, nomination was optional. Now, customers must either nominate at least one person or explicitly opt out — and opting out requires video verification.

#Field NameData TypeSizeMandatoryValidation
I01nomination_optedBoolean1YY/N
I02opt_out_declarationBoolean1Cond.Required if I01=N. Needs video verification
I03number_of_nomineesNumber2Cond.1-10, required if I01=Y
#Field NameData TypeSizeMandatoryValidation
I04nominee_seqNumber2Y1-10
I05nominee_nameString100Y
I06nominee_relationshipString2YRelationship code table
I07nominee_dobDate10YDD/MM/YYYY
I08nominee_percentageDecimal5,2Y0.01-100.00; all must sum to 100
I09nominee_panString10Cond.Any one unique ID mandatory
I10nominee_aadhaarString12Cond.
I11nominee_passportString8Cond.
I12nominee_addressString255Y
I13nominee_cityString50Y
I14nominee_stateString30Y
I15nominee_pincodeString6Y
I16nominee_mobileString15N
I17nominee_emailString100N
I18nominee_is_minorBoolean1YDerived from nominee_dob

Guardian Details (required if nominee is minor):

Section titled “Guardian Details (required if nominee is minor):”
#Field NameData TypeSizeMandatoryValidation
I19guardian_nameString100Cond.Required if I18=Y
I20guardian_panString10Cond.
I21guardian_relationshipString2Cond.Relationship code
I22guardian_addressString255Cond.

Regulatory Basis: SEBI/HO/MIRSD/SECFATF/P/CIR/2024/12 (Feb 20, 2024) - Centralization at KRAs Required By: KRA (upload mandatory since Jul 1, 2024), All SEBI intermediaries

FATCA (Foreign Account Tax Compliance Act) and CRS (Common Reporting Standard) are international tax compliance frameworks. India participates in both. For the vast majority of Indian-resident customers, the declaration is straightforward — they check “tax resident of India only” and move on. The complexity arises for NRIs (Non-Resident Indians) and dual citizens who have tax residency in other countries.

#Field NameData TypeSizeMandatoryValidation
J01is_tax_resident_of_india_onlyBoolean1YY/N
J02is_us_personBoolean1YY/N
J03us_tin_ssnString11Cond.Required if J02=Y
J04us_green_card_holderBoolean1Cond.Required if J02=Y
J05country_of_birthString2YISO country code
J06place_of_birth_cityString50Y
J07citizenship_countryString2YISO country code (can be multiple)

Tax Residency Details (repeat for each country, if J01=N):

Section titled “Tax Residency Details (repeat for each country, if J01=N):”
#Field NameData TypeSizeMandatoryValidation
J08tax_country_seqNumber1Cond.1-5
J09tax_countryString2Cond.ISO country code
J10tax_id_numberString30Cond.TIN for that country
J11tax_id_typeString2Cond.TIN/SSN/EIN etc
J12tin_not_available_reasonString2Cond.If TIN not provided: A=Country doesn’t issue, B=Unable to obtain, C=Not required
#Field NameData TypeSizeMandatoryValidation
J13fatca_declaration_dateDate10YDD/MM/YYYY
J14fatca_declaration_placeString50Y
J15fatca_signatureBLOB-YDigital or scanned

Regulatory Basis: SEBI AML/CFT Master Circular (SEBI/HO/MIRSD/SECFATF/P/CIR/2024/78)

A PEP (Politically Exposed Person) is anyone who holds or has recently held a prominent public function — a minister, a senior government official, or a high-ranking military officer. Their immediate family members and close associates are also classified as PEP-related. If a customer declares PEP status, the application triggers EDD (Enhanced Due Diligence), which involves additional manual review by the compliance team.

#Field NameData TypeSizeMandatoryValidation
K01is_pepBoolean1YY/N
K02is_pep_relatedBoolean1YY/N - Related to a PEP
K03pep_detailsString200Cond.Name, designation, relationship if K01/K02=Y
K04source_of_fundsString100YSalary/Business/Investments/Inheritance/Gift/Others
K05beneficial_owner_declarationBoolean1YDeclare if acting for self
K06beneficial_owner_detailsString500Cond.If K05=N, details of actual BO

13. Section L: Trading Preferences & Segments

Section titled “13. Section L: Trading Preferences & Segments”

Required By: NSE/BSE/MCX UCC registration, Broker

This section determines what the customer can trade. Equity cash is the default segment that every customer gets. F&O (Futures and Options) and Commodity segments require income proof, which is why the financial profile (Section F) must be completed first.

#Field NameData TypeSizeMandatoryValidationConditions
L01segment_equity_cashBoolean1YY/NDefault segment
L02segment_equity_fnoBoolean1YY/NRequires income proof
L03segment_currencyBoolean1YY/N
L04segment_commodityBoolean1YY/NRequires income proof
L05exchange_nseBoolean1YY/N
L06exchange_bseBoolean1YY/N
L07exchange_mcxBoolean1Cond.Y/NRequired if L04=Y
L08trading_experience_equity_yearsNumber2N0-50
L09trading_experience_fno_yearsNumber2Cond.0-50Required if L02=Y
L10trading_experience_commodity_yearsNumber2Cond.0-50Required if L04=Y
L11trading_preferenceString5NDelivery/Intraday/Both
L12settlement_typeString2NT+1, T+0
SegmentIncome ProofMin IncomeRisk DisclosureAdditional
Equity CashNoNoneGeneral RDD-
Equity F&OYesBroker-specific (typically 1-5L)F&O specific RDDTrading experience declaration
Currency DerivativesNoNoneCurrency RDD-
CommodityYesBroker-specificCommodity RDDMCX registration

Regulatory Basis: SEBI guidelines on suitability and risk profiling

#Field NameData TypeSizeMandatoryValidation
M01age_groupString2Y01=18-25, 02=26-35, 03=36-45, 04=46-55, 05=56-65, 06=65+
M02investment_objectiveString2YCA=Capital Appreciation, IN=Income, WP=Wealth Preservation, SP=Speculation
M03risk_appetiteString1YL=Low, M=Medium, H=High
M04investment_horizonString1YS=Short(<1yr), M=Medium(1-3yr), L=Long(>3yr)
M05risk_profile_scoreNumber3N0-100
M06risk_categoryString2N

Regulatory Basis: SEBI KYC Master Circular - IPV mandatory unless Aadhaar e-KYC used Required By: KRA (IPV flag), Broker

IPV (In-Person Verification) is a regulatory requirement to confirm that the person applying is who they claim to be. VIPV (Video In-Person Verification) is the digital equivalent — a recorded video call where a trained agent verifies the customer’s identity against their documents.

#Field NameData TypeSizeMandatoryValidationNotes
N01ipv_requiredBoolean1YN if Aadhaar e-KYC or DigiLocker used
N02ipv_modeString2Cond.PH=Physical, VI=Video(VIPV), AE=Aadhaar eKYC
N03ipv_statusString2YCO=Completed, PE=Pending, FA=Failed
N04ipv_dateDate10Cond.DD/MM/YYYY
N05ipv_verifier_nameString100Cond.Authorized official
N06ipv_verifier_designationString50Cond.
N07ipv_verifier_organizationString100Cond.
N08ipv_verifier_employee_codeString20Cond.
#Field NameData TypeSizeMandatoryNotes
N09vipv_session_idString50YUnique session identifier
N10vipv_start_timeDateTime-YISO 8601
N11vipv_end_timeDateTime-Y
N12vipv_duration_secondsNumber5Y
N13vipv_consent_obtainedBoolean1YInformed consent before video
N14vipv_video_urlString500YSecure, tamper-proof storage
N15vipv_video_hashString64YSHA-256 integrity hash
N16vipv_otp_verifiedBoolean1NOTP confirmation during VIPV
N17vipv_face_match_scoreNumber3N0-100
N18vipv_liveness_scoreNumber3N0-100
N19vipv_random_questions_jsonJSON-YArray of Q&A with timestamps
N20vipv_geolocationJSON-N{lat, lon, accuracy}
N21vipv_device_infoJSON-N{device, os, browser, app_version}

Regulatory Basis: SEBI/HO/MIRSD/DoP/P/CIR/2022/44 (replaces POA since Nov 18, 2022) Required By: CDSL/NSDL, Broker Note: DDPI is optional - broker cannot deny services if client refuses

DDPI (Demat Debit and Pledge Instruction) replaced the older POA (Power of Attorney) mechanism in November 2022. It authorizes the broker to debit securities from the customer’s demat account for specific purposes — settlement, pledging, mutual fund transactions, and tendering in open offers. Without DDPI, the customer must manually authorize each debit through the depository’s system (CDSL’s CDAS or NSDL’s SPEED-e).

#Field NameData TypeSizeMandatoryValidation
O01ddpi_optedBoolean1YY/N
O02ddpi_bo_idString16Cond.BO ID from Section H
O03ddpi_dp_idString8Cond.DP ID
O04ddpi_authorization_dateDate10Cond.DD/MM/YYYY
O05ddpi_scopeString2Cond.AL=All transactions, SP=Specific
O06ddpi_for_settlementBoolean1Cond.Transfer securities for settlement
O07ddpi_for_pledgeBoolean1Cond.Pledge/re-pledge for margins
O08ddpi_for_mutual_fundBoolean1Cond.MF transactions
O09ddpi_for_tenderingBoolean1Cond.Tendering shares in open offers/buybacks
O10ddpi_client_signatureBLOB-Cond.Digital or physical

This section covers the legal consents and declarations that the customer must acknowledge before the application can be e-signed. Several of these are SEBI-mandated and cannot be made optional.

#Field NameData TypeSizeMandatoryNotes
P01consent_kyc_data_sharingBoolean1YConsent to share KYC with KRA/CKYC
P02consent_aadhaar_usageBoolean1Cond.If Aadhaar used for e-KYC
P03consent_digilockerBoolean1Cond.If DigiLocker used
P04consent_email_mobile_validationBoolean1YConsent for KRA validation SMS/email
P05consent_electronic_communicationBoolean1YE-contract notes, statements
P06declaration_information_trueBoolean1YAll info provided is true
P07declaration_not_bannedBoolean1YNot debarred by SEBI/Exchange
P08risk_disclosure_acknowledgedBoolean1YGeneral Risk Disclosure Document
P09rdd_fno_acknowledgedBoolean1Cond.F&O risk disclosure
P10rdd_commodity_acknowledgedBoolean1Cond.Commodity risk disclosure
P11rdd_currency_acknowledgedBoolean1Cond.Currency risk disclosure
P12running_account_authorizationBoolean1YAuthorization for running account
P13running_account_settlement_freqString2YQ1=Quarterly(1st Friday), Q2=Quarterly, M=Monthly
P14terms_conditions_acceptedBoolean1YBroker T&C
P15tariff_sheet_acknowledgedBoolean1YBrokerage/charges acknowledgement
#Field NameData TypeSizeMandatoryNotes
P16esign_modeString2YAO=Aadhaar OTP, BI=Biometric, WS=Wet Signature
P17esign_transaction_idString50Cond.e-Sign transaction ID
P18esign_timestampDateTime-Cond.ISO 8601
P19esign_document_hashString64Cond.SHA-256 of signed document
P20esign_certificate_serialString50Cond.DSC serial number
P21esign_signed_document_urlString500Cond.Stored signed PDF
P22declaration_dateDate10YDD/MM/YYYY
P23declaration_placeString50YCity of declaration

Master list of all documents captured during onboarding

#Document TypeFormatMax SizeMandatoryNotes
Q01Photograph (passport size)JPEG/PNG1 MBYRecent, clear, colour
Q02Signature specimenJPEG/PNG500 KBYOn white background
Q03PAN Card imageJPEG/PNG/PDF2 MBYBoth sides if applicable
Q04Proof of Identity documentJPEG/PNG/PDF2 MBYAs per POI type
Q05Proof of Address documentJPEG/PNG/PDF2 MBYAs per POA type
Q06Bank proof (cancelled cheque / statement)JPEG/PNG/PDF2 MBY
Q07Income proof documentPDF/JPEG5 MBCond.For F&O/Commodity
Q08FATCA self-certification formPDF2 MBYSigned
Q09Nomination formPDF2 MBCond.If nomination opted
Q10DDPI formPDF2 MBCond.If DDPI opted
Q11KYC application form (signed)PDF5 MBYComplete AOF Part I + II
Q12VIPV recordingMP4/WebM50 MBCond.If VIPV done
Q13DigiLocker fetched documentsXML/PDF-NAuto-fetched via consent
Q14Aadhaar XML (offline)XML1 MBNMasked Aadhaar
Q15Net worth certificatePDF2 MBNCA certified
Q16Risk disclosure acknowledgementPDF2 MBYSigned RDD

19. Section R: Third-Party Verification Results

Section titled “19. Section R: Third-Party Verification Results”

Stored results from all external verification APIs

These fields are system-populated — they come from vendor API responses, not from user input. When debugging a verification failure, these are the fields you will inspect to understand what the external system returned.

#Field NameData TypeSizeNotes
R01pan_verify_statusString2E=Valid, F=Fake, X=Deactivated, D=Deleted, N=NotFound
R02pan_verify_nameString100Name as per ITD
R03pan_verify_dobDate10DOB as per ITD
R04pan_verify_categoryString1P=Individual, C=Company, H=HUF, F=Firm
R05pan_aadhaar_seeding_statusString1Y=Linked, N=Not linked
R06pan_verify_name_matchBoolean1Does name match?
R07pan_verify_dob_matchBoolean1Does DOB match?
R08pan_verify_timestampDateTime-ISO 8601
R09pan_verify_transaction_idString50API transaction reference

R2: Bank Account Verification (Penny Drop)

Section titled “R2: Bank Account Verification (Penny Drop)”
#Field NameData TypeSizeNotes
R10bank_verify_statusString2S=Success, F=Failed
R11bank_verify_name_at_bankString100Account holder name from bank
R12bank_verify_name_match_scoreNumber30-100%
R13bank_verify_name_match_resultString20FULL_MATCH / PARTIAL_MATCH / NO_MATCH
R14bank_verify_account_existsBoolean1
R15bank_verify_utrString30Bank UTR reference
R16bank_verify_payment_modeString4IMPS/NEFT/UPI
R17bank_verify_timestampDateTime-
R18bank_verify_transaction_idString50
#Field NameData TypeSizeNotes
R19digilocker_consent_idString50Consent transaction ID
R20digilocker_consent_dateDateTime-
R21digilocker_documents_fetchedJSON-Array of {doc_type, doc_uri, issuer, fetched_date}
R22digilocker_aadhaar_nameString100Name from Aadhaar via DigiLocker
R23digilocker_aadhaar_addressJSON-Structured address from Aadhaar
R24digilocker_aadhaar_dobDate10
R25digilocker_aadhaar_genderString1
R26digilocker_aadhaar_photoBLOB-Base64 photograph
#Field NameData TypeSizeNotes
R27kra_lookup_statusString20See KRA status codes in Appendix A
R28kra_nameString10Which KRA holds record (CVL/NDML/DOTEX/CAMS/KFintech)
R29kra_applicant_nameString100Name in KRA
R30kra_application_dateDate10
R31kra_email_validatedBoolean1
R32kra_mobile_validatedBoolean1
R33kra_pan_aadhaar_linkedBoolean1
R34kra_fetch_dataJSON-Full KRA record if fetched
R35kra_fetch_timestampDateTime-
#Field NameData TypeSizeNotes
R36ckyc_search_statusString10SUCCESS/FAILURE
R37ckyc_id_maskedString14Masked CKYC number from search
R38ckyc_id_unmaskedString14Full CKYC number from download
R39ckyc_reference_idString20Registry reference
R40ckyc_full_nameString200
R41ckyc_download_dataJSON-Full CKYC record if downloaded
R42ckyc_download_timestampDateTime-

Upload to KRA within 3 working days of KYC completion KRA validates within 2 working days

#Field NameData TypeSizeMandatoryNotes
S01kra_pos_codeString20YIntermediary Point of Service code
S02kra_app_typeString2YIN=Individual
S03kra_app_numberString30YUnique application reference
S04kra_submission_dateDateTime-Y
S05kra_submission_statusString2YSU=Submitted, AC=Accepted, RJ=Rejected
S06kra_submission_responseJSON-NKRA response payload
S07kra_validation_statusString20NKRA status after validation
S08kra_validation_dateDateTime-N
S09kra_rejection_reasonString200NIf rejected
S10kra_verifier_nameString100YPerson who verified KYC
S11kra_verifier_designationString50Y
S12kra_verifier_organizationString100Y
S13kra_kyc_dateDate10YDate of original KYC
S14kra_verification_dateDate10YDate of verification

Upload to CKYC Registry (CERSAI/Protean) - mandatory since Aug 1, 2024

#Field NameData TypeSizeMandatoryNotes
T01ckyc_fi_codeString20YFinancial institution code
T02ckyc_branch_codeString20YBranch identifier
T03ckyc_reference_idString14YUnique document reference
T04ckyc_submission_dateDateTime-Y
T05ckyc_submission_statusString2YSU=Submitted, AC=Accepted, RJ=Rejected
T06ckyc_kin_generatedString14N14-digit KIN if successful
T07ckyc_submission_responseJSON-NFull CKYC response
T08ckyc_rejection_reasonString200NIf rejected
T09ckyc_document_submission_typeString30YCERTIFIED_COPIES / EKYC / OFFLINE_VERIFICATION / DIGITAL_KYC / E_DOCUMENT / VKYC
T10ckyc_verifier_nameString100Y
T11ckyc_verifier_designationString50Y
T12ckyc_verifier_employee_codeString20Y

22. Section U: Exchange Registration (UCC)

Section titled “22. Section U: Exchange Registration (UCC)”

UCC = Unique Client Code, registered on each exchange the client will trade on

The UCC (Unique Client Code) is the customer’s identity on the exchange. Each exchange has its own registration process and slightly different field requirements, but the core data is the same. The UCC is assigned by the broker and submitted to the exchange for approval.

#Field NameData TypeSizeMandatoryNotes
U01ucc_codeString10YAlphanumeric, assigned by broker
U02ucc_client_typeString2YIN=Individual, HU=HUF, NR=NRI, CO=Corporate
U03ucc_registration_dateDate10Y
#Field NameData TypeSizeMandatoryNotes
U04nse_cm_activatedBoolean1Cond.Cash Market segment
U05nse_fno_activatedBoolean1Cond.F&O segment
U06nse_cd_activatedBoolean1Cond.Currency Derivatives
U07nse_com_activatedBoolean1Cond.Commodity segment
U08nse_ucc_statusString2YAP=Approved, RJ=Rejected, PE=Pending
#Field NameData TypeSizeMandatoryNotes
U09bse_cm_activatedBoolean1Cond.
U10bse_fno_activatedBoolean1Cond.
U11bse_cd_activatedBoolean1Cond.
U12bse_ucc_statusString2Y
#Field NameData TypeSizeMandatoryNotes
U13mcx_com_activatedBoolean1Cond.Commodity on MCX
U14mcx_client_categoryString2Cond.HE=Hedger, SP=Speculator, AR=Arbitrageur
U15mcx_ucc_statusString2Cond.

Regulatory Basis: RBI PIS (Portfolio Investment Scheme), FEMA regulations When Applicable: residential_status (A22) = NRI / FN / PIO

NRI (Non-Resident Indian) onboarding involves additional regulatory requirements that resident Indians do not face. The most significant is the PIS (Portfolio Investment Scheme) permission from an AD (Authorized Dealer) bank, which is mandatory before an NRI can trade in Indian equities.

#Field NameData TypeSizeMandatoryValidationNotes
V01pis_permission_statusBoolean1Y (NRI)Y/NRBI PIS permission obtained
V02pis_permission_letterBLOB-Cond.PDFRBI PIS permission document
V03pis_account_numberString20Cond.Designated PIS bank account
V04pis_bank_nameString100Cond.PIS designated bank
V05pis_bank_branchString100Cond.PIS designated branch
V06pis_permission_dateDate10Cond.DD/MM/YYYY
V07pis_validity_dateDate10Cond.DD/MM/YYYY
V08overseas_address_line1String100Y (NRI)Overseas residential address
V09overseas_address_line2String100N
V10overseas_cityString50Y (NRI)
V11overseas_stateString50N
V12overseas_zipString15Y (NRI)
V13overseas_countryString2Y (NRI)ISO code
V14overseas_phoneString20NWith country code
V15nre_nro_account_typeString3Y (NRI)NRE/NROFor fund settlement
V16nre_nro_bank_accountString18Y (NRI)
V17nre_nro_ifscString11Y (NRI)
V18nre_nro_swift_codeString11NFor international transfers
V19repatriation_statusString2Y (NRI)RP=Repatriable, NR=Non-repatriable
V20tax_residency_certificateBLOB-Cond.PDFCountry-specific TRC
V21nri_trading_routeString2Y (NRI)PI=PIS, NP=Non-PISPIS restricts intraday
V22investment_limit_currentDecimal15,2NCurrent investment value
RouteIntradayDeliveryF&OCurrencyCommodity
PISNoYesNoNoNo
Non-PISYesYesYesNoNo

24. Section W: Minor / Joint / POA Accounts

Section titled “24. Section W: Minor / Joint / POA Accounts”
#Field NameData TypeSizeMandatoryValidation
W01holding_typeString2YSI=Single, J2=Joint(2), J3=Joint(3)
W02operation_modeString2Cond.ES=Either or Survivor, AS=Anyone or Survivor, JO=Jointly
W03is_minor_accountBoolean1YDerived from DOB < 18 years
#Field NameData TypeSizeMandatoryNotes
W04guardian_nameString100Y
W05guardian_panString10Y
W06guardian_aadhaarString12N
W07guardian_relationshipString2YFA=Father, MO=Mother, CG=Court-appointed
W08guardian_addressString255Y
W09guardian_identity_proofBLOB-Y
W10guardian_address_proofBLOB-Y
W11court_order_documentBLOB-Cond.If W07=CG
W12date_of_majorityDate10YDOB + 18 years (auto-calculated)
W13conversion_to_major_doneBoolean1NMust be done at age 18
W14conversion_dateDate10Cond.

Minor Restrictions: Delivery trades only, no derivatives, max holding Rs.2 lakh across exchanges.

Complete replication of Section A (Personal Identity), Section B (Address), Section C (Contact), Section D (POI), Section E (POA), Section K (PEP), Section J (FATCA) for each additional holder. Prefix fields with holder2_ or holder3_.

W4: Power of Attorney (if someone else operates)

Section titled “W4: Power of Attorney (if someone else operates)”
#Field NameData TypeSizeMandatoryNotes
W15poa_grantedBoolean1YY/N
W16poa_holder_nameString100Cond.
W17poa_holder_panString10Cond.Mandatory KYC per SEBI
W18poa_holder_aadhaarString12Cond.
W19poa_holder_relationshipString50Cond.
W20poa_execution_dateDate10Cond.
W21poa_registration_numberString30Cond.
W22poa_validity_periodString20Cond.
W23poa_scopeString2Cond.TR=Trading, DM=Demat, BO=Both
W24poa_notarizedBoolean1Cond.
W25poa_documentBLOB-Cond.
W26poa_revocation_dateDate10NIf POA revoked

Regulatory Basis: SEBI peak margin norms, SEBI (Stock Brokers) Regulations 2026

#Field NameData TypeSizeMandatoryNotes
X01pledge_consent_obtainedBoolean1YConsent for pledging securities as margin
X02pledge_agreement_dateDate10Cond.
X03online_pledge_activatedBoolean1N
X04mtf_enabledBoolean1YMargin Trading Facility
X05mtf_agreement_dateDate10Cond.
X06mtf_limit_sanctionedDecimal15,2Cond.INR
X07mtf_interest_rateDecimal5,2Cond.% per annum
X08collateral_type_preferenceString2NCA=Cash, SE=Securities, FD=Fixed Deposit, ET=ETF
X09total_pledged_valueDecimal15,2NCurrent total (with haircut)
X10daily_margin_report_statusString2NCO=Compliant, NC=Non-Compliant

26. Section Y: Account Lifecycle & Dormancy

Section titled “26. Section Y: Account Lifecycle & Dormancy”

Regulatory Basis: SEBI framework for automated deactivation (Jul 2022), SEBI (Stock Brokers) Regulations 2026

These fields track the account from activation through dormancy to closure. You will encounter them when building the account status dashboard and the automated dormancy workflows.

#Field NameData TypeSizeMandatoryNotes
Y01account_statusString2YAC=Active, IN=Inactive, DO=Dormant, SU=Suspended, CL=Closed
Y02account_status_dateDate10YLast status change
Y03account_status_reasonString100N
Y04last_trade_dateDate10N
Y05days_inactiveNumber5NAuto-calculated
Y06dormancy_declaration_dateDate10NTypically after 12 months inactive
Y07reactivation_request_dateDate10N
Y08reactivation_approval_dateDate10N
Y09reactivation_fresh_kycBoolean1N
Y10closure_request_dateDate10N
Y11closure_reasonString100N
Y12closure_securities_settledBoolean1N
Y13closure_funds_settledBoolean1N
Y14final_closure_dateDate10N
Y15kyc_validity_startDate10Y
Y16kyc_validity_endDate10Y5-year cycle
Y17next_kyc_review_dateDate10Y
Y18ovd_expiry_dateDate10NFor Passport/DL
Y19kyc_inadequacy_reasonString50NIf auto-deactivated
Y20auto_deactivation_dateDate10NSEBI framework for inadequate KYC

27. Section Z: Audit Trail & Modification Tracking

Section titled “27. Section Z: Audit Trail & Modification Tracking”

Regulatory Basis: SEBI (Stock Brokers) Regulations 2026 - 8-year record retention

Every change to a client record is logged. This is not optional — SEBI requires a complete, tamper-proof audit trail for eight years. The maker-checker workflow (Z09-Z15) ensures that no single person can modify a client record without a second person reviewing and approving the change.

#Field NameData TypeSizeMandatoryNotes
Z01modification_idString20YUnique change ID
Z02field_nameString50YWhich field changed
Z03old_valueString500YPrevious value
Z04new_valueString500YNew value
Z05modification_dateDateTime-YISO 8601
Z06modified_by_userString50YUser ID
Z07modification_sourceString2YCR=Client Request, CO=Compliance, KR=KRA Update, SY=System
Z08modification_reasonString200N
#Field NameData TypeSizeMandatoryNotes
Z09approval_statusString2YPE=Pending, AP=Approved, RJ=Rejected
Z10maker_idString50Y
Z11maker_timestampDateTime-Y
Z12checker_idString50Cond.
Z13checker_timestampDateTime-Cond.
Z14approval_levelString2NL1/L2/L3
Z15rejection_reasonString200Cond.
#Field NameData TypeSizeMandatoryNotes
Z16suspicious_activity_flaggedBoolean1N
Z17suspicious_activity_typeString50Cond.
Z18sar_filedBoolean1Cond.Suspicious Activity Report
Z19sar_filing_dateDate10Cond.
Z20investigation_statusString2Cond.OP=Open, CL=Closed

Section titled “28. Section AA: DPDP Act 2023 Consent Management”

Regulatory Basis: Digital Personal Data Protection Act 2023, DPDP Rules 2025 (compliance deadline: May 13, 2027)

The DPDP (Digital Personal Data Protection) Act requires granular, informed consent before processing personal data. Each consent purpose must be separately captured and independently revocable.

#Field NameData TypeSizeMandatoryNotes
AA01dpdp_consent_obtainedBoolean1Y
AA02dpdp_consent_dateDate10Y
AA03dpdp_consent_versionString10YVersion of consent text
AA04dpdp_consent_expiryDate10N
AA05dpdp_marketing_consentBoolean1YSeparate granular consent
AA06dpdp_third_party_sharing_consentBoolean1Y
AA07dpdp_analytics_consentBoolean1Y
AA08dpdp_cross_border_consentBoolean1Y
AA09dpdp_consent_withdrawal_dateDate10N
AA10dpdp_right_to_access_requestDate10N
AA11dpdp_right_to_correction_requestDate10N
AA12dpdp_right_to_erasure_requestDate10N
AA13dpdp_breach_notification_sentBoolean1N
AA14dpdp_breach_notification_dateDate10N
AA15data_retention_end_dateDate10Y8 years per SEBI Regs

Regulatory Basis: SEBI circular Dec 3, 2024 (SMS/Email alerts mandatory)

#Field NameData TypeSizeMandatoryNotes
AB01pref_email_notificationsBoolean1YCannot be N (mandatory per SEBI)
AB02pref_sms_notificationsBoolean1YCannot be N (mandatory per SEBI)
AB03pref_whatsapp_notificationsBoolean1NOptional
AB04pref_push_notificationsBoolean1NMobile app
AB05pref_languageString2YEN=English, HI=Hindi, regional codes
AB06pref_contract_note_modeString2YEM=Email (mandatory), PH=Physical+Email
AB07pref_statement_frequencyString2NDA=Daily, WK=Weekly, MN=Monthly
AB08dnd_registeredBoolean1NDo Not Disturb (TRAI)
AB09whatsapp_optin_dateDate10Cond.

30. Section AC: Running Account Settlement

Section titled “30. Section AC: Running Account Settlement”

Regulatory Basis: SEBI guidelines effective 2025, auto-settlement for inactive accounts within 30 days

#Field NameData TypeSizeMandatoryNotes
AC01ras_authorizedBoolean1YRunning Account Authorization
AC02ras_settlement_frequencyString2YMN=Monthly, QR=Quarterly
AC03ras_next_settlement_dateDate10YAuto-calculated
AC04ras_last_settlement_dateDate10N
AC05ras_settlement_bank_accountString18YPrimary bank for fund return
AC06ras_auto_settlement_trigger_daysNumber3YDefault: 30 days inactive
AC07ras_last_transaction_dateDate10N
AC08ras_optin_dateDate10Y
AC09ras_optout_dateDate10N

The code tables below are the lookup values used throughout the master dataset. You will reference these when building dropdowns, writing validation logic, or parsing data from external systems.

CodeDescription
01Private Sector Service
02Public Sector Service
03Government Service
04Business
05Professional
06Agriculturist
07Retired
08Housewife
09Student
10Forex Dealer
11Self Employed
99Others (specify)
CodeDocument
APassport
BVoter ID Card
CDriving License
DPAN Card (with photograph)
EAadhaar / UID
FNREGA Job Card
GNPR Letter / Govt ID
ZOthers
CodeDocument
APassport
BVoter ID Card
CDriving License
DAadhaar / UID
EUtility Bill (max 2 months old)
FBank Statement (max 3 months old)
GProperty/Municipal Tax Receipt
HGovt/Defense ID Card
ZOthers
StatusDescriptionTrading Allowed
KYC RegisteredFully compliant, validatedYes
KYC ValidatedVerified + client confirmed detailsYes
Under ProcessKRA processing, verification underwayNo
On HoldDiscrepancy in documents/validationNo
KYC RejectedRejected after verificationNo
KYC Registered - IncompleteOld record, needs updateLimited
Not AvailableNo record in any KRAN/A (fresh KYC)
CodeRelationship
FAFather
MOMother
SPSpouse
SOSon
DADaughter
BRBrother
SISister
GFGrandfather
GMGrandmother
OTOthers (specify)
CodeStateCodeState
ANAndaman & NicobarMHMaharashtra
APAndhra PradeshMNManipur
ARArunachal PradeshMLMeghalaya
ASAssamMZMizoram
BRBiharNLNagaland
CHChandigarhODOdisha
CTChhattisgarhPYPuducherry
DDDaman & DiuPBPunjab
DLDelhiRJRajasthan
GAGoaSKSikkim
GJGujaratTNTamil Nadu
HRHaryanaTGTelangana
HPHimachal PradeshTRTripura
JKJammu & KashmirUPUttar Pradesh
JHJharkhandUTUttarakhand
KAKarnatakaWBWest Bengal
KLKeralaLALadakh
MPMadhya Pradesh
CodeType
01Individual
02Partnership Firm
03Company
04Trust
05HUF
06Government Entity
07Society
08AOP/BOI
09LLP
10Others

#TopicCircular NumberDateKey Impact
1KYC Master CircularSEBI/HO/MIRSD/MIRSD-SEC-2/P/CIR/2023/168Oct 12, 2023Consolidated KYC norms, CERSAI templates
2AML/CFT GuidelinesSEBI/HO/MIRSD/SECFATF/P/CIR/2024/78Jun 6, 2024Anti-Money Laundering standards
3FATCA/CRS at KRAsSEBI/HO/MIRSD/SECFATF/P/CIR/2024/12Feb 20, 2024Mandatory FATCA upload to KRA from Jul 1, 2024
4KRA Validation ReviewSEBI/HO/MIRSD/SECFATF/P/CIR/2024/41May 14, 2024On-Hold -> KYC Registered relaxation
5KRA Upload to CKYCRRSEBI/HO/MIRSD/SECFATF/P/CIR/2024/79Jun 6, 2024Mandatory CKYC upload from Aug 1, 2024
6e-KYC & DigiLockerSEBI/HO/MIRSD/DOP/CIR/P/2020/73Apr 24, 2020Aadhaar e-KYC + DigiLocker permitted
7e-KYC Setu (NPCI)SEBI press releaseJun 30, 2025Aadhaar e-KYC without sharing Aadhaar number
8DDPI replacing POASEBI/HO/MIRSD/DoP/P/CIR/2022/44Apr 4, 2022DDPI mandatory from Nov 18, 2022
9Nomination RevampSEBI circularJan 10, 2025Up to 10 nominees, video opt-out
10Nomination SimplificationSEBI circularJun 10, 2024Only 3 mandatory fields for nomination
11DigiLocker for AssetsSEBI/HO/OIAE/OIAE_IAD-3/P/CIR/2025/32Mar 19, 2025Demat statements in DigiLocker
12Stock Brokers MasterSEBI/HO/MIRSD/MIRSD-PoD/P/CIR/2025/90Jun 17, 2025Consolidated broker operations circular
13KYC Overhaul ConsultationSEBI consultation paperJan 16, 2026Proposed: centralized supplementary KYC, 5-yr review cycle

Appendix C: Third-Party API Specifications

Section titled “Appendix C: Third-Party API Specifications”

Detailed vendor comparison, recommended vendors, API endpoints, request/response formats, and complete integration sequence are in Vendor Integrations

Recommended Vendor: Decentro (see Vendor Integrations) Endpoint: ITD-authorized service (Protean/NSDL)

DirectionFieldTypeNotes
RequestpanString(10)PAN number
nameStringFor name matching
dobDateFor DOB matching
consentString”Y” mandatory
reasonStringPurpose
ResponsestatusStringE/F/X/D/N/EA/EC/ED/EF
registered_nameStringName per ITD
categoryStringP=Individual
dobDateDOB per ITD
aadhaar_seeding_statusStringY/N (PAN-Aadhaar link)
name_matchBoolean
dob_matchBoolean
validBooleanOverall validity

C2: Bank Account Verification (Penny Drop)

Section titled “C2: Bank Account Verification (Penny Drop)”

Method: IMPS-based Rs.1 credit

DirectionFieldTypeNotes
Requestaccount_numberString(18)
ifscString(11)[A-Z]{4}0[A-Z0-9]{6}
beneficiary_nameStringFor matching
ResponsestatusStringSUCCESS/FAILURE
name_at_bankStringRegistered holder name
name_match_scoreInteger0-100
name_match_resultStringFULL_MATCH/PARTIAL_MATCH/NO_MATCH
account_existsBoolean
utrStringBank UTR reference
payment_modeStringIMPS/NEFT/UPI

Documents Fetchable:

  • Aadhaar (e-Aadhaar XML with demographic + address + photo)
  • PAN Card (number, name, father’s name, DOB)
  • Driving License (number, name, DOB, address, validity, vehicle classes)
  • Voter ID, Passport, Insurance Policy, Bank Statements

Aadhaar XML Fields Returned:

  • name, dob, gender, photo (base64)
  • Address: careOf, house, street, landmark, locality, vtc, subDistrict, district, state, country, pincode, postOffice
DirectionFieldTypeNotes
Requestdocument_hashStringSHA-256 of document
aadhaar_numberString(12)
auth_modeStringOTP/BIOMETRIC/FACE
otpString(6)If auth_mode=OTP
asp_idStringApplication Service Provider ID
ResponsestatusStringSUCCESS/FAILURE
signed_documentBase64Digitally signed PDF
signature_valueBase64Digital signature
certificate_chainArrayX.509 cert chain
esign_txn_idStringTransaction ID
dsc_serial_numberStringDSC serial

SOAP Endpoint: cvlkra.com/PANInquiry.asmx

MethodPurpose
GetPanStatusCheck KYC status across all KRAs
InsertUpdateKYCRecordSubmit/modify KYC record (XML)
SolicitPANDetailsFetchALLKRAFetch PAN details from all KRAs

File Format: Tilde (~) delimited text file for bulk upload/download

OperationMethodKey Fields
SearchPOSTdocument_type, id_number, consent
DownloadPOSTckyc_id or reference_id, consent
UploadPOSTFull individual record (see Section T)

1. Client provides PAN + Mobile
2. PAN Verification (Protean) -> Validate PAN status, get name/DOB
3. KRA Lookup (by PAN) -> Check if KYC exists
4. If KRA found: KRA Fetch -> Download existing record -> Pre-fill form
5. If KRA not found: CKYC Search (by PAN) -> Download if found -> Pre-fill
6. If neither found: Fresh KYC flow
7. Aadhaar consent via DigiLocker -> Fetch Aadhaar XML (name, address, photo)
8. OR: Manual document upload (POI + POA)
9. Cross-verify: PAN name vs Aadhaar name vs KRA name
10. Capture remaining personal details not available from pre-fill
11. Bank account details -> Penny Drop verification
12. Income/Occupation details
13. Income proof upload (if F&O/Commodity segments selected)
14. FATCA/CRS self-certification
15. PEP/AML declaration
16. Risk profiling questionnaire
17. Nominee details (1-10) OR opt-out with video verification
18. DDPI authorization (optional)
19. Running account authorization
20. Segment selection (Equity/F&O/Currency/Commodity)
21. Risk disclosure acknowledgements per segment
22. IPV/VIPV (unless Aadhaar e-KYC exemption applies)
23. Review all captured data
24. e-Sign via Aadhaar OTP on complete application
25. Upload to KRA (within 3 working days)
26. Upload to CKYC (within 3 working days)
27. Register UCC on NSE/BSE/MCX
28. Open BO account on CDSL/NSDL
29. Activate trading segments
30. Generate welcome kit / credentials
31. Client ready to trade

Phase 7: KYC Admin Validation (Back-Office)

Section titled “Phase 7: KYC Admin Validation (Back-Office)”
32. Admin reviews captured data vs verification results
33. Name match check (PAN vs Aadhaar vs Bank vs KRA)
34. Address validation
35. Bank proof validation
36. Income proof validation (for derivative segments)
37. FATCA/CRS review
38. PEP screening
39. IPV/VIPV recording review
40. Document quality check
41. KRA submission status monitoring
42. CKYC submission status monitoring
43. Exchange UCC confirmation
44. Final approval / rejection with reasons

SectionDescriptionTotal FieldsMandatory
APersonal Identity3216
BAddress Details1910
CContact Details93
DIdentity Documents (POI)75
EAddress Documents (POA)75
FFinancial Profile103
GBank Account Details (per account)1612
HDemat Account Details98
INomination Details (per nominee)2212
JFATCA/CRS Declaration158
KPEP & AML Declaration64
LTrading Preferences & Segments127
MRisk Profiling64
NIPV / VIPV215+
ODDPI Authorization101
PConsent & Declarations2316
QDocument Images168
RThird-Party Verification Results42- (system)
SKRA Submission Data1410
TCKYC Submission Data128
UExchange Registration (UCC)155+
VNRI-Specific Requirements22~12 (NRI only)
WMinor / Joint / POA Accounts26conditional
XMargin Pledge & Collateral102
YAccount Lifecycle & Dormancy205
ZAudit Trail & Modification20~10 (system)
AADPDP Consent Management158
ABCommunication Preferences94
ACRunning Account Settlement95
TOTAL~454~200

This specification covers the complete superset of data fields required for onboarding an individual customer in an Indian stock broking firm. The actual fields captured will vary based on:

  • Whether existing KRA/CKYC record is found (pre-fill reduces capture)
  • Segments selected (F&O/Commodity need income proof)
  • KYC method used (Aadhaar e-KYC exempts IPV)
  • DDPI and nomination choices
  • Residential status (NRI has additional requirements - see Section V)
  • Account type: Minor (Section W) / Joint (Section W) / POA (Section W)
  • Margin trading facility opted (Section X)

For third-party API specifications, vendor selection, and integration sequences, see Vendor Integrations