Siirry sisältöön

CNPJ-generaattori ja -validaattori - Brasilialainen yritystunniste-työkalu

Luo kelvollisia CNPJ-numeroita testaukseen tai validoi brasilialaiset yritystunnisteet välittömästi. Ilmainen työkalu tarkistussummavarmistuksella kehittäjille, jotka työskentelevät Cadastro Nacional da Pessoa Jurídican parissa.

Brasilialaisen CNPJ:n luoja ja tarkistaja

CNPJ:n luoja

Luo kelvollinen brasilialainen CNPJ-numero testausta varten.

CNPJ:n tarkistaja

Tarkista, onko brasilialainen CNPJ-numero kelvollinen.

Latauslaskuri...
📚

Dokumentaatio

Brasilialaisten CNPJ-numeroiden ymmärtäminen

CNPJ (Cadastro Nacional da Pessoa Jurídica) on Brasilian versio yritysten verotunnuksesta – 14-numeroinen tunnus, joka yksilöi jokaisen maan juridisen liiketoimintayksikön. Jos kehität ohjelmistoa, joka käsittelee brasilialaisia yritystietoja, törmäät näihin numeroihin rekisterilomakkeissa, laskuissa ja API-integraatioissa.

Tämän työkalun käytännöllisyys piilee siinä, että se tuottaa matemaattisesti kelvollisia CNPJ-tunnuksia testaamista varten ilman todellisten yritysten tunnistetietoja. Kun rakennat testikantaa 1 000 tietueella tai virheenkorjausta kello 2 yöllä, tarvitset CNPJ-tunnuksia, jotka läpäisevät algoritmitarkistukset mutta eivät vahingossa vastaa todellisia yrityksiä. Juuri tätä tämä työkalu tuottaa.

Täällä luodut numerot noudattavat virallista Receita Federalin (Brasilian verohallinnon) validointialgoritmia. Niissä on oikeat tarkistenumerot ja asianmukainen muotoilu – ne vain eivät ole rekisteröityjä hallinnon tietokannassa. Ajattele näitä syntaktisesti oikeina testitietoina, jotka eivät aiheuta vaatimustenmukaisuusongelmia kehitysympäristössäsi.

Mikä on CNPJ ja miksi sillä on merkitystä

CNPJ toimii Brasilian yritystunnuksena – samankaltaisesti kuin EIN Yhdysvalloissa tai yritysrekisterinumero Iso-Britanniassa. Jokaisen laillisesti toimivan yrityksen Brasiliassa täytyy omistaa sellainen, jonka myöntää Receita Federal (liittovaltion verohallinto).

Kohtaat CNPJ:n seuraavissa tilanteissa:

  • Maksutapahtumien käsittely: Brasilialaiset maksunvälittäjät vaativat CNPJ-validoinnin kauppiastileille
  • Verosäännösten noudattaminen: Jokaisessa Brasiliassa annetussa laskussa täytyy olla voimassa oleva CNPJ
  • Yritysrekisteröinti: Valtion virastot käyttävät CNPJ:tä oikeushenkilöiden seuraamiseen eri järjestelmissä
  • Pankkitoiminnot: Yritysten tilien avaaminen tai kansainvälisten siirtojen käsittely
  • Tuonti/vienti: Tullausasiakirjat vaativat CNPJ-vahvistuksen
  • Valtion sopimukset: Julkiset tarjousjärjestelmät validoivat CNPJ:n ennen tarjousten hyväksymistä

Kokemukseni brasilialaisten verkkokauppa-alustojen parissa osoittaa, että yleisin integraatiopiste on kassavaihe, jossa käyttäjät syöttävät CNPJ:nsä yritysostoille. Validointiloogikkasi täytyy tunnistaa muotovirheet ennen maksunkäsittelijää – muuten näet epäonnistuneita maksutapahtumia, jotka olisi voitu estää.

CNPJ-rakenne ja -muoto

CNPJ koostuu 14 numerosta muodossa: XX.XXX.XXX/YYYY-ZZ

Rakenteen erittely:

  1. Ensimmäiset 8 numeroa (XX.XXX.XXX): Yrityksen yksilöllinen perusrekisteröintinumero
  2. Seuraavat 4 numeroa (/YYYY): Toimipisteen tai sivuliikkeen tunniste—/0001 tarkoittaa pääkonttoria, kun taas /0002, /0003 edustavat sivuliikkeitä
  3. Viimeiset 2 numeroa (-ZZ): Tarkistenumerot, jotka lasketaan painotetulla algoritmilla

Esimerkki: 12.345.678/0001-95

Mielenkiintoista sivuliikkeen tunnistimessa: kun yritys avaa useita toimipisteitä, jokaisella on samat ensimmäiset 8 numeroa mutta eri sivuliikkeen numero. Joten jos vähittäiskauppaketjulla on 50 myymälää, niillä on CNPJ-numerot /0001-/0050, kaikilla sama perusnumero. Tämä helpottaa tunnistamaan, että useammat CNPJ-numerot kuuluvat samalle emoyritykselle.

Tarkistenumerot eivät ole satunnaisia—ne lasketaan modulus-11-algoritmilla käyttäen tiettyjä painokertoimia. Tämä suunnitteluratkaisu, joka on yleinen brasilialaisissa hallinnollisissa asiakirjoissa, tekee matemaattisesti vaikeaksi väärentää kelvollisia numeroita tai vahingossa luoda kelvollisia numeroita kirjoitusvirheiden kautta.

Miten CNPJ-validointi toimii

Validointialgoritmissa käytetään painotettua modulus-11-laskentaa. Tässä on logiikka sen takana:

Ensimmäisen tarkistenumeron laskeminen

  1. Ota ensimmäiset 12 numeroa ja kerro ne painoarvoilla: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Laske tuotteiden summa
  3. Jaa summa 11:llä ja ota jakojäännös
  4. Jos jakojäännös < 2, tarkistenumero on 0; muuten se on 11 - jakojäännös

Toisen tarkistenumeron laskeminen

  1. Ota ensimmäiset 13 numeroa (sisältäen ensimmäisen tarkistenumeron) ja kerro painoarvoilla: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Laske tuotteiden summa
  3. Jaa 11:llä ja ota jakojäännös
  4. Jos jakojäännös < 2, tarkistenumero on 0; muuten se on 11 - jakojäännös

Miksi tämä lähestymistapa toimii: Painotettu kertolaskujärjestelmä luo ainutlaatuisen yhteyden kaikkien 12 perusnumeron ja syntyvien tarkistenumeroiden välille. Yhdenkin numeron muuttaminen perusnumerossa tuottaa erilaiset tarkistenumerot, mikä paljastaa yleiset litterointivirheet kuten numeroiden vaihtumisen (kirjoitettaessa 12.345 sen sijaan, että kirjoitettaisiin 12.354).

Käytännöllinen huomio: CNPJ-tunnukset, joissa kaikki numerot ovat samat (kuten 11.111.111/1111-11), ovat automaattisesti virheellisiä, vaikka ne läpäisisivätkin matemaattisen tarkistuksen. Receita Federal sulkee nämä mallit tarkoituksella pois estääkseen triviaaleita tapauksia.

Kuinka käyttää CNPJ-generaattoria ja -validaattoria

CNPJ-testinumeroiden generointi

Tarvitsetko kelvollisen CNPJ:n testikantaasi? Näin se onnistuu:

  1. Klikkaa "Generoi CNPJ"
  2. Työkalu luo matemaattisesti kelvollisen numeron välittömästi
  3. Klikkaa "Kopioi" ottaaksesi sen leikepöydälle
  4. Liitä se testilomakkeisiisi, tietokantasiemeniin tai yksikkötesteihin

Jokainen generoitu CNPJ läpäisee kaikki algoritmisen validoinnin tarkistukset, mutta sitä ei ole rekisteröity Receita Federaliin. Tämä tarkoittaa, että voit käyttää niitä vapaasti kehityksessä huolehtimatta vahingossa käytetystä todellisen yrityksen tunnistajasta.

CNPJ-numeroiden validointi

Onko sinulla CNPJ, joka täytyy varmentaa? Validaattori hoitaa sen:

  1. Liitä tai kirjoita CNPJ syötekenttään
  2. Älä huoli muotoilusta—se toimii sekä 12345678000195 että 12.345.678/0001-95
  3. Klikkaa "Validoi"
  4. Saat välittömästi palautteen tarkistusnumeroiden oikeellisuudesta

Mitä validaattori tarkistaa: oikea pituus (14 numeroa), oikeat tarkistusnumerolaskelmat ja virheellisten kuvioiden, kuten samanlaisten numeroiden, poissulkeminen. Mitä se ei tarkista: onko CNPJ rekisteröity hallinnon tietokantaan—se vaatii suoran kyselyn Receita Federalilta.

Reaalimaailman käyttötapaukset CNPJ-generaattorille ja -validaattorille

Ohjelmistokehitys ja testaus

Tietokannan täyttö: Kun luot väliaikaista testiympäristöä realistisilla testitiedoilla, tarvitset kymmeniä tai satoja kelvollisia CNPJ-tunnuksia. Niiden manuaalinen luominen on työlästä, ja todellisten yritysten tunnisteiden käyttäminen herättää tietosuojahuolia. Generoidut CNPJ-tunnukset ratkaisevat molemmat ongelmat.

Yksikkötestauksen reunatapaukset: Validointifunktion tulee hylätä 00.000.000/0000-00, mutta hyväksyä 11.222.333/0001-81. Generaattori mahdollistaa nopeasti sekä kelvollisten että tarkoituksellisesti virheellisten testitapausten luomisen varmistaaksesi, että logiikka käsittelee rajaehtonsa oikein.

QA:n regressiotestaus: Rekisteröintilomakkeita tai B2B-kassavirtoja testattaessa QA-tiimit tarvitsevat tuoreet testitiedot jokaiseen ajoon. Yleinen ongelma on: testiympäristöt saastuvat samoilla 5-6 toistuvasti käytetyillä CNPJ-tunnuksilla, mikä peittää virheet, jotka ilmenevät vain tietyillä numerosarjoilla.

API-integraatiotestaus: Jos integroit brasilialaisten maksunvälittäjien kuten PagSeguro tai Mercado Pago kanssa, niiden hiekkalaatikkoympäristöt vaativat usein kelvollista CNPJ-muotoilua. Matematiikan on oltava oikein, vaikka et käyttäisikään tuotantotietokantoja.

Tietojen käsittely ja validointi

Tuotujen tietojen puhdistus: Olet saanut CSV:n 10 000 brasilialaisesta yrityksestä. Ennen käsittelyä sinun täytyy tunnistaa virheelliset CNPJ-tunnukset. Ajamalla ne validaattorin läpi voit merkitä kirjoitusvirheelliset, katkenneet tai virheellisillä tarkistusnumeroilla varustetut tietueet - säästäen tunteja myöhemmältä virheenkorjaukselta.

Asiakaspuolen lomakevalidointi: Virheellisten CNPJ-tunnusten tunnistaminen ennen lomakkeen lähettämistä parantaa käyttökokemusta. Kukaan ei halua täyttää 20-kenttäistä rekisteröintilomaketta vain huomatakseen lähetyksen yhteydessä virheen, koska on vahingossa vaihtanut kaksi numeroa CNPJ-tunnuksessa.

Tietojen anonymisointi analyysia varten: Kun valmistat tuotantotietoja jakamista varten analytiikkatiimeille tai ulkoisille kumppaneille, sinun täytyy korvata todelliset CNPJ-tunnukset kelvollisilla mutta keinotekoisilla. Tämä säilyttää viitetiedot datasetissäsi samalla suojaten todellisia liiketoimintaidentiteettejä.

Kansainvälinen liiketoiminta

Brasilian vaatimusten ymmärtäminen: Jos laajennat Brasilian markkinoille, kohtaat CNPJ-vaatimuksia sopimuksissa, laskuissa ja kuljetusasiakirjoissa. Työkalun avulla voit kokeilla muotoa ja ymmärtää, mitä järjestelmiesi täytyy käsitellä.

Kolmannen osapuolen integraatiovaatimukset: Kun tarkastelet brasilialaisten SaaS-palveluntarjoajien API-dokumentaatiota, näet usein CNPJ-kenttiä kuormadatan esimerkeissä. Kelvollisten testitietojen generointi auttaa nopeuttamaan integraatioiden prototyyppaamista.

Vaihtoehtoiset CNPJ-validointitavat

Ohjelmointikirjastot

Jos tarvitset CNPJ-validoinnin sovelluksesi logiikkaan, nämä kirjastot toteuttavat tarkistusnumeron algoritmin:

Nämä kirjastot tyypillisesti käsittelevät muotoilun, jäsentelyn ja validoinnin useille brasilialaisille asiakirjatyypeille (CPF, CNPJ jne.).

Viralliset todennusrajapinnat

Tuotantojärjestelmille, jotka tarvitsevat todellisen yritysrekisteröinnin varmistamisen:

  • Receita Federal julkinen palvelu: Consulta CNPJ API sallii tarkistamisen virallista tietokantaa vasten (vaatii asianmukaisen valtuutuksen ja rajoitukset)
  • Kolmannen osapuolen tiedontuottajat: Palvelut kuten Serasa Experian ja Boa Vista SCPC tarjoavat kaupalliset rajapinnat, jotka palauttavat yrityksen tiedot, rekisteröintitilan ja luottotiedot

Huomaa: Nämä palvelut tarkistavat todellisen rekisteröinnin, eivät pelkästään matemaattista kelpoisuutta. Tarvitset asianmukaisen valtuutuksen ja voit odottaa rajapinnan kustannuksia tuotantokäytössä.

Milloin käyttää mitäkin lähestymistapaa

Käytä tätä selaimen työkalua kun: Tarvitset nopean validoinnin ilman riippuvuuksien asentamista, luot testidataa demoja varten tai opit, miten CNPJ-validointi toimii.

Käytä kirjastoa kun: Rakennat sovellusta, joka tarvitsee asiakaspuolen tai palvelinpuolen validointia osana lomakkeen käsittelyä.

Käytä virallista rajapintaa kun: Tarvitset varmistuksen, että CNPJ vastaa todellista, aktiivista yritysyksikköä, jolla on voimassa oleva rekisteröintitila.

Tekniset toteutusyksityiskohdat

Tämä työkalu toimii kokonaan selaimessasi JavaScriptillä - ei palvelupyyntöjä, ei tietoja poistu koneeltasi. Tässä on algoritmiesi toimintatapa, jota voit muokata omiin projekteihisi:

CNPJ:n Generointalgoritmi

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

CNPJ:n Validointialgoritmi

1function validateCNPJ(cnpj) {
2  // Poista ei-numeeriset merkit
3  const cleanCNPJ = cnpj.replace(/\D/g, '');
4  
5  // Tarkista oikea pituus
6  if (cleanCNPJ.length !== 14) return false;
7  
8  // Tarkista tunnetut virheelliset kuviot (kaikki samat numerot)
9  if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10  
11  // Muunna numeroiden taulukoksi
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

CNPJ:n Muotoilufunktio

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ä perusfunktiot voidaan toteuttaa muilla ohjelmointikielillä samaa logiikkaa noudattaen. Tässä on esimerkkejä Pythonilla ja Javalla:

Python-toteutus

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 kokonaislukujen luetteloksi
42    digits = [int(d) for d in cnpj]
43    
44    # Validoi ensimmäinen tarkistusnumero
45    first_check = calculate_check_digit(digits[:12])
46    if digits[12] != first_check:
47        return False
48    
49    # Validoi toinen tarkistusnumero
50    second_check = calculate_check_digit(digits[:13])
51    if digits[13] != second_check:
52        return False
53    
54    return True
55

Java-toteutus

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 kokonaislukujen taulukoksi
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        // Validoi ensimmäinen tarkistusnumero
71        int firstCheck = calculateCheckDigit(digits, 12);
72        if (digits[12] != firstCheck) {
73            return false;
74        }
75        
76        // Validoi toinen tarkistusnumero
77        int secondCheck = calculateCheckDigit(digits, 13);
78        if (digits[13] != secondCheck) {
79            return false;
80        }
81        
82        return true;
83    }
84}
85

Tärkeät rajoitukset ja huomiot

Mitä Tämä Työkalu Voi ja Ei Voi Tehdä

Mitä se validoi: Matemaattinen oikeellisuus—vastaako tarkastussnumerot algoritmin laskelmaa.

Mitä se ei validoi: Onko CNPJ rekisteröity Receita Federalissa, kuuluuko se aktiiviselle yritykselle tai vastaako se odottamaasi yrityksen nimeä.

Ajattele tätä kuin oikolukua verrattuna tosiasioiden tarkistamiseen. Tämä työkalu kertoo, onko CNPJ "kirjoitettu" oikein matemaattisten sääntöjen mukaan, mutta se ei voi kertoa, vastaako numero todellista, aktiivista liiketoimintayksikköä.

Laillinen ja Eettinen Käyttö

Luodut CNPJ-numerot ovat vain testausta ja kehitystä varten. Ne ovat matemaattisesti valideja, mutta eivät rekisteröityjä Brazilian viranomaisten toimesta, mikä tarkoittaa:

  • Turvallinen käyttää: Testikantojen täyttämiseen, yksikkötestien validointiin, QA-ympäristöihin, koodiesimerkkeihin dokumentaatiossa
  • Älä koskaan käytä: Verotukseen, yritysrekisteröintiin, sopimusten allekirjoittamiseen, todellisten transaktioiden käsittelyyn tai yrityksen identiteetin väärentämiseen

Väärän CNPJ:n käyttö virallisiin tarkoituksiin ei ole pelkästään epäeettistä—se on laitonta Brazilian lain mukaan ja voi johtaa petossyytteisiin.

Tekniset Rajoitukset Tiedostettavaksi

Satunnainen generointi vaikuttaa: Työkalu generoi ensimmäiset 12 numeroa satunnaisesti. Todelliset Receita Federalin myöntämät CNPJ-numerot noudattavat sisäisiä malleja, jotka liittyvät rekisteröintipäivään, alueelliseen toimistoon ja liiketoimintatyyppiin. Generoidut numerot eivät vastaa näitä malleja, mitä kehittyneet validointijärjestelmät saattavat huomioida.

Ei semanttista validointia: Validi CNPJ-muoto ei tarkoita validia liiketoimintakontekstia. Esimerkiksi valtion yksiköillä on tietyt CNPJ-alueet—tämä generaattori saattaa sattumanvaraisesti luoda sellaisen, mutta se ei olisi merkityksellinen.

Muodon käsittely: Validaattori hyväksyy eri syötemuodot (12345678000195, 12.345.678/0001-95), mutta jotkin vanhat järjestelmät odottavat tarkkaa muotoilua. Testaa aina omien integraatiovaatimustesi kanssa.

Yksityisyys ja Turvallisuus

Kaikki käsittely tapahtuu asiakaspuolella selaimessasi. Yhtään generoimaasi tai validoimaasi CNPJ:tä ei lähetetä palvelimille, kirjata tai tallenneta. Työkalu ei pyydä, käsittele tai prosessoi mitään henkilökohtaisia tietoja.

Usein Kysytyt Kysymykset CNPJ-Validoinnista

Mikä on ero CNPJ:n validoinnin ja todentamisen välillä?

Validointi tarkistaa, onko numero matemaattisesti oikein—oikea muoto, oikeat tarkistenumerot, ei virheellisiä kuvioita. Tämä työkalu tekee validoinnin.

Todentaminen tarkistaa, onko CNPJ rekisteröity todellisena yrityksenä Receita Federalin tietokannassa. Todentaminen vaatii kyselyn hallinnon tietokantaan, eikä tämä työkalu tee sitä.

Voit omistaa täysin kelvollisen CNPJ:n, jota ei ole todennettu (kuten tämän työkalun luomat testinumerot), tai virheellisen CNPJ:n, joka kuuluu oikealle yritykselle (koska joku on tehnyt kirjoitusvirheen).

Voinko käyttää luotuja CNPJ-numeroita tuotantotestaukseen?

Se riippuu siitä, mitä tarkoitat "tuotantotestauksella". Ne ovat hyviä staging-ympäristöihin, kuormitustestaukseen ja julkaisua edeltävään laadunvarmistukseen. Mutta jos "tuotantotestaus" tarkoittaa testaamista todellisilla transaktioilla, todellisilla hallinnon API:illa tai todellisilla taloudellisilla järjestelmillä—silloin ei, tarvitset todellisia rekisteröityjä CNPJ-numeroita.

Turvallisempi lähestymistapa: käytä luotuja CNPJ-numeroita eristetyssä testausympäristössä, ja vaihda sitten pieneen joukkoon todellisia testiyrityksen CNPJ-numeroita (joita hallitset) testattaessa tuotantointegraatioita.

Miksi validaattori hylkää 11.111.111/1111-11?

Vaikka CNPJ, jossa on kaikki identtiset numerot, voi matemaattisesti tuottaa kelvolliset tarkistenumerot, Receita Federal nimenomaisesti sulkee nämä kuviot pois. Se on liiketoimintasääntö, ei matemaattinen. Sama koskee peräkkäisiä kuvioita joissakin validointijärjestelmissä.

Tämä on samankaltainen kuin monissa järjestelmissä hylätään salasanat kuten "salasana123" vaikka ne täyttävätkin pituusvaatimukset—ne ovat teknisesti kelvollisia mutta käytännössä hyväksymättömiä.

Miten käsittelen CNPJ-validointia eri alueilla?

Brasilialaisten yritysten, jotka harjoittavat kansainvälistä liiketoimintaa, täytyy joskus pudottaa muotoilumerkit syöttäessään CNPJ-numeroita ulkomaisiin järjestelmiin. Validointiloogikan tulee poistaa ei-numeeriset merkit ennen tarkistusta:

1const cleanCNPJ = input.replace(/\D/g, ''); // Poista kaikki muut paitsi numerot
2

Hyväksy 12.345.678/0001-95, 12345678000195 ja 12 345 678 0001 95 vastaavina syötteinä.

Entä CNPJ vs CPF-validointi?

CPF (Cadastro de Pessoas Físicas) on Brasilian henkilökohtainen verotunnus, kun taas CNPJ on yrityksille. Ne käyttävät eri tarkistenumeroalgoritmeja ja pituuksia (CPF:ssä on 11 numeroa, CNPJ:ssä 14). Jos rakennat brasilialaista sovellusta, joka käsittelee molempia, tarvitset erilliset validointifunktiot—vaikkakin monet kirjastot tukevat molempia muotoja.

Yleinen malli: anna käyttäjien syöttää joko CPF tai CNPJ samaan kenttään, ja tunnista sitten tyyppi pituuden perusteella muotoilumerkkien poistamisen jälkeen.

Toimiiko tämä ulkomaisille yrityksille, jotka toimivat Brasiliassa?

Ulkomaisten yritysten, jotka toimivat Brasiliassa, täytyy myös hankkia CNPJ:t Receita Federalilta. Niiden CNPJ:t noudattavat samaa muotoa ja validointisääntöjä kuin kotimaiset yritykset. Ei ole erityistä "ulkomaisen yrityksen" CNPJ-muotoa.

Ulkomaiset yritykset saattavat kuitenkin tarvita lisädokumentaatiota ja heillä voi olla erilaiset rekisteröintiprosessit—kysy neuvoa brasilialaiselta liikeasianajajalta yksityiskohdista.

Voinko kysellä hallinnon tietokannasta CNPJ-rekisteröintiä?

Kyllä, Receita Federal tarjoaa julkisen pääsyn CNPJ-tietojen perusverifiointiin heidän Consulta Pública CNPJ -palvelunsa kautta. Voit manuaalisesti etsiä CNPJ-numeroita tai asianmukaisella valtuutuksella käyttää heidän API:itaan ohjelmallisesti.

Huomaa, että runsas käyttö vaatii rekisteröitymisen ja on olemassa käyttörajoituksia väärinkäytösten estämiseksi.

Kuinka usein CNPJ:t muuttuvat?

CNPJ:t ovat pysyviä tunnisteita, jotka eivät muutu, kun yritys vaihtaa nimeään, osoitettaan tai omistusrakennettaan. Jos yritys kuitenkin suljetaan ja myöhemmin rekisteröidään uudelleen, se voi saada uuden CNPJ:n. Sivuliikennumerot (.XXXX-osa) voidaan lisätä yritysten avatessa uusia toimipaikkoja, mutta perus 8-numeroinen numero pysyy vakiona.

Viitteet ja lisäresurssit

Viralliset hallintolähteen

  1. Receita Federal do Brasil - Virallinen portaali - Brasilian liittovaltion veroviraston virallinen verkkosivusto CNPJ-rekisteröinnin ja todennuksen palveluilla
  2. Consulta Pública CNPJ - Julkinen CNPJ-haku - Virallinen hallinnon palvelu CNPJ-rekisteröinnin tilan tarkistamiseen
  3. Normatiivinen ohje RFB No. 1863/2018 - Lailliset säädökset, jotka koskevat CNPJ-rekisteröintiä ja käyttöä Brasiliassa

Tekniset standardit ja dokumentaatio

  1. Modulaarisen aritmetiikan algoritmit - Tarkistussumman laskenta käyttää modulo 11 -aritmetiikkaa, joka on vakiintunut lähestymistapa vahvistusmerkkien laskemiseen
  2. ISO/IEC 7064 - Kansainvälinen standardi tarkistussumman järjestelmille, joka on vaikuttanut brasilialaisten asiakirjojen validointimalliin
  3. Brasilian siviilioikeudellinen säännöstö (Laki No. 10.406/2002) - Oikeudellinen kehys, joka määrittelee yritysluokitukset, jotka edellyttävät CNPJ-rekisteröintiä

Kehittäjäresurssit

  1. NPM-pakettirekisteri - npmjs.com - Tietovarasto JavaScript-kirjastoille, mukaan lukien brasilialaiset asiakirjojen validaattorit
  2. PyPI (Python Package Index) - pypi.org - Python-kirjastot CNPJ-validointiin ja brasilialaisten asiakirjojen käsittelyyn
  3. GitHub - Avoimen lähdekoodin toteutukset CNPJ-validoinnista useilla ohjelmointikielillä

Aloita CNPJ-tunnusten luominen ja vahvistaminen

Olit sitten rakentamassa brasilialaista verkkokauppa-alustaa, testaamassa maksumäärityksiä Mercado Pagon kanssa tai vain haluamassa ymmärtää, miten CNPJ-vahvistus toimii, tämä työkalu tarjoaa sinulle välittömästi sekä luonti- että vahvistusominaisuudet.

Ei asennusta, ei API-avaimia, ei monimutkaista käyttöönottoa. Avaa vain selaimesi ja ala työskennellä kelvollisilla brasilialaisilla yritystunnuksilla.