ਭਾਰਤੀ ਕਾਰੋਬਾਰੀ ID ਨਾਲ ਕੰਮ ਕਰਨ ਵਾਲੇ ਵਿਕਾਸਕਾਂ ਅਤੇ ਟੈਸਟਿੰਗ ਕਰਨ ਵਾਲਿਆਂ ਲਈ ਡਿਜ਼ਾਈਨ ਕੀਤੇ ਗਏ ਇਸ ਸਧਾਰਨ ਟੂਲ ਨਾਲ ਵੈਧ ਭਾਰਤੀ CNPJ ਨੰਬਰ ਜਨਰੇਟ ਕਰੋ ਅਤੇ ਮੌਜੂਦਾ ਨੰਬਰਾਂ ਦੀ ਪ੍ਰਮਾਣਿਕਤਾ ਕਰੋ।
ਪਰੀਖਿਆ ਦੇ ਉਦੇਸ਼ਾਂ ਲਈ ਇੱਕ ਸਹੀ ਭਾਰਤੀ CNPJ ਨੰਬਰ ਬਣਾਓ।
ਚੈੱਕ ਕਰੋ ਕਿ ਇੱਕ ਭਾਰਤੀ CNPJ ਨੰਬਰ ਸਹੀ ਹੈ ਜਾਂ ਨਹੀਂ।
ਬ੍ਰਾਜ਼ੀਲੀਆਈ CNPJ (ਕੈਡਾਸਟ੍ਰੋ ਨਾਸਿਓਨਲ ਡਾ ਪੇਸੋਆ ਜੁਰਿਡਿਕਾ) ਇੱਕ ਵਿਲੱਖਣ ਪਛਾਣ ਨੰਬਰ ਹੈ ਜੋ ਬ੍ਰਾਜ਼ੀਲ ਵਿੱਚ ਕਾਰੋਬਾਰਾਂ ਅਤੇ ਕਾਨੂੰਨੀ ਇਕਾਈਆਂ ਨੂੰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਬ੍ਰਾਜ਼ੀਲੀਆਈ CNPJ ਜਨਰੇਟਰ ਅਤੇ ਵੈਲੀਡੇਟਰ ਟੂਲ ਇੱਕ ਸਧਾਰਨ, ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕੇ ਨਾਲ ਸਹੀ CNPJ ਨੰਬਰਾਂ ਨੂੰ ਜਨਰੇਟ ਕਰਨ ਅਤੇ ਮੌਜੂਦਾ CNPJ ਨੰਬਰਾਂ ਦੀ ਵੈਲੀਡੇਸ਼ਨ ਕਰਨ ਦਾ ਮੌਕਾ ਦਿੰਦਾ ਹੈ, ਜੋ ਕਿ ਸਰਕਾਰੀ ਬ੍ਰਾਜ਼ੀਲੀਆਈ ਅਲਗੋਰਿਦਮ ਦੇ ਅਨੁਸਾਰ ਹੁੰਦਾ ਹੈ। ਚਾਹੇ ਤੁਸੀਂ ਇੱਕ ਡਿਵੈਲਪਰ ਹੋ ਜੋ ਬ੍ਰਾਜ਼ੀਲੀਆਈ ਕਾਰੋਬਾਰੀ ਡੇਟਾ ਨੂੰ ਸੰਭਾਲਣ ਵਾਲੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੋ, ਇੱਕ QA ਵਿਸ਼ੇਸ਼ਜ्ञ ਜੋ ਟੈਸਟ ਕੇਸ ਬਣਾਉਂਦਾ ਹੈ, ਜਾਂ ਕੋਈ ਵੀ ਜੋ ਬ੍ਰਾਜ਼ੀਲੀਆਈ ਕੰਪਨੀ ਦੀ ਜਾਣਕਾਰੀ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ, ਇਹ ਟੂਲ CNPJ ਨੰਬਰਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ।
ਅਸਲੀ CNPJ ਨੰਬਰਾਂ ਦੇ ਵਿਰੁੱਧ ਜੋ ਬ੍ਰਾਜ਼ੀਲੀਆਈ ਫੈਡਰਲ ਰਿਵਿਨਿਊ ਸਰਵਿਸ (ਰੇਸੀਟਾ ਫੈਡਰਲ) ਦੁਆਰਾ ਅਧਿਕਾਰਿਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਇਸ ਟੂਲ ਦੁਆਰਾ ਜਨਰੇਟ ਕੀਤੇ ਗਏ CNPJ ਗਣਿਤਕ ਤੌਰ 'ਤੇ ਸਹੀ ਹਨ ਪਰ ਅਸਲ ਕੰਪਨੀਆਂ ਨੂੰ ਰਜਿਸਟਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਉਨ੍ਹਾਂ ਟੈਸਟਿੰਗ ਦ੍ਰਿਸ਼ਟੀਕੋਣਾਂ, ਨਮੂਨਾ ਡੇਟਾ ਅਤੇ ਵਿਕਾਸ ਦੇ ਵਾਤਾਵਰਣਾਂ ਲਈ ਬਿਲਕੁਲ ਉਚਿਤ ਬਣਾਉਂਦਾ ਹੈ ਜਿੱਥੇ ਤੁਹਾਨੂੰ ਸਹੀ ਫਾਰਮੈਟ ਅਤੇ ਵੈਲੀਡ CNPJ ਨੰਬਰਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਬਿਨਾਂ ਅਸਲੀ ਕਾਰੋਬਾਰੀ ਪਛਾਣਕਰਤਾ ਦੀ ਵਰਤੋਂ ਕੀਤੇ।
CNPJ (ਕੈਡਾਸਟ੍ਰੋ ਨਾਸਿਓਨਲ ਡਾ ਪੇਸੋਆ ਜੁਰਿਡਿਕਾ) ਇੱਕ 14-ਅੰਕ ਦਾ ਪਛਾਣ ਨੰਬਰ ਹੈ ਜੋ ਬ੍ਰਾਜ਼ੀਲ ਦੀ ਫੈਡਰਲ ਰਿਵਿਨਿਊ ਸਰਵਿਸ ਦੁਆਰਾ ਕਾਰੋਬਾਰਾਂ ਅਤੇ ਕਾਨੂੰਨੀ ਇਕਾਈਆਂ ਨੂੰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਬ੍ਰਾਜ਼ੀਲ ਵਿੱਚ ਕੰਪਨੀ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਨੰਬਰ ਜਾਂ ਟੈਕਸ ID ਦੇ ਸਮਾਨ ਹੈ। ਬ੍ਰਾਜ਼ੀਲ ਵਿੱਚ ਕਾਨੂੰਨੀ ਤੌਰ 'ਤੇ ਕਾਰੋਬਾਰ ਕਰਨ ਵਾਲੀ ਹਰ ਕੰਪਨੀ ਕੋਲ ਇੱਕ CNPJ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਜੋ ਕਿ ਵਰਤੋਂ ਲਈ ਹੈ:
CNPJ ਬ੍ਰਾਜ਼ੀਲ ਦੇ ਕਾਰੋਬਾਰੀ ਪਾਰਿਸਥਿਤਿਕੀ ਵਿੱਚ ਇੱਕ ਅਹਮ ਪਛਾਣਕਰਤਾ ਹੈ ਅਤੇ ਇਹ ਸਰਕਾਰੀ ਦਸਤਾਵੇਜ਼ਾਂ, ਸਮਝੌਤਿਆਂ ਅਤੇ ਵਿੱਤੀ ਰਿਕਾਰਡਾਂ 'ਤੇ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ।
ਇੱਕ ਬ੍ਰਾਜ਼ੀਲੀਆਈ CNPJ 14 ਅੰਕਾਂ ਦਾ ਹੁੰਦਾ ਹੈ, ਜੋ ਆਮ ਤੌਰ 'ਤੇ ਇਸ ਤਰ੍ਹਾਂ ਫਾਰਮੈਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ: XX.XXX.XXX/YYYY-ZZ
ਇਸ ਦੀ ਢਾਂਚਾ ਹੇਠਾਂ ਦਿੱਤੇ ਤਰੀਕੇ ਨਾਲ ਵੰਡਿਆ ਗਿਆ ਹੈ:
ਉਦਾਹਰਣ ਲਈ, ਇੱਕ ਸਹੀ ਫਾਰਮੈਟ ਕੀਤਾ ਗਿਆ CNPJ ਇਸ ਤਰ੍ਹਾਂ ਹੋ ਸਕਦਾ ਹੈ: 12.345.678/0001-95
ਚੈਕ ਅੰਕ (ਆਖਰੀ ਦੋ ਨੰਬਰ) ਇੱਕ ਵਿਸ਼ੇਸ਼ ਗਣਿਤ ਅਲਗੋਰਿਦਮ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਗਣਨਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੋ CNPJ ਦੀ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ। ਇਹ ਅਲਗੋਰਿਦਮ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਯਾਦਸ਼ਕਤ ਨੰਬਰਾਂ ਨੂੰ ਬਿਨਾਂ ਸਹੀ ਗਣਨਾ ਤਰੀਕੇ ਦੀ ਪਾਲਣਾ ਕੀਤੇ ਵੈਲੀਡੇਸ਼ਨ ਪਾਸ ਨਹੀਂ ਕਰ ਸਕਦੇ।
CNPJ ਵੈਲੀਡੇਸ਼ਨ ਅਲਗੋਰਿਦਮ ਇੱਕ ਭਾਰਤਮਾਨ ਗਣਨਾ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਜੋ ਚੈਕ ਅੰਕਾਂ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ ਹੁੰਦੀ ਹੈ। ਇਹ ਹੇਠਾਂ ਦਿੱਤੇ ਤਰੀਕੇ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ:
ਇੱਕ CNPJ ਨੂੰ ਵੈਲੀਡ ਹੋਣ ਲਈ, ਦੋਵੇਂ ਚੈਕ ਅੰਕਾਂ ਨੂੰ ਉਮੀਦਵਾਰ ਮੁੱਲਾਂ ਨਾਲ ਮਿਲਨਾ ਚਾਹੀਦਾ ਹੈ।
ਸਾਡਾ ਬ੍ਰਾਜ਼ੀਲੀਆਈ CNPJ ਜਨਰੇਟਰ ਅਤੇ ਵੈਲੀਡੇਟਰ ਟੂਲ ਦੋ ਮੁੱਖ ਫੰਕਸ਼ਨ ਦਿੰਦਾ ਹੈ: ਵੈਲੀਡ CNPJ ਜਨਰੇਟ ਕਰਨਾ ਅਤੇ ਮੌਜੂਦਾ CNPJ ਨੰਬਰਾਂ ਦੀ ਵੈਲੀਡੇਸ਼ਨ ਕਰਨਾ।
ਟੈਸਟਿੰਗ ਉਦੇਸ਼ਾਂ ਲਈ ਇੱਕ ਵੈਲੀਡ CNPJ ਜਨਰੇਟ ਕਰਨ ਲਈ:
ਜਨਰੇਟ ਕੀਤਾ ਗਿਆ CNPJ ਸਹੀ CNPJ ਦੇ ਗਣਿਤਕ ਵੈਲੀਡੇਸ਼ਨ ਨਿਯਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰੇਗਾ ਪਰ ਬ੍ਰਾਜ਼ੀਲੀਆਈ ਫੈਡਰਲ ਰਿਵਿਨਿਊ ਸਰਵਿਸ ਨਾਲ ਰਜਿਸਟਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ।
ਇੱਕ CNPJ ਦੇ ਗਣਿਤਕ ਤੌਰ 'ਤੇ ਵੈਲੀਡ ਹੈ ਜਾਂ ਨਹੀਂ, ਇਹ ਜਾਂਚਣ ਲਈ:
ਵੈਲੀਡੇਟਰ ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ CNPJ ਸਹੀ ਫਾਰਮੈਟ ਵਿੱਚ ਹੈ ਅਤੇ ਚੈਕ ਅੰਕ ਉਮੀਦਵਾਰ ਮੁੱਲਾਂ ਨਾਲ ਮਿਲਦੇ ਹਨ ਜਾਂ ਨਹੀਂ।
ਇਹ ਬ੍ਰਾਜ਼ੀਲੀਆਈ CNPJ ਜਨਰੇਟਰ ਅਤੇ ਵੈਲੀਡੇਟਰ ਟੂਲ ਹੇਠਾਂ ਦਿੱਤੇ ਦ੍ਰਿਸ਼ਟੀਕੋਣਾਂ ਵਿੱਚ ਖਾਸ ਤੌਰ 'ਤੇ ਲਾਭਦਾਇਕ ਹੈ:
ਜਦੋਂ ਕਿ ਸਾਡਾ ਟੂਲ ਬ੍ਰਾਜ਼ੀਲੀਆਈ CNPJ ਜਨਰੇਟ ਕਰਨ ਅਤੇ ਵੈਲੀਡੇਸ਼ਨ ਕਰਨ ਲਈ ਇੱਕ ਸਧਾਰਨ, ਬ੍ਰਾਊਜ਼ਰ-ਅਧਾਰਿਤ ਹੱਲ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਤੁਹਾਡੇ ਵਿਸ਼ੇਸ਼ ਲੋੜਾਂ ਦੇ ਅਨੁਸਾਰ ਕਈ ਵਿਕਲਪ ਹਨ:
ਡਿਵੈਲਪਰਾਂ ਲਈ ਜੋ ਸਿੱਧਾ ਆਪਣੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ CNPJ ਵੈਲੀਡੇਸ਼ਨ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਨ, ਕਈ ਭਾਸ਼ਾ-ਵਿਸ਼ੇਸ਼ ਲਾਇਬ੍ਰੇਰੀਆਂ ਉਪਲਬਧ ਹਨ:
cpf_cnpj.js
, validator.js
python-cnpj
, validate-docbr
brazilianutils
, respect/validation
caelum-stella
, commons-validator
cpf_cnpj
, brazilian-rails
ਇਹ ਲਾਇਬ੍ਰੇਰੀਆਂ ਅਕਸਰ ਫਾਰਮੈਟਿੰਗ, ਪਾਰਸਿੰਗ ਅਤੇ ਬ੍ਰਾਜ਼ੀਲੀਆਈ ਦਸਤਾਵੇਜ਼ਾਂ ਦੀ ਵੈਲੀਡੇਸ਼ਨ ਵਰਗੀਆਂ ਵਾਧੂ ਫੰਕਸ਼ਨਲਿਟੀ ਪ੍ਰਦਾਨ ਕਰਦੀਆਂ ਹਨ।
ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਅਲਗੋਰਿਦਮ ਨੂੰ ਲਾਗੂ ਕੀਤੇ ਬਿਨਾਂ ਵੈਲੀਡੇਸ਼ਨ ਦੀ ਲੋੜ ਹੈ:
ਸਿੱਖਣ ਦੇ ਉਦੇਸ਼ਾਂ ਜਾਂ ਇਕ-ਵਾਰ ਦੀ ਵੈਲੀਡੇਸ਼ਨ ਲਈ, ਤੁਸੀਂ ਹੱਥ ਨਾਲ ਅਲਗੋਰਿਦਮ ਨੂੰ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹੋ:
ਹਾਲਾਂਕਿ, ਹੱਥ ਨਾਲ ਗਣਨਾ ਗਲਤੀ-ਪ੍ਰਵਣ ਅਤੇ ਨਿਯਮਤ ਵਰਤੋਂ ਲਈ ਅਸਰਦਾਰ ਨਹੀਂ ਹੈ।
ਇਸ ਟੂਲ ਵਿੱਚ 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}
29
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}
24
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
ਇਹ ਕੋਰ ਫੰਕਸ਼ਨ ਹੋਰ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਇੱਕੋ ਹੀ ਤਰਕ ਦੀ ਪਾਲਣਾ ਕਰਕੇ ਲਾਗੂ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਇੱਥੇ ਪਾਇਥਨ ਅਤੇ ਜਾਵਾ ਵਿੱਚ ਉਦਾਹਰਣ ਹਨ:
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
55
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 ਗਣਿਤਕ ਤੌਰ 'ਤੇ ਸਹੀ ਹਨ, ਪਰ ਇਹ ਬ੍ਰਾਜ਼ੀਲੀਆਈ ਫੈਡਰਲ ਰਿਵਿਨਿਊ ਸਰਵਿਸ ਨਾਲ ਰਜਿਸਟਰ ਨਹੀਂ ਕੀਤੇ ਗਏ ਹਨ ਅਤੇ ਅਸਲੀ ਕੰਪਨੀਆਂ ਨੂੰ ਨਹੀਂ ਦਿੱਤੇ ਗਏ ਹਨ।
ਨਹੀਂ। ਕਾਰੋਬਾਰ ਲਈ ਇਕ ਵਾਜਬ CNPJ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਬ੍ਰਾਜ਼ੀਲੀਆਈ ਫੈਡਰਲ ਰਿਵਿਨਿਊ ਸਰਵਿਸ ਨਾਲ ਰਜਿਸਟਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਅਧਿਕਾਰਤ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਅਨੁਸਰ ਕਰਦਾ ਹੈ। ਜਨਰੇਟ ਕੀਤੇ CNPJ ਸਿਰਫ ਟੈਸਟਿੰਗ ਦੇ ਉਦੇਸ਼ਾਂ ਲਈ ਹਨ।
ਕਿਸੇ CNPJ ਦੇ ਅਸਲ ਕੰਪਨੀ ਨਾਲ ਰਜਿਸਟਰ ਹੋਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਬ੍ਰਾਜ਼ੀਲੀਆਈ ਫੈਡਰਲ ਰਿਵਿਨਿਊ ਸਰਵਿਸ ਡੇਟਾਬੇਸ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਸਾਡਾ ਟੂਲ ਸਿਰਫ ਇਹ ਜਾਂਚਦਾ ਹੈ ਕਿ CNPJ ਗਣਿਤਕ ਤੌਰ 'ਤੇ ਸਹੀ ਹੈ, ਨਾ ਕਿ ਇਹ ਅਧਿਕਾਰਤ ਰਜਿਸਟਰਡ ਹੈ।
CNPJ ਜਿਸਦੇ ਸਾਰੇ ਅੰਕ ਇੱਕੋ ਜਿਹੇ ਹਨ (ਜਿਵੇਂ 11.111.111/1111-11) ਨੂੰ ਆਪਣੇ ਆਪ ਹੀ ਗਲਤ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ, ਭਾਵੇਂ ਉਹ ਗਣਿਤਕ ਤੌਰ 'ਤੇ ਚੈਕ ਅੰਕਾਂ ਨੂੰ ਪਾਸ ਕਰਦੇ ਹਨ। ਇਹ ਬ੍ਰਾਜ਼ੀਲੀਆਈ ਫੈਡਰਲ ਰਿਵਿਨਿਊ ਸਰਵਿਸ ਦੁਆਰਾ ਇੱਕ ਨਿਯਮ ਹੈ।
ਨਹੀਂ। ਸਾਰੀ ਪ੍ਰਕਿਰਿਆ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਅਸੀਂ ਤੁਹਾਡੇ ਦੁਆਰਾ ਜਨਰੇਟ ਕੀਤੇ ਜਾਂ ਵੈਲੀਡੇਟ ਕੀਤੇ ਗਏ ਕਿਸੇ ਵੀ CNPJ ਨੂੰ ਸਟੋਰ ਜਾਂ ਭੇਜਦੇ ਨਹੀਂ ਹਾਂ।
ਇਸ ਟੂਲ ਦਾ ਮੌਜੂਦਾ ਵਰਜਨ ਇੱਕ ਵਾਰੀ ਵਿੱਚ ਇੱਕ CNPJ ਹੀ ਜਨਰੇਟ ਕਰਦਾ ਹੈ। ਬਲਕ ਜਨਰੇਸ਼ਨ ਲਈ, ਤੁਸੀਂ ਵਿਕਲਪਾਂ ਭਾਗ ਵਿੱਚ ਦਿੱਤੀਆਂ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਲਾਇਬ੍ਰੇਰੀਆਂ ਵਿੱਚੋਂ ਕਿਸੇ ਇੱਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਸੋਚ ਸਕਦੇ ਹੋ।
ਇਹ ਬ੍ਰਾਜ਼ੀਲੀਆਈ ਅਧਿਕਾਰੀਆਂ ਦੁਆਰਾ ਲੋੜੀਂਦਾ ਅਧਿਕਾਰਤ ਫਾਰਮੈਟ ਹੈ। ਵਿਸ਼ੇਸ਼ ਗਰੁੱਪਿੰਗ ਇਹ ਪਛਾਣਣ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ ਕਿ CNPJ ਦੇ ਵੱਖਰੇ ਅੰਗ ਕੀ ਹਨ, ਜਿਵੇਂ ਕਿ ਬੇਸ ਨੰਬਰ ਅਤੇ ਸ਼ਾਖਾ ਪਛਾਣਕਰਤਾ।
ਤੁਸੀਂ ਤਕਨੀਕੀ ਲਾਗੂ ਕਰਨ ਦੇ ਭਾਗ ਵਿੱਚ ਦਿੱਤੀਆਂ ਕੋਡ ਉਦਾਹਰਣਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਜਾਂ ਉਪਰੋਕਤ ਦਿੱਤੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ ਪਸੰਦ ਦੀ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਭਾਸ਼ਾ ਵਿੱਚ ਵੈਲੀਡੇਸ਼ਨ ਅਲਗੋਰਿਦਮ ਨੂੰ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹੋ।
ਹਾਂ। ਬ੍ਰਾਜ਼ੀਲ ਵਿੱਚ ਸਰਕਾਰੀ ਇਕਾਈਆਂ ਲਈ ਵਿਸ਼ੇਸ਼ CNPJ ਪੈਟਰਨ ਹਨ। ਉਦਾਹਰਣ ਲਈ, ਫੈਡਰਲ ਸਰਕਾਰੀ ਇਕਾਈਆਂ ਅਕਸਰ ਵਿਸ਼ੇਸ਼ ਅੰਕਾਂ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੀਆਂ ਹਨ। ਸਾਡਾ ਜਨਰੇਟਰ ਯਾਦਸ਼ਕਤ CNPJ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਸਰਕਾਰੀ ਇਕਾਈਆਂ ਦੇ CNPJ ਨੂੰ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਨਹੀਂ ਬਣਾਉਂਦਾ।
ਸਾਡਾ ਬ੍ਰਾਜ਼ੀਲੀਆਈ CNPJ ਜਨਰੇਟਰ ਅਤੇ ਵੈਲੀਡੇਟਰ ਟੂਲ ਇਹ ਪਛਾਣਕਰਤਾ ਨੰਬਰਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਨੂੰ ਆਸਾਨ ਅਤੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਬਣਾਉਂਦਾ ਹੈ। ਚਾਹੇ ਤੁਸੀਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਜਾਂਚ ਕਰ ਰਹੇ ਹੋ, ਨਮੂਨਾ ਡੇਟਾ ਤਿਆਰ ਕਰ ਰਹੇ ਹੋ, ਜਾਂ ਮੌਜੂਦਾ CNPJ ਦੀ ਵੈਲੀਡੇਸ਼ਨ ਕਰ ਰਹੇ ਹੋ, ਇਹ ਟੂਲ ਬਿਨਾਂ API ਇੰਟੇਗ੍ਰੇਸ਼ਨ ਜਾਂ ਉੱਚ ਪੱਧਰ ਦੀਆਂ ਸੰਰਚਨਾਵਾਂ ਦੇ ਇੱਕ ਸਧਾਰਨ ਹੱਲ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
ਹੁਣ ਆਪਣਾ ਪਹਿਲਾ ਵੈਲੀਡ CNPJ ਜਨਰੇਟ ਕਰੋ ਜਾਂ ਸਾਡੇ ਸਧਾਰਨ ਇੰਟਰਫੇਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮੌਜੂਦਾ ਇੱਕ ਦੀ ਵੈਲੀਡੇਸ਼ਨ ਕਰੋ!
ਆਪਣੇ ਕਾਰਜ ਦੇ ਲਈ ਵਰਤਣ ਯੋਗ ਹੋਣ ਵਾਲੇ ਹੋਰ ਸੰਦੇਸ਼ ਦੀ ਖੋਜ ਕਰੋ