CNPJ జనరేటర్ & వ్యాలిడేటర్ - బ్రెజిలియన్ బిజినెస్ ID టూల్
పరీక్ష లేదా బ్రెజిలియన్ బిజినెస్ ID లను తక్షణంగా వ్యాలిడేట్ చేయడానికి చెక్ డిజిట్ వెరిఫికేషన్ సహా ఉచిత టూల్. కాదాస్ట్రో నాసియోనాల్ డా పెస్సోవా జురిడికా తో పని చేసే డెవలపర్లకు.
బ్రెజిలియన్ CNPJ జనరేటర్ మరియు వెరిఫయర్
CNPJ జనరేటర్
పరీక్ష ఉద్దేశ్యాల కోసం చెల్లుబాటు అయ్యే బ్రెజిలియన్ CNPJ నంబర్ తయారు చేయండి.
CNPJ వెరిఫయర్
బ్రెజిలియన్ CNPJ నంబర్ చెల్లుబాటు అవుతుందో లేదో తనిఖీ చేయండి.
దస్త్రపరిశోధన
బ్రెజిలియన్ CNPJ సంఖ్యలను అర్థం చేసుకోవడం
CNPJ (కాడాస్ట్రో నాసియోనాల్ దా పెసోవా జురీడికా) బ్రెజిల్ యొక్క కార్పొరేట్ పన్ను ID—14 అంకెల సంఖ్య, దేశంలోని ప్రతి చట్టపరమైన వ్యాపార సంస్థను గుర్తిస్తుంది. మీరు బ్రెజిలియన్ వ్యాపార డేటాను నిర్వహించే సాఫ్ట్వేర్ నిర్మిస్తున్నట్లయితే, నమోదు ఫారంలు, బిల్లులు మరియు API అనుసంధానాలలో ఈ సంఖ్యలను త్వరగా ఎదుర్కొంటారు.
ఈ సాధనం ప్రాక్టికల్ అయిన దాని కారణం: ఇది వాస్తవ కంపెనీ గుర్తింపు సంఖ్యలను వాడకుండా గณిత పరంగా చెల్లుబాటు అయ్యే CNPJs ను తయారు చేస్తుంది. మీరు 1,000 రికార్డులతో టెస్ట్ డేటాబేస్ సెటప్ చేస్తున్నప్పుడు లేదా రాత్రి 2 గంటలకు ఒక వ్యాలిడేషన్ రూటీన్ డీబగ్ చేస్తున్నప్పుడు, అల్గోరిథం తనిఖీలు అయ్యే CNPJs అవసరం ఉంటుంది, కాని వాస్తవ వ్యాపారాలతో తప్పక తలపడకూడదు. అదే దీని ద్వారా తయారు చేయబడుతుంది.
ఇక్కడ తయారు చేయబడిన సంఖ్యలు అధికారిక రెసిటా ఫెడెరాల్ (బ్రెజిలియన్ ఫెడరల్ రెవెన్యూ సర్వీస్) వ్యాలిడేషన్ అల్గోరిథం అనుసరిస్తాయి. వాటికి సరైన చెక్ అంకెలు మరియు సరైన ఫార్మాటింగ్ ఉంటాయి—కేవలం అవి ప్రభుత్వ డేటాబేస్లో నమోదు చేయబడలేదు. మీ అభివృద్ధి వాతావరణంలో అనుపాలన సమస్యలు సృష్టించని, సింటాక్టికల్ గా సరైన టెస్ట్ డేటాగా భావించండి.
CNPJ అంటే ఏమిటి మరియు దాని महत్వం
CNPJ బ్రెజిల్ యొక్క కార్పొరేట్ గుర్తింపు సంఖ్య - అమెరికాలోని EIN లేదా యుకే యొక్క కంపెనీ రిజిస్ట్రేషన్ నంబర్ వంటిది. బ్రెజిల్లో చట్టపరంగా నడుస్తున్న ప్రతి వ్యాపార సంస్థ తప్పనిసరిగా CNPJ కలిగి ఉండాలి, ఇది రెసిటా ఫెడరల్ (సంఘీయ రెవెన్యూ సేవ) ద్వారా జారీ చేయబడుతుంది.
మీరు CNPJ ను ఈ సందర్భాల్లో కలుస్తారు:
- చెల్లింపులు ప్రాసెస్ చేయడం: బ్రెజిలియన్ చెల్లింపు గేట్వేలు వ్యాపారి ఖాతాల కోసం CNPJ ధృవీకరణ అవసరం
- పన్ను అనుపాలన: బ్రెజిల్లో జారీ చేయబడే ప్రతి బిల్లులో చెల్లుబాటు అయ్యే CNPJ ఉండాలి
- వ్యాపార నమోదు: ప్రభుత్వ సంస్థలు CNPJ ను వ్యవస్థల్లో చట్టపరమైన సంస్థలను ట్రాక్ చేయడానికి వాడుతాయి
- బ్యాంకింగ్ కార్యకలాపాలు: కార్పొరేట్ ఖాతాలు తెరవడం లేదా అంతర్జాతీయ బదిలీలు ప్రాసెస్ చేయడం
- దిగుమతి/ఎగుమతి: సరుకుల పత్రాలకు CNPJ ధృవీకరణ అవసరం
- ప్రభుత్వ కాంట్రాక్టులు: ప్రజా నిర్వాహక వ్యవస్థలు బిడ్లను అంగీకరించే ముందు CNPJ ధృవీకరిస్తాయి
బ్రెజిలియన్ ఈ-కామర్స్ ప్లాట్ఫాంలతో పని చేసిన నా అనుభవంలో, అతి సాధారణ అంతస్తు నుంచి ఒకటి - వ్యాపారిక కొనుగోళ్ల కోసం వినియోగదారులు తమ CNPJ నమోదు చేసే చెక్అవుట్ ప్రవాహం. చెల్లింపు ప్రాసెసర్ చేయడానికి ముందే మీ ధృవీకరణ తర్కం ఫార్మాటింగ్ లోపాలను పట్టుకోవాలి - లేదంటే మీరు నిరోధించగలిగిన వ్యర్థ లావాదేవీలను చూస్తారు.
సిఎన్పిజె నిర్మాణం మరియు ఫార్మాట్
సిఎన్పిజె 14 అంకెలతో రూపొందించబడి ఉంటుంది: XX.XXX.XXX/YYYY-ZZ
నిర్మాణాన్ని విభజించడం:
- మొదటి 8 అంకెలు (XX.XXX.XXX): కంపెనీకి అప్రతిహతంగా కేటాయించిన బేస్ నమోదు సంఖ్య
- తదుపరి 4 అంకెలు (/YYYY): శాఖ లేదా సంస్థ గుర్తంతం—
/0001ప్రధాన కార్యాలయాన్ని సూచిస్తుంది,/0002,/0003శాఖ స్థానాలను సూచిస్తాయి - చివరి 2 అంకెలు (-ZZ): తూకం ఇచ్చిన అల్గోరిథం ద్వారా లెక్కించిన తనిఖీ అంకెలు
ఉదాహరణ: 12.345.678/0001-95
శాఖ గుర్తంతం గురించి ఆసక్తికరమైన విషయం: ఒక కంపెనీ బहుళ స్థానాలను తెరిస్తే, ప్రతి స్థానం మొదటి 8 అంకెలు సమానంగా ఉంటాయి కాని వేరు శాఖ సంఖ్య కలిగి ఉంటాయి. కాబట్టి ఒక రిటైల్ చైన్ 50 దుకాణాలు ఉంటే, అవి /0001 నుండి /0050 వరకు సిఎన్పిజెతో ఉంటాయి, అన్నీ సమాన బేస్ సంఖ్యను కలిగి ఉంటాయి. ఇది బహుళ సిఎన్పిజెలు ఒకే మూల సంస్థకు చెందినవి అని గుర్తించడం సులభం.
తనిఖీ అంకెలు అదృశ్యంగా లేవు—అవి నిర్దిష్ట తూకం వరుసలతో మోడ్యులస్-11 అల్గోరిథం ద్వారా లెక్కించబడతాయి. బ్రెజిలియన్ పరిపాలన పత్రాలలో సాధారణంగా ఉపయోగించే ఈ రూపకల్పన, గణితపరంగా సరైన సంఖ్యలను బోగస్ చేయడం లేదా తప్పుల ద్వారా సరైన సంఖ్యలను తయారు చేయడం కష్టం.
CNPJ ధృవీకరణ ఎలా పనిచేస్తుంది
ధృవీకరణ అల్గోరిథం తూది-11 గణనను ఉపయోగిస్తుంది. దీని వెనుక ఉన్న తర్కం ఇదే:
మొదటి చెక్ అంకెను గణించడం
- మొదటి 12 అంకెలను తీసుకొని వాటిని బరువుల సంఖ్యలతో గుణించండి:
5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - అన్ని ఉత్పత్తులను సంకలనం చేయండి
- సంకలనాన్ని 11 తో భాగించి మిగిలిన భాగాన్ని తీసుకోండి
- మిగిలిన భాగం < 2 అయితే, చెక్ అంకె 0; లేదంటే
11 - మిగిలిన భాగం
రెండవ చెక్ అంకెను గణించడం
- మొదటి 13 అంకెలను (మొదటి చెక్ అంకెను కలుపుకొని) తీసుకొని వాటిని బరువుల సంఖ్యలతో గుణించండి:
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - అన్ని ఉత్పత్తులను సంకలనం చేయండి
- 11 తో భాగించి మిగిలిన భాగాన్ని తీసుకోండి
- మిగిలిన భాగం < 2 అయితే, చెక్ అంకె 0; లేదంటే
11 - మిగిలిన భాగం
ఈ విధానం ఎందుకు పనిచేస్తుంది: బరువు గుణాకార వ్యవస్థ 12 బేస్ అంకెల మధ్య ప్రత్యేక సంబంధాన్ని సృష్టిస్తుంది. బేస్ సంఖ్యలో ఒక్క అంకెను మార్చినా వేరే చెక్ అంకెలు వస్తాయి, ఇది సాధారణ రాసే తప్పులను పట్టుకోవడంలో సహాయపడుతుంది.
ఒక వ్యावహారిక గమనిక: అన్ని అంకెలు సమానంగా ఉన్న CNPJs (వంటి 11.111.111/1111-11) స్వయంగా చెల్లవు, గణిత పరీక్ష పాసైనా. Receita Federal ఈ నమూనాలను స్పష్టంగా తీసివేస్తుంది.
CNPJ జెనరేటర్ మరియు వెరిఫయర్ ఉపయోగించడం ఎలా
టెస్ట్ CNPJs జెనరేట్ చేయడం
మీ టెస్ట్ డేటాబేస్ కోసం చెల్లుబాటు అయ్యే CNPJ అవసరమా? ఇదిగో ఎలా:
- "CNPJ జెనరేట్ చేయి" పై క్లిక్ చేయండి
- టూల్ వెంటనే గణితపరంగా చెల్లుబాటు అయ్యే నంబర్ సృష్టిస్తుంది
- క్లిప్బోర్డ్కు తీసుకోవడానికి "కాపీ" పై క్లిక్ చేయండి
- మీ టెస్ట్ ఫారాలు, డేటాబేస్ సీడ్స్ లేదా యూనిట్ టెస్ట్లలో అతికించండి
ప్రతి జెనరేట్ చేయబడిన CNPJ అల్గోరిథం సearిక తనిఖీలన్నింటినీ అధిగమిస్తుంది, కాని Receita Federal వద్ద నమోదు చేయబడలేదు. దీనర్థం మీరు అసలు కంపెనీ యొక్క గుర్తింపును తప్పుగా ఉపయోగించడం గురించి చింతించకుండా అభివృద్ధిలో స్వేచ్ఛగా వాటిని ఉపయోగించవచ్చు.
CNPJ నంబర్ల నిర్ధారణ
మీకు నిర్ధారణ అవసరమైన CNPJ ఉందా? వెరిఫయర్ దాన్ని నిర్వహిస్తుంది:
- ఇన్పుట్ ఫీల్డ్లో CNPJ పేస్ట్ లేదా టైప్ చేయండి
- ఫార్మాటింగ్ గురించి చింతించవద్దు—ఇది
12345678000195లేదా12.345.678/0001-95తో పని చేస్తుంది - "నిర్ధారించు" పై క్లిక్ చేయండి
- చెక్ అంకెలు సరైనవో లేదో తక్షణ ప్రతిస్పందన పొందండి
వెరిఫయర్ తనిఖీ చేస్తుంది: సరైన నిడివి (14 అంకెలు), సరైన చెక్ అంక గణన, మరియు అన్ని-ఒకే-అంకెల వంటి చెల్లని నమూనాలను మినహాయించడం. ఏమి తనిఖీ చేయదు: CNPJ ప్రభుత్వ డేటాబేస్లో నమోదు చేయబడిందో లేదో—అందుకు Receita Federal నుండి నేరుగా సంప్రదించాల్సి ఉంటుంది.
CNPJ జెనరేటర్ మరియు వాలిడేటర్ యొక్క వాస్తవ ప్రపంచ వాడుక సందర్భాలు
సాఫ్ట్వేర్ అభివృద్ధి మరియు పరీక్ష
డేటాబేస్ సీడింగ్: స్టేజింగ్ environment ను వాస్తవిక పరీక్ష డేటాతో సెట్ అప్ చేసేటప్పుడు, మీకు వందలాది చెల్లుబాటు అయ్యే CNPJs అవసరం. మాన్యువల్ గా వీటిని సృష్టించడం కష్టం, మరియు వాస్తవ కంపెనీ గుర్తింపులను వాడటం గోప్యతకు సమస్యలు కలిగిస్తుంది. జెనరేట్ చేయబడిన CNPJs రెండు సమస్యలనూ పరిష్కరిస్తాయి.
యూనిట్ టెస్టింగ్ అంచెలు: మీ వాలిడేషన్ ఫంక్షన్ 00.000.000/0000-00ను తిరస్కరించాలి కానీ 11.222.333/0001-81ను అంగీకరించాలి. జెనరేటర్ ఉండడం వలన మీరు వాస్తవ మరియు అసంతకం అయిన టెస్ట్ కేసులను వేగంగా సృష్టించవచ్చు.
QA రిగ్రెషన్ టెస్టింగ్: రిజిస్ట్రేషన్ ఫారాలు లేదా B2B చెక్అవుట్ ప్రవాహాలను పరీక్షిస్తున్నప్పుడు, QA బృందాలకు ప్రతి రన్ కోసం కొత్త పరీక్ష డేటా అవసరం. సాధారణ సమస్య: టెస్ట్ environment లు అదే 5-6 CNPJs తో కలుషితం అవుతాయి, ఇది నిర్దిష్ట అంక సంఖ్యా నమూనాలతో మాత్రమే కనిపించే బగ్లను మాస్క్ చేస్తుంది.
API అంతర్సంధి పరీక్ష: PagSeguro లేదా Mercado Pago వంటి బ్రెజిలియన్ చెల్లింపు ప్రాసెసర్లతో అంతర్సంధి చేస్తున్నట్లయితే, వారి సాండ్బాక్స్ environment లు తప్పనిసరిగా చెల్లుబాటు CNPJ ఫార్మాటింగ్ అవసరం. మీరు ఉత్పత్తి డేటాబేస్లను తాకకపోయినా, గణిత సరైనది అయి ఉండాలి.
డేటా ప్రాసెసింగ్ మరియు వాలిడేషన్
దిగుమతి చేసిన డేటా శుభ్రం చేయడం: మీరు 10,000 బ్రెజిలియన్ కంపెనీ రికార్డులతో CSV అందుకున్నారు. ప్రాసెస్ చేయడానికి ముందు, ఏ CNPJs తప్పుగా ఉన్నాయో గుర్తించాలి. వాలిడేటర్ ద్వారా వాటిని తనిఖీ చేయడం వలన తప్పులు, కత్తిరింపు, లేదా తప్పు చెక్ అంకెలతో ఉన్న ఎంట్రీలను గుర్తించవచ్చు - డౌన్స్ట్రీమ్ డీబగ్ చేయడంలో గంటలు సేవ్ అవుతాయి.
క్లయింట్ వైపు ఫారం వాలిడేషన్: ఫారం సమర్పణకు ముందు తప్పు CNPJs ను పట్టుకోవడం వినియోగదారు అనుభవాన్ని మెరుగుపరుస్తుంది. తమ CNPJ లో రెండు అంకెలు మారిన తరువాత ఒక 20 ఫీల్డ్ రిజిస్ట్రేషన్ ఫారం నింపిన తరువాత ఎవరూ లోపం అందుకోవాలని అనుకోరు.
విశ్లేషణ కోసం డేటా అనామకం: ఆనాలిటిక్స్ బృందాలు లేదా బాహ్య భాగస్వాములతో ఉత్పత్తి డేటాను భాగస్వాం చేసేటప్పుడు, వాస్తవ CNPJs ను చెల్లుబాటు అయిన కానీ నకली CNPJs తో భర్తీ చేయాలి. ఇది మీ డేటాసెట్ లో సంబంధిత సమగ్రతను నిలుపుకుంటుంది, అసలు వ్యాపార గుర్తింపులను సంరక్షిస్తుంది.
అంతర్జాతీయ వ్యాపార కార్యకలాపాలు
బ్రెజిలియన్ అవసరాలను అర్థం చేసుకోవడం: మీరు బ్రెజిలియన్ మార్కెట్కు విస్తరిస్తున్నట్లయితే, మీరు వ్యవహారాలు, అంచెల్లు, మరియు షిప్పింగ్ పత్రాలలో CNPJ అవసరాలను కలిగి ఉంటారు. ఫార్మాట్ ప్రయోగించడానికి సాధనం ఉండడం వలన మీ సిస్టమ్లు ఏమి నిర్వహించాలో అర్థం చేసుకోవచ్చు.
మూడవ పక్ష అంతర్సంధి నిర్దేశాలు: బ్రెజిలియన్ SaaS సరఫరాదారుల API పత్రాలను సమీక్షిస్తున్నప్పుడు, పేలోడ్ ఉదాహరణలలో CNPJ ఫీల్డ్లను తరచుగా చూస్తారు. చెల్లుబాటు అయిన పరీక్ష విలువలను సృష్టించగలగడం వలన మీరు అంతర్సంధులను వేగంగా ప్రోటోటైప్ చేయవచ్చు.
CNPJ ధృవీకరణ వైకల్పిక విధానాలు
ప్రోగ్రామింగ్ లైబ్రరీలు
మీ అప్లికేషన్ లాజిక్లో CNPJ ధృవీకరణ అవసరం ఉంటే, ఈ లైబ్రరీలు చెక్ అంకెల యాల్గోరిథం అమలు చేస్తాయి:
- JavaScript/Node.js:
cpf-cnpj-validator(130k+ వారపు డౌన్లోడ్లు),validator.js(బ్రెజిలియన్ డాక్యుమెంట్లను సపోర్ట్ చేస్తుంది) - Python:
validate-docbr(CPF, CNPJ మరియు ఇతర బ్రెజిలియన్ డాక్యుమెంట్లను ధృవీకరిస్తుంది),python-cnpj - PHP:
respect/validation(CNPJ నిబంధనలను కలిగి ఉంది),brazilianutils - Java:
caelum-stella(సమగ్ర బ్రెజిలియన్ డాక్యుమెంట్ ధృవీకరణ) - Ruby:
cpf_cnpjజెమ్
ఈ లైబ్రరీలు సాధారణంగా బహుళ బ్రెజిలియన్ డాక్యుమెంట్ రకాల (CPF, CNPJ మొదలైనవి) ఫార్మాటింగ్, పార్సింగ్ మరియు ధృవీకరణను నిర్వహిస్తాయి.
అధికారిక ధృవీకరణ API లు
ప్రోడక్షన్ సిస్టమ్లు వాస్తవ వ్యాపార నమోదును ధృవీకరించాలనుకున్నప్పుడు:
- Receita Federal పబ్లిక్ సర్వీస్: Consulta CNPJ API అధికారిక డేటాబేస్తో ధృవీకరణను అనుమతిస్తుంది (సరైన authorization మరియు రేట్ పరిమితి అవసరం)
- మూడవ పక్ష డేటా సరఫరాదారులు: Serasa Experian మరియు Boa Vista SCPC వంటి సేవలు వాణిజ్య API లను అందిస్తాయి, అవి కంపెనీ వివరాలు, నమోదు స్థితి మరియు క్రెడిట్ సమాచారాన్ని అందిస్తాయి
గమనిక: ఈ సేవలు వాస్తవ నమోదును, కేవలం గణిత ధృవీకరణను మాత్రమే తనిఖీ చేస్తాయి. మీకు సరైన authorization అవసరం మరియు ప్రోడక్షన్ వాడకం కోసం API ఖర్చులు ఊహించాలి.
ప్రతి విధానాన్ని ఎప్పుడు వాడాలి
ఈ బ్రౌజర్ టూల్ను వాడండి: మీకు అదనపు అవలంబనలు సంస్థాపించకుండా త్వరిత ధృవీకరణ, డెమోల కోసం టెస్ట్ డేటా తయారు చేయడం, లేదా CNPJ ధృవీకరణ పనిచేయు విధానం నేర్చుకోవడం అవసరం ఉన్నప్పుడు.
లైబ్రరీని వాడండి: మీరు ఫారం ప్రాసెసింగ్ భాగంగా క్లయంట్ సైడ్ లేదా సర్వర్ సైడ్ ధృవీకరణ అవసరమైన అప్లికేషన్ నిర్మిస్తున్నప్పుడు.
అధికారిక API ని వాడండి: మీకు CNPJ వాస్తవ, సక్రియ వ్యాపార సంస్థ తో నిజంగా అనుసంధానం ఉందో, ప్రస్తుత నమోదు స్థితి ఏమిటో తెలుసుకోవాలనుకున్నప్పుడు.
సాంకేతిక అమలు వివరాలు
ఈ సాధనం మీ బ్రౌజర్లో JavaScript ఉపయోగించి పూర్తిగా నడుస్తుంది - సర్వర్ అభ్యర్థనలు లేదు, మీ యంత్రం నుండి డేటా బయటకు వెళ్లదు. ఇక్కడ అల్గోరిథం ఎలా పని చేస్తుందో వివరాలు ఉన్నాయి, మీ స్వంత ప్రాజెక్ట్లకు అనుకూలీకరించుకోవచ్చు:
CNPJ రూపొందింపు అల్గోరిథం
1function generateCNPJ() {
2 // మొదటి 12 అంకెలను యాదృచ్ఛికంగా రూపొందించు
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // మొదటి తనిఖీ అంకెను లెక్కించు
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // రెండవ తనిఖీ అంకెను లెక్కించు
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // CNPJ ఫార్మాట్ చేయి
14 return formatCNPJ(digits.join(''));
15}
16
17function calculateCheckDigit(digits) {
18 const weights = digits.length < 13
19 ? [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
20 : [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
21
22 const sum = digits.reduce((acc, digit, index) => {
23 return acc + digit * weights[index];
24 }, 0);
25
26 const remainder = sum % 11;
27 return remainder < 2 ? 0 : 11 - remainder;
28}
29CNPJ తనిఖీ అల్గోరిథం
1function validateCNPJ(cnpj) {
2 // సంఖ్యాళం కానిది తీసివేయి
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // సరైన పొడవును తనిఖీ చేయి
6 if (cleanCNPJ.length !== 14) return false;
7
8 // తెలిసిన తప్పుడు నమూనాలను తనిఖీ చేయి (అన్ని అంకెలు సమానం)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // అంకెల అరే చేయి
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // మొదటి తనిఖీ అంకెను తనిఖీ చేయి
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // రెండవ తనిఖీ అంకెను తనిఖీ చేయి
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24CNPJ ఫార్మాటింగ్ ఫంక్షన్
1function formatCNPJ(cnpj) {
2 // సంఖ్యాళం కానిది తీసివేయి
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // పొడవు ఆధారంగా ఫార్మాట్ చేయి
6 if (cleanCNPJ.length <= 2) {
7 return cleanCNPJ;
8 } else if (cleanCNPJ.length <= 5) {
9 return `${cleanCNPJ.slice(0, 2)}.${cleanCNPJ.slice(2)}`;
10 } else if (cleanCNPJ.length <= 8) {
11 return `${cleanCNPJ.slice(0, 2)}.${cleanCNPJ.slice(2, 5)}.${cleanCNPJ.slice(5)}`;
12 } else if (cleanCNPJ.length <= 12) {
13 return `${cleanCNPJ.slice(0, 2)}.${cleanCNPJ.slice(2, 5)}.${cleanCNPJ.slice(5, 8)}/${cleanCNPJ.slice(8)}`;
14 } else {
15 return `${cleanCNPJ.slice(0, 2)}.${cleanCNPJ.slice(2, 5)}.${cleanCNPJ.slice(5, 8)}/${cleanCNPJ.slice(8, 12)}-${cleanCNPJ.slice(12, 14)}`;
16 }
17}
18ఈ ప్రాథమిక ఫంక్షన్లను ఇతర ప్రోగ్రామింగ్ భాషలలో కూడా అదే తర్కం అనుసరించి అమలు చేయవచ్చు. Python మరియు Java లో ఉదాహరణలు ఇక్కడ ఉన్నాయి:
Python అమలు
1import random
2
3def calculate_check_digit(digits):
4 weights = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] if len(digits) < 13 else [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
5
6 total = 0
7 for i in range(len(digits)):
8 total += digits[i] * weights[i]
9
10 remainder = total % 11
11 return 0 if remainder < 2 else 11 - remainder
12
13def generate_cnpj():
14 # మొదటి 12 అంకెలను యాదృఛ్ఛికంగా రూపొందించు
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # మొదటి తనిఖీ అంకెను లెక్కించు
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # రెండవ తనిఖీ అంకెను లెక్కించు
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # CNPJ ఫార్మాట్ చేయి
26 cnpj = ''.join(map(str, digits))
27 return f"{cnpj[:2]}.{cnpj[2:5]}.{cnpj[5:8]}/{cnpj[8:12]}-{cnpj[12:]}"
28
29def validate_cnpj(cnpj):
30 # సంఖ్యాళం కానిది తీసివేయి
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # పొడవు తనిఖీ
34 if len(cnpj) != 14:
35 return False
36
37 # అన్ని అంకెలు సమానం అని తనిఖీ చేయి
38 if len(set(cnpj)) == 1:
39 return False
40
41 # అంకెల అరే చేయి
42 digits = [int(d) for d in cnpj]
43
44 # మొదటి తనిఖీ అంకెను తనిఖీ చేయి
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # రెండవ తనిఖీ అంకెను తనిఖీ చేయి
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55Java అమలు
1import java.util.Random;
2
3public class CNPJUtils {
4
5 public static String generateCNPJ() {
6 Random random = new Random();
7 int[] digits = new int[14];
8
9 // మొదటి 12 అంకెలను యాదృఛ్ఛికంగా రూపొందించు
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // మొదటి తనిఖీ అంకెను లెక్కించు
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // రెండవ తనిఖీ అంకెను లెక్కించు
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // CNPJ ఫార్మాట్ చేయి
21 return String.format("%02d.%03d.%03d/%04d-%02d",
22 digits[0] * 10 + digits[1],
23 digits[2] * 100 + digits[3] * 10 + digits[4],
24 digits[5] * 100 + digits[6] * 10 + digits[7],
25 digits[8] * 1000 + digits[9] * 100 + digits[10] * 10 + digits[11],
26 digits[12] * 10 + digits[13]);
27 }
28
29 private static int calculateCheckDigit(int[] digits, int length) {
30 int[] weights = length < 13
31 ? new int[]{5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2}
32 : new int[]{6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2};
33
34 int sum = 0;
35 for (int i = 0; i < length; i++) {
36 sum += digits[i] * weights[i];
37 }
38
39 int remainder = sum % 11;
40 return remainder < 2 ? 0 : 11 - remainder;
41 }
42
43 public static boolean validateCNPJ(String cnpj) {
44 // సంఖ్యాళం కానిది తీసివేయి
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // పొడవు తనిఖీ
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // అన్ని అంకెలు సమానం అని తనిఖీ చేయి
53 boolean allDigitsSame = true;
54 for (int i = 1; i < cnpj.length(); i++) {
55 if (cnpj.charAt(i) != cnpj.charAt(0)) {
56 allDigitsSame = false;
57 break;
58 }
59 }
60 if (allDigitsSame) {
61 return false;
62 }
63
64 // అంకెల అరే చేయి
65 int[] digits = new int[14];
66 for (int i = 0; i < 14; i++) {
67 digits[i] = Character.getNumericValue(cnpj.charAt(i));
68 }
69
70 // మొదటి తనిఖీ అంకెను తనిఖీ చేయి
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // రెండవ తనిఖీ అంకెను తనిఖీ చేయి
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85महत्वपूर्ण सीमाएं और विचार
यह टूल क्या कर सकता है और नहीं कर सकता
यह मान्य करता है: गणितीय सही - जांच अंक एल्गोरिदम के गणना से मेल खाते हैं।
यह मान्य नहीं करता है: क्या CNPJ रेसीटा फेडरल के साथ पंजीकृत है, क्या यह एक सक्रिय कंपनी से संबंधित है, या क्या यह आपके अपेक्षित व्यवसाय नाम से जुड़ा है।
इसे स्पेल-चेकिंग बनाम तथ्य-जांच के रूप में सोचें। यह टूल आपको बताता है कि एक CNPJ गणितीय नियमों के अनुसार "वर्तनी" सही है, लेकिन यह नहीं बता सकता कि संख्या एक वास्तविक, सक्रिय व्यवसाय इकाई से मेल खाती है।
कानूनी और नैतिक उपयोग
उत्पन्न CNPJ केवल परीक्षण और विकास के लिए हैं। वे गणितीय रूप से वैध हैं लेकिन ब्राजीलीय अधिकारियों के साथ पंजीकृत नहीं हैं, जिसका अर्थ है:
- ✅ इसके लिए सुरक्षित उपयोग: टेस्ट डेटाबेस को भरना, यूनिट टेस्टिंग सत्यापन तर्क, QA वातावरण, दस्तावेज़ीकरण में कोड उदाहरण
- ❌ कभी न करें: कर दाखिल करना, व्यवसाय पंजीकरण, अनुबंधों पर हस्ताक्षर करना, वास्तविक लेनदेन प्रोसेस करना, या व्यवसाय पहचान का गलत प्रतिनिधित्व करना
किसी नकली CNPJ का आधिकारिक उद्देश्यों के लिए उपयोग न केवल अनैतिक है - यह ब्राजीलीय कानून के तहत अवैध है और धोखाधड़ी के आरोपों में परिणाम दे सकता है।
जानने योग्य तकनीकी सीमाएं
यादृच्छिक उत्पादन के निहितार्थ: टूल पहले 12 अंक यादृच्छिक रूप से उत्पन्न करता है। रेसीटा फेडरल द्वारा जारी वास्तविक CNPJ पंजीकरण तिथि, क्षेत्रीय कार्यालय और व्यवसाय प्रकार से संबंधित आंतरिक पैटर्न का पालन करते हैं। उत्पन्न संख्याएं इन पैटर्न से मेल नहीं खाएंगी, जिन्हें परिष्कृत सत्यापन प्रणाली चिह्नित कर सकती है।
कोई सांकेतिक सत्यापन नहीं: एक वैध CNPJ प्रारूप का मतलब वैध व्यवसाय संदर्भ नहीं है। उदाहरण के लिए, सरकारी संस्थाओं के पास विशिष्ट CNPJ रेंज होती है - यह जनरेटर संयोग से एक बना सकता है, लेकिन यह सार्थक नहीं होगा।
प्रारूप संचालन: वैलिडेटर विभिन्न इनपुट प्रारूप स्वीकार करता है (12345678000195, 12.345.678/0001-95), लेकिन कुछ पुरानी प्रणालियां सटीक स्वरूप की अपेक्षा करती हैं। हमेशा अपनी विशिष्ट एकीकरण आवश्यकताओं के साथ परीक्षण करें।
गोपनीयता और सुरक्षा
सभी प्रोसेसिंग आपके ब्राउज़र में क्लाइंट-साइड होती है। कोई भी CNPJ जो आप उत्पन्न या मान्य करते हैं, सर्वर पर नहीं भेजा जाता, लॉग नहीं किया जाता या संग्रहीत नहीं किया जाता। टूल किसी भी व्यक्तिगत जानकारी का अनुरोध, संचालन या प्रोसेस नहीं करता।
CNPJ ధృవీకరణ గురించి తరచుగా అడిగే ప్రశ్నలు
CNPJ ధృవీకరణ మరియు పరిశీలన మధ్య తేడా ఏమిటి?
ధృవీకరణ సంఖ్యను గณిత దृష్ట్యా సరైనదా అని తనిఖీ చేస్తుంది - సరైన ఫార్మాట్, సరైన చెక్ అంకెలు, తప్పుడు నమూనాలు లేవు. ఈ సాధనం ధృవీకరణ చేస్తుంది.
పరిశీలన CNPJ ని Receita Federal డేటాబేస్ లో నిజమైన కంపెనీతో సరిచూస్తుంది. పరిశీలన కోసం ప్రభుత్వ డేటాబేస్ ను సంప్రదించాలి మరియు ఈ సాధనం అలా చేయదు.
మీకు సంపూర్ణంగా సరైన CNPJ ఉండవచ్చు కానీ పరిశీలించబడనిది (ఈ సాధనం సృష్టించే టెస్ట్ సంఖ్యల వంటిది), లేదా నిజమైన కంపెనీకి చెందిన తప్పుడు CNPJ (ఎవరైనా దాన్ని నమోదు చేసేటప్పుడు తప్పు చేసినందున).
నేను ఉత్పత్తి పరీక్షలకు సృష్టించిన CNPJs ను ఉపయోగించవచ్చా?
అది "ఉత్పత్తి పరీక్షలు" అంటే దేనిని అర్థం చేసుకుంటున్నారో అది వాస్తవం. అవి స్టేజింగ్ environment, లోడ్ పరీక్షలు మరియు ప్రీ-లాంచ్ QA కి సరిపోతాయి. కాని "ఉత్పత్తి పరీక్షలు" అంటే నిజమైన లావాదేవీలు, నిజమైన ప్రభుత్వ API లు లేదా నిజమైన ఆర్థిక సిస్టమ్ లతో పరీక్షించడం అయితే - అప్పుడు వద్దు, మీకు నిజమైన నమోదైన CNPJs అవసరం.
సురక్షితమైన విధానం: అలిగిన టెస్ట్ environment లలో సృష్టించిన CNPJs ను ఉపయోగించండి, ఆపై ఉత్పత్తి అంతరాళాలను పరీక్షించేటప్పుడు నిజమైన టెస్ట్ కంపెనీ CNPJs (మీ నియంత్రణలో ఉన్నవి) ను ఉపయోగించండి.
ధృవీకరణ 11.111.111/1111-11 ను ఎందుకు తిరస్కరిస్తుంది?
అన్ని సమాన అంకెలతో CNPJ సరైన చెక్ అంకెలను సృష్టించవచ్చు, Receita Federal ఈ నమూనాలను స్పష్టంగా మినహాయిస్తుంది. ఇది గణిత నियమం కాదు, వ్యాపార నియమం. అదే విధంగా కొన్ని ధృవీకరణ సిస్టమ్ లలో వరుసపు నమూనాలకు కూడా వర్తిస్తుంది.
ఇది "password123" వంటి సంకేతపదాలను అనేక సిస్టమ్ లు తిరస్కరించడం వంటిది - అవి సాంకేతికంగా సరైనవి కాని వ్యावహారికంగా అంగీకరించదగ్గవి కావు.
వేర్వేరు లోకేళ్లలో CNPJ ధృవీకరణను ఎలా నిర్వహించాలి?
బ్రెజిలియన్ కంపెనీలు అంతర్జాతీయ వ్యాపారం చేసేటప్పుడు కొన్నిసార్లు విదేశీ సిస్టమ్ లలో CNPJs ను నమోదు చేసేటప్పుడు ఫార్మాటింగ్ అక్షరాలను వదిలేస్తాయి. మీ ధృవీకరణ లాజిక్ తనిఖీ చేయడానికి కంటే ముందు నాన్-సంఖ్యాత్మక అక్షరాలను తీసివేయాలి:
1const cleanCNPJ = input.replace(/\D/g, ''); // అంకెలు తప్ప అన్నింటినీ తీసివేయి
212.345.678/0001-95, 12345678000195, మరియు 12 345 678 0001 95 ను సమాన నిప్పులుగా అంగీకరించండి.
CNPJ vs CPF ధృవీకరణ గురించి ఏమి?
CPF (Cadastro de Pessoas Físicas) బ్రెజిల్ యొక్క వ్యక్తిగత పన్ను ID, CNPJ వ్యాపారాల కోసం. అవి వేర్వేరు చెక్ అంక నిర్మాణ విధానాలు మరియు పొడవులు (CPF లో 11 అంకెలు, CNPJ లో 14 అంకెలు) కలిగి ఉంటాయి. మీరు బ్రెజిలియన్ అప్ ను రెండింటినీ నిర్వహిస్తుంటే, మీకు వేర్వేరు ధృవీకరణ ఫంక్షన్ లు అవసరం - అయితే అనేక లైబ్రరీలు రెండు ఫార్మాట్ లనూ మద్దతు ఇస్తాయి.
సాధారణ నమూనా: వినియోగదారులు ఒకే ఫీల్డ్ లో CPF లేదా CNPJ ను నమోదు చేయనివ్వండి, ఆపై ఫార్మాటింగ్ అక్షరాలను తీసివేసిన తర్వాత పొడవు ఆధారంగా రకాన్ని గుర్తించండి.
బ్రెజిల్ లో నడుస్తున్న విదేశీ కంపెనీలకు ఇది పనిచేస్తుందా?
బ్రెజిల్ లో నడుస్తున్న విదేశీ కంపెనీలు Receita Federal నుండి CNPJs పొందాలి. వాటి CNPJs దేశీయ కంపెనీల వంటి ఫార్మాట్ మరియు ధృవీకరణ నియమాలను అనుసరిస్తాయి. "విదేశీ కంపెనీ" CNPJ ఫార్మాట్ ఏదీ లేదు.
అయితే, విదేశీ కంపెనీలకు అదనపు పత్రం సంబంధిత అవసరాలు మరియు వేర్వేరు నమోదు ప్రక్రియలు ఉంటాయి - నిర్దిష్ట వివరాల కోసం బ్రెజిలియన్ వ్యాపార న్యాయవాదిని సంప్రదించండి.
CNPJ నమోదు సమాచారాన్ని తనిఖీ చేయడానికి ప్రభుత్వ డేటాబేస్ ను సంప్రదించవచ్చా?
అవును, Receita Federal వారి Consulta Pública CNPJ సేవ ద్వారా CNPJ సమాచారాన్ని తనిఖీ చేయడానికి సార్వజనిక ప్రాప్యతను అందిస్తుంది. మీరు CNPJs ను మాన్యువల్ గా వెతుకోవచ్చు లేదా సరైన అధికారంతో API లను ప్రోగ్రామ్ చేయగల ప్రాప్యతను పొందవచ్చు.
గమనిక: భారీ వాడకం కోసం నమోదు అవసరం మరియు దుర్వినియోగాన్ని నిరోధించడం కోసం రేట్ పరిమితులు ఉంటాయి.
CNPJs ఎంత తరచుగా మారుతాయి?
CNPJs శాశ్వత గుర్తింపు సంఖ్యలు, కంపెనీ తన పేరు, చిరునామా లేదా యాజమాన్య నిర్మాణాన్ని మార్చినప్పుడు అవి మారవు. అయితే, ఒక కంపెనీ మూసివేయబడి తర్వాత మళ్ళీ నమోదు చేసుకుంటే, కొత్త CNPJ పొందవచ్చు. బ్రాంచ్ సంఖ్యలు (/XXXX భాగం) కంపెనీలు కొత్త స్థానాలు తెరిచినప్పుడు జోడించబడతాయి, కాని బేస్ 8 అంకెల సంఖ్యా స్థిరంగా ఉంటుంది.
సంప్రదింపులు మరియు అదనపు వనరులు
అధికారిక ప్రభుత్వ వనరులు
- రెసీటా ఫెడరల్ దో బ్రాజిల్ - అధికారిక పోర్టల్ - CNPJ నమోదు మరియు తనిఖీయ సేవలతో బ్రాజిలియన్ ఫెడరల్ రెవెన్యూ సర్వీస్ యొక్క అధికారిక వెబ్సైట్
- కన్సల్టా పబ్లిక CNPJ - పబ్లిక్ CNPJ లుకప్ - CNPJ నమోదు స్థితిని తనిఖీ చేయడానికి అధికారిక ప్రభుత్వ సేవ
- నార్మేటివ్ ఇన్స్ట్రక్షన్ RFB నం. 1863/2018 - బ్రాజిల్లో CNPJ నమోదు మరియు వాడకం నిర్వహించే చట్ట నిబంధనలు
సాంకేతిక ప్రమాణాలు మరియు పత్రీకరణ
- మోడ్యులర్ అంకగణిత అల్గోరిథం - చెక్ అంక గణన మోడులో 11 అంకగణితంను ఉపయోగిస్తుంది, తనిఖీ అంకల కోసం ప్రామాణిక విధానం
- ISO/IEC 7064 - బ్రాజిలియన్ పత్ర తనిఖీ రూపకల్పనను ప్రభావితం చేసిన చెక్ అంక వ్యవస్థల అంతర్జాతీయ ప్రమాణం
- బ్రాజిలియన్ సివిల్ కోడ్ (చట్టం నం. 10.406/2002) - CNPJ నమోదు అవసరమైన వ్యాపార సంస్థ వర్గీకరణలను నిర్వచించే చట్ట ఫ్రేమ్వర్క్
డెవలపర్ వనరులు
- NPM ప్యాకేజ్ రిజిస్ట్రీ - npmjs.com - బ్రాజిలియన్ పత్ర తనిఖీదారులను కలిగిన JavaScript లైబ్రరీల నిక్షేపం
- PyPI (Python ప్యాకేజ్ సూచిక) - pypi.org - CNPJ తనిఖీ మరియు బ్రాజిలియన్ పత్ర ప్రాసెసింగ్ కోసం Python లైబ్రరీలు
- GitHub - బహుళ ప్రోగ్రామింగ్ భాషలలో CNPJ తనిఖీ యొక్క ఓపెన్-సోర్స్ అమలులు
CNPJ రూపొందించడం మరియు నిర్ధారించడం ప్రారంభించండి
మీరు బ్రెజిలియన్ ఇ-కామర్స్ ప్లాట్ఫాం నిర్మిస్తున్నారు, మెర్కాడో పాగో తో చెల్లింపు అంతర్జాలాలను పరీక్షిస్తున్నారు, లేదా CNPJ నిర్ధారణ ప్రక్రియ ఎలా పని చేస్తుందో అర్థం చేసుకోవాలనుకుంటున్నారు, ఈ సాధనం మీకు రూపొందించడం మరియు నిర్ధారణ సామర్థ్యాలను వెంటనే అందిస్తుంది.
ఏ సంస్థాపన అవసరం లేదు, ఏ API కీలు అవసరం లేదు, ఏ సంక్లిష్ట సెటప్ అవసరం లేదు. కేవలం మీ బ్రౌజర్ తెరిచి చెల్లుబాటు అయ్యే బ్రెజిలియన్ వ్యాపార గుర్తింపు సంఖ్యలతో పని చేయడం ప్రారంభించండి.