🛠️

Whiz Tools

Build • Create • Innovate

Strumento di Generazione e Validazione del CNPJ Brasiliano per Test

Genera numeri di CNPJ brasiliani validi e valida quelli esistenti con questo semplice strumento progettato per sviluppatori e tester che lavorano con ID aziendali brasiliani.

Generatore e Validatore CNPJ Brasiliano

Generatore di CNPJ

Genera un numero CNPJ brasiliano valido per scopi di test.

Validatore di CNPJ

Controlla se un numero CNPJ brasiliano è valido.

📚

Documentazione

Generatore e Validatore di CNPJ Brasiliano

Introduzione

Il CNPJ brasiliano (Cadastro Nacional da Pessoa Jurídica) è un numero di identificazione unico assegnato alle imprese e alle entità legali in Brasile. Questo strumento generatore e validatore di CNPJ brasiliano offre un modo semplice ed efficiente per generare numeri di CNPJ validi per scopi di test e convalidare numeri di CNPJ esistenti secondo l'algoritmo ufficiale brasiliano. Che tu sia uno sviluppatore che testa applicazioni che gestiscono dati aziendali brasiliani, un professionista QA che crea casi di test, o chiunque lavori con informazioni su aziende brasiliane, questo strumento semplifica il processo di lavoro con i numeri di CNPJ.

A differenza dei numeri di CNPJ reali che sono ufficialmente emessi dalla Receita Federal do Brasil, i CNPJ generati da questo strumento sono matematicamente validi ma non registrati a società reali. Questo li rende perfetti per scenari di test, dati di esempio e ambienti di sviluppo in cui hai bisogno di numeri di CNPJ formattati e validi senza utilizzare identificatori aziendali reali.

Cos'è un CNPJ?

Un CNPJ (Cadastro Nacional da Pessoa Jurídica) è un numero di identificazione di 14 cifre assegnato alle imprese e alle entità legali dalla Receita Federal do Brasil. Serve come equivalente brasiliano di un numero di registrazione aziendale o di un codice fiscale. Ogni azienda che opera legalmente in Brasile deve avere un CNPJ, che viene utilizzato per:

  • Dichiarazione e conformità fiscale
  • Registrazione aziendale presso le agenzie governative
  • Apertura di conti bancari
  • Emissione di fatture e ricevute
  • Partecipazione a gare pubbliche
  • Importazione ed esportazione di beni

Il CNPJ è un identificatore essenziale nell'ecosistema aziendale brasiliano e appare su documenti ufficiali, contratti e registri finanziari.

Struttura e Formato del CNPJ

Un CNPJ brasiliano consiste di 14 cifre, tipicamente formattato come: XX.XXX.XXX/YYYY-ZZ

La struttura si suddivide come segue:

  1. Prime 8 cifre (XX.XXX.XXX): Numero base assegnato all'azienda
  2. 4 cifre dopo la barra (YYYY): Identificatore della filiale (0001 per la sede centrale, altri numeri per le filiali)
  3. Ultime 2 cifre (ZZ): Cifre di controllo per la validazione

Ad esempio, un CNPJ correttamente formattato potrebbe apparire come: 12.345.678/0001-95

Le cifre di controllo (gli ultimi due numeri) vengono calcolate utilizzando un algoritmo matematico specifico che valida l'autenticità del CNPJ. Questo algoritmo garantisce che numeri generati casualmente non possano superare la validazione senza seguire il metodo di calcolo appropriato.

Come Funziona la Validazione del CNPJ

L'algoritmo di validazione del CNPJ utilizza un calcolo ponderato per determinare le cifre di controllo. Ecco come funziona:

Calcolo della Prima Cifra di Controllo

  1. Moltiplica ciascuna delle prime 12 cifre per una sequenza di pesi: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Somma i risultati di queste moltiplicazioni
  3. Calcola il resto di questa somma divisa per 11
  4. Se il resto è inferiore a 2, la prima cifra di controllo è 0; altrimenti, è 11 meno il resto

Calcolo della Seconda Cifra di Controllo

  1. Moltiplica ciascuna delle prime 13 cifre (inclusa la prima cifra di controllo) per una sequenza di pesi: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Somma i risultati di queste moltiplicazioni
  3. Calcola il resto di questa somma divisa per 11
  4. Se il resto è inferiore a 2, la seconda cifra di controllo è 0; altrimenti, è 11 meno il resto

Affinché un CNPJ sia valido, entrambe le cifre di controllo devono corrispondere ai valori calcolati.

Come Utilizzare Questo Strumento

Il nostro strumento generatore e validatore di CNPJ brasiliano offre due funzioni principali: generare CNPJ validi e convalidare numeri di CNPJ esistenti.

Generare un CNPJ

Per generare un CNPJ valido per scopi di test:

  1. Naviga alla sezione "Generatore di CNPJ" dello strumento
  2. Clicca sul pulsante "Genera CNPJ"
  3. Un CNPJ matematicamente valido apparirà nella visualizzazione formattata
  4. Usa il pulsante "Copia" per copiare il CNPJ generato negli appunti

Il CNPJ generato seguirà tutte le regole di validazione matematica di un vero CNPJ ma non è registrato presso la Receita Federal do Brasil.

Validare un CNPJ

Per controllare se un CNPJ è matematicamente valido:

  1. Naviga alla sezione "Validatore di CNPJ" dello strumento
  2. Inserisci il CNPJ che desideri convalidare nel campo di input
    • Lo strumento accetta CNPJ con o senza formattazione (punti, barre e trattini)
  3. Clicca sul pulsante "Valida"
  4. Lo strumento mostrerà se il CNPJ è valido o non valido in base all'algoritmo delle cifre di controllo

Il validatore controlla se il CNPJ segue il formato corretto e se le cifre di controllo corrispondono ai valori attesi secondo l'algoritmo di validazione.

Casi d'Uso

Questo strumento generatore e validatore di CNPJ brasiliano è particolarmente utile nei seguenti scenari:

Sviluppo Software e Test

  • Creazione di Dati di Test: Genera CNPJ validi per popolare database di test senza utilizzare identificatori aziendali reali
  • Test di Unità: Valida funzioni di gestione del CNPJ nel tuo codice con esempi noti validi e non validi
  • Test QA: Crea casi di test per moduli e interfacce che richiedono input di CNPJ
  • Test di Integrazione: Testa sistemi che scambiano dati con servizi governativi brasiliani o istituzioni finanziarie

Educazione e Formazione

  • Apprendere il Formato del CNPJ: Comprendere come sono strutturati gli identificatori aziendali brasiliani
  • Studio degli Algoritmi: Esaminare come funziona la validazione delle cifre di controllo nella pratica
  • Tecniche di Validazione dei Dati: Studiare esempi reali di requisiti di validazione dei dati

Elaborazione dei Dati

  • Pulizia dei Dati: Convalida CNPJ in set di dati esistenti per identificare potenziali errori
  • Validazione dei Moduli: Implementa la validazione lato client o server per input di CNPJ
  • Anonymizzazione dei Dati: Sostituisci CNPJ reali con quelli generati validi quando prepari set di dati per l'analisi

Affari Internazionali

  • Preparazione all'Entrata nel Mercato: Comprendere i requisiti di identificazione aziendale brasiliani
  • Preparazione dei Documenti: Assicurati che il formato sia corretto quando prepari documenti aziendali per il Brasile
  • Controllo di Conformità: Verifica che i numeri di CNPJ raccolti siano almeno matematicamente validi

Alternative

Sebbene il nostro strumento fornisca una soluzione semplice e basata su browser per generare e convalidare CNPJ, ci sono diverse alternative a seconda delle tue esigenze specifiche:

Librerie di Programmazione

Per gli sviluppatori che integrano la validazione del CNPJ direttamente nelle applicazioni, sono disponibili diverse librerie specifiche per linguaggio:

  • JavaScript: cpf_cnpj.js, validator.js
  • Python: python-cnpj, validate-docbr
  • PHP: brazilianutils, respect/validation
  • Java: caelum-stella, commons-validator
  • Ruby: cpf_cnpj, brazilian-rails

Queste librerie offrono spesso funzionalità aggiuntive come formattazione, parsing e validazione di altri documenti brasiliani.

Servizi API

Per le applicazioni che richiedono validazione senza implementare l'algoritmo:

  • API governative brasiliane (richiedono registrazione)
  • API di validazione commerciali che includono il controllo del CNPJ
  • Servizi di informazione aziendale che validano contro il database ufficiale

Calcolo Manuale

Per scopi educativi o validazioni una tantum, puoi applicare manualmente l'algoritmo:

  1. Estrai le prime 12 cifre del CNPJ
  2. Esegui i calcoli ponderati come descritto in precedenza
  3. Confronta le cifre di controllo calcolate con le cifre di controllo effettive

Tuttavia, il calcolo manuale è soggetto a errori e inefficiente per un uso regolare.

Implementazione Tecnica

Il generatore e il validatore di CNPJ in questo strumento sono implementati utilizzando JavaScript, rendendolo veloce e capace di funzionare interamente nel tuo browser senza inviare i tuoi dati a un server. Ecco come funzionano le funzioni principali:

Algoritmo di Generazione del CNPJ

1function generateCNPJ() {
2  // Genera le prime 12 cifre casualmente
3  const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4  
5  // Calcola la prima cifra di controllo
6  const firstCheckDigit = calculateCheckDigit(digits);
7  digits.push(firstCheckDigit);
8  
9  // Calcola la seconda cifra di controllo
10  const secondCheckDigit = calculateCheckDigit(digits);
11  digits.push(secondCheckDigit);
12  
13  // Formatta il 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

Algoritmo di Validazione del CNPJ

1function validateCNPJ(cnpj) {
2  // Rimuovi caratteri non numerici
3  const cleanCNPJ = cnpj.replace(/\D/g, '');
4  
5  // Controlla se ha la lunghezza corretta
6  if (cleanCNPJ.length !== 14) return false;
7  
8  // Controlla per schemi noti non validi (tutti gli stessi numeri)
9  if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10  
11  // Converti in un array di cifre
12  const digits = cleanCNPJ.split('').map(Number);
13  
14  // Controlla la prima cifra di verifica
15  const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16  if (digits[12] !== expectedFirstDigit) return false;
17  
18  // Controlla la seconda cifra di verifica
19  const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20  if (digits[13] !== expectedSecondDigit) return false;
21  
22  return true;
23}
24

Funzione di Formattazione del CNPJ

1function formatCNPJ(cnpj) {
2  // Rimuovi caratteri non numerici
3  const cleanCNPJ = cnpj.replace(/\D/g, '');
4  
5  // Format based on length
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

Queste funzioni principali possono essere implementate in altri linguaggi di programmazione seguendo la stessa logica. Ecco esempi in Python e Java:

Implementazione in 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    # Genera le prime 12 cifre casualmente
15    digits = [random.randint(0, 9) for _ in range(12)]
16    
17    # Calcola la prima cifra di controllo
18    first_check = calculate_check_digit(digits)
19    digits.append(first_check)
20    
21    # Calcola la seconda cifra di controllo
22    second_check = calculate_check_digit(digits)
23    digits.append(second_check)
24    
25    # Format the 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    # Rimuovi caratteri non numerici
31    cnpj = ''.join(filter(str.isdigit, cnpj))
32    
33    # Controlla lunghezza
34    if len(cnpj) != 14:
35        return False
36    
37    # Controlla se tutti i numeri sono gli stessi
38    if len(set(cnpj)) == 1:
39        return False
40    
41    # Converti in lista di interi
42    digits = [int(d) for d in cnpj]
43    
44    # Valida la prima cifra di controllo
45    first_check = calculate_check_digit(digits[:12])
46    if digits[12] != first_check:
47        return False
48    
49    # Valida la seconda cifra di controllo
50    second_check = calculate_check_digit(digits[:13])
51    if digits[13] != second_check:
52        return False
53    
54    return True
55

Implementazione in Java

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        // Genera le prime 12 cifre casualmente
10        for (int i = 0; i < 12; i++) {
11            digits[i] = random.nextInt(10);
12        }
13        
14        // Calcola la prima cifra di controllo
15        digits[12] = calculateCheckDigit(digits, 12);
16        
17        // Calcola la seconda cifra di controllo
18        digits[13] = calculateCheckDigit(digits, 13);
19        
20        // Format the 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        // Rimuovi caratteri non numerici
45        cnpj = cnpj.replaceAll("\\D", "");
46        
47        // Controlla lunghezza
48        if (cnpj.length() != 14) {
49            return false;
50        }
51        
52        // Controlla se tutti i numeri sono gli stessi
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        // Converti in array di interi
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        // Valida la prima cifra di controllo
71        int firstCheck = calculateCheckDigit(digits, 12);
72        if (digits[12] != firstCheck) {
73            return false;
74        }
75        
76        // Valida la seconda cifra di controllo
77        int secondCheck = calculateCheckDigit(digits, 13);
78        if (digits[13] != secondCheck) {
79            return false;
80        }
81        
82        return true;
83    }
84}
85

Considerazioni Importanti

Quando utilizzi questo strumento generatore e validatore di CNPJ, tieni a mente le seguenti considerazioni:

Considerazioni Legali ed Etiche

  • Non per Frode: I CNPJ generati non devono mai essere utilizzati per scopi fraudolenti o di falsificazione
  • Solo per Test: Questi CNPJ sono solo per scopi di test e sviluppo
  • Non Registrati: I CNPJ generati sono matematicamente validi ma non registrati presso le autorità brasiliane
  • Nessuna Validità Reale: Non possono essere utilizzati per la registrazione aziendale o scopi fiscali reali

Limitazioni Tecniche

  • Nessuna Informazione Aziendale: I CNPJ generati non contengono codici di settore aziendale reali o informazioni sulla posizione
  • Nessuna Verifica del Database: Il validatore controlla solo la validità matematica, non lo stato di registrazione
  • Variazioni di Formato: Sebbene lo strumento gestisca le variazioni di formattazione comuni, alcuni sistemi potrebbero richiedere formati specifici

Considerazioni di Sicurezza

  • Elaborazione Lato Client: Tutta l'elaborazione avviene nel tuo browser; nessun dato viene inviato a server
  • Nessuna Memorizzazione Dati: I CNPJ generati non vengono memorizzati o registrati
  • Nessun Dato Personale: Lo strumento non gestisce né elabora informazioni personali

Domande Frequenti

A cosa serve un CNPJ in Brasile?

Un CNPJ è il numero di registrazione nazionale per le imprese e le entità legali in Brasile. Viene utilizzato per scopi fiscali, registrazione aziendale, apertura di conti bancari e identificazione delle aziende nelle transazioni ufficiali.

I CNPJ generati da questo strumento sono reali?

No. I CNPJ generati da questo strumento sono matematicamente validi secondo l'algoritmo delle cifre di controllo, ma non sono registrati presso la Receita Federal do Brasil e non appartengono a aziende reali.

Posso utilizzare i CNPJ generati per la mia azienda?

No. Per ottenere un CNPJ legittimo per un'azienda, devi registrarti presso la Receita Federal do Brasil seguendo il processo ufficiale. I CNPJ generati sono solo per scopi di test.

Come posso sapere se un CNPJ appartiene a una vera azienda?

Per verificare se un CNPJ è registrato a un'azienda reale, è necessario consultare il database della Receita Federal do Brasil. Il nostro strumento controlla solo se un CNPJ è matematicamente valido, non se è ufficialmente registrato.

Perché il validatore rifiuta un CNPJ con tutti gli stessi numeri?

I CNPJ con tutti gli stessi numeri (come 11.111.111/1111-11) sono automaticamente considerati non validi, anche se superano matematicamente l'algoritmo delle cifre di controllo. Questa è una regola stabilita dalla Receita Federal do Brasil.

Lo strumento memorizza i CNPJ che genero o valido?

No. Tutta l'elaborazione avviene nel tuo browser e non memorizziamo né trasmettiamo alcuno dei CNPJ che generi o convalidi.

Posso generare più CNPJ contemporaneamente?

La versione attuale dello strumento genera un CNPJ alla volta. Per la generazione in massa, potresti voler considerare di utilizzare una delle librerie di programmazione menzionate nella sezione Alternative.

Perché il formato XX.XXX.XXX/XXXX-XX è importante?

Questo è il formato ufficiale richiesto dalle autorità brasiliane. Il raggruppamento specifico aiuta a identificare i diversi componenti del CNPJ, come il numero base e l'identificatore della filiale.

Come posso convalidare un CNPJ programmaticamente?

Puoi implementare l'algoritmo di validazione nel tuo linguaggio di programmazione preferito utilizzando gli esempi di codice forniti nella sezione Implementazione Tecnica, o utilizzare una delle librerie menzionate nella sezione Alternative.

Esistono CNPJ speciali per enti governativi?

Sì. Gli enti governativi in Brasile hanno schemi di CNPJ specifici. Ad esempio, gli enti governativi federali spesso iniziano con cifre specifiche. Il nostro generatore crea CNPJ casuali e non genera specificamente CNPJ per enti governativi.

Riferimenti

  1. Receita Federal do Brasil - Sito Ufficiale
  2. "CNPJ - Cadastro Nacional da Pessoa Jurídica" - Wikipedia
  3. Codice Civile Brasiliano (Legge n. 10.406/2002) - Quadro normativo per le entità aziendali in Brasile
  4. Istruzione Normativa sulla Registrazione Aziendale Brasiliana (IN RFB n. 1863/2018) - Regolamenti sulla registrazione del CNPJ

Provalo Ora

Il nostro strumento generatore e validatore di CNPJ brasiliano rende semplice ed efficiente lavorare con questi numeri di identificazione. Che tu stia testando applicazioni, preparando dati di esempio o convalidando CNPJ esistenti, questo strumento fornisce una soluzione diretta senza la complessità delle integrazioni API o delle configurazioni avanzate.

Genera il tuo primo CNPJ valido ora o convalida uno esistente utilizzando la nostra semplice interfaccia!