जब कोई व्यवसाय आपके प्लेटफ़ॉर्म पर ख़रीदने, बेचने, उधार लेने या लेन-देन करने आता है, तो आप किसी व्यक्ति को नहीं, एक कानूनी इकाई को जोड़ रहे होते हैं, जो एक साथ कई रजिस्टरों में दर्ज होती है: आयकर रजिस्टर में PAN के तहत, GST रजिस्टर में एक या अधिक GSTIN के तहत, कंपनी हो तो कंपनी रजिस्टर में CIN के तहत, और शायद MSME रजिस्टर में Udyam संख्या के तहत। Know Your Business, यानी KYB, यह जाँचने का अनुशासन है कि ये रिकॉर्ड मौजूद हैं, चालू हैं, आपस में मेल खाते हैं और आवेदक की बताई बातों से भी मेल खाते हैं। यह पेज भारत के B2B प्लेटफ़ॉर्मों के लिए है: कंपनियों को बेचने वाले SaaS उत्पाद, B2B marketplace, trade-credit और invoice-finance प्रदाता, वितरक, procurement tools और business banking ऐप।
यह business verification गाइड के बग़ल में बैठता है, जो समझाती है कि हर पहचानकर्ता क्या साबित करता है और हर endpoint कैसे बुलाएँ। यह पेज KYB को कार्यक्रम की तरह चलाने के बारे में है: तय कैसे करें कि किस इकाई को कौन-सी जाँचें चाहिए, रिकॉर्डों को एक-दूसरे से कैसे मिलाएँ, नतीजों को सीमाओं और शर्तों में कैसे बदलें, और onboarding के बाद नज़र कैसे रखें। जाँचें बताती हैं कि रजिस्टर क्या कहते हैं। वे यह नहीं बतातीं कि कोई व्यवसाय साख-योग्य या ईमानदार है, और वे कानूनी सलाह नहीं हैं।
मुख्य बातें
- KYB संगति की कवायद है। मूल्य किसी एक रजिस्ट्री-मिलान में नहीं, इसमें है कि PAN, GSTIN, CIN और Udyam के रिकॉर्ड आपस में और आवेदक की घोषणा से मेल खाते हैं या नहीं।
- सब कुछ PAN पर टिकाइए। GSTIN में करदाता का PAN समाया होता है, इसलिए सबसे सस्ती और मज़बूत जाँचों में से एक मुफ़्त है: GSTIN के भीतर का PAN अपने पास के PAN से मिलाइए।
- जाँचें इकाई के प्रकार से चुनिए। कंपनी, प्रोप्राइटरशिप, साझेदारी, LLP और ट्रस्ट अलग-अलग पहचानकर्ता लाते हैं, और सबके लिए एक ही प्रवाह या तो ज़्यादा माँगता है या कम जाँचता है।
- CIN का response निदेशकों को DIN, नाम और पदनाम के साथ गिनाता है। इससे कंपनी के पीछे के लोगों की पहचान में मदद मिलती है। इससे लाभार्थी स्वामित्व तय नहीं होता, जिसके लिए रजिस्ट्री-खोज से बाहर के दस्तावेज़ और विवेक चाहिए।
- नतीजों को स्तरों में बदलिए: इकाई को कितनी साख, सीमा और शर्तें मिलें, यह इस पर निर्भर रहे कि आपने तस्वीर का कितना हिस्सा सत्यापित किया।
- onboarding जितनी ही निगरानी भी मायने रखती है। पंजीकरण रद्द होते हैं और कंपनियाँ रजिस्टर से हटती हैं। समय-सारणी और घटनाओं के ट्रिगर इस बहाव को पकड़ते हैं।
valid: falseऔरfound: falseपूरे, billable जवाब हैं। retry सिर्फ़ 429 और 502 पर।- हस्ताक्षरकर्ता के PAN और बैंक खाते के साथ कंपनी का प्रवाह प्रति व्यवसाय कुछ दर्जन रुपये का है। तीन मात्राओं का हिसाब नीचे है।
KYB सीधे शब्दों में, और KYC से फ़र्क़
KYC एक व्यक्ति के बारे में है। KYB एक इकाई और उससे जुड़े लोगों के बारे में है। दोनों आपस में मिलते हैं, क्योंकि व्यवसाय लोग चलाते हैं और KYB कार्यक्रम में आम तौर पर हस्ताक्षरकर्ता या प्रोप्राइटर पर KYC जैसी जाँचें शामिल रहती हैं। पर सवाल अलग हैं।
व्यक्ति के लिए आप पूछते हैं कि पहचान-दस्तावेज़ असली है और नाम से मेल खाता है या नहीं। व्यवसाय के लिए आप पूछते हैं कि इकाई उन रजिस्टरों में है जिनका वह दावा करती है या नहीं, वे पंजीकरण चालू हैं या नहीं, नाम और पते उनके बीच मेल खाते हैं या नहीं, इकाई के पीछे कौन है, और आवेदन करने वाला व्यक्ति उसकी ओर से काम करने का अधिकारी है या नहीं। व्यवसाय पूरी तरह असली हो सकता है और आवेदक उसके लिए अजनबी, इसीलिए हस्ताक्षरकर्ता की जाँचें और अधिकार-दस्तावेज़ मायने रखते हैं।
व्यावसायिक ग्राहकों के आसपास की नियामक भाषा, जैसे नियंत्रित संस्थाओं के लिए ग्राहक-परिश्रम और लाभार्थी स्वामित्व, आपके नियामक के नियमों और compliance विभाग का क्षेत्र है। आप नियंत्रित संस्था हैं तो क्या काफ़ी है यह आपकी नीति तय करती है। यह पेज बताता है कि API क्या योगदान दे सकती है और उसे सावधानी से कैसे इस्तेमाल करें।
B2B प्लेटफ़ॉर्म को व्यवसाय के बारे में क्या जानना चाहिए
endpoints चुनने से पहले सवाल लिख लीजिए। ज़्यादातर प्लेटफ़ॉर्म छह की परवाह करते हैं।
- इकाई मौजूद है, और किस रूप में? निजी कंपनी, प्रोप्राइटरशिप, साझेदारी, LLP, ट्रस्ट।
- क्या वह चालू है? साइन-अप पर वैध पंजीकरण अब वैध न हो सकते हैं।
- क्या नाम मेल खाते हैं? कानूनी नाम, व्यापारिक नाम और आपके फ़ॉर्म का नाम समझाए जा सकें।
- वह कहाँ है? पंजीकृत पता और राज्य, आवेदक के बताए संचालन-स्थान से तुलना में।
- उसके पीछे कौन है? कंपनी के निदेशक, एकल प्रोप्राइटरशिप का प्रोप्राइटर, फ़र्म के साझेदार।
- क्या आवेदक अधिकृत है? कंपनी खाते के लिए साइन-अप करने वाला व्यक्ति ऐसा हो जिसे कंपनी पहचाने।
सवाल 1 से 4 रजिस्ट्री के सवाल हैं जिनका जवाब API दे सकती है। सवाल 5 का कुछ हिस्सा, कंपनियों के लिए, निदेशकों की सूची से मिल जाता है। सवाल 6 दस्तावेज़ और प्रक्रिया का है।
इकाई के प्रकार और हर एक के पहचानकर्ता
| इकाई का प्रकार | आप किन पहचानकर्ताओं की उम्मीद रखें | Endpoints | टिप्पणी |
|---|---|---|---|
| निजी या सार्वजनिक लिमिटेड कंपनी | PAN, CIN, GSTIN, कभी Udyam | verify/pan, verify/cin, verify/gstin, verify/udyam | CIN call स्थिति और निदेशक लौटाती है |
| वन-पर्सन कंपनी | ऊपर जैसे | ऊपर जैसे | कंपनी की तरह मानिए, निदेशक ही स्वामी भी है |
| LLP | PAN, GSTIN, कभी Udyam | verify/pan, verify/gstin, verify/udyam | इस प्लेटफ़ॉर्म पर LLP के लिए CIN जैसा endpoint नहीं है, PAN, GSTIN और दस्तावेज़ों पर टिकिए |
| साझेदारी फ़र्म | PAN, पंजीकृत हो तो GSTIN, कभी Udyam | verify/pan, verify/gstin, verify/udyam | साझेदार व्यक्ति हैं, कम से कम हस्ताक्षरकर्ता को जाँचिए |
| एकल प्रोप्राइटरशिप | प्रोप्राइटर का PAN, पंजीकृत हो तो GSTIN, कभी Udyam | verify/pan, verify/gstin, verify/udyam | GSTIN पर कानूनी नाम प्रोप्राइटर का है, व्यापारिक नाम दुकान का |
| ट्रस्ट, सोसाइटी, सरकारी निकाय | PAN, कभी GSTIN | जहाँ हो वहाँ verify/pan, verify/gstin | हाथ के रास्ते भेजिए, रजिस्ट्रियाँ अलग हैं |
| विदेशी इकाई | लागू नहीं | इनमें से कोई नहीं | इस API के बाहर अलग प्रक्रिया |
PAN की बनावट में उपयोगी बात यह है कि उसका चौथा अक्षर धारक का प्रकार बताता है, जैसे कंपनी, फ़र्म या व्यक्ति, इसलिए verify/pan का PAN-प्रकार उस इकाई-प्रकार से मेल खाए जो आवेदक ने चुना। व्यक्ति के PAN वाली कंपनी, या कंपनी के PAN वाली प्रोप्राइटरशिप, संगति की विफलता है जिस पर सवाल बनता है।
PAN का लंगर और संगति का ग्राफ़
जाँचों को एक छोटे ग्राफ़ की तरह सोचिए जिसके केंद्र में PAN है। हर रजिस्ट्री-रिकॉर्ड एक नोड है, जो उन किनारों से जुड़ा है जिन्हें टिकना चाहिए। तालिका किनारे और हर एक का संकेत गिनाती है।
| किनारा | कैसे जाँचें | लागत | विफलता का संकेत |
|---|---|---|---|
| GSTIN के भीतर का PAN आपके पास के PAN के बराबर है | GSTIN के तीसरे से बारहवें अक्षर की अपनी तरफ़ तुलना | मुफ़्त | टाइपो, उधार का GSTIN या अलग करदाता |
| GSTIN का राज्य-कोड घोषित राज्य से मेल खाता है | पहले दो अंक पते के राज्य से मिलाइए | मुफ़्त | बहु-राज्य व्यवसाय, या समझाने लायक़ बेमेल |
| PAN का प्रकार इकाई के प्रकार से मेल खाता है | verify/pan का type घोषित प्रकार से | एक PAN call | ग़लत इकाई-प्रकार चुना या उधार का PAN |
| PAN पर नाम घोषित कानूनी नाम से मेल खाता है | verify/pan का nameMatchScore | एक PAN call | टाइपो, व्यापारिक नाम को कानूनी नाम लिख दिया |
GSTIN का legalName PAN के नाम से मेल खाता है | आपकी अपनी सहनशील तुलना | एक GSTIN call | अलग करदाता या नाम बदला हुआ |
| CIN का वर्ष स्थापना की तारीख़ से मेल खाता है | CIN के भीतर का वर्ष incorporationDate से मिलाइए | एक CIN call | टाइपो या उधार का CIN |
| GSTIN उस PAN से जुड़े GSTIN में है | verify/pan-to-gstin | एक call | उधार का GSTIN या अलग PAN के तहत पंजीकरण |
| निदेशकों में हस्ताक्षरकर्ता है | हस्ताक्षरकर्ता का नाम directors से मिलाइए | CIN call का हिस्सा | आवेदक कंपनी से जुड़ा नहीं |
पहले दो मुफ़्त हैं, बीच वाले उन calls के साथ आते हैं जो आप वैसे भी कर रहे थे, और सिर्फ़ PAN-GSTIN वाले किनारे के लिए ऐसी call चाहिए जो सिर्फ़ संगति के लिए हो। पहले मुफ़्त किनारे चलाइए, फिर calls, और पक्की विफलता पर जल्दी रुक जाइए ताकि जो इकाई पास नहीं होगी उस पर ख़र्च न हो।
प्रक्रिया, कदम-दर-कदम
- घोषणा लीजिए। कानूनी नाम, इकाई का प्रकार, जहाँ लागू हो PAN, GSTIN और CIN, दावा हो तो Udyam, पंजीकृत पता और राज्य, हस्ताक्षरकर्ता का नाम और PAN, और भुगतान या साख के लिए बैंक खाता। फ़ैसला: अभी कुछ सशुल्क नहीं हुआ, व्यवसाय "KYB बाक़ी" स्थिति में बनता है।
- मुफ़्त किनारे चलाइए। ढाँचे की जाँचें, GSTIN में PAN, GSTIN का राज्य बनाम पता। फ़ैसला: फ़ॉर्म सटीक संदेश के साथ लौटाइए, या आगे बढ़िए।
- इकाई का PAN जाँचिए। PAN और घोषित कानूनी नाम के साथ
POST /v1/verify/pan।valid,type,registeredName,nameMatchScoreपढ़िए। फ़ैसला: अवैध रुकता है, घोषणा से उलटा प्रकार समीक्षा में, कमज़ोर score समीक्षा में। - पंजीकरण जाँचिए। GST-पंजीकृत व्यवसायों के लिए
POST /v1/verify/gstin, कंपनियों के लिएPOST /v1/verify/cin। स्थिति वाले fields (registrationStatus,companyStatus,cinStatus) और नाम पढ़िए। फ़ैसला: निष्क्रिय पर नीति के हिसाब से रुकिए या दस्तावेज़ों पर जाइए, न समझे जाने वाले नाम-अंतर समीक्षा में। - जुड़े पंजीकरण मिलाइए। जहाँ पक्का करना हो कि GSTIN उसी PAN का है, या और पंजीकरण देखने हों, वहाँ
POST /v1/verify/pan-to-gstin। फ़ैसला: घोषित GSTIN जुड़ा न मिले तो समीक्षा। - दावा हो तो Udyam जाँचिए।
POST /v1/verify/udyam। फ़ैसला: मिले तो प्रकार और स्थिति दर्ज कीजिए, वरना MSME दावा दर्ज मत कीजिए। - हस्ताक्षरकर्ता को जाँचिए। हस्ताक्षरकर्ता के PAN और नाम पर
POST /v1/verify/pan, कंपनी हो तो नाम की निदेशकों की सूची से तुलना। फ़ैसला: हस्ताक्षरकर्ता इकाई से जुड़ा न मिले तो अधिकार-दस्तावेज़ के लिए समीक्षा। - बैंक खाता जाँचिए। भुगतान या वसूली करनी हो तो व्यवसाय के खाते और कानूनी नाम के साथ
POST /v1/verify/bank-account। फ़ैसला: इकाई के नाम का खाता आगे बढ़े, वरना समीक्षा। - अंक दीजिए और स्तर तय कीजिए। सत्यापित संकेतों की तस्वीर निकालिए और स्तर दीजिए। फ़ैसला: स्तर सीमाएँ और शर्तें तय करता है।
- दर्ज कीजिए और निगरानी तय कीजिए। सबूत रखिए और स्तर के हिसाब से स्थिति की दोबारा जाँच तय कीजिए।
नमूना request और response: CIN से कंपनी की जाँच
CIN call वे तथ्य लौटाती है जिनसे कंपनी को पकड़ा जाए, और निदेशक जिन्हें आवेदक से मिलाया जाए:
curl -X POST "https://api-b2b.stampmitra.in/v1/verify/cin" \
-H "Authorization: Bearer $STAMPMITRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"cin":"U74999DL2015PTC284009"}'{
"referenceId": "SMV-20260927-6R38Y3",
"valid": true,
"companyName": "JANE DOE ENTERPRISES PRIVATE LIMITED",
"incorporationDate": "2015-03-12",
"cinStatus": "ACTIVE",
"companyStatus": "Active",
"directors": [
{ "din": "01234567", "name": "RAHUL KUMAR", "designation": "Director" }
],
"email": "[email protected]",
"registrationNumber": 284009,
"incorporationCountry": "India"
}| Field | अर्थ | KYB में उपयोग |
|---|---|---|
valid | CIN मिल गया | false पर एक बार दोबारा भरवाने के बाद कंपनी का प्रवाह रुकता है |
companyName | पंजीकृत नाम | घोषित कानूनी नाम और PAN के नाम से मिलाइए |
incorporationDate | स्थापना की तारीख़ | साल CIN के भीतर के साल से मेल खाए, आपकी नीति चाहे तो उम्र को जोखिम-संकेत की तरह इस्तेमाल कीजिए |
cinStatus, companyStatus | CIN और कंपनी की स्थिति | चालू से अलग कुछ भी फ़ैसला माँगता है |
directors | DIN, नाम और पदनाम वाले निदेशक | हस्ताक्षरकर्ता से मिलाइए, समीक्षकों को नाम दिखाइए |
email | रिकॉर्ड पर संपर्क ईमेल | इसे आवेदक की पहचान का सत्यापन मत मानिए, यह रजिस्ट्री का field है |
registrationNumber | कंपनी का पंजीकरण नंबर, एक number | आपके भेजे CIN के आख़िरी छह अंकों के बराबर हो, number के रूप में तुलना करें |
referenceId | StampMitra का transaction id | KYB रिकॉर्ड के साथ रखिए |
CIN की अपनी बनावट भी है जिसे आप अपनी तरफ़ पढ़ सकते हैं: सूचीबद्ध या असूचीबद्ध की स्थिति का एक अक्षर, पाँच अंकों का उद्योग कोड, राज्य के दो अक्षर, स्थापना का वर्ष, कंपनी के प्रकार (निजी, सार्वजनिक, वन-पर्सन आदि) के तीन अक्षर और छह अंकों की पंजीकरण संख्या। इसलिए response आने पर स्थापना-वर्ष वाला किनारा मुफ़्त संगति-जाँच बन जाता है।
संगति का function
नीचे का Node function किनारों का मूल्यांकन करता है और गंभीरता के साथ निष्कर्षों की सूची लौटाता है। सीमाएँ और नामों की तुलना शुरुआती बिंदु हैं जिन्हें आप ट्यून करें।
function gstinPan(gstin) {
return gstin && gstin.length === 15 ? gstin.slice(2, 12) : null;
}
export function evaluateKyb({ declared, pan, gstin, cin }) {
const findings = [];
const add = (severity, code, detail) => findings.push({ severity, code, detail });
if (declared.gstin && gstinPan(declared.gstin) !== declared.pan) {
add("hard", "PAN_NOT_IN_GSTIN", "GSTIN के भीतर का PAN घोषित PAN से अलग है");
}
if (pan && !pan.valid) add("hard", "PAN_INVALID", pan.message);
if (pan?.valid && declared.entityType === "company" && !/company/i.test(String(pan.type))) {
add("review", "PAN_TYPE_MISMATCH", `कंपनी के लिए PAN का प्रकार ${pan.type}`);
}
if (pan?.valid && Number(pan.nameMatchScore) < 70) {
add("review", "PAN_NAME_WEAK", `score ${pan.nameMatchScore}`);
}
if (gstin && gstin.valid === false) add("hard", "GSTIN_INVALID", "GSTIN नहीं मिला");
if (gstin?.valid && String(gstin.registrationStatus).toLowerCase() !== "active") {
add("hard", "GSTIN_INACTIVE", gstin.registrationStatus);
}
if (cin && cin.valid === false) add("hard", "CIN_INVALID", "CIN नहीं मिला");
if (cin?.valid) {
if (String(cin.companyStatus).toLowerCase() !== "active") add("hard", "COMPANY_INACTIVE", cin.companyStatus);
const yearInCin = declared.cin?.slice(8, 12);
if (yearInCin && cin.incorporationDate?.slice(0, 4) !== yearInCin) {
add("review", "CIN_YEAR_MISMATCH", `${yearInCin} vs ${cin.incorporationDate}`);
}
const signatory = declared.signatoryName?.toLowerCase().split(/\s+/) ?? [];
const hit = (cin.directors ?? []).some((d) => signatory.every((w) => d.name.toLowerCase().includes(w)));
if (!hit) add("review", "SIGNATORY_NOT_A_DIRECTOR", "अधिकार-दस्तावेज़ माँगिए");
}
return findings;
}फ़ैसले की तालिका: valid, मेल नहीं, निष्क्रिय, नहीं मिला
| नतीजा | PAN | GSTIN | CIN | Udyam |
|---|---|---|---|---|
| वैध और संगत | दर्ज करें, आगे बढ़ें | राज्य और स्थिति दर्ज करें | निदेशक और स्थिति दर्ज करें | प्रकार और स्थिति दर्ज करें |
| वैध, नाम या प्रकार बेमेल | घोषित प्रकार और नामों के साथ समीक्षा | समीक्षा, कानूनी और व्यापारिक नाम अक्सर अलग होते हैं | समीक्षा, PAN के नाम से तुलना कीजिए | उद्यम के नाम की समीक्षा |
| निष्क्रिय, रद्द या लैप्स | रुकें, स्थिति कारण बताएगी | रुकें या नीति के अनुसार दस्तावेज़ों पर जाएँ | रुकें, जो कंपनी चालू नहीं उसे onboard मत कीजिए | MSME दावा दर्ज न करें |
नहीं मिला या valid: false | एक बार दोबारा भरवाएँ, फिर रुकें | एक बार दोबारा, फिर दस्तावेज़ | एक बार दोबारा, फिर दस्तावेज़ | प्रमाण मिलने तक non-MSME मानें |
| call विफल | जाँच बाक़ी, retry | जाँच बाक़ी, retry | जाँच बाक़ी, retry | जाँच बाक़ी, retry |
रजिस्टरों के बीच नाम और पते के अंतर
असली व्यवसाय के स्वचालित KYB जाँच में विफल होने का सबसे आम कारण धोखा नहीं, रूप का फ़र्क़ है। वही कंपनी कंपनी-रजिस्टर में "Jane Doe Enterprises Private Limited", कर रिकॉर्ड में "JANE DOE ENTERPRISES PVT LTD" और साइनबोर्ड पर "Jane Doe Enterprises" दिख सकती है। व्यवसाय का नाम बदला हो सकता है, एक रजिस्टर में अपडेट होकर और दूसरे में नहीं। प्रोप्राइटरशिप के GSTIN का कानूनी नाम मालिक का निजी नाम होता है जबकि दुकान किसी ब्रांड से चलती है।
तुलना परतों में बनाइए। पहले normalise कीजिए: upper-case, विराम-चिह्न हटाइए, private, pvt, limited, ltd और LLP जैसे आम प्रत्यय हटाइए या खोलिए, और खाली जगहें समेटिए। दूसरे, बराबरी जाँचने की जगह normalise किए शब्द-समूहों की तुलना कीजिए और ओवरलैप का अनुपात निकालिए। तीसरे, नतीजे को गंभीरता वाला निष्कर्ष बनाइए: ऊँचा ओवरलैप चुपचाप पास होता है, बीच का ओवरलैप दोनों नामों के साथ समीक्षा बनता है, और निचला ओवरलैप तभी पक्का निष्कर्ष बनता है जब उसके साथ कोई दूसरी असंगति हो। एक कमज़ोर नाम-संकेत को बाक़ी संगत इकाई को शायद ही रोकना चाहिए।
पते कठिन हैं। कंपनी के रिकॉर्ड का पंजीकृत पता, GSTIN का मुख्य कारोबारी पता और आवेदक का टाइप किया पता अक्सर जायज़ तौर पर अलग होते हैं, क्योंकि व्यवसाय पंजीकृत कार्यालय से अलग जगह से चल सकता है और कई राज्यों में पंजीकृत हो सकता है। स्वचालित जाँचों में राज्य इस्तेमाल कीजिए, गली नहीं, और राज्य के अंतर को विफलता नहीं, सवाल मानिए: पूछिए कि क्या व्यवसाय का उस राज्य में संचालन है और आपके पास का GSTIN उसी का है। पूरे पते की तुलना इंसानी समीक्षक के लिए रखिए।
नाम बदली हुई इकाइयों में संकेत अक्सर तारीख़ों में होता है। एक रजिस्टर में हाल का बदलाव और दूसरे में नहीं, और PAN व CIN पर सहमति, नाम बदलने की ओर इशारा करते हैं। आवेदक से वह दस्तावेज़ माँगिए जो उसे दिखाए, कारण दर्ज कीजिए और रखा हुआ कानूनी नाम सत्यापित रिकॉर्ड से अपडेट कीजिए। आवेदक का घोषित नाम चुपचाप मत मिटाइए, क्योंकि घोषणा आपके सबूत का हिस्सा है।
नाम और पते के हर फ़ैसले को कारण के साथ दर्ज कीजिए। समय के साथ वे कारण आपकी नियम-सूची बन जाते हैं: जिन पैटर्नों को समीक्षक हमेशा साफ़ करते हैं वे स्वचालित पास बन जाते हैं, और जिन्हें अक्सर ठुकराते हैं वे पक्की रोक।
निदेशक, स्वामी और वह जो API नहीं बता सकती
CIN का response निदेशकों को गिनाता है। यह काम की चीज़ है: इससे आपके समीक्षकों को पहचानने लायक़ असली नाम मिलते हैं और हस्ताक्षरकर्ता को मिलाने के लिए एक सूची। यह इस बात का बयान नहीं है कि कंपनी का मालिक कौन है। स्वामित्व, जिसमें यह भी शामिल है कि अंततः उसे शेयरधारिता या दूसरे तरीक़ों से कौन नियंत्रित करता है, शेयरधारिता-विवरण जैसे दस्तावेज़ों और आपके अपने विवेक से तय होता है, और नियंत्रित संस्थाओं के लिए लाभार्थी स्वामित्व के नियम आपके नियामक और आपकी नीति से आते हैं, इस endpoint से नहीं।
दो व्यावहारिक नतीजे। पहला, आपकी नीति किसी सीमा से ऊपर के स्वामियों की पहचान माँगे तो दस्तावेज़ का कदम और इंसानी समीक्षक रखिए, यह दिखावा मत कीजिए कि निदेशकों की सूची उसका जवाब है। दूसरा, किसी निदेशक या हस्ताक्षरकर्ता को व्यक्ति के रूप में पहचानना हो तो उस पर व्यक्तिगत जाँचें चलाइए: नाम के साथ PAN, और जहाँ ज़रूरी हो बैंक खाता। उन व्यक्तिगत जाँचों का ब्योरा NBFC लोन origination के लिए KYC पेज में है।
तस्वीर को स्तरों में बदलना
हर व्यवसाय को एक-सी जाँच नहीं चाहिए, और स्तर इस पर चलना चाहिए कि आपने क्या सत्यापित किया और आप कितना जोखिम उठा रहे हैं। सीधा ढाँचा सत्यापित संकेतों को अंक देकर फिर अंक और जोखिम को स्तर से जोड़ता है। तालिका उदाहरण है, जिसे आप अपनी risk टीम के साथ ढालें।
| सत्यापित संकेत | सुझाया वज़न | टिप्पणी |
|---|---|---|
| PAN वैध, प्रकार और नाम मेल खाते हैं | ऊँचा | लंगर |
| GSTIN चालू, उसके भीतर का PAN मेल खाता है | ऊँचा | tax-invoice व्यवसायों के लिए मज़बूत |
| CIN चालू, नाम मेल खाता है | ऊँचा | कंपनियों के लिए |
| हस्ताक्षरकर्ता इकाई से जुड़ा है | मध्यम | निदेशकों की सूची या अधिकार-दस्तावेज़ |
| बैंक खाता इकाई के नाम का है | मध्यम | भुगतान और साख के लिए चाहिए |
| Udyam मिला और चालू है | कम | स्वयं-घोषित वर्गीकरण, सिर्फ़ MSME शर्तों के लिए |
| स्थापना की तारीख़ से इकाई की उम्र | कम | जोखिम-संकेत है, गुणवत्ता का प्रमाण नहीं |
| स्तर | आपने क्या सत्यापित किया | आम जोखिम |
|---|---|---|
| A | सारे ऊँचे संकेत, हस्ताक्षरकर्ता और बैंक | ऊँची सीमाएँ, उधार की शर्तें |
| B | ऊँचे संकेत, बैंक, हस्ताक्षरकर्ता बाक़ी | मानक सीमाएँ, अग्रिम भुगतान या छोटी शर्तें |
| C | सिर्फ़ PAN, या अधूरे पंजीकरण | कम सीमाएँ, सिर्फ़ अग्रिम भुगतान |
| D | विफल या असंगत | कोई भी जोखिम लेने से पहले समीक्षा |
नियम लिखिए, उसे संस्करण-संख्या दीजिए और हर फ़ैसले के साथ संस्करण दर्ज कीजिए। जोखिम की भूख बदले तो नियम बदलिए, उसे लगाने वाले लोग नहीं।
लगातार निगरानी: स्थिति का बहाव
onboarding पर चालू व्यवसाय बाद में निष्क्रिय हो सकता है: GST पंजीकरण रद्द हो जाए, कंपनी रजिस्टर से हट जाए, बैंक खाता बंद हो जाए, कोई निदेशक इस्तीफ़ा दे दे। निगरानी के बिना onboarding KYB एक तस्वीर है जो पुरानी पड़ती जाती है।
स्तर के हिसाब से निगरानी कीजिए। बड़े जोखिम वाली स्तर A इकाइयों के पंजीकरण और कंपनी की स्थिति की दोबारा जाँच आपके चुने छोटे अंतराल पर हो, और बैंक खाता या हस्ताक्षरकर्ता बदलने पर भी। स्तर B और C की जाँच लंबे अंतराल या सिर्फ़-ट्रिगर वाली नीति पर। कैलेंडर के ऊपर घटनाओं के ट्रिगर जोड़िए: लौटा हुआ या देर से हुआ भुगतान, विवाद, खाता या हस्ताक्षरकर्ता बदलने का अनुरोध, ख़रीदार या विक्रेता का इकाई के बारे में कोई नोटिस, या गतिविधि में अचानक बदलाव।
import os
import requests
BASE = "https://api-b2b.stampmitra.in"
HEADERS = {
"Authorization": f"Bearer {os.environ['STAMPMITRA_API_KEY']}",
"Content-Type": "application/json",
}
def recheck_status(entity: dict) -> list[str]:
changes = []
if entity.get("gstin"):
r = requests.post(f"{BASE}/v1/verify/gstin", headers=HEADERS, json={"gstin": entity["gstin"]}, timeout=20)
if r.ok:
status = str(r.json().get("registrationStatus", "")).lower()
if status != "active":
changes.append(f"GSTIN की स्थिति अब {status or 'अज्ञात'}")
if entity.get("cin"):
r = requests.post(f"{BASE}/v1/verify/cin", headers=HEADERS, json={"cin": entity["cin"]}, timeout=20)
if r.ok:
status = str(r.json().get("companyStatus", "")).lower()
if status != "active":
changes.append(f"कंपनी की स्थिति अब {status or 'अज्ञात'}")
return changesदोबारा जाँच में बदलाव दिखे तो अपवाद खोलिए, खाता-मालिक को बताइए, और credit या risk टीम के साथ तय कीजिए कि खुले जोखिम का क्या होगा। कोड रिश्ते के बारे में कुछ तय नहीं करता, वह सिर्फ़ बदलाव को सामने लाता है।
जिन इकाइयों के पास पंजीकरण नहीं हैं
कुछ जायज़ व्यवसायों के पास GSTIN या CIN नहीं होता: पंजीकरण-सीमा से नीचे के छोटे प्रोप्राइटर, अनौपचारिक व्यापारी, ट्रस्ट, सोसाइटी और विदेशी इकाइयाँ। जो KYB प्रवाह इन सबको नाकाम करता है, वह असली ग्राहकों को बाहर कर देता है। हर एक के लिए हल्का रास्ता तय कीजिए: प्रोप्राइटरों के लिए नाम के साथ प्रोप्राइटर का PAN और उसके नाम का बैंक खाता, ट्रस्ट और सोसाइटी के लिए PAN और किसी इंसान के देखे दस्तावेज़, विदेशी इकाइयों के लिए इस API से बाहर अलग प्रक्रिया। इन इकाइयों को स्तर उसके हिसाब से दीजिए जो आप सत्यापित कर सकते हैं, और सीमाएँ उसी के अनुरूप रखिए। सबूत जितना हल्का, जोखिम उतना कम, और अग्रिम भुगतान विकल्प बना रहता है।
समीक्षा-पैकेट और टीम का ढाँचा
मामला समीक्षक के पास जाए तो उसे एक स्क्रीन पर सब कुछ दीजिए। उसमें हर सत्यापित मान के बग़ल में घोषणा हो, संगति-function के निष्कर्ष गंभीरता के साथ, स्थिति वाले fields, कंपनियों के लिए निदेशकों की सूची, वह स्तर जो नियम देंगे, और सबूत के id। कार्रवाइयों की छोटी सूची हो: किसी स्तर पर मंज़ूर करें, दस्तावेज़ माँगें, अस्वीकार करें, या आगे भेजें। हर कार्रवाई कारण माँगे।
दो queue चलाइए। KYB समीक्षा queue में वे निष्कर्ष हैं जिन्हें विवेक चाहिए, जिसे विश्लेषक सँभालते हैं और एक नामित वरिष्ठ समीक्षक रहता है, और समय-सीमा आप बिक्री या onboarding टीम के साथ तय करते हैं ताकि समीक्षा सौदे अटकने की वजह न बने। निगरानी queue में स्थिति के बदलाव और ट्रिगर की घटनाएँ हैं जो risk या credit operations की हैं। विफल calls और wallet अलर्ट की तीसरी platform queue इंजीनियरिंग की है।
KYB डेस्क की पाँच स्थितियाँ
ये काल्पनिक मामले हैं।
साफ़-सुथरी कंपनी
एक निजी कंपनी PAN, GSTIN और CIN के साथ साइन-अप करती है। GSTIN में PAN वाला किनारा पास होता है, PAN का प्रकार कंपनी है, CIN चालू है, निदेशकों की सूची में हस्ताक्षरकर्ता है, और बैंक खाता कंपनी के नाम का है। स्तर A, उसी दिन।
व्यापारिक नाम वाला आवेदक
एक वितरक अपना ब्रांड कानूनी नाम की जगह लिखता है। PAN के नाम का score मध्यम है, और GSTIN का legalName एक लंबा कंपनी-नाम है जिसमें ब्रांड शामिल है। समीक्षक आवेदक से पुष्टि करता है, कारण दर्ज करता है और बैंक जाँच बाक़ी रखते हुए स्तर B पर मंज़ूर करता है।
उधार का GSTIN
एक आवेदक ऐसा GSTIN डालता है जिसके भीतर का PAN दिए गए PAN से अलग है। मुफ़्त जाँच किसी सशुल्क call से पहले विफल हो जाती है। फ़ॉर्म सटीक संदेश के साथ लौटता है। आवेदक अड़ा रहे तो मामला जोखिम queue में जाता है।
रजिस्टर से हटी कंपनी
एक साल से ग्राहक रही कंपनी की दोबारा जाँच होती है और कंपनी की स्थिति अब चालू नहीं है। अपवाद खुलता है, खुले orders पर निशान लगते हैं, खाता-मालिक को बताया जाता है, और credit टीम तय करती है कि जोखिम और आगे की बिक्री का क्या करें।
GST के बिना प्रोप्राइटर
एक छोटे प्रोप्राइटर के पास PAN और बैंक खाता है पर GSTIN या CIN नहीं। हल्का रास्ता नाम के साथ PAN और खाता जाँचता है, स्तर C देता है, और सिर्फ़ अग्रिम-भुगतान वाले orders की इजाज़त देता है।
B2B प्लेटफ़ॉर्म के लिए अपनाने लायक़ समीक्षा-नियम
ये सुझाव हैं जिन्हें आपकी risk नीति ढाले।
- पहले मुफ़्त जाँचें। ढाँचे, GSTIN में PAN और राज्य की जाँचें पास होने से पहले कोई सशुल्क call नहीं।
- निष्क्रिय पर रुकिए। निष्क्रिय पंजीकरण या कंपनी दस्तावेज़ों और दूसरे मंज़ूरीकर्ता के बिना आगे नहीं बढ़ती।
- इकाई का प्रकार मेल खाए। घोषित प्रकार और PAN के प्रकार का बेमेल समीक्षा में जाए।
- हस्ताक्षरकर्ता जुड़ा हो। कंपनियों के लिए निदेशकों की सूची से बाहर का हस्ताक्षरकर्ता अधिकार-दस्तावेज़ माँगे।
- स्तर शर्तें तय करे। साख और सीमाएँ स्तर से चलें, और स्तर सबूत से।
- दो मंज़ूरीकर्ता पूरे सबूत के बिना स्तर बढ़ाने और पक्के निष्कर्ष के override के लिए।
- निगरानी वैकल्पिक नहीं है उन स्तरों के लिए जिनमें साख का जोखिम है।
- एक संकेत पर कभी फ़ैसला नहीं। संकेतों से लोगों और स्तरों तक पहुँचिए।
क्या रखें और कितने समय तक
हर KYB रिकॉर्ड के लिए घोषणा, हर call का referenceId, समय, key का environment, इस्तेमाल हुए response fields, निष्कर्ष, स्तर, नियम का संस्करण, समीक्षक और override का कारण रखिए। पहचानकर्ताओं को logs और बिना-विशेषाधिकार वाले दृश्यों में ढका रखिए। निदेशकों के नाम और DIN व्यक्तियों का निजी डेटा हैं, और एकल प्रोप्राइटर का PAN भी, इसलिए पहुँच-नियंत्रण उसी हिसाब से लगाइए।
अवधि अनुबंध और वाणिज्यिक कानून, कर और लेखा नियमों, आप नियंत्रित हों तो आपके नियामक की ज़रूरतों, और शामिल व्यक्तियों के लिए डेटा-सुरक्षा कानून पर निर्भर है। आँकड़े हम नहीं दे सकते। सवाल अपने सलाहकार के पास ले जाइए, जवाब को retention schedule में लिखिए और उसे स्वचालित कीजिए। StampMitra का अपना डेटा-संचालन उसके retention और deletion schedule और data processing addendum में है।
लागत: तीन onboarding मात्राएँ
pay-as-you-go पर PAN, GSTIN, CIN, Udyam और cross-lookups की दर ₹5 प्रति call है, और bank-account जाँच की ₹4। Growth और Scale standard दर घटाते हैं और महीने की plan फ़ीस जोड़ते हैं, और bank दर सब plans पर एक-सी है। सभी राशियाँ 18 प्रतिशत GST से पहले की हैं।
एक व्यवसाय की लागत उसके प्रकार पर निर्भर है। PAN, GSTIN, CIN, हस्ताक्षरकर्ता के PAN और बैंक खाते वाली कंपनी, और PAN, GSTIN व बैंक खाते वाला एकल प्रोप्राइटर:
| Plan | एक कंपनी की लागत, GST से पहले |
|---|---|
| Pay as you go | ₹24 |
| Growth | ₹20 |
| Scale | ₹18 |
| Plan | एक एकल प्रोप्राइटर की लागत, GST से पहले |
|---|---|
| Pay as you go | ₹14 |
| Growth | ₹12 |
| Scale | ₹11 |
मासिक मॉडलों के लिए मान लीजिए औसत व्यवसाय को एक PAN जाँच, एक GSTIN जाँच, 40 प्रतिशत व्यवसायों के लिए CIN जाँच, 20 प्रतिशत के लिए Udyam जाँच, एक हस्ताक्षरकर्ता PAN जाँच और एक बैंक जाँच चाहिए। यानी प्रति व्यवसाय 3.6 standard calls और एक बैंक जाँच। महीने में 200 नए व्यवसायों पर: 720 standard calls और 200 बैंक जाँचें।
| Plan | उपयोग का शुल्क | Plan फ़ीस | उप-योग | 18% GST | महीने का कुल |
|---|---|---|---|---|---|
| Pay as you go | ₹4,400 | ₹0 | ₹4,400 | ₹792 | ₹5,192 |
| Growth | ₹3,680 | ₹999 | ₹4,679 | ₹842.22 | ₹5,521.22 |
| Scale | ₹3,320 | ₹4,999 | ₹8,319 | ₹1,497.42 | ₹9,816.42 |
महीने में 2,000 नए व्यवसायों पर: 7,200 standard calls और 2,000 बैंक जाँचें।
| Plan | उपयोग का शुल्क | Plan फ़ीस | उप-योग | 18% GST | महीने का कुल |
|---|---|---|---|---|---|
| Pay as you go | ₹44,000 | ₹0 | ₹44,000 | ₹7,920 | ₹51,920 |
| Growth | ₹36,800 | ₹999 | ₹37,799 | ₹6,803.82 | ₹44,602.82 |
| Scale | ₹33,200 | ₹4,999 | ₹38,199 | ₹6,875.82 | ₹45,074.82 |
महीने में 20,000 नए व्यवसायों पर, जैसा कोई बहुत बड़ा प्लेटफ़ॉर्म देख सकता है: 72,000 standard calls और 20,000 बैंक जाँचें।
| Plan | उपयोग का शुल्क | Plan फ़ीस | उप-योग | 18% GST | महीने का कुल |
|---|---|---|---|---|---|
| Pay as you go | ₹4,40,000 | ₹0 | ₹4,40,000 | ₹79,200 | ₹5,19,200 |
| Growth | ₹3,68,000 | ₹999 | ₹3,68,999 | ₹66,419.82 | ₹4,35,418.82 |
| Scale | ₹3,32,000 | ₹4,999 | ₹3,36,999 | ₹60,659.82 | ₹3,97,658.82 |
तालिकाएँ ऐसे पढ़िए: महीने में 200 व्यवसायों पर pay as you go सबसे सस्ता है क्योंकि plan फ़ीस कम दर से भारी पड़ती है, 2,000 पर Growth सबसे सस्ता है और Scale उसके पास, और 20,000 पर Scale सबसे सस्ता है, जहाँ ख़र्च उस स्तर से ऊपर है जिस पर StampMitra enterprise व्यवस्था का सुझाव देता है, जिसकी बात contact पेज पर होती है। इन योगों में चल रही निगरानी शामिल नहीं है: स्थिति दोबारा जाँचने में हर पंजीकरण पर हर जाँच के लिए एक call लगती है, इसलिए निगरानी की समय-सारणी आपके सक्रिय आधार और अंतराल के अनुपात में calls जोड़ती है। इसका अनुमान सक्रिय इकाइयाँ गुणा प्रति चक्र calls गुणा महीने के चक्र से लगाइए और मॉडल में जोड़ दीजिए। तालिकाएँ मानती हैं कि GST plan फ़ीस पर भी लगता है, invoice से पक्का कीजिए। उपयोग सफल response के बाद दर्ज होता है, इसलिए error पर ख़त्म हुई calls का शुल्क नहीं लगता, पर valid: false सफल जवाब है और उसका शुल्क लगता है। लागत को उस जोखिम से तौलिए जिसे आप बचा रहे हैं और विश्लेषक के उस समय से जो आप बचाते हैं, अपने आँकड़ों से।
रोलआउट: sandbox, pilot, production
Sandbox। घोषणा-फ़ॉर्म, संगति-function, स्तर और समीक्षा-पैकेट sandbox keys पर बनाइए, जहाँ responses नमूना डेटा हैं और wallet नहीं कटता। sandbox responder कुछ ख़ास test values पर दर्ज नतीजे देता है: PAN SNDBX0000A पर वैध और SNDBX9999F पर अवैध; GSTIN 09SNDBX0000A1Z5 पर वैध और चालू और 09SNDBX9999F1Z5 पर अवैध और रद्द; और dashboard में दिए दो test CIN पर एक वैध और एक अवैध नतीजा। बाक़ी इनपुट पर स्थिर पर मनमाना नतीजा आता है, इसलिए उन पर assertion मत लगाइए। dashboard में ताज़ा test values देखिए, क्योंकि live validators sandbox के तर्क से पहले ढाँचे जाँचते हैं। फ़ैसला-तालिका की हर पंक्ति, हर निष्कर्ष-कोड और निगरानी job का test कीजिए।
Pilot। production access माँगिए, जिसके लिए आपके संगठन की KYC मंज़ूरी और product-वार आवेदन चाहिए। किसी एक वर्ग के नए व्यवसाय-साइन-अप इस प्रवाह से गुज़ारिए जबकि आपके विश्लेषक कुछ हफ़्ते साथ-साथ हाथ से जाँचते रहें। स्तर मिलाइए और हर असहमति लिख लीजिए।
Production। वर्ग-दर-वर्ग बढ़ाइए। सबसे ज़्यादा जोखिम वाले स्तर की निगरानी पहले चालू कीजिए। wallet balance पर अलर्ट रखिए, और scopes व IP allowlist के लिए sandbox बनाम production keys गाइड हाथ में रखिए।
किन मापदंडों पर नज़र रखें
- हर स्तर तक पहुँचने वाले व्यवसायों का हिस्सा, और स्तर तक पहुँचने का समय।
- कोड के हिसाब से निष्कर्ष, और समीक्षा के बाद साफ़ हुए का हिस्सा। जो कोड शायद ही कभी साफ़ होता है वह अच्छा नियम है, और जो लगभग हमेशा साफ़ होता है वह शायद ज़्यादा सख़्त है।
- समीक्षा queue का आकार और सबसे पुराने मामले की उम्र।
- बहाव: निगरानी में प्रति हज़ार इकाइयाँ पकड़े गए स्थिति-बदलाव, और उसके बाद क्या हुआ।
- override और उन्हें किसने मंज़ूर किया।
- स्तर के हिसाब से जोखिम, और स्तर के हिसाब से नुक़सान या विवाद, ताकि स्तर के नियम नतीजों पर परखे जा सकें।
- प्रति व्यवसाय calls, निगरानी समेत।
- घोषणा वाले कदम पर onboarding छोड़ने की दर, जो दिखाती है कि फ़ॉर्म ज़्यादा तो नहीं माँगता।
जो ग़लतियाँ KYB कार्यक्रम को कमज़ोर करती हैं
- हर इकाई-प्रकार के लिए एक प्रवाह। किसी से ज़्यादा माँगता है, किसी की कम जाँच करता है।
- रजिस्ट्री-मिलान को आवेदक का प्रमाण मानना। व्यवसाय असली हो सकता है और आवेदक अजनबी।
- निदेशकों की सूची को स्वामित्व पढ़ना। वह स्वामित्व नहीं है।
- मुफ़्त जाँचें छोड़ना। वे सबसे सस्ती और सबसे मज़बूत हैं।
- नामों की अक्षरशः बराबरी। कानूनी, व्यापारिक और फ़ॉर्म के नाम जायज़ तौर पर अलग होते हैं।
- निगरानी न होना। तस्वीर पुरानी पड़ती है।
- एक संकेत को फ़ैसला करने देना। स्तर और समीक्षा इस्तेमाल कीजिए।
- हस्ताक्षरकर्ता को भूलना। आवेदन करने वाला व्यक्ति इकाई से जुड़ा होना चाहिए।
- जिनके पास GSTIN या CIN नहीं उन्हें बाहर करना। इसकी जगह हल्के, कम-जोखिम वाले रास्ते बनाइए।
संबंधित API और गाइड
यहाँ इस्तेमाल हुए endpoints verification API reference में हैं: PAN, GSTIN, CIN, Udyam, PAN to GSTIN और bank account, और MSME खोज के लिए PAN to Udyam। और गहराई के लिए business verification गाइड, GSTIN verification गाइड, vendor onboarding verification पेज, marketplace seller verification पेज और कानूनी और compliance टीमों के लिए verification पेज पढ़िए। सारे उद्योग-वार पेज solutions पेज पर हैं, और मौजूदा दरें pricing पेज पर।
API reference एक नज़र में
Company CIN
POST /v1/verify/cinRequest parameters
| Field | Type | Description |
|---|---|---|
Authorizationrequired | header | Bearer <api-key> (e.g. sk_test_... in sandbox, sk_live_... in production). The x-api-key header is also accepted. |
cinrequired | string | Corporate Identification Number (21 characters) or LLPIN, for example U74999DL2015PTC284009. |
POST /v1/verify/cin{
"referenceId": "SMV-20260927-6R38Y3",
"verificationId": "VRF-6C2N9V4HQ7ZE",
"valid": true,
"status": "VALID",
"cin": "U72900KA2015PTC082988",
"companyName": "COMPANY NAME",
"registrationNumber": 82987,
"incorporationDate": "2015-09-23",
"cinStatus": "ACTIVE",
"email": "[email protected]",
"incorporationCountry": "INDIA",
"directorDetails": [
{
"din": "07168822",
"name": "Frank Kelvin",
"dob": "1997-07-21",
"designation": "DIRECTOR",
"address": "ST BED KORAMANGALA, BANGALORE, KARNATAKA, INDIA, 566634"
},
{
"din": "07168826",
"name": "John Doe",
"dob": "1997-02-07",
"designation": "DIRECTOR",
"address": "GAUTAM NAGAR, NOIDA, UTTAR PRADESH, INDIA, 211361"
}
],
"companyStatus": "ACTIVE",
"directors": [
{
"din": "07168822",
"name": "Frank Kelvin",
"designation": "DIRECTOR"
},
{
"din": "07168826",
"name": "John Doe",
"designation": "DIRECTOR"
}
]
}POST /v1/verify/cinCompany CIN: ₹5 per successful call, pay-as-you-go (lower on Growth and Scale).
GSTIN
POST /v1/verify/gstinRequest parameters
| Field | Type | Description |
|---|---|---|
Authorizationrequired | header | Bearer <api-key> (e.g. sk_test_... in sandbox, sk_live_... in production). The x-api-key header is also accepted. |
gstinrequired | string | 15-character GSTIN, format 07AAAAA1111A1Z1. |
businessName | string | Business (legal or trade) name to cross-check against the registration. |
POST /v1/verify/gstin{
"referenceId": "SMV-20260927-9K21P4",
"verificationId": "VRF-4M8Q2T7XB9KD",
"gstin": "29AAICP2912R1ZR",
"GSTIN": "29AAICP2912R1ZR",
"valid": true,
"legalNameOfBusiness": "UJJIVAN SMALL FINANCE BANK LIMITED",
"tradeNameOfBusiness": "UJJIVAN SMALL FINANCE BANK",
"centerJurisdiction": "I-A RANGE",
"stateJurisdiction": "GUWAHATI - A - 1",
"dateOfRegistration": "2017-09-30",
"constitutionOfBusiness": "Public Limited Company",
"taxpayerType": "Regular",
"gstinStatus": "Active",
"lastUpdateDate": "2022-03-01",
"natureOfBusinessActivities": [
"Retail Business",
"Supplier of Services",
"Recipient of Goods or Services",
"Office / Sale Office",
"Others"
],
"principalPlaceAddress": "First Floor 3512-DISPUR Prithivi Mansion opp. KFC building G.S. Road, Lachit Nagar Assam 781007",
"principalPlaceSplitAddress": {
"buildingName": "Prithivi Mansion",
"street": "G.S. Road",
"location": "Lachit Nagar",
"buildingNumber": "3512-DISPUR",
"district": "Guwahati",
"state": "Assam",
"city": "Dispur",
"flatNumber": "First Floor",
"latitude": "26.1445",
"longitude": "91.7362",
"pincode": "781007"
},
"additionalAddresses": [
{
"address": "Mirza Santipur NH-37 Dist-Kamrup Rural PS-Palashbari, PO Mirza Kamrup Assam 781125",
"splitAddress": {
"buildingName": "",
"street": "NH-37",
"location": "Santipur, Mirza",
"buildingNumber": "",
"district": "Kamrup Rural",
"state": "Assam",
"city": "Palashbari",
"flatNumber": "",
"latitude": "26.0926",
"longitude": "91.5069",
"pincode": "781125"
}
},
{
"address": "N.A.C.C.I. Foundation 3559-Tezpur CHAMBER BHAWAN Binjraj Road, P. o. and P.S. - Tezpur, Dist. Binjraj Road, P. o. and P.S. - Tezpur, Dist. Sonitpur Assam 784154",
"splitAddress": {
"buildingName": "CHAMBER BHAWAN",
"street": "Binjraj Road",
"location": "Tezpur",
"buildingNumber": "3559-Tezpur",
"district": "Sonitpur",
"state": "Assam",
"city": "Tezpur",
"flatNumber": "",
"latitude": "26.6338",
"longitude": "92.8006",
"pincode": "784154"
}
}
],
"message": "GSTIN Exists",
"legalName": "UJJIVAN SMALL FINANCE BANK LIMITED",
"tradeName": "UJJIVAN SMALL FINANCE BANK",
"registrationStatus": "Active",
"principalPlaceOfBusiness": "First Floor 3512-DISPUR Prithivi Mansion opp. KFC building G.S. Road, Lachit Nagar Assam 781007"
}POST /v1/verify/gstinGSTIN: ₹5 per successful call, pay-as-you-go (lower on Growth and Scale).
Udyam Registration
POST /v1/verify/udyamRequest parameters
| Field | Type | Description |
|---|---|---|
Authorizationrequired | header | Bearer <api-key> (e.g. sk_test_... in sandbox, sk_live_... in production). The x-api-key header is also accepted. |
udyamNumberrequired | string | Udyam Registration Number (URN), format UDYAM-MH-12-1234567. |
POST /v1/verify/udyam{
"referenceId": "SMV-20260927-5U29V7",
"verificationId": "VRF-7K3M9Q2XH4TB",
"found": true,
"status": "SUCCESS",
"udyamStatus": "SUCCESS",
"udyamNumber": "UDYAM-UP-43-1234567",
"enterpriseName": "helloscholar",
"organizationType": "Proprietary",
"majorActivity": "Services",
"socialCategory": "General",
"dateOfIncorporation": "2020-05-29",
"dateOfCommencement": "2020-05-29",
"dateOfUdyamRegistration": "2022-01-02",
"enterpriseType": "Micro",
"classificationYear": "2024-25",
"classificationDate": "2025-06-02",
"certificateUrl": "https://udyamregistration.gov.in/Udyam_Download/UDYAM-UP-43-1234567.pdf",
"classificationHistory": [
{
"serialNumber": "1",
"classificationYear": "2024-25",
"enterpriseType": "Micro",
"classificationDate": "2025-06-02"
},
{
"serialNumber": "2",
"classificationYear": "2023-24",
"enterpriseType": "Micro",
"classificationDate": "2023-05-09"
},
{
"serialNumber": "3",
"classificationYear": "2022-23",
"enterpriseType": "Micro",
"classificationDate": "2022-06-26"
}
],
"splitAddress": {
"flat": "Ground Floor",
"building": "05 Raman Vihar",
"village": "Naubasta",
"block": "Naubasta",
"street": "Naubasta",
"city": "Kanpur",
"district": "KANPUR NAGAR",
"state": "UTTAR PRADESH",
"pincode": "208021",
"mobile": "70*****210",
"email": "[email protected]"
},
"unitLocations": [
{
"serialNumber": "1",
"unitName": "hellobanker",
"flat": "Ground Floor",
"building": "05 Raman Vihar Naubasta",
"village": "KANPUR NAGAR",
"block": "KANPUR NAGAR",
"street": "05 Raman Vihar Naubasta Bamba",
"city": "Kanpur",
"district": "KANPUR NAGAR",
"state": "UTTAR PRADESH",
"pincode": "208021"
},
{
"serialNumber": "2",
"unitName": "helloscholar",
"flat": "Ground Floor",
"building": "05 Raman Vihar Naubasta",
"village": "Kanpur",
"block": "Kanpur",
"street": "Kanpur",
"city": "Kanpur",
"district": "KANPUR NAGAR",
"state": "UTTAR PRADESH",
"pincode": "208021"
}
],
"nicCodes": [
{
"serialNumber": "1",
"nic2Digit": "85",
"nic2Description": "Education",
"nic4Digit": "8550",
"nic4Description": "Educational support services",
"nic5Digit": "85500",
"nic5Description": "Educational support services",
"activity": "Services",
"date": "2022-01-02"
}
],
"dic": "KANPUR NAGAR",
"msmeDi": "KANPUR"
}POST /v1/verify/udyamUdyam Registration: ₹5 per successful call, pay-as-you-go (lower on Growth and Scale).
PAN to GSTIN
POST /v1/verify/pan-to-gstinRequest parameters
| Field | Type | Description |
|---|---|---|
Authorizationrequired | header | Bearer <api-key> (e.g. sk_test_... in sandbox, sk_live_... in production). The x-api-key header is also accepted. |
panrequired | string | PAN to resolve to associated GSTIN(s). |
POST /v1/verify/pan-to-gstin{
"referenceId": "SMV-20260927-1L67Z5",
"found": true,
"gstins": [
{
"gstin": "07AAAAA1111A1Z1",
"state": "Delhi",
"status": "Active"
}
]
}POST /v1/verify/pan-to-gstinPAN to GSTIN: ₹5 per successful call, pay-as-you-go (lower on Growth and Scale).
अक्सर पूछे जाने वाले सवाल
KYB और KYC में क्या फ़र्क़ है?
KYC एक व्यक्ति को जाँचता है, KYB एक कानूनी इकाई और उससे जुड़े लोगों को। KYB कार्यक्रम में आम तौर पर हस्ताक्षरकर्ता या प्रोप्राइटर पर KYC जैसी जाँचें और इकाई पर रजिस्ट्री जाँचें होती हैं: PAN, GSTIN, CIN या Udyam, उनकी स्थिति, और वे आपस में मेल खाते हैं या नहीं।
API बुलाने से पहले कौन-सी जाँचें मुफ़्त हैं?
ढाँचे की जाँचें, GSTIN के भीतर का PAN आपके पास के PAN से, और GSTIN का राज्य-कोड घोषित राज्य से मिलाना, इनके लिए API call नहीं चाहिए। CIN का response आने के बाद CIN के भीतर का वर्ष स्थापना की तारीख़ से भी मिलाया जा सकता है।
क्या CIN का response बताता है कि कंपनी का मालिक कौन है?
नहीं। वह निदेशकों को DIN, नाम और पदनाम के साथ गिनाता है, जिससे समीक्षकों को लोगों को पहचानने और हस्ताक्षरकर्ता से मिलाने में मदद मिलती है। स्वामित्व और लाभार्थी स्वामित्व दस्तावेज़ों और आपके विवेक से, आपके नियामक और नीति के नियमों के तहत तय होते हैं।
LLP और साझेदारी फ़र्मों की जाँच कैसे करें?
इस प्लेटफ़ॉर्म पर LLP के लिए CIN जैसा endpoint नहीं है, इसलिए इकाई का PAN, पंजीकृत हो तो GSTIN और बैंक खाता इस्तेमाल कीजिए, कम से कम हस्ताक्षरकर्ता को व्यक्ति की तरह जाँचिए, और वे दस्तावेज़ माँगिए जो आपकी नीति माँगे, जैसे पंजीकरण प्रमाणपत्र।
KYB के नतीजों से साख की सीमा कैसे तय करें?
सत्यापित संकेतों को अंक दीजिए और अंक व जोखिम को स्तरों से जोड़िए। PAN, पंजीकरण, हस्ताक्षरकर्ता और बैंक खाते का पूरा सबूत ऊँची सीमा और उधार की शर्तों को सहारा देता है, अधूरा सबूत कम सीमा और अग्रिम भुगतान को। हर फ़ैसले के साथ नियम का संस्करण दर्ज कीजिए और नियम बदलिए, समीक्षक नहीं।
onboarding के बाद व्यवसायों की निगरानी क्यों करें?
onboarding के बाद पंजीकरण रद्द होते हैं, कंपनियाँ रजिस्टर से हटती हैं और खाते बंद होते हैं। जोखिम-स्तर के हिसाब से समय-सारणी पर और लौटे भुगतान, खाता या हस्ताक्षरकर्ता बदलने और विवाद जैसे ट्रिगर पर स्थिति दोबारा जाँचिए। निगरानी बदलाव दिखाती है, जोखिम का फ़ैसला risk टीम करती है।
जिस व्यवसाय के पास GSTIN या CIN नहीं, उसका क्या करें?
हल्का रास्ता रखिए: नाम के साथ प्रोप्राइटर का PAN और उसके नाम का बैंक खाता, या ट्रस्ट और सोसाइटी के लिए किसी इंसान के देखे दस्तावेज़। जायज़ छोटे व्यवसायों को ठुकराने की जगह कम स्तर के साथ कम सीमाएँ या अग्रिम भुगतान दीजिए।
रजिस्टरों के बीच नाम के अंतर कैसे सँभालें?
प्रत्यय और विराम-चिह्न normalise कीजिए, बराबरी की जगह शब्दों का ओवरलैप जाँचिए, और नतीजे को गंभीरता वाला निष्कर्ष बनाइए। ऊँचा ओवरलैप पास, बीच का दोनों नामों के साथ समीक्षा, और निचला तभी पक्का निष्कर्ष जब उसके साथ कोई और असंगति हो।
प्रति व्यवसाय KYB की लागत कितनी है?
PAN, GSTIN, CIN, हस्ताक्षरकर्ता के PAN और बैंक खाते वाली कंपनी पर आपके plan की दरों से चार standard calls और एक बैंक जाँच लगती है, और एकल प्रोप्राइटर पर दो standard calls और एक बैंक जाँच। पेज पर हर plan का हिसाब 18 प्रतिशत GST से पहले दिखाया गया है।
क्या पंजीकरण बदलने पर verification calls सूचना भेजती हैं?
नहीं। verification endpoints synchronous request और response हैं, और इस प्लेटफ़ॉर्म पर webhooks order की घटनाओं के लिए हैं। बदलाव पर नज़र रखने के लिए स्थिति की समय-सारणी वाली दोबारा जाँचें चलाइए, हर referenceId रखिए, और तय कीजिए कि बदलाव का जोखिम पर क्या मतलब है।
स्रोत
- StampMitra का verification API reference, pricing पेज और sandbox documentation, developer.stampmitra.in पर (पढ़ा गया 2026-10-29)।
- PAN का धारक-प्रकार वाला अक्षर, GSTIN की बनावट और CIN की बनावट भारतीय पहचानकर्ता-रूपों की सामान्य जानकारी से बताई गई हैं और इस पेज के लिए 2026 में आधिकारिक पोर्टलों से दोबारा नहीं मिलाई गईं। सख़्त नियम बनाने से पहले पक्का कीजिए।
- Digital Personal Data Protection Act, 2023, India Code: https://www.indiacode.nic.in/handle/123456789/22037?view_type=browse (इस साइट के KYC गाइड में 2026-10-16 को खोजा गया; नियमों की मौजूदा स्थिति आधिकारिक पाठ से पक्की कीजिए)।
- StampMitra का Developer Data Retention and Deletion Schedule और Data Processing Addendum।