CNPJ Generatorius ir Tikrintuvas - Brazilijos Verslo ID Įrankis
Generuokite galiojančius CNPJ numerius testavimui arba iš karto patikrinkite Brazilijos verslo ID. Nemokamas įrankis su kontrolinių skaitmenų tikrinimu programuotojams, dirbantiems su Nacionaliniu Juridinių Asmenų Registru.
Brazilijos CNPJ generatorius ir tikrintuvas
CNPJ generatorius
Generuoti galiojantį Brazilijos CNPJ numerį testavimo tikslais.
CNPJ tikrintuvas
Patikrinti, ar Brazilijos CNPJ numeris yra galiojantis.
Dokumentacija
Suprantant Brazilijos CNPJ Numerius
CNPJ (Cadastro Nacional da Pessoa Jurídica) yra Brazilijos įmonės mokestinio identifikavimo numeris – 14 skaitmenų numeris, identifikuojantis kiekvieną teisinę verslo įmonę šalyje. Jei kuriate programinę įrangą, kuri tvarko braziliškus verslo duomenis, greitai susidursite su šiais numeriais registracijos formose, sąskaitose ir API integracijos procesuose.
Štai kas daro šį įrankį praktišku: jis generuoja matematiškai galiojančius CNPJ numerius testavimui, nenaudojant tikrų įmonių identifikatorių. Kai ruošiate bandomąją duomenų bazę su 1000 įrašų arba deriniate patvirtinimo rutiną 2 val. nakties, jums reikia CNPJ numerių, kurie praeitų algoritmines patikras, bet neatsitiktinai nesutaptų su tikromis įmonėmis. Būtent tai čia ir generuojama.
Čia sukurti numeriai atitinka oficialų Receita Federal (Brazilijos federalinės mokesčių tarnybos) patvirtinimo algoritmą. Jie turi teisingus kontrolinius skaitmenis ir tinkamą formatavimą – tiesiog nėra registruoti vyriausybės duomenų bazėje. Galvokite apie juos kaip apie sintaksiškai teisingus testavimo duomenis, kurie nekels atitikties problemų jūsų kūrimo aplinkoje.
Kas yra CNPJ ir kodėl tai svarbu
CNPJ yra Brazilijos įmonės identifikatorius - panašiai kaip EIN Jungtinėse Valstijose arba Įmonės registracijos numeris Jungtinėje Karalystėje. Kiekvienas teisėtai veikiantis verslo subjektas Brazilijoje privalo turėti CNPJ, kurį išduoda Receita Federal (Federalinė mokesčių tarnyba).
Jūs susidursite su CNPJ, kai:
- Apdorojant mokėjimus: Brazilijos mokėjimų tarpininkai reikalauja CNPJ patvirtinimo prekybininko sąskaitoms
- Mokesčių atitiktis: Kiekviena sąskaita faktūra Brazilijoje turi apimti galiojantį CNPJ
- Verslo registracija: Vyriausybinės agentūros naudoja CNPJ sekti teisinius subjektus sistemose
- Bankinės operacijos: Atidarant įmonės sąskaitas ar vykdant tarptautinius pervedimus
- Importas/eksportas: Muitinės dokumentai reikalauja CNPJ patvirtinimo
- Vyriausybės sutartys: Viešųjų konkursų sistemos tikrina CNPJ prieš priimant pasiūlymus
Mano patirtis dirbant su Brazilijos elektroninės komercijos platformomis rodo, kad vienas dažniausių integracijos taškų yra atsiskaitymo procesas, kur vartotojai įveda savo CNPJ verslo pirkimams. Jūsų patvirtinimo logika turi sugauti formatavimo klaidas dar prieš mokėjimo apdorojimą - priešingu atveju matysite nepavykusius sandorius, kurių būtų buvę galima išvengti.
CNPJ struktūra ir formatas
CNPJ susideda iš 14 skaitmenų, suformatuotų taip: XX.XXX.XXX/YYYY-ZZ
Struktūros išskaidymas:
- Pirmi 8 skaitmenys (XX.XXX.XXX): Bazinis registracijos numeris, unikaliai priskirtas įmonei
- Kiti 4 skaitmenys (/YYYY): Filialo arba įstaigos identifikatorius—
/0001reiškia centrinę būstinę, o/0002,/0003žymi filialų vietas - Paskutiniai 2 skaitmenys (-ZZ): Patikrinimo skaitmenys, apskaičiuoti naudojant svertinį algoritmą
Pavyzdys: 12.345.678/0001-95
Kas įdomu apie filialo identifikatorių: kai įmonė atidaro kelias vietas, kiekviena gauna tuos pačius pirmus 8 skaitmenis, bet skirtingą filialo numerį. Taigi, jei mažmeninės prekybos tinklas turi 50 parduotuvių, jos turės CNPJ, baigiančius /0001 iki /0050, visas su tuo pačiu bazinių skaičių. Tai palengvina atpažinti, kad keli CNPJ priklauso tai pačiai pagrindinei organizacijai.
Patikrinimo skaitmenys nėra atsitiktiniai—jie apskaičiuojami naudojant modulo-11 algoritmą su specifinėmis svorių sekomis. Šis pasirinkimas, dažnai naudojamas Brazilijos administraciniuose dokumentuose, matematiškai apsunkina galimybę suklastoti galiojančius numerius ar atsitiktinai sukurti galiojančius dėl spausdinimo klaidų.
Kaip veikia CNPJ tikrinimas
Tikrinimo algoritmas naudoja svertinį modulio-11 skaičiavimą. Štai logika:
Pirmo kontrolinio skaitmens skaičiavimas
- Paimti pirmus 12 skaitmenų ir padauginti kiekvieną iš svorių:
5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Sudėti visus sandaugos rezultatus
- Padalyti sumą iš 11 ir gauti liekaną
- Jei liekana < 2, kontrolinis skaitmuo yra 0; priešingu atveju tai yra
11 - liekana
Antro kontrolinio skaitmens skaičiavimas
- Paimti pirmus 13 skaitmenų (įskaitant pirmą kontrolinį skaitmenį) ir padauginti iš svorių:
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Sudėti visus sandaugos rezultatus
- Padalyti iš 11 ir gauti liekaną
- Jei liekana < 2, kontrolinis skaitmuo yra 0; priešingu atveju tai yra
11 - liekana
Kodėl šis metodas veikia: Svertinė daugybos sistema sukuria unikalų ryšį tarp visų 12 bazinių skaitmenų ir gaunamų kontrolinių skaitmenų. Net pakeitus vieną bazinį skaitmenį, gaunami skirtingi kontroliniai skaitmenys, kas padeda aptikti įprastas transkripcijos klaidas, pvz., sukeitus du skaitmenis (įvedus 12.345 vietoj 12.354).
Praktinė pastaba: CNPJ, sudaryti iš vienodų skaitmenų (pvz., 11.111.111/1111-11), yra automatiškai netinkami, net jei matematiškai praeina tikrinimą. Receita Federal aiškiai pašalina šiuos modelius, kad išvengtų paprastų atvejų.
Kaip naudoti CNPJ generatorių ir tikrintuvą
CNPJ generavimas testavimui
Reikia galiojančio CNPJ jūsų testavimo duomenų bazei? Štai kaip:
- Spustelėkite "Generuoti CNPJ"
- Įrankis akimirksniu sukuria matematiškai galiojantį numerį
- Spustelėkite "Kopijuoti", kad nukopijuotumėte į iškarpinę
- Įklijuokite į savo testavimo formas, duomenų bazės pradmenis ar vieneto testus
Kiekvienas sugeneruotas CNPJ praeina visus algoritminius tikrinimo patikrinimus, bet nėra registruotas Receita Federal. Tai reiškia, kad galite juos laisvai naudoti kūrimo metu nesirūpindami, kad atsitiktinai naudojate realios įmonės identifikatorių.
CNPJ numerių tikrinimas
Turite CNPJ, kurį reikia patikrinti? Tikrintuvas tai tvarko:
- Įklijuokite arba įveskite CNPJ į įvesties laukelį
- Nesirūpinkite formatuote - veikia su
12345678000195arba12.345.678/0001-95 - Spustelėkite "Tikrinti"
- Gaukite momentinį grįžtamąjį ryšį apie tai, ar kontroliniai skaitmenys teisingi
Ką tikrintuvas tikrina: tinkamą ilgį (14 skaitmenų), teisingus kontrolinių skaitmenų skaičiavimus ir netinkamų šablonų, pvz., vienodų skaitmenų, pašalinimą. Ko netikrina: ar CNPJ yra registruotas vyriausybės duomenų bazėje - tam reikia tiesiogiai užklausti Receita Federal.
Realūs CNPJ generatoriaus ir validatoriaus naudojimo atvejai
Programinės įrangos kūrimas ir testavimas
Duomenų bazės pildymas: Kai kuriate bandomąją aplinką su realistiniais testiniais duomenimis, jums reikia dešimčių ar šimtų galiojančių CNPJ. Rankiniu būdu juos kurti yra nuobodu, o naudojant tikrų įmonių identifikatorius kyla privatumo problemų. Sugeneruoti CNPJ išsprendžia abu šiuos uždavinius.
Kraštinių atvejų vienetų testavimas: Jūsų validavimo funkcija turėtų atmesti 00.000.000/0000-00, bet priimti 11.222.333/0001-81. Turėdami generatorių, galite greitai sukurti tiek galiojančius, tiek tyčia negaliojančius testavimo atvejus, kad patikrintumėte, ar jūsų logika teisingai tvarko ribines sąlygas.
KK regresinio testavimo: Testuojant registracijos formas ar B2B atsiskaitymo srautus, KK komandos kiekvienam paleidimui reikalauja naujų testinių duomenų. Dažna problema, kurią esu matęs: testinės aplinkos užteršiamos vis tais pačiais 5-6 CNPJ, kurie kartojami, ir tai maskuoja klaidas, kurios pasirodo tik su specifinėmis skaitmenų sekomis.
API integracijos testavimas: Jei integruojatės su brazilų mokėjimo procesoriais, tokiais kaip PagSeguro ar Mercado Pago, jų smėlio dėžės aplinkos dažnai reikalauja galiojančio CNPJ formato. Matematika turi būti teisinga, net jei nedirbtumėte su gamybinėmis duomenų bazėmis.
Duomenų apdorojimas ir validavimas
Importuotų duomenų valymas: Gavote CSV failą su 10 000 brazilų įmonių įrašų. Prieš apdorodami, turite nustatyti, kurie CNPJ yra netinkamai suformuoti. Praleidus juos per validatorių, pažymimi įrašai su rinkimo klaidomis, sutrumpinimais ar neteisingais kontroliniais skaitmenimis — tai sutaupo valandas vėlesnio derinimo.
Kliento pusės formos validavimas: Aptikus negaliojančius CNPJ prieš formos pateikimą, pagerinamas vartotojo patyrimas. Niekas nenori užpildyti 20 laukų registracijos formos tik tam, kad gautų klaidą pateikiant dėl to, jog sukeisti du skaitmenys CNPJ.
Duomenų anoniminimas analizei: Ruošiant gamybos duomenis bendrinimui su analitikos komandomis ar išoriniais partneriais, reikia pakeisti tikrus CNPJ galiojančiais, bet netikrais. Tai išlaiko nuorodinį vientisumą jūsų duomenų rinkinyje, kartu apsaugant tikrąsias verslo tapatybes.
Tarptautinės verslo operacijos
Brazilijos reikalavimų supratimas: Jei plečiate verslą į Brazilijos rinką, susidursite su CNPJ reikalavimais sutartyse, sąskaitose ir siuntimo dokumentuose. Turėdami įrankį eksperimentuoti su formatu, geriau suprasite, ką jūsų sistemoms reikia tvarkyti.
Trečiųjų šalių integracijos specifikacijos: Peržiūrint brazilų SaaS teikėjų API dokumentaciją, dažnai matysite CNPJ laukus naudojimo pavyzdžiuose. Gebėjimas generuoti galiojančias testavimo reikšmes padeda greičiau kurti integracijas.
Alternatyvūs CNPJ Tikrinimo Metodai
Programavimo Bibliotekos
Jei jums reikia CNPJ tikrinimo jūsų programos logikoje, šios bibliotekos įgyvendina kontrolinių skaitmenų algoritmą:
- JavaScript/Node.js:
cpf-cnpj-validator(130k+ savaitinių atsisiuntimų),validator.js(palaiko braziliškus dokumentus) - Python:
validate-docbr(tikrina CPF, CNPJ ir kitus braziliškus dokumentus),python-cnpj - PHP:
respect/validation(apima CNPJ taisykles),brazilianutils - Java:
caelum-stella(išsami braziliškų dokumentų tikrinimo sistema) - Ruby:
cpf_cnpjbiblioteka
Šios bibliotekos paprastai tvarko formatavimą, analizę ir tikrinimą keliems braziliškų dokumentų tipams (CPF, CNPJ ir kt.).
Oficialios Tikrinimo API
Gamybinėms sistemoms, kurioms reikia patikrinti faktinę verslo registraciją:
- Receita Federal viešoji paslauga: Consulta CNPJ API leidžia patikrinti pagal oficialią duomenų bazę (reikalauja tinkamo leidimo ir ribojimo)
- Trečiųjų šalių duomenų teikėjai: Paslaugos kaip Serasa Experian ir Boa Vista SCPC siūlo komercines API, kurios grąžina įmonės duomenis, registracijos statusą ir kredito informaciją
Pastaba: Šios paslaugos tikrina faktinę registraciją, o ne tik matematinį galiojimą. Jums reikės tinkamo leidimo ir reikia tikėtis API išlaidų gamybiniam naudojimui.
Kada Naudoti Kiekvieną Metodą
Naudokite šį naršyklės įrankį kai: Jums reikia greito tikrinimo be papildomų priklausomybių, generuojant bandomuosius duomenis demonstracijoms arba mokantis, kaip veikia CNPJ tikrinimas.
Naudokite biblioteką kai: Kuriate programą, kuriai reikia kliento pusės arba serverio pusės tikrinimo kaip formos apdorojimo dalies.
Naudokite oficialią API kai: Jums reikia patikrinti, ar CNPJ atitinka realų, aktyvų verslo subjektą su esamu registracijos statusu.
Techninės Įgyvendinimo Detalės
Šis įrankis veikia visiškai jūsų naršyklėje naudojant JavaScript - be serverio užklausų, be duomenų išsiuntimo iš jūsų kompiuterio. Štai kaip algoritmai veikia po kapotu, su kodu, kurį galite pritaikyti savo projektams:
CNPJ Generavimo Algoritmas
1function generateCNPJ() {
2 // Sugeneruoti pirmus 12 skaitmenų atsitiktinai
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Apskaičiuoti pirmą kontrolinį skaitmenį
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Apskaičiuoti antrą kontrolinį skaitmenį
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Suformatuoti 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 Validavimo Algoritmas
1function validateCNPJ(cnpj) {
2 // Pašalinti ne skaitmeninius simbolius
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Patikrinti ar turi teisingą ilgį
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Patikrinti žinomus neteisingus modelius (visi vienodi skaitmenys)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Konvertuoti į skaitmenų masyvą
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Patikrinti pirmą kontrolinį skaitmenį
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Patikrinti antrą kontrolinį skaitmenį
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24CNPJ Formatavimo Funkcija
1function formatCNPJ(cnpj) {
2 // Pašalinti ne skaitmeninius simbolius
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Formatuoti pagal ilgį
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Šios pagrindinės funkcijos gali būti įgyvendintos ir kitose programavimo kalbose, laikantis tos pačios logikos. Štai pavyzdžiai Python ir Java kalbomis:
Python Realizacija
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 # Sugeneruoti pirmus 12 skaitmenų atsitiktinai
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Apskaičiuoti pirmą kontrolinį skaitmenį
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Apskaičiuoti antrą kontrolinį skaitmenį
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Suformatuoti 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 # Pašalinti ne skaitmeninius simbolius
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Patikrinti ilgį
34 if len(cnpj) != 14:
35 return False
36
37 # Patikrinti ar visi skaitmenys vienodi
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Konvertuoti į sveikųjų skaičių sąrašą
42 digits = [int(d) for d in cnpj]
43
44 # Validuoti pirmą kontrolinį skaitmenį
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Validuoti antrą kontrolinį skaitmenį
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55Java Realizacija
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 // Sugeneruoti pirmus 12 skaitmenų atsitiktinai
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Apskaičiuoti pirmą kontrolinį skaitmenį
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Apskaičiuoti antrą kontrolinį skaitmenį
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Suformatuoti 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 // Pašalinti ne skaitmeninius simbolius
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Patikrinti ilgį
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Patikrinti ar visi skaitmenys vienodi
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 // Konvertuoti į sveikųjų skaičių masyvą
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 // Validuoti pirmą kontrolinį skaitmenį
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Validuoti antrą kontrolinį skaitmenį
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85Svarbūs Apribojimai ir Pastabos
Ką Šis Įrankis Gali ir Negali Daryti
Ką jis tikrina: Matematinį teisingumą - ar kontroliniai skaitmenys atitinka algoritmo skaičiavimą.
Ko jis netikrina: Ar CNPJ yra registruotas Receita Federal, ar priklauso aktyviai įmonei, ar atitinka verslo pavadinimą, kurio tikitės.
Galvokite apie tai kaip apie rašybos tikrinimą prieš faktų tikrinimą. Šis įrankis pasako, ar CNPJ yra "taisyklingai užrašytas" pagal matematinius reikalavimus, bet negali pasakyti, ar numeris atitinka realią, aktyvią verslo subjektą.
Teisinis ir Etinis Naudojimas
Sugeneruoti CNPJ yra skirti tik testavimui ir kūrimui. Jie yra matematiškai teisingi, bet neregistruoti Brazilijos institucijose, kas reiškia:
- ✅ Saugoma naudoti: Pildant testines duomenų bazes, atliekant vienetų testus, kokybės užtikrinimo aplinkose, dokumentacijos kodo pavyzdžiuose
- ❌ Niekada nenaudoti: Mokesčių deklaravimui, verslo registracijai, sutarčių pasirašymui, realių operacijų apdorojimui ar verslo tapatybės klastojimui
Netikro CNPJ naudojimas oficialiais tikslais yra ne tik neetiškas - tai yra neteisėta pagal Brazilijos įstatymus ir gali baigtis baudžiamosiomis bylomis dėl sukčiavimo.
Techniniai Apribojimai, Kuriuos Reikia Žinoti
Atsitiktinis generavimas turi implikacijų: Įrankis generuoja pirmuosius 12 skaitmenų atsitiktinai. Realūs CNPJ, išduoti Receita Federal, laikosi vidinių šablonų, susijusių su registracijos data, regioniniu skyriumi ir verslo tipu. Sugeneruoti numeriai neatitiks šių šablonų, ką sudėtingos tikrinimo sistemos gali pažymėti.
Jokio semantinio tikrinimo: Teisingas CNPJ formatas nereiškia teisingo verslo konteksto. Pavyzdžiui, vyriausybinės institucijos turi specialius CNPJ intervalus - šis generatorius gali atsitiktinai sukurti vieną, bet jis nebus prasmingas.
Formato tvarkymas: Tikrintuvas priima įvairius įvesties formatus (12345678000195, 12.345.678/0001-95), tačiau kai kurios senos sistemos tikisi tikslaus formatavimo. Visada testuokite su konkrečiais integracijos reikalavimais.
Privatumas ir Saugumas
Visas apdorojimas vyksta kliento pusėje jūsų naršyklėje. Jokie sugeneruoti ar patikrinti CNPJ nėra siunčiami į serverius, neregistruojami ir nesaugomi. Įrankis neprašo, netvarko ir neapdoroja jokios asmeninės informacijos.
Dažniausiai užduodami klausimai apie CNPJ tikrinimą
Koks skirtumas tarp CNPJ patvirtinimo ir patikrinimo?
Patvirtinimas patikrina, ar numeris matematiškai teisingas — tinkamas formatas, teisingi kontroliniai skaitmenys, jokių netinkamų modelių. Šis įrankis atlieka patvirtinimą.
Patikrinimas patikrina, ar CNPJ yra registruotas tikroje įmonėje Receita Federal duomenų bazėje. Patikrinimas reikalauja užklausti vyriausybės duomenų bazę ir nėra šio įrankio funkcija.
Galite turėti visiškai teisingą CNPJ, kuris nėra patvirtintas (pvz., testiniai numeriai, kuriuos generuoja šis įrankis), arba neteisingą CNPJ, priklausantį realiai įmonei (nes kas nors padarė klaidą įvedant).
Ar galiu naudoti sugeneruotus CNPJ gamybos testavimui?
Priklauso nuo to, ką suprantate po "gamybos testavimu". Jie tinka parengiamosios aplinkos, apkrovos testavimo ir išankstinės paleidimo kokybės užtikrinimo tikslams. Bet jei "gamybos testavimas" reiškia testavimą su realiais sandoriais, vyriausybės API ar finansinėmis sistemomis — tuomet ne, jums reikia faktiškai registruotų CNPJ.
Saugesnis metodas: naudokite sugeneruotus CNPJ izoliuotose testavimo aplinkose, tada pereikite prie mažo realių testinių įmonių CNPJ rinkinio (kuriuos kontroliuojate), testuodami gamybos integracijas.
Kodėl tikrintuvas atmeta 11.111.111/1111-11?
Nors CNPJ su visais vienodais skaitmenimis matematiškai gali sukurti teisingus kontrolinius skaitmenis, Receita Federal aiškiai atmeta šiuos modelius. Tai verslo taisyklė, o ne matematinė. Tas pats galioja nuosekliems modeliams kai kuriose tikrinimo sistemose.
Tai panašu į tai, kaip daugelis sistemų atmeta slaptažodžius kaip "password123", net jei jie atitinka ilgio reikalavimus — techniškai jie teisingi, bet praktiškai nepriimtini.
Kaip tvarkyti CNPJ tikrinimą skirtingose lokalėse?
Brazilijos įmonės, vykdančios tarptautinį verslą, kartais pašalina formatavimo simbolius įvesdamos CNPJ į užsienio sistemas. Jūsų tikrinimo logika turėtų pašalinti ne skaitmeninius simbolius prieš tikrinimą:
1const cleanCNPJ = input.replace(/\D/g, ''); // Pašalinti viską, išskyrus skaitmenis
2Priimti 12.345.678/0001-95, 12345678000195 ir 12 345 678 0001 95 kaip lygiaverčius įvesties duomenis.
O kaip su CNPJ ir CPF tikrinimu?
CPF (Cadastro de Pessoas Físicas) yra Brazilijos individualus mokesčių identifikatorius, o CNPJ — įmonėms. Jie naudoja skirtingus kontrolinių skaitmenų algoritmus ir ilgius (CPF turi 11 skaitmenų, CNPJ — 14). Jei kuriate Brazilijos programėlę, kuri tvarko abu, jums reikės atskirų tikrinimo funkcijų — nors daugelis bibliotekų palaiko abu formatus.
Įprastas modelis: leisti vartotojams įvesti CPF arba CNPJ tame pačiame lauke, tada nustatyti tipą pagal ilgį pašalinus formatavimo simbolius.
Ar tai veikia užsienio įmonėms, veikiančioms Brazilijoje?
Užsienio įmonės, veikiančios Brazilijoje, taip pat turi gauti CNPJ iš Receita Federal. Jų CNPJ laikosi tokio paties formato ir tikrinimo taisyklių kaip ir vietinės įmonės. Nėra specialaus "užsienio įmonės" CNPJ formato.
Tačiau užsienio įmonės gali turėti papildomus dokumentų reikalavimus ir skirtingas registracijos procedūras — konsultuokitės su Brazilijos verslo advokatu dėl išsamesnės informacijos.
Ar galiu užklausti vyriausybės duomenų bazės CNPJ registracijos patikrinimui?
Taip, Receita Federal teikia viešą prieigą CNPJ informacijos patikrinimui per jų Consulta Pública CNPJ paslaugą. Galite rankiniu būdu ieškoti CNPJ arba, turint tinkamą leidimą, naudoti jų API programiniam prisijungimui.
Pastaba, kad intensyvus naudojimas reikalauja registracijos ir yra taikomos apribojimų normos piktnaudžiavimui išvengti.
Kaip dažnai keičiasi CNPJ?
CNPJ yra nuolatiniai identifikatoriai, kurie nesikeičia, kai įmonė keičia pavadinimą, adresą ar nuosavybės struktūrą. Tačiau jei įmonė užsidaro ir vėliau perregistruojama, ji gali gauti naują CNPJ. Filialų numeriai (dalis /XXXX) gali būti pridėti atidarant naujas vietas, tačiau bazinis 8 skaitmenų numeris išlieka pastovus.
Nuorodos ir papildomi ištekliai
Oficialūs vyriausybiniai šaltiniai
- Receita Federal do Brasil - Oficialus portalas - Oficiali Brazilijos federalinės mokesčių tarnybos svetainė su CNPJ registracijos ir tikrinimo paslaugomis
- Consulta Pública CNPJ - Viešas CNPJ paieškos įrankis - Oficiali vyriausybinė paslauga CNPJ registracijos statuso tikrinimui
- Normatyvinis instrukcija RFB Nr. 1863/2018 - Teisiniai reglamentai, reglamentuojantys CNPJ registraciją ir naudojimą Brazilijoje
Techniniai standartai ir dokumentacija
- Modulinės aritmetikos algoritmai - Kontrolinio skaitmens skaičiavimas naudoja modulio 11 aritmetiką, standartinį validavimo skaitmenų metodą
- ISO/IEC 7064 - Tarptautinis kontrolinių skaitmenų sistemų standartas, paveikęs Brazilijos dokumentų validavimo dizainą
- Brazilijos civilinis kodeksas (Įstatymas Nr. 10.406/2002) - Teisinis pagrindas, apibrėžiantis verslo subjektų klasifikacijas, reikalaujančias CNPJ registracijos
Kūrėjų ištekliai
- NPM paketų registras - npmjs.com - Saugykla JavaScript bibliotekoms, įskaitant Brazilijos dokumentų validatorius
- PyPI (Python paketų indeksas) - pypi.org - Python bibliotekos CNPJ validavimui ir Brazilijos dokumentų apdorojimui
- GitHub - Atvirojo kodo CNPJ validavimo įgyvendinimai keliomis programavimo kalbomis
Pradėkite generuoti ir tikrinti CNPJs
Nesvarbu, ar kuriate brazilišką elektroninės prekybos platformą, testuojate mokėjimų integracijas su „Mercado Pago", ar tiesiog norite suprasti, kaip veikia CNPJ tikrinimas, šis įrankis suteikia jums tiesioginę prieigą tiek prie generavimo, tiek prie tikrinimo galimybių.
Jokios instaliacijos, jokių API raktų, jokios sudėtingos sąrangos. Tiesiog atidarykite naršyklę ir pradėkite dirbti su galiojančiais braziliškais verslo identifikatoriais.