Pāriet uz saturu

CNPJ ģenerators un validātors - Brazīlijas uzņēmuma ID rīks

Ģenerējiet derīgus CNPJ numurus testēšanai vai nekavējoties pārbaudiet Brazīlijas uzņēmumu identifikācijas. Bezmaksas rīks ar pārbaudes ciparu verificēšanu izstrādātājiem, kas strādā ar Cadastro Nacional da Pessoa Jurídica.

Brazīlijas CNPJ ģenerators un validātors

CNPJ ģenerators

Ģenerēt derīgu Brazīlijas CNPJ numuru testēšanas nolūkiem.

CNPJ validātors

Pārbaudīt, vai Brazīlijas CNPJ numurs ir derīgs.

Ielādes kalkulators...
📚

Dokumentācija

Izpratne par Brazīlijas CNPJ numuriem

CNPJ (Cadastro Nacional da Pessoa Jurídica) ir Brazīlijas korporatīvās nodokļu identifikācijas numurs — 14 ciparu skaitlis, kas identificē katru juridisko uzņēmumu valstī. Ja veidojat programmatūru, kas apstrādā Brazīlijas uzņēmumu datus, jūs ātri saskarsieties ar šiem numuriem reģistrācijas veidlapās, rēķinos un API integrācijās.

Šī rīka praktiskums ir šāds: tas ģenerē matemātiski derīgus CNPJ numurus testēšanai bez reālu uzņēmumu identifikatoru izmantošanas. Kad jūs iestatāt testa datubāzi ar 1000 ierakstiem vai atkļūdojat validācijas rutīnu plkst. 2 naktī, jums ir nepieciešami CNPJ numuri, kas iztur algoritmisku pārbaudi, bet nejauši nesaskan ar faktiskiem uzņēmumiem. Tieši to šis rīks ģenerē.

Šeit izveidotie numuri atbilst oficinālajam Receita Federal (Brazīlijas Federālās ieņēmumu dienesta) validācijas algoritmam. Tiem ir pareizi pārbaudes cipari un pareiza formatēšana — vienkārši tie nav reģistrēti valdības datubāzē. Domājiet par tiem kā par sintaktiski pareiziem testa datiem, kas neradīs atbilstības problēmas jūsu izstrādes vidē.

Kas ir CNPJ un kāpēc tas ir svarīgs

CNPJ kalpo kā Brazīlijas uzņēmumu identifikators — līdzīgi kā EIN Savienotajās Valstīs vai Uzņēmuma reģistrācijas numurs Apvienotajā Karalistē. Katrai uzņēmējdarbības vienībai, kas darbojas likumīgi Brazīlijā, ir jābūt šādam numuram, ko izsniedz Receita Federal (Federālais ieņēmumu dienests).

Jūs saskarsieties ar CNPJ šādos gadījumos:

  • Maksājumu apstrāde: Brazīlijas maksājumu vārti prasa CNPJ validāciju tirgotāju kontiem
  • Nodokļu atbilstība: Katrai Brazīlijā izdotai rēķinam ir jāietver derīgs CNPJ
  • Uzņēmuma reģistrācija: Valdības aģentūras izmanto CNPJ, lai izsekotu juridiskās vienības dažādās sistēmās
  • Banku operācijas: Korporatīvo kontu atvēršana vai starptautisko pārskaitījumu apstrāde
  • Imports/eksports: Muitas dokumentācija prasa CNPJ pārbaudi
  • Valdības līgumi: Publiskie konkursu sistēmas pārbauda CNPJ pirms piedāvājumu pieņemšanas

No savas pieredzes darbā ar Brazīlijas e-komercijas platformām zinu, ka viens no izplatītākajiem integrācijas punktiem ir norēķinu plūsma, kur lietotāji ievada savu CNPJ korporatīvajiem pirkumiem. Jūsu validācijas loģikai ir jāuztver formatēšanas kļūdas pirms maksājumu apstrādātāja — pretējā gadījumā jūs redzēsiet neveiksmīgus darījumus, kurus varēja novērst.

CNPJ struktūra un formāts

CNPJ sastāv no 14 cipariem, kas formatēti šādi: XX.XXX.XXX/YYYY-ZZ

Struktūras sadalījums:

  1. Pirmie 8 cipari (XX.XXX.XXX): Bāzes reģistrācijas numurs, kas unikāli piešķirts uzņēmumam
  2. Nākamie 4 cipari (/YYYY): Filiāles vai iestādes identifikators—/0001 norāda galveno mītni, savukārt /0002, /0003 apzīmē filiāles
  3. Pēdējie 2 cipari (-ZZ): Pārbaudes cipari, kas aprēķināti, izmantojot svērtu algoritmu

Piemērs: 12.345.678/0001-95

Kas ir interesants saistībā ar filiāles identifikatoru: kad uzņēmums atver vairākas atrašanās vietas, katrai tiek piešķirti tie paši pirmie 8 cipari, bet atšķirīgs filiāles numurs. Tāpēc, ja mazumtirdzniecības ķēdei ir 50 veikali, tiem būs CNPJ, kas beidzas ar /0001 līdz /0050, visi kopīgojot vienu un to pašu bāzes numuru. Tas atvieglo identificēt, ka vairāki CNPJ pieder vienai un tai pašai mātes organizācijai.

Pārbaudes cipari nav nejaušīgi—tie tiek aprēķināti, izmantojot modulus-11 algoritmu ar specifiskām svaru secībām. Šis dizaina risinājums, kas ir ierasts brazīliešu administratīvajos dokumentos, padara matemātiski grūti viltot derīgus numurus vai nejauši izveidot derīgus numurus ar drukas kļūdām.

Kā darbojas CNPJ validācija

Validācijas algoritms izmanto svērtu modulus-11 aprēķinu. Šeit ir tā loģika:

Pirmā pārbaudes cipara aprēķins

  1. Ņemiet pirmos 12 ciparus un reiziniet katru ar svaru: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Saskaitiet visus reizinājumus
  3. Daliet summu ar 11 un iegūstiet atlikumu
  4. Ja atlikums < 2, pārbaudes cipars ir 0; pretējā gadījumā tas ir 11 - atlikums

Otrā pārbaudes cipara aprēķins

  1. Ņemiet pirmos 13 ciparus (ieskaitot pirmo pārbaudes ciparu) un reiziniet ar svaru: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Saskaitiet visus reizinājumus
  3. Daliet ar 11 un iegūstiet atlikumu
  4. Ja atlikums < 2, pārbaudes cipars ir 0; pretējā gadījumā tas ir 11 - atlikums

Kāpēc šī pieeja darbojas: Svērtā reizināšanas sistēma izveido unikālu saistību starp visiem 12 bāzes cipariem un iegūtajiem pārbaudes cipariem. Pat viena cipara maiņa bāzes skaitlī rada atšķirīgus pārbaudes ciparus, kas ļauj atklāt izplatītas transkripcijas kļūdas, piemēram, divu ciparu samainīšanu vietām (ierakstot 12.345 vietā 12.354).

Praktiska piezīme: CNPJ ar visiem vienādiem cipariem (piemēram, 11.111.111/1111-11) automātiski ir nederīgi, pat ja tie iztur matemātisko pārbaudi. Receita Federal skaidri izslēdz šādus modeļus, lai novērstu vienkāršus gadījumus.

Kā izmantot CNPJ ģeneratoru un validatoru

CNPJ ģenerēšana testiem

Vai jums vajadzīgs derīgs CNPJ jūsu testa datubāzei? Lūk, kā:

  1. Noklikšķiniet uz "Ģenerēt CNPJ"
  2. Rīks momentāni izveido matemātiski derīgu numuru
  3. Noklikšķiniet uz "Kopēt", lai to ievietotu starpliktenē
  4. Ielīmējiet to savās testa formās, datubāzes sēklās vai vienības testos

Katrs ģenerētais CNPJ iztur visas algoritmiskās pārbaudes, bet nav reģistrēts Receita Federal. Tas nozīmē, ka jūs varat tos brīvi izmantot izstrādē, nebaidoties nejauši izmantot reālas kompānijas identifikatoru.

CNPJ numuru validēšana

Vai jums ir CNPJ, kuru nepieciešams pārbaudīt? Validators to apstrādā:

  1. Ielīmējiet vai ierakstiet CNPJ ievades laukā
  2. Nav jāuztraucas par formatējumu — tas darbojas gan ar 12345678000195, gan 12.345.678/0001-95
  3. Noklikšķiniet uz "Validēt"
  4. Saņemiet momentālu atgriezenisko saiti par to, vai pārbaudes cipari ir pareizi

Ko validadors pārbauda: pareizu garumu (14 cipari), pareizus pārbaudes ciparu aprēķinus un nederīgu šablonu izslēgšanu, piemēram, vienādi cipari. Ko tas nepārbauda: vai CNPJ ir reģistrēts valdības datubāzē — tam ir nepieciešama tieša pieprasīšana Receita Federal.

Reālas pasaules lietošanas gadījumi CNPJ ģeneratoram un validatoram

Programmatūras izstrāde un testēšana

Datu bāzes aizpildīšana: Veidojot sagatavošanas vidi ar reālistiskiem testa datiem, jums ir nepieciešami desmitiem vai simtiem derīgu CNPJ. Manuāli tos izveidot ir nogurdinoši, un īstu uzņēmumu identifikatoru izmantošana rada privātuma bažas. Ģenerētie CNPJ atrisina abas problēmas.

Vienību testēšanas robežgadījumi: Jūsu validācijas funkcijai ir jānoraida 00.000.000/0000-00, bet jāpieņem 11.222.333/0001-81. Ģeneratora esamība ļauj ātri izveidot gan derīgus, gan apzināti nederīgus testēšanas gadījumus, lai pārbaudītu, vai jūsu loģika pareizi apstrādā robežnosacījumus.

QA regresu testēšana: Testējot reģistrācijas veidlapas vai B2B norēķinu plūsmas, QA komandām katrā piegājienā ir nepieciešami svaigi testa dati. Bieži sastopama problēma: testa vides tiek piesārņotas ar vienām un tām pašām 5-6 CNPJ, kas atkārtoti tiek izmantotas, kas maskē kļūdas, kas parādās tikai ar specifiskiem ciparu modeļiem.

API integrācijas testēšana: Ja integrējat ar brazīliešu maksājumu apstrādātājiem, piemēram, PagSeguro vai Mercado Pago, to smilšu kastīšu vidēm bieži ir nepieciešams derīgs CNPJ formāts. Matemātikai ir jābūt pareizai, pat ja netiek skarta ražošanas datu bāze.

Datu apstrāde un validācija

Importēto datu tīrīšana: Jūs esat saņēmuši CSV ar 10 000 brazīliešu uzņēmumu ierakstiem. Pirms apstrādes jums ir jāidentificē, kuri CNPJ ir bojāti. Tos carejot caur validatoru, tiek atzīmēti ieraksti ar drukas kļūdām, saīsināšanu vai nepareiziem pārbaudes cipariem — tas ietaupa stundām ilgu atkļūdošanu.

Klienta puses formas validācija: Nederīgu CNPJ identificēšana pirms formas iesniegšanas uzlabo lietotāja pieredzi. Neviens nevēlas aizpildīt 20 lauku reģistrācijas formu, lai pēc tam saņemtu kļūdu tās iesniegšanas brīdī tikai tāpēc, ka ir samainīti vietām divi cipari CNPJ.

Datu anonimizācija analīzei: Gatavojot ražošanas datus koplietošanai ar analītikas komandām vai ārējiem partneriem, jums ir jāaizstāj īstie CNPJ ar derīgiem, bet fiktīviem. Tas saglabā datu references integritāti, vienlaikus aizsargājot faktiskās uzņēmumu identitātes.

Starptautiskās uzņēmējdarbības operācijas

Brazīlijas prasību izprašana: Ja paplašināt darbību Brazīlijas tirgū, jūs saskarsieties ar CNPJ prasībām līgumos, rēķinos un sūtīšanas dokumentācijā. Rīka esamība eksperimentēšanai ar formātu palīdz saprast, kas jūsu sistēmām ir jāapstrādā.

Trešās puses integrācijas specifikācijas: Pārskatot brazīliešu SaaS sniedzēju API dokumentāciju, bieži redzēsiet CNPJ laukus derīgo datu piemēros. Spēja ģenerēt derīgus testa vērtības palīdz ātrāk izveidot integrācijas.

Alternatīvas CNPJ validācijas pieejas

Programmēšanas bibliotēkas

Ja jums ir nepieciešama CNPJ validācija jūsu lietojumprogrammas loģikā, šīs bibliotēkas īsteno pārbaudes cipara algoritmu:

Šīs bibliotēkas parasti nodarbojas ar formatēšanu, parsēšanu un validāciju vairākiem brazīliešu dokumentu veidiem (CPF, CNPJ u.c.).

Oficiālās verificēšanas API

Ražošanas sistēmām, kurām nepieciešama faktiska uzņēmuma reģistrācijas pārbaude:

  • Receita Federal publiskais dienests: Consulta CNPJ API ļauj pārbaudīt pret oficiālo datubāzi (nepieciešama atbilstoša autorizācija un ātruma ierobežošana)
  • Trešās puses datu sniedzēji: Pakalpojumi kā Serasa Experian un Boa Vista SCPC piedāvā komerciālās API, kas atgriež uzņēmuma detaļas, reģistrācijas statusu un kredīta informāciju

Piezīme: Šie pakalpojumi pārbauda faktisko reģistrāciju, ne tikai matemātisko derīgumu. Jums būs nepieciešama atbilstoša autorizācija un jāparedz API izmaksas ražošanas izmantošanai.

Kad izmantot katru pieeju

Izmantojiet šo pārlūka rīku, kad: Jums nepieciešama ātra validācija bez atkarību instalēšanas, testa datu ģenerēšanai demonstrācijām vai lai izprastu, kā darbojas CNPJ validācija.

Izmantojiet bibliotēku, kad: Jūs veidojat lietojumprogrammu, kurai nepieciešama klienta vai servera puses validācija kā daļa no formas apstrādes.

Izmantojiet oficiālo API, kad: Jums nepieciešams pārbaudīt, vai CNPJ atbilst reālam, aktīvam uzņēmumam ar pašreizēju reģistrācijas statusu.

Tehniskās ieviešanas detaļas

Šis rīks darbojas pilnībā jūsu pārlūkprogrammā, izmantojot JavaScript — bez servera pieprasījumiem, bez datu atstāšanas jūsu ierīcē. Šeit ir to algoritmu darbības principi, kurus var pielāgot saviem projektiem:

CNPJ ģenerēšanas algoritms

1function generateCNPJ() {
2  // Ģenerēt pirmos 12 ciparus nejauši
3  const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4  
5  // Aprēķināt pirmo pārbaudes ciparu
6  const firstCheckDigit = calculateCheckDigit(digits);
7  digits.push(firstCheckDigit);
8  
9  // Aprēķināt otro pārbaudes ciparu
10  const secondCheckDigit = calculateCheckDigit(digits);
11  digits.push(secondCheckDigit);
12  
13  // Formatēt 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 validācijas algoritms

1function validateCNPJ(cnpj) {
2  // Noņemt ne-skaitliskos simbolus
3  const cleanCNPJ = cnpj.replace(/\D/g, '');
4  
5  // Pārbaudīt, vai ir pareizs garums
6  if (cleanCNPJ.length !== 14) return false;
7  
8  // Pārbaudīt zināmus nederīgus šablonus (visi vienādi cipari)
9  if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10  
11  // Pārvērst ciparu masīvā
12  const digits = cleanCNPJ.split('').map(Number);
13  
14  // Pārbaudīt pirmo verificēšanas ciparu
15  const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16  if (digits[12] !== expectedFirstDigit) return false;
17  
18  // Pārbaudīt otro verificēšanas ciparu
19  const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20  if (digits[13] !== expectedSecondDigit) return false;
21  
22  return true;
23}
24

CNPJ formatēšanas funkcija

1function formatCNPJ(cnpj) {
2  // Noņemt ne-skaitliskos simbolus
3  const cleanCNPJ = cnpj.replace(/\D/g, '');
4  
5  // Formatēt atkarībā no garuma
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

Šīs pamatfunkcijas var realizēt citās programmēšanas valodās, izmantojot līdzīgu loģiku. Šeit ir piemēri Python un Java valodās:

Python realizācija

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    # Ģenerēt pirmos 12 ciparus nejauši
15    digits = [random.randint(0, 9) for _ in range(12)]
16    
17    # Aprēķināt pirmo pārbaudes ciparu
18    first_check = calculate_check_digit(digits)
19    digits.append(first_check)
20    
21    # Aprēķināt otro pārbaudes ciparu
22    second_check = calculate_check_digit(digits)
23    digits.append(second_check)
24    
25    # Formatēt 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    # Noņemt ne-skaitliskos simbolus
31    cnpj = ''.join(filter(str.isdigit, cnpj))
32    
33    # Pārbaudīt garumu
34    if len(cnpj) != 14:
35        return False
36    
37    # Pārbaudīt, vai visi cipari ir vienādi
38    if len(set(cnpj)) == 1:
39        return False
40    
41    # Pārvērst ciparu sarakstā
42    digits = [int(d) for d in cnpj]
43    
44    # Validēt pirmo pārbaudes ciparu
45    first_check = calculate_check_digit(digits[:12])
46    if digits[12] != first_check:
47        return False
48    
49    # Validēt otro pārbaudes ciparu
50    second_check = calculate_check_digit(digits[:13])
51    if digits[13] != second_check:
52        return False
53    
54    return True
55

Java realizācija

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        // Ģenerēt pirmos 12 ciparus nejauši
10        for (int i = 0; i < 12; i++) {
11            digits[i] = random.nextInt(10);
12        }
13        
14        // Aprēķināt pirmo pārbaudes ciparu
15        digits[12] = calculateCheckDigit(digits, 12);
16        
17        // Aprēķināt otro pārbaudes ciparu
18        digits[13] = calculateCheckDigit(digits, 13);
19        
20        // Formatēt 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        // Noņemt ne-skaitliskos simbolus
45        cnpj = cnpj.replaceAll("\\D", "");
46        
47        // Pārbaudīt garumu
48        if (cnpj.length() != 14) {
49            return false;
50        }
51        
52        // Pārbaudīt, vai visi cipari ir vienādi
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        // Pārvērst ciparu masīvā
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        // Validēt pirmo pārbaudes ciparu
71        int firstCheck = calculateCheckDigit(digits, 12);
72        if (digits[12] != firstCheck) {
73            return false;
74        }
75        
76        // Validēt otro pārbaudes ciparu
77        int secondCheck = calculateCheckDigit(digits, 13);
78        if (digits[13] != secondCheck) {
79            return false;
80        }
81        
82        return true;
83    }
84}
85

Svarīgi ierobežojumi un apsvērumi

Ko šis rīks var un nevar darīt

Ko tas validē: Matemātisko pareizību — vai kontrolcipari atbilst algoritma aprēķinam.

Ko tas nevalidē: Vai CNPJ ir reģistrēts Receita Federal, vai tas pieder aktīvam uzņēmumam vai vai tas ir saistīts ar uzņēmuma nosaukumu, kuru jūs gaidāt.

Domājiet par to kā par parerakstīšanas pārbaudi salīdzinājumā ar faktu pārbaudi. Šis rīks pasaka, vai CNPJ ir "uzrakstīts" pareizi saskaņā ar matemātiskajiem noteikumiem, bet tas nevar pateikt, vai skaitlis atbilst reālam, aktīvam uzņēmumam.

Juridiska un ētiska izmantošana

Ģenerētie CNPJ ir paredzēti tikai testēšanai un izstrādei. Tie ir matemātiski derīgi, bet nav reģistrēti brazīliešu iestādēs, kas nozīmē:

  • Droši lietot: Testu datubāzu aizpildīšanai, vienības testu validācijas loģikai, QA vidēm, koda piemēriem dokumentācijā
  • Nekad neizmantot: Nodokļu iesniegšanai, uzņēmuma reģistrācijai, līgumu parakstīšanai, reālu darījumu apstrādei vai uzņēmuma identitātes viltošanai

Fiktīva CNPJ izmantošana oficiāliem mērķiem nav tikai neētiska — tā ir nelikumīga saskaņā ar brazīliešu likumu un var izraisīt krāpšanas apsūdzības.

Tehniskie ierobežojumi, kas jāzina

Nejaušā ģenerēšana ir ar sekām: Rīks ģenerē pirmos 12 ciparus nejauši. Īstie CNPJ, ko izsniedz Receita Federal, seko iekšējām shēmām, kas saistītas ar reģistrācijas datumu, reģionālo biroju un uzņēmuma veidu. Ģenerētie skaitļi šīm shēmām neatbildīs, ko varētu atzīmēt sarežģītas validācijas sistēmas.

Nav semantiskas validācijas: Derīgs CNPJ formāts nenozīmē derīgu uzņēmuma kontekstu. Piemēram, valdības iestādēm ir īpaši CNPJ diapazon — šis ģenerators varētu nejauši izveidot vienu, bet tas nebūtu jēgpilns.

Formāta apstrāde: Validators pieņem dažādus ievades formātus (12345678000195, 12.345.678/0001-95), bet dažas mantotās sistēmas sagaida precīzu formatējumu. Vienmēr pārbaudiet ar jūsu specifiskajām integrācijas prasībām.

Privātums un drošība

Visa apstrāde notiek klienta pusē jūsu pārlūkprogrammā. Neviena CNPJ, ko jūs ģenerējat vai validējat, netiek nosūtīta uz serveriem, reģistrēta vai saglabāta. Rīks nepieprasī, neapstrādā un neapstrādā nekādu personas informāciju.

Bieži uzdotie jautājumi par CNPJ validāciju

Kāda ir atšķirība starp CNPJ validāciju un pārbaudīšanu?

Validācija pārbauda, vai numurs ir matemātiski pareizs — pareizs formāts, pareizas kontrolcipars, nav nederīgu modeļu. Šis rīks veic validāciju.

Pārbaude pārbauda, vai CNPJ ir reģistrēts ar faktisku uzņēmumu Receita Federal datubāzē. Pārbaudei ir nepieciešama pieprasīšana valdības datubāzē, un to šis rīks neveic.

Jums var būt pilnīgi derīgs CNPJ, kas nav pārbaudīts (piemēram, testa numuri, ko ģenerē šis rīks), vai nederīgs CNPJ, kas pieder reālam uzņēmumam (jo kāds ir pieļāvis kļūdu, ievadot to).

Vai es varu izmantot ģenerētus CNPJ ražošanas testēšanai?

Tas ir atkarīgs no tā, ko jūs saprotat ar "ražošanas testēšanu". Tie ir labi staging vidēm, slodzes testēšanai un pirmsizlaides kvalitātes nodrošināšanai. Bet, ja ar "ražošanas testēšanu" jūs saprotat testēšanu ar reālām transakcijām, reālām valdības API vai reālām finanšu sistēmām — tad nē, jums ir nepieciešami faktiski reģistrēti CNPJ.

Drošāka pieeja: izmantojiet ģenerētus CNPJ izolētās testa vidēs, pēc tam pārslēdzieties uz nelielu reālu testu uzņēmumu CNPJ kopu (tādus, kurus jūs kontrolējat), testējot ražošanas integrācijas.

Kāpēc validētājs noraida 11.111.111/1111-11?

Lai gan CNPJ ar visiem identiskiem cipariem matemātiski var ģenerēt derīgus kontrolciparus, Receita Federal skaidri izslēdz šādus modeļus. Tas ir biznesa noteikums, nevis matemātisks. Tas pats attiecas uz secīgiem modeļiem dažās validācijas sistēmās.

Tas ir līdzīgi tam, kā daudzas sistēmas noraida paroles kā "password123", lai gan tās atbilst garuma prasībām — tās ir tehniski derīgas, bet praktiski nepieņemamas.

Kā apieties ar CNPJ validāciju dažādās lokalizācijās?

Brazīlijas uzņēmumi, kas darbojas starptautiski, dažreiz izlaiž formatēšanas rakstzīmes, ievadot CNPJ ārvalstu sistēmās. Jūsu validācijas loģikai pirms pārbaudes ir jānoņem ne-skaitliskie rakstzīmes:

1const cleanCNPJ = input.replace(/\D/g, ''); // Noņem visu, izņemot ciparus
2

Pieņemiet 12.345.678/0001-95, 12345678000195 un 12 345 678 0001 95 kā līdzvērtīgus ievades veidus.

Kas attiecas uz CNPJ un CPF validāciju?

CPF (Cadastro de Pessoas Físicas) ir Brazīlijas individuālais nodokļu identifikators, savukārt CNPJ ir paredzēts uzņēmumiem. Tie izmanto atšķirīgus kontrolciparu algoritmus un garumus (CPF ir 11 cipari, CNPJ — 14). Ja jūs veidojat brazīliešu lietotni, kas apstrādā abus, jums būs nepieciešamas atsevišķas validācijas funkcijas — lai gan daudzas bibliotēkas atbalsta abas formātas.

Izplatīts modelis: ļaujiet lietotājiem ievadīt CPF vai CNPJ vienā laukā, pēc tam noteikt tipu pēc garuma, noņemot formatēšanas rakstzīmes.

Vai tas darbojas ārvalstu uzņēmumiem, kas darbojas Brazīlijā?

Ārvalstu uzņēmumiem, kas darbojas Brazīlijā, ir jāsaņem CNPJ no Receita Federal. To CNPJ seko vienādam formatam un validācijas noteikumiem kā vietējiem uzņēmumiem. Nepastāv īpašs "ārvalstu uzņēmuma" CNPJ formāts.

Tomēr ārvalstu uzņēmumiem var būt papildu dokumentācijas prasības un atšķirīgas reģistrācijas procedūras — konsultējieties ar brazīliešu biznesa advokātu par specifiskām detaļām.

Vai es varu pieprasīt valdības datubāzi, lai pārbaudītu CNPJ reģistrāciju?

Jā, Receita Federal nodrošina publisku piekļuvi CNPJ pamatinformācijas pārbaudei caur viņu Consulta Pública CNPJ pakalpojumu. Jūs varat manuāli meklēt CNPJ vai, ar atbilstošu autorizāciju, izmantot to API programmatisku piekļuvi.

Ņemiet vērā, ka intensīvai izmantošanai ir nepieciešama reģistrācija, un pastāv ierobežojumi, lai novērstu ļaunprātīgu izmantošanu.

Cik bieži mainās CNPJ?

CNPJ ir pastāvīgi identifikatori, kas nemainās, kad uzņēmums maina savu nosaukumu, adresi vai īpašumstruktūru. Tomēr, ja uzņēmums slēdzas un vēlāk atkārtoti reģistrējas, tas var saņemt jaunu CNPJ. Filiāļu numuri (daļa /XXXX) var tikt pievienoti, kad uzņēmumi atver jaunas atrašanās vietas, bet pamatā 8-ciparu skaitlis paliek nemainīgs.

Atsauces un papildu resursi

Oficiālie valdības avoti

  1. Receita Federal do Brasil - Oficiālais portāls - Brazīlijas Federālās ieņēmumu dienesta oficiālā vietne ar CNPJ reģistrācijas un pārbaudes pakalpojumiem
  2. Consulta Pública CNPJ - Publiska CNPJ meklēšana - Oficiāls valdības pakalpojums CNPJ reģistrācijas statusa pārbaudei
  3. Normatīvā instrukcija RFB Nr. 1863/2018 - Tiesiskās normas, kas regulē CNPJ reģistrāciju un izmantošanu Brazīlijā

Tehniskie standarti un dokumentācija

  1. Modulārās aritmētikas algoritmi - Pārbaudes cipara aprēķins izmanto modulāro aritmētiku, standarta pieeju validācijas cipariem
  2. ISO/IEC 7064 - Starptautiskais standarts pārbaudes ciparu sistēmām, kas ietekmēja Brazīlijas dokumentu validācijas dizainu
  3. Brazīlijas Civilais kodekss (Likums Nr. 10.406/2002) - Tiesiskais regulējums, kas nosaka uzņēmumu klasifikācijas, kurām nepieciešama CNPJ reģistrācija

Izstrādātāju resursi

  1. NPM pakotņu reģistrs - npmjs.com - Krātuve JavaScript bibliotēkām, tostarp Brazīlijas dokumentu validatoriem
  2. PyPI (Python pakotņu indekss) - pypi.org - Python bibliotēkas CNPJ validācijai un Brazīlijas dokumentu apstrādei
  3. GitHub - Atvērtā pirmkoda CNPJ validācijas realizācijas vairākās programmēšanas valodās

Sākt CNPJ ģenerēšanu un validāciju

Vai jūs veidojat brazīliešu e-komercijas platformu, pārbaudāt maksājumu integrācijas ar Mercado Pago vai vienkārši vēlaties saprast, kā darbojas CNPJ validācija, šis rīks jums sniedz tūlītēju piekļuvi gan ģenerēšanas, gan validācijas iespējām.

Nav nepieciešama instalācija, nav vajadzīgas API atslēgas, nav sarežģītas iestatīšanas. Vienkārši atveriet savu pārlūkprogrammu un sāciet darbu ar derīgiem brazīliešu uzņēmumu identifikatoriem.