CNPJ Generator & Validator - Verktøy for brasiliansk bedrifts-ID
Generer gyldige CNPJ-numre for testing eller valider brasilianske bedrifts-IDer umiddelbart. Gratis verktøy med kontrollsifferverifikasjon for utviklere som arbeider med Cadastro Nacional da Pessoa Jurídica.
Brasiliansk CNPJ Generator og Validator
CNPJ Generator
Generer et gyldig brasiliansk CNPJ-nummer for testformål.
CNPJ Validator
Sjekk om et brasiliansk CNPJ-nummer er gyldig.
Dokumentasjon
Forstå brasilianske CNPJ-nummer
CNPJ (Cadastro Nacional da Pessoa Jurídica) er Brasils versjon av et bedriftsskatte-ID – et 14-sifret nummer som identifiserer hver juridiske forretningsenhet i landet. Hvis du bygger programvare som håndterer brasilianske forretningsdata, vil du raskt støte på disse numrene i registreringsskjemaer, fakturaer og API-integrasjoner.
Her er det som gjør dette verktøyet praktisk: det genererer matematisk gyldige CNPJer for testing uten å bruke virkelige bedriftsidentifikatorer. Når du setter opp en testdatabase med 1 000 poster eller feilsøker en valideringsrutine klokken 02:00 om natten, trenger du CNPJer som passerer algoritmiske sjekker, men som ikke utilsiktet matcher faktiske virksomheter. Det er nøyaktig det dette genererer.
Numrene som er opprettet her, følger den offisielle Receita Federal (brasiliansk skattemyndighet) valideringsalgoritmen. De har riktige kontrollsifre og riktig formatering – de er bare ikke registrert i myndighetenes database. Tenk på dem som syntaktisk korrekte testdata som ikke vil skape etterlevelsesproblem i utviklingsmiljøet ditt.
Hva er en CNPJ og hvorfor den er viktig
En CNPJ fungerer som Brasils foretaksidentifikator—tilsvarende et EIN i USA eller et selskapsregistreringsnummer i Storbritannia. Hver forretningsenhet som opererer lovlig i Brasil må ha en, utstedt av Receita Federal (Føderale skattemyndigheter).
Du vil støte på CNPJs når:
- Behandling av betalinger: Brasilianske betalingsportaler krever CNPJ-validering for selgerkonto
- Skatteoverholdelse: Hver faktura utstedt i Brasil må inneholde en gyldig CNPJ
- Forretningsregistrering: Statlige etater bruker CNPJs for å spore juridiske enheter på tvers av systemer
- Bankoperasjoner: Åpning av bedriftskontoer eller behandling av internasjonale overføringer
- Import/eksport: Tolldokumentasjon krever CNPJ-verifisering
- Offentlige kontrakter: Systemer for offentlige anbud validerer CNPJs før de aksepterer bud
Basert på min erfaring med brasilianske e-handelsplattformer, er ett av de vanligste integrasjonspunktene betalingsflyten der brukere legger inn sin CNPJ for bedriftskjøp. Din valideringslogikk må fange opp formateringsfeil før betalingsbehandleren gjør det—ellers vil du se mislykkede transaksjoner som kunne ha vært forhindret.
CNPJ-struktur og format
Et CNPJ består av 14 sifre formatert som: XX.XXX.XXX/YYYY-ZZ
Nedbrytning av strukturen:
- Første 8 sifre (XX.XXX.XXX): Det unike registreringsnummeret som er tildelt selskapet
- Neste 4 sifre (/YYYY): Filial- eller etableringsidentifikator—
/0001indikerer hovedkontor, mens/0002,/0003representerer filialer - Siste 2 sifre (-ZZ): Kontrollsifre beregnet gjennom en vektet algoritme
Eksempel: 12.345.678/0001-95
Det interessante med filialidentifikatoren: når et selskap åpner flere lokasjoner, får hver samme første 8 sifre, men et forskjellig filialnummer. Så hvis en detaljhandelskjede har 50 butikker, vil de ha CNPJer som slutter med /0001 til /0050, alle med samme grunnnummer. Dette gjør det enkelt å identifisere at flere CNPJer tilhører samme mororganisasjon.
Kontrollsifrene er ikke tilfeldige—de beregnes ved hjelp av en modulus-11-algoritme med spesifikke vektsekvenser. Dette designvalget, som er vanlig i brasilianske administrative dokumenter, gjør det matematisk vanskelig å forfalske gyldige numre eller utilsiktet opprette gyldige numre gjennom skrivefeil.
Hvordan CNPJ-validering faktisk fungerer
Valideringsalgoritmen bruker en vektet modulus-11-beregning. Her er logikken bak den:
Første kontrollsifferberegning
- Ta de første 12 sifrene og multipliser hver med vekter:
5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Summer alle produktene
- Del summen på 11 og finn resten
- Hvis resten < 2, er kontrollsifferet 0; ellers er det
11 - resten
Andre kontrollsifferberegning
- Ta de første 13 sifrene (inkludert første kontrollsiffer) og multipliser med vekter:
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Summer alle produktene
- Del på 11 og finn resten
- Hvis resten < 2, er kontrollsifferet 0; ellers er det
11 - resten
Hvorfor denne tilnærmingen fungerer: Det vektede multiplikasjonssystemet skaper en unik relasjon mellom alle 12 grunnleggende sifre og de resulterende kontrollsifrene. Å endre selv ett siffer i grunntallet produserer forskjellige kontrollsifre, som fanger opp vanlige overføringsfeil som å bytte om to sifre (skrive 12.345 i stedet for 12.354).
En praktisk merknad: CNPJs med identiske sifre (som 11.111.111/1111-11) er automatisk ugyldige, selv om de består den matematiske sjekken. Receita Federal utelukker uttrykkelig disse mønstrene for å forhindre trivielle tilfeller.
Hvordan bruke CNPJ Generator og Validator
Generere Test CNPJs
Trenger du en gyldig CNPJ for testdatabasen din? Slik gjør du:
- Klikk "Generer CNPJ"
- Verktøyet oppretter et matematisk gyldig nummer umiddelbart
- Klikk "Kopier" for å legge det på utklippstavlen
- Lim det inn i testskjemaer, databaseseeds eller enhetstester
Hver genererte CNPJ passerer alle algoritmiske valideringssjekker, men er ikke registrert hos Receita Federal. Dette betyr at du kan bruke dem fritt i utvikling uten å bekymre deg for å utilsiktet bruke en ekte bedrifts identifikator.
Validere CNPJ-numre
Har du en CNPJ som du trenger å verifisere? Validatoren håndterer det:
- Lim inn eller skriv CNPJ-en i inndatafeltet
- Ikke bekymre deg om formattering—det fungerer med
12345678000195eller12.345.678/0001-95 - Klikk "Valider"
- Få umiddelbar tilbakemelding om hvorvidt kontrollsifre er korrekte
Hva validatoren sjekker: riktig lengde (14 sifre), korrekte kontrollsifferberegninger og ekskludering av ugyldige mønstre som like sifre. Hva den ikke sjekker: hvorvidt CNPJ-en er registrert i statens database—det krever direkte forespørsel til Receita Federal.
Reelle brukstilfeller for CNPJ-generator og -validator
Programvareutvikling og testing
Databaseseeding: Når du setter opp et midlertidig miljø med realistiske testdata, trenger du titalls eller hundrevis av gyldige CNPJs. Manuell oppretting av disse er kjedelig, og bruk av virkelige foretaksidentifikatorer reiser personvernhensyn. Genererte CNPJs løser begge problemer.
Enhetstesting av grensetilfeller: Din valideringsfunksjon bør avvise 00.000.000/0000-00, men akseptere 11.222.333/0001-81. Å ha en generator lar deg raskt opprette både gyldige og bevisst ugyldige testtilfeller for å verifisere at logikken din håndterer grensebetingelser riktig.
QA regresjonstesting: Ved testing av registreringsskjemaer eller B2B-betalingsflyter trenger QA-team ferske testdata for hver kjøring. Et vanlig problem jeg har sett: testmiljøer blir forurenset med de samme 5-6 CNPJs som brukes gjentatte ganger, noe som skjuler feil som bare dukker opp med spesifikke siffermønstre.
API-integrasjonstesting: Hvis du integrerer med brasilianske betalingsformidlere som PagSeguro eller Mercado Pago, krever deres sandkassemiljøer ofte gyldig CNPJ-formatering. Matematikken må være riktig selv om du ikke treffer produksjonsdatabaser.
Databehandling og validering
Rensing av importerte data: Du har mottatt en CSV med 10.000 brasilianske foretaksoppføringer. Før behandling trenger du å identifisere hvilke CNPJs som er feilformaterte. Å kjøre dem gjennom validatoren merker oppføringer med skrivefeil, avkorting eller feil kontrollsifre—og sparer timer med feilsøking nedstrøms.
Klientsidevalidering av skjema: Å fange opp ugyldige CNPJs før skjemainnsending forbedrer brukeropplevelsen. Ingen vil fylle ut et 20-felts registreringsskjema bare for å få en feil ved innsending fordi de har byttet om to sifre i sin CNPJ.
Datoanonymisering for analyse: Når du forbereder produksjonsdata for deling med analyseteam eller eksterne partnere, trenger du å erstatte virkelige CNPJs med gyldige, men falske. Dette opprettholder referanseintegritet i datasettet samtidig som det beskytter faktiske foretaksidentiteter.
Internasjonale forretningsoperasjoner
Forstå brasilianske krav: Hvis du ekspanderer til det brasilianske markedet, vil du støte på CNPJ-krav i kontrakter, fakturaer og fraktdokumentasjon. Å ha et verktøy for å eksperimentere med formatet hjelper deg å forstå hva systemene dine må håndtere.
Spesifikasjoner for tredjeparts integrasjon: Når du gjennomgår API-dokumentasjon fra brasilianske SaaS-leverandører, vil du ofte se CNPJ-felt i nyttelast-eksempler. Å kunne generere gyldige testverdi hjelper deg å prototypere integrasjoner raskere.
Alternative CNPJ Valideringsmetoder
Programmeringsbiblioteker
Hvis du trenger CNPJ-validering innebygd i din applikasjonslogikk, implementerer disse bibliotekene sjekksiffer-algoritmen:
- JavaScript/Node.js:
cpf-cnpj-validator(130k+ ukentlige nedlastinger),validator.js(støtter brasilianske dokumenter) - Python:
validate-docbr(validerer CPF, CNPJ og andre brasilianske dokumenter),python-cnpj - PHP:
respect/validation(inkluderer CNPJ-regler),brazilianutils - Java:
caelum-stella(omfattende validering av brasilianske dokumenter) - Ruby:
cpf_cnpjgem
Disse bibliotekene håndterer vanligvis formatering, parsing og validering for flere brasilianske dokumenttyper (CPF, CNPJ, etc.).
Offisielle Verifikasjons-APIer
For produksjonssystemer som trenger å verifisere faktisk foretaksregistrering:
- Receita Federal Offentlig Tjeneste: Consulta CNPJ API tillater verifisering mot den offisielle databasen (krever riktig autorisasjon og hastighetsbegrensning)
- Tredjepartsleverandører av data: Tjenester som Serasa Experian og Boa Vista SCPC tilbyr kommersielle APIer som returnerer foretaksdetaljer, registreringsstatus og kredittinformasjon
Merk: Disse tjenestene sjekker faktisk registrering, ikke bare matematisk gyldighet. Du trenger riktig autorisasjon og bør forvente API-kostnader for produksjonsbruk.
Når du skal bruke hver tilnærming
Bruk denne nettleseren når: Du trenger rask validering uten å installere avhengigheter, generere testdata for demoer eller lære hvordan CNPJ-validering fungerer.
Bruk et bibliotek når: Du bygger en applikasjon som trenger klient- eller server-side validering som en del av skjemaprosessering.
Bruk et offisielt API når: Du trenger å verifisere at en CNPJ tilsvarer en ekte, aktiv forretningsenhet med gjeldende registreringsstatus.
Tekniske implementeringsdetaljer
Dette verktøyet kjører helt i nettleseren ved hjelp av JavaScript—ingen serverforespørsler, ingen data som forlater maskinen din. Her er hvordan algoritmene fungerer under panseret, med kode du kan tilpasse for dine egne prosjekter:
CNPJ-genereringsalgoritme
1function generateCNPJ() {
2 // Generer de første 12 sifrene tilfeldig
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Beregn første kontrollsifre
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Beregn andre kontrollsifre
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Formater 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-valideringsalgoritme
1function validateCNPJ(cnpj) {
2 // Fjern ikke-numeriske tegn
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Sjekk om den har riktig lengde
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Sjekk for kjente ugyldige mønstre (alle samme sifre)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Konverter til array av sifre
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Sjekk første kontrollsifre
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Sjekk andre kontrollsifre
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24CNPJ-formateringsfunksjon
1function formatCNPJ(cnpj) {
2 // Fjern ikke-numeriske tegn
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Formater basert på lengde
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}
18Disse kjernefunksjonene kan implementeres i andre programmeringsspråk ved å følge samme logikk. Her er eksempler i Python og Java:
Python-implementering
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 # Generer første 12 sifre tilfeldig
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Beregn første kontrollsifre
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Beregn andre kontrollsifre
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Formater 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 # Fjern ikke-numeriske tegn
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Sjekk lengde
34 if len(cnpj) != 14:
35 return False
36
37 # Sjekk om alle sifre er like
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Konverter til liste av heltall
42 digits = [int(d) for d in cnpj]
43
44 # Valider første kontrollsifre
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Valider andre kontrollsifre
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55Java-implementering
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 // Generer første 12 sifre tilfeldig
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Beregn første kontrollsifre
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Beregn andre kontrollsifre
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Formater 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 // Fjern ikke-numeriske tegn
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Sjekk lengde
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Sjekk om alle sifre er like
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 // Konverter til array av heltall
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 // Valider første kontrollsifre
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Valider andre kontrollsifre
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85Viktige begrensninger og hensyn
Hva dette verktøyet kan og ikke kan gjøre
Hva det validerer: Matematisk korrekthet—hvorvidt kontrollsifre samsvarer med algoritmens beregning.
Hva det ikke validerer: Om CNPJ er registrert hos Receita Federal, om den tilhører en aktiv bedrift, eller om den er knyttet til forretningsnavnet du forventer.
Tenk på det som stavekontroll versus faktasjekk. Dette verktøyet forteller deg om en CNPJ er "stavet" riktig i henhold til matematiske regler, men kan ikke fortelle deg om nummeret tilsvarer en reell, aktiv forretningsenhet.
Juridisk og etisk bruk
Genererte CNPJer er kun for testing og utvikling. De er matematisk gyldige, men ikke registrert hos brasilianske myndigheter, noe som betyr:
- ✅ Trygt å bruke til: Befolke testdatabaser, enhetstesting av valideringslogikk, QA-miljøer, kodeeksempler i dokumentasjon
- ❌ Aldri bruk til: Skatteinnlevering, forretningsregistrering, kontraktssignering, behandling av reelle transaksjoner eller forfalskning av forretningsidentitet
Å bruke en falsk CNPJ for offisielle formål er ikke bare uetisk—det er ulovlig etter brasiliansk lov og kan resultere i svindeltiltale.
Tekniske begrensninger å kjenne til
Tilfeldig generering har implikasjoner: Verktøyet genererer de første 12 sifrene tilfeldig. Reelle CNPJer utstedt av Receita Federal følger interne mønstre relatert til registreringsdato, regionalt kontor og forretningstype. Genererte nummer vil ikke samsvare med disse mønstrene, noe sofistikerte valideringssystemer kan flagge.
Ingen semantisk validering: Et gyldig CNPJ-format betyr ikke gyldig forretningskontekst. For eksempel har statlige enheter spesifikke CNPJ-områder—denne generatoren kan tilfeldigvis lage en, men den ville ikke være meningsfull.
Formatbehandling: Validatoren aksepterer ulike inndataformater (12345678000195, 12.345.678/0001-95), men noen eldre systemer forventer eksakt formatering. Test alltid med dine spesifikke integrasjonskrav.
Personvern og sikkerhet
All behandling skjer på klientsiden i nettleseren din. Ingen CNPJer du genererer eller validerer sendes til servere, logges eller lagres. Verktøyet ber ikke om, håndterer eller behandler personlig informasjon.
Ofte stilte spørsmål om CNPJ-validering
Hva er forskjellen mellom validering og verifisering av en CNPJ?
Validering sjekker om nummeret er matematisk korrekt—riktig format, riktige kontrollsifre, ingen ugyldige mønstre. Dette verktøyet gjør validering.
Verifisering sjekker om CNPJ er registrert hos et faktisk selskap i Receita Federal-databasen. Verifisering krever spørring i statens database og er ikke noe dette verktøyet gjør.
Du kan ha en perfekt gyldig CNPJ som ikke er verifisert (som testnumrene dette verktøyet genererer), eller en ugyldig CNPJ som tilhører et ekte selskap (fordi noen har skrevet feil når de har lagt inn det).
Kan jeg bruke genererte CNPJs for produksjonstesting?
Det kommer an på hva du mener med "produksjonstesting." De er fine for staging-miljøer, belastningstesting og pre-lanserings QA. Men hvis "produksjonstesting" betyr testing med reelle transaksjoner, reelle statlige APIer eller reelle finansielle systemer—da nei, du trenger faktiske registrerte CNPJs.
En sikrere tilnærming: bruk genererte CNPJs i isolerte testmiljøer, og bytt deretter til et lite sett med reelle test-selskaps-CNPJs (som du kontrollerer) når du tester produksjonsintegrasjoner.
Hvorfor avviser validatoren 11.111.111/1111-11?
Selv om en CNPJ med identiske sifre matematisk kan produsere gyldige kontrollsifre, utelukker Receita Federal eksplisitt disse mønstrene. Det er en forretningsregel, ikke en matematisk regel. Det samme gjelder sekvensielle mønstre i noen valideringssystemer.
Dette er likt hvordan mange systemer avviser passord som "passord123" selv om de oppfyller lengdekravene—de er teknisk gyldige, men praktisk uakseptable.
Hvordan håndterer jeg CNPJ-validering i forskjellige lokaler?
Brasilianske selskaper som driver internasjonal virksomhet, dropper noen ganger formateringstegnene når de legger inn CNPJs i utenlandske systemer. Din valideringslogikk bør fjerne ikke-numeriske tegn før sjekking:
1const cleanCNPJ = input.replace(/\D/g, ''); // Fjern alt unntatt sifre
2Godta 12.345.678/0001-95, 12345678000195, og 12 345 678 0001 95 som ekvivalente inndata.
Hva med CNPJ vs CPF-validering?
CPF (Cadastro de Pessoas Físicas) er Brasils individuelle skatteID, mens CNPJ er for bedrifter. De bruker forskjellige algoritmer for kontrollsifre og har forskjellige lengder (CPF har 11 sifre, CNPJ har 14). Hvis du bygger en brasiliansk app som håndterer begge, trenger du separate valideringsfunksjoner—selv om mange biblioteker støtter begge formater.
Et vanlig mønster: la brukere legge inn enten CPF eller CNPJ i samme felt, og deretter oppdage hvilken type basert på lengde etter fjerning av formateringstegn.
Fungerer dette for utenlandske selskaper som opererer i Brasil?
Utenlandske selskaper som opererer i Brasil, må også skaffe CNPJs fra Receita Federal. Deres CNPJs følger samme format og valideringsregler som innenlandske selskaper. Det finnes ingen spesiell "utenlandsk selskap" CNPJ-format.
Imidlertid kan utenlandske selskaper ha ytterligere dokumentasjonskrav og forskjellige registreringsprosesser—konsulter en brasiliansk forretningsadvokat for detaljer.
Kan jeg spørre statens database for å verifisere CNPJ-registrering?
Ja, Receita Federal tilbyr offentlig tilgang til å verifisere grunnleggende CNPJ-informasjon gjennom deres Consulta Pública CNPJ tjeneste. Du kan manuelt slå opp CNPJs eller, med riktig autorisasjon, bruke deres APIer for programmatisk tilgang.
Merk at hyppig bruk krever registrering og det er hastighetsbegrensninger for å forhindre misbruk.
Hvor ofte endres CNPJs?
CNPJs er permanente identifikatorer som ikke endres når et selskap endrer navn, adresse eller eierstruktur. Men hvis et selskap stenger og senere registrerer seg på nytt, kan det motta en ny CNPJ. Filialnumre (den /XXXX delen) kan legges til etter hvert som selskaper åpner nye lokasjoner, men det grunnleggende 8-sifrede nummeret forblir konstant.
Referanser og tilleggsressurser
Offisielle statlige kilder
- Receita Federal do Brasil - Offisielt portal - Den brasilianske skatteetatens offisielle nettsted med CNPJ-registrering og verifiseringstjenester
- Consulta Pública CNPJ - Offentlig CNPJ-oppslag - Offisiell statlig tjeneste for å verifisere CNPJ-registreringsstatus
- Normativ instruks RFB nr. 1863/2018 - Juridiske forskrifter som styrer CNPJ-registrering og -bruk i Brasil
Tekniske standarder og dokumentasjon
- Modulær aritmetiske algoritmer - Beregningen av kontrollsifferet bruker modulo 11-aritmetikk, en standard tilnærming for valideringssiffer
- ISO/IEC 7064 - Internasjonal standard for kontrollsiffersystemer som påvirket brasiliansk dokumentvalideringsdesign
- Brasiliansk sivillovbok (Lov nr. 10.406/2002) - Juridisk rammeverk som definerer forretningsenhetklassifikasjoner som krever CNPJ-registrering
Utviklerressurser
- NPM-pakkeregister - npmjs.com - Depot for JavaScript-biblioteker inkludert brasilianske dokumentvalidatorer
- PyPI (Python Package Index) - pypi.org - Python-biblioteker for CNPJ-validering og brasiliansk dokumentbehandling
- GitHub - Åpen kildekode-implementeringer av CNPJ-validering i flere programmeringsspråk
Start Generering og Validering av CNPJs
Enten du bygger en brasiliansk e-handelplattform, tester betalingsintegrasjoner med Mercado Pago, eller bare trenger å forstå hvordan CNPJ-validering fungerer, gir dette verktøyet deg umiddelbar tilgang til både genererings- og valideringsmuligheter.
Ingen installasjon, ingen API-nøkler, ingen komplisert oppsett. Bare åpne nettleseren din og begynn å jobbe med gyldige brasilianske bedriftsidentifikatorer.