Generoi voimassa olevia brasilialaisia CNPJ-numeroita ja validoi olemassa olevia tällä yksinkertaisella työkalulla, joka on suunniteltu kehittäjille ja testaajille, jotka työskentelevät brasilialaisten yritys-ID:iden parissa.
Generoi voimassa oleva brasilialainen CNPJ-numero testauskäyttöön.
Tarkista, onko brasilialainen CNPJ-numero voimassa.
Brasilialainen CNPJ (Cadastro Nacional da Pessoa Jurídica) on ainutlaatuinen tunnusnumero, joka annetaan yrityksille ja oikeushenkilöille Brasiliassa. Tämä brasilialainen CNPJ-generaattori ja -validoija tarjoaa yksinkertaisen ja tehokkaan tavan luoda voimassa olevia CNPJ-numeroita testitarkoituksiin ja validoida olemassa olevia CNPJ-numeroita virallisen brasilialaisen algoritmin mukaan. Olitpa kehittäjä, joka testaa sovelluksia, jotka käsittelevät brasilialaista liiketoimintatietoa, QA-ammattilainen, joka luo testitapauksia, tai kuka tahansa, joka työskentelee brasilialaisten yritystietojen parissa, tämä työkalu yksinkertaistaa CNPJ-numeroiden käsittelyä.
Toisin kuin oikeat CNPJ-numerot, jotka Brasilian liittovaltion verovirasto (Receita Federal) myöntää, tämän työkalun tuottamat CNPJ:t ovat matemaattisesti voimassa, mutta eivät rekisteröity todellisille yrityksille. Tämä tekee niistä täydellisiä testitilanteisiin, esimerkkidataan ja kehitysympäristöihin, joissa tarvitaan oikein muotoiltuja ja voimassa olevia CNPJ-numeroita ilman, että käytetään oikeita liiketoimintatunnisteita.
CNPJ (Cadastro Nacional da Pessoa Jurídica) on 14-numeroinen tunnusnumero, joka annetaan yrityksille ja oikeushenkilöille Brasilian liittovaltion veroviraston toimesta. Se toimii Brasilian vastineena yritysrekisterinumerolle tai verotunnukselle. Jokaisella laillisesti toimivalla yrityksellä Brasiliassa on oltava CNPJ, jota käytetään:
CNPJ on olennainen tunniste Brasilian liiketoimintaympäristössä, ja se näkyy virallisissa asiakirjoissa, sopimuksissa ja taloudellisissa asiakirjoissa.
Brasilialainen CNPJ koostuu 14 numerosta, ja se on tyypillisesti muotoiltu seuraavasti: XX.XXX.XXX/YYYY-ZZ
Rakenne jakautuu seuraavasti:
Esimerkiksi oikein muotoiltu CNPJ voisi näyttää tältä: 12.345.678/0001-95
Tarkistusnumerot (viimeiset kaksi numeroa) lasketaan erityisen matemaattisen algoritmin avulla, joka validoi CNPJ:n aitouden. Tämä algoritmi varmistaa, että satunnaisesti luodut numerot eivät voi läpäistä validointia ilman, että ne noudattavat oikeaa laskentamenetelmää.
CNPJ:n validointialgoritmi käyttää painotettua laskentaa tarkistusnumeroiden määrittämiseksi. Näin se toimii:
Jotta CNPJ olisi voimassa, molempien tarkistusnumeroiden on vastattava laskettuja arvoja.
Brasilian CNPJ-generaattori ja -validoija tarjoaa kaksi päätoimintoa: voimassa olevien CNPJ:iden luominen ja olemassa olevien CNPJ:iden validoiminen.
Voit luoda voimassa olevan CNPJ:n testitarkoituksiin seuraavasti:
Luotu CNPJ noudattaa kaikkia oikean CNPJ:n matemaattisia validointasääntöjä, mutta se ei ole rekisteröity Brasilian liittovaltion verovirastoon.
Voit tarkistaa, onko CNPJ matemaattisesti voimassa:
Validoija tarkistaa, noudattaako CNPJ oikeaa muotoa ja vastaavatko tarkistusnumerot odotettuja arvoja validointialgoritmin mukaan.
Tämä brasilialainen CNPJ-generaattori ja -validoija on erityisen hyödyllinen seuraavissa tilanteissa:
Vaikka työkalumme tarjoaa yksinkertaisen, selainpohjaisen ratkaisun CNPJ:iden luomiseen ja validoimiseen, on useita vaihtoehtoja riippuen erityistarpeistasi:
Kehittäjille, jotka integroivat CNPJ-validoinnin suoraan sovelluksiin, on saatavilla useita kielikohtaisia kirjastoja:
cpf_cnpj.js
, validator.js
python-cnpj
, validate-docbr
brazilianutils
, respect/validation
caelum-stella
, commons-validator
cpf_cnpj
, brazilian-rails
Nämä kirjastot tarjoavat usein lisätoimintoja, kuten muotoilua, jäsentämistä ja muiden brasilialaisten asiakirjojen validointia.
Sovelluksille, jotka tarvitsevat validointia ilman algoritmin toteuttamista:
Koulutustarkoituksiin tai yksittäisiin validointeihin voit manuaalisesti soveltaa algoritmia:
Kuitenkin manuaalinen laskenta on alttiina virheille ja tehotonta säännöllisessä käytössä.
CNPJ-generaattori ja -validoija tässä työkalussa on toteutettu JavaScriptillä, mikä tekee siitä nopean ja kykenevän toimimaan kokonaan selaimessasi ilman, että tietojasi lähetetään palvelimelle. Näin keskeiset toiminnot toimivat:
1function generateCNPJ() {
2 // Generoi ensimmäiset 12 numeroa satunnaisesti
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Laske ensimmäinen tarkistusnumero
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Laske toinen tarkistusnumero
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Muotoile 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 // Poista ei-numeeriset merkit
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Tarkista, onko pituus oikea
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Tarkista tunnetut virheelliset mallit (kaikki samat numerot)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Muunna numeroiksi
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Tarkista ensimmäinen tarkistusnumero
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Tarkista toinen tarkistusnumero
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 // Poista ei-numeeriset merkit
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Muotoile pituuden mukaan
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
Nämä keskeiset toiminnot voidaan toteuttaa muilla ohjelmointikielillä saman logiikan mukaan. Tässä on esimerkkejä Pythonissa ja Javassa:
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 # Generoi ensimmäiset 12 numeroa satunnaisesti
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Laske ensimmäinen tarkistusnumero
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Laske toinen tarkistusnumero
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Muotoile 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 # Poista ei-numeeriset merkit
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Tarkista pituus
34 if len(cnpj) != 14:
35 return False
36
37 # Tarkista, ovatko kaikki numerot samat
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Muunna numeroiksi
42 digits = [int(d) for d in cnpj]
43
44 # Vahvista ensimmäinen tarkistusnumero
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Vahvista toinen tarkistusnumero
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 // Generoi ensimmäiset 12 numeroa satunnaisesti
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Laske ensimmäinen tarkistusnumero
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Laske toinen tarkistusnumero
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Muotoile 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 // Poista ei-numeeriset merkit
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Tarkista pituus
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Tarkista, ovatko kaikki numerot samat
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 // Muunna numeroiksi
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 // Vahvista ensimmäinen tarkistusnumero
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Vahvista toinen tarkistusnumero
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85
Kun käytät tätä CNPJ-generaattori- ja validoijatyökalua, pidä mielessä seuraavat seikat:
CNPJ on kansallinen rekisterinumero yrityksille ja oikeushenkilöille Brasiliassa. Sitä käytetään verotarkoituksiin, liiketoiminnan rekisteröintiin, pankkitilien avaamiseen ja yritysten tunnistamiseen virallisissa liiketoimissa.
Ei. Tämän työkalun generoimat CNPJ:t ovat matemaattisesti voimassa tarkistusnumeron algoritmin mukaan, mutta ne eivät ole rekisteröity Brasilian liittovaltion verovirastoon eivätkä ne kuulu todellisille yrityksille.
Ei. Saadaksesi laillisen CNPJ:n yritykselle, sinun on rekisteröidyttävä Brasilian liittovaltion verovirastoon (Receita Federal) virallisen prosessin mukaisesti. Generoidut CNPJ:t ovat vain testitarkoituksiin.
Voit tarkistaa, onko CNPJ rekisteröity todelliselle yritykselle, konsultoimalla Brasilian liittovaltion veroviraston tietokantaa. Työkalumme tarkistaa vain, onko CNPJ matemaattisesti voimassa, ei onko se virallisesti rekisteröity.
CNPJ:t, joissa kaikki numerot ovat samat (kuten 11.111.111/1111-11), katsotaan automaattisesti voimattomiksi, vaikka ne matemaattisesti läpäisisivät tarkistusnumeron algoritmin. Tämä on sääntö, jonka Brasilian liittovaltion verovirasto on määritellyt.
Ei. Kaikki käsittely tapahtuu selaimessasi, eikä me tallenneta tai siirretä mitään generoituja tai validoituja CNPJ:itä.
Nykyisessä työkalun versiossa voidaan generoida yksi CNPJ kerrallaan. Suurempaan generointiin saatat haluta harkita yhden ohjelmointikirjaston käyttöä, joka mainitaan vaihtoehdoissa.
Tämä on virallinen muoto, jota Brasilian viranomaiset vaativat. Erityinen ryhmittely auttaa tunnistamaan CNPJ:n eri osat, kuten perusnumeron ja haaraidentifikaattorin.
Voit toteuttaa validointialgoritmin haluamassasi ohjelmointikielessä käyttämällä teknisessä toteutuksessa annettuja koodiesimerkkejä tai käyttää vaihtoehdoissa mainittuja kirjastoja.
Kyllä. Valtion toimijoilla Brasiliassa on erityisiä CNPJ-malleja. Esimerkiksi liittovaltion hallituksen toimijat alkavat usein tietyillä numeroilla. Generaattorimme luo satunnaisia CNPJ:itä eikä erityisesti valtion toimijoiden CNPJ:itä.
Brasilian CNPJ-generaattori ja -validoijatyökalumme tekee näiden tunnusnumeroiden käsittelystä yksinkertaista ja tehokasta. Olitpa testamassa sovelluksia, valmistelemassa esimerkkidataa tai validoimassa olemassa olevia CNPJ:itä, tämä työkalu tarjoaa suoraviivaisen ratkaisun ilman API-integraatioiden tai edistyneiden määritysten monimutkaisuutta.
Generoi ensimmäinen voimassa oleva CNPJ nyt tai validoi olemassa oleva käyttämällä yksinkertaista käyttöliittymäämme!
Löydä lisää työkaluja, jotka saattavat olla hyödyllisiä työnkulullesi