Генератор та валідатор CNPJ Бразилії для тестування
Генеруйте дійсні номери CNPJ Бразилії та перевіряйте наявні за допомогою цього простого інструменту, розробленого для розробників та тестувальників, які працюють з ідентифікаторами бізнесу Бразилії.
Генератор та валідатор бразильського CNPJ
Генератор CNPJ
Згенеруйте дійсний бразильський номер CNPJ для тестування.
Валідатор CNPJ
Перевірте, чи є номер CNPJ дійсним.
Документація
Генератор та валідатор CNPJ Бразилії
Вступ
Бразильський CNPJ (Cadastro Nacional da Pessoa Jurídica) — це унікальний ідентифікаційний номер, присвоєний підприємствам та юридичним особам у Бразилії. Цей генератор та валідатор CNPJ Бразилії забезпечує простий та ефективний спосіб генерування дійсних номерів CNPJ для тестування та перевірки існуючих номерів CNPJ відповідно до офіційного бразильського алгоритму. Незалежно від того, чи ви розробник, який тестує програми, що обробляють дані бразильських компаній, професіонал з контролю якості, який створює тестові випадки, чи будь-хто, хто працює з інформацією про бразильські компанії, цей інструмент спрощує процес роботи з номерами CNPJ.
На відміну від реальних номерів CNPJ, які офіційно видаються Федеральною податковою службою Бразилії (Receita Federal), CNPJ, згенеровані цим інструментом, є математично дійсними, але не зареєстровані за реальними компаніями. Це робить їх ідеальними для сценаріїв тестування, зразкових даних та середовищ розробки, де вам потрібні правильно відформатовані та дійсні номери CNPJ без використання реальних ідентифікаторів бізнесу.
Що таке CNPJ?
CNPJ (Cadastro Nacional da Pessoa Jurídica) — це 14-значний ідентифікаційний номер, присвоєний підприємствам та юридичним особам Федеральною податковою службою Бразилії. Він слугує бразильським еквівалентом номера реєстрації компанії або податкового ідентифікатора. Кожне підприємство, яке легально працює в Бразилії, повинно мати CNPJ, який використовується для:
- Подання податкової звітності та дотримання вимог
- Реєстрації бізнесу в державних органах
- Відкриття банківських рахунків
- Випуску рахунків-фактур та квитанцій
- Участі в державних тендерах
- Імпорту та експорту товарів
CNPJ є важливим ідентифікатором у бізнес-екосистемі Бразилії та з’являється на офіційних документах, контрактах і фінансових записах.
Структура та формат CNPJ
Бразильський CNPJ складається з 14 цифр, зазвичай форматованих як: XX.XXX.XXX/YYYY-ZZ
Структура розподіляється наступним чином:
- Перші 8 цифр (XX.XXX.XXX): Основний номер, присвоєний компанії
- 4 цифри після слешу (YYYY): Ідентифікатор філії (0001 для головного офісу, інші номери для філій)
- Останні 2 цифри (ZZ): Контрольні цифри для валідації
Наприклад, правильно відформатований CNPJ може виглядати так: 12.345.678/0001-95
Контрольні цифри (останні два числа) розраховуються за допомогою специфічного математичного алгоритму, який підтверджує автентичність CNPJ. Цей алгоритм гарантує, що випадково згенеровані номери не можуть пройти валідацію без дотримання правильного методу розрахунку.
Як працює валідація CNPJ
Алгоритм валідації CNPJ використовує зважене обчислення для визначення контрольних цифр. Ось як це працює:
Розрахунок першої контрольної цифри
- Помножте кожну з перших 12 цифр на послідовність ваг: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Підсумуйте результати цих множень
- Обчисліть залишок від цього підсумку, поділеного на 11
- Якщо залишок менше 2, перша контрольна цифра дорівнює 0; в іншому випадку — 11 мінус залишок
Розрахунок другої контрольної цифри
- Помножте кожну з перших 13 цифр (включаючи першу контрольну цифру) на послідовність ваг: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Підсумуйте результати цих множень
- Обчисліть залишок від цього підсумку, поділеного на 11
- Якщо залишок менше 2, друга контрольна цифра дорівнює 0; в іншому випадку — 11 мінус залишок
Щоб CNPJ був дійсним, обидві контрольні цифри повинні відповідати розрахованим значенням.
Як користуватися цим інструментом
Наш інструмент генератора та валідатора CNPJ Бразилії пропонує дві основні функції: генерацію дійсних CNPJ та валідацію існуючих номерів CNPJ.
Генерація CNPJ
Щоб згенерувати дійсний CNPJ для тестування:
- Перейдіть до розділу "Генератор CNPJ" інструмента
- Натисніть кнопку "Генерувати CNPJ"
- У відформатованому вигляді з’явиться математично дійсний CNPJ
- Використовуйте кнопку "Копіювати", щоб скопіювати згенерований CNPJ у буфер обміну
Згенерований CNPJ дотримується всіх математичних правил валідації реального CNPJ, але не зареєстрований у Федеральній податковій службі Бразилії.
Валідація CNPJ
Щоб перевірити, чи CNPJ є математично дійсним:
- Перейдіть до розділу "Валідатор CNPJ" інструмента
- Введіть CNPJ, який хочете перевірити, у поле введення
- Інструмент приймає CNPJ з або без форматування (крапок, слешів і дефісів)
- Натисніть кнопку "Валідувати"
- Інструмент відобразить, чи є CNPJ дійсним або недійсним на основі алгоритму контрольних цифр
Валідатор перевіряє, чи CNPJ відповідає правильному формату та чи контрольні цифри відповідають очікуваним значенням відповідно до алгоритму валідації.
Сценарії використання
Цей інструмент генератора та валідатора CNPJ Бразилії особливо корисний у наступних сценаріях:
Розробка програмного забезпечення та тестування
- Створення тестових даних: Генеруйте дійсні CNPJ для заповнення тестових баз даних без використання реальних ідентифікаторів компаній
- Юніт-тестування: Перевіряйте функції обробки CNPJ у вашому коді з відомими дійсними та недійсними прикладами
- Контроль якості: Створюйте тестові випадки для форм та інтерфейсів, які вимагають введення CNPJ
- Інтеграційне тестування: Тестуйте системи, які обмінюються даними з державними службами Бразилії або фінансовими установами
Освіта та навчання
- Вивчення формату CNPJ: Розуміння структури бразильських бізнес-ідентифікаторів
- Вивчення алгоритму: Вивчення того, як працює валідація контрольних цифр на практиці
- Методи валідації даних: Вивчення реальних прикладів вимог до валідації даних
Обробка даних
- Очищення даних: Перевірка CNPJ в існуючих наборах даних для виявлення потенційних помилок
- Валідація форм: Реалізація валідації на стороні клієнта або сервера для введення CNPJ
- Анонімізація даних: Замінюйте реальні CNPJ на згенеровані, готуючи набори даних для аналізу
Міжнародний бізнес
- Підготовка до виходу на ринок: Розуміння вимог до ідентифікації бізнесу в Бразилії
- Підготовка документів: Забезпечення правильного форматування під час підготовки бізнес-документів для Бразилії
- Перевірка відповідності: Перевірка, що зібрані номери CNPJ принаймні математично дійсні
Альтернативи
Хоча наш інструмент забезпечує просте, браузерне рішення для генерації та валідації CNPJ, є кілька альтернатив в залежності від ваших конкретних потреб:
Бібліотеки програмування
Для розробників, які інтегрують валідацію CNPJ безпосередньо в програми, доступні кілька бібліотек, специфічних для мов:
- 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
Ці бібліотеки часто надають додаткову функціональність, таку як форматування, парсинг та валідація інших бразильських документів.
API-сервіси
Для програм, які потребують валідації без реалізації алгоритму:
- Державні API Бразилії (вимагає реєстрації)
- Комерційні API валідації, які включають перевірку CNPJ
- Служби інформації про бізнес, які перевіряють на відповідність офіційній базі даних
Ручний розрахунок
Для освітніх цілей або одноразових валідацій ви можете вручну застосувати алгоритм:
- Витягніть перші 12 цифр CNPJ
- Виконайте зважені обчислення, як описано раніше
- Порівняйте розраховані контрольні цифри з фактичними контрольними цифрами
Однак ручний розрахунок є схильним до помилок і неефективним для регулярного використання.
Технічна реалізація
Генератор та валідатор CNPJ у цьому інструменті реалізовані за допомогою JavaScript, що робить його швидким і здатним працювати повністю у вашому браузері без відправлення ваших даних на сервер. Ось як працюють основні функції:
Алгоритм генерації CNPJ
1function generateCNPJ() {
2 // Генеруйте перші 12 цифр випадковим чином
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Розрахунок першої контрольної цифри
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Розрахунок другої контрольної цифри
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Форматування 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
1function validateCNPJ(cnpj) {
2 // Видалити нечислові символи
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Перевірка на правильну довжину
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Перевірка на відомі недійсні шаблони (всі однакові цифри)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Перетворення на масив цифр
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Перевірка першої контрольної цифри
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Перевірка другої контрольної цифри
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24
Функція форматування CNPJ
1function formatCNPJ(cnpj) {
2 // Видалити нечислові символи
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Форматувати залежно від довжини
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
Ці основні функції можна реалізувати в інших мовах програмування, дотримуючись тієї ж логіки. Ось приклади на Python та Java:
Реалізація на 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 # Генеруйте перші 12 цифр випадковим чином
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Розрахунок першої контрольної цифри
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Розрахунок другої контрольної цифри
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Форматування 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 # Видалити нечислові символи
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Перевірка довжини
34 if len(cnpj) != 14:
35 return False
36
37 # Перевірка, чи всі цифри однакові
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Перетворення на масив цілих чисел
42 digits = [int(d) for d in cnpj]
43
44 # Валідація першої контрольної цифри
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Валідація другої контрольної цифри
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55
Реалізація на 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 // Генеруйте перші 12 цифр випадковим чином
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Розрахунок першої контрольної цифри
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Розрахунок другої контрольної цифри
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Форматування 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 // Видалити нечислові символи
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Перевірка довжини
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Перевірка, чи всі цифри однакові
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 // Перетворення на масив цілих чисел
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 // Валідація першої контрольної цифри
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Валідація другої контрольної цифри
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85
Важливі міркування
При використанні цього інструмента генератора та валідатора CNPJ пам’ятайте про такі міркування:
Юридичні та етичні міркування
- Не для шахрайства: Згенеровані CNPJ ніколи не повинні використовуватися для шахрайських цілей або введення в оману
- Тільки для тестування: Ці CNPJ призначені лише для тестування та розробки
- Не зареєстровані: Згенеровані CNPJ математично дійсні, але не зареєстровані в бразильських органах
- Без реальної дійсності: Вони не можуть використовуватися для реєстрації бізнесу або податкових цілей
Технічні обмеження
- Без інформації про бізнес: Згенеровані CNPJ не містять реальних кодів секторів бізнесу або інформації про місцезнаходження
- Без перевірки бази даних: Валідатор перевіряє лише математичну дійсність, а не статус реєстрації
- Варіації формату: Хоча інструмент обробляє загальні варіації форматування, деякі системи можуть вимагати специфічних форматів
Міркування безпеки
- Обробка на стороні клієнта: Вся обробка відбувається у вашому браузері; жодні дані не відправляються на сервери
- Без зберігання даних: Згенеровані CNPJ не зберігаються та не реєструються
- Без особистих даних: Інструмент не обробляє жодної особистої інформації
Поширені запитання
Для чого використовується CNPJ у Бразилії?
CNPJ — це національний реєстраційний номер для підприємств та юридичних осіб у Бразилії. Він використовується для податкових цілей, реєстрації бізнесу, відкриття банківських рахунків та ідентифікації компаній в офіційних транзакціях.
Чи є CNPJ, згенеровані цим інструментом, реальними?
Ні. CNPJ, згенеровані цим інструментом, математично дійсні відповідно до алгоритму контрольних цифр, але не зареєстровані у Федеральній податковій службі Бразилії і не належать реальним компаніям.
Чи можу я використовувати згенеровані CNPJ для свого бізнесу?
Ні. Щоб отримати законний CNPJ для бізнесу, ви повинні зареєструватися у Федеральній податковій службі Бразилії (Receita Federal) відповідно до офіційного процесу. Згенеровані CNPJ призначені лише для тестування.
Як я можу дізнатися, чи CNPJ належить реальній компанії?
Щоб перевірити, чи CNPJ зареєстрований за фактичною компанією, вам потрібно звернутися до бази даних Федеральної податкової служби Бразилії. Наш інструмент лише перевіряє, чи є CNPJ математично дійсним, а не чи він офіційно зареєстрований.
Чому валідатор відхиляє CNPJ з усіма однаковими цифрами?
CNPJ з усіма однаковими цифрами (наприклад, 11.111.111/1111-11) автоматично вважаються недійсними, навіть якщо вони математично проходять алгоритм контрольних цифр. Це правило встановлено Федеральною податковою службою Бразилії.
Чи зберігає інструмент CNPJ, які я генерую або валідують?
Ні. Вся обробка відбувається у вашому браузері, і ми не зберігаємо або передаємо жодні CNPJ, які ви генеруєте або валідуєте.
Чи можу я згенерувати кілька CNPJ одночасно?
Поточна версія інструмента генерує один CNPJ за раз. Для масової генерації ви можете розглянути можливість використання однієї з бібліотек програмування, згаданих у розділі Альтернативи.
Чому формат XX.XXX.XXX/XXXX-XX важливий?
Це офіційний формат, який вимагається бразильськими органами. Специфічна групування допомагає ідентифікувати різні компоненти CNPJ, такі як основний номер та ідентифікатор філії.
Як я можу програмно перевірити CNPJ?
Ви можете реалізувати алгоритм валідації у вашій улюбленій мові програмування, використовуючи кодові приклади, надані в розділі Технічна реалізація, або скористатися однією з бібліотек, згаданих у розділі Альтернативи.
Чи є спеціальні CNPJ для державних установ?
Так. Державні установи в Бразилії мають специфічні шаблони CNPJ. Наприклад, федеральні державні установи часто починаються з певних цифр. Наш генератор створює випадкові CNPJ і не генерує спеціальні CNPJ для державних установ.
Посилання
- Федеральна податкова служба Бразилії (Receita Federal do Brasil) - Офіційний веб-сайт
- "CNPJ - Cadastro Nacional da Pessoa Jurídica" - Вікіпедія
- Бразильський цивільний кодекс (Закон № 10.406/2002) - Правова основа для бізнес-структур у Бразилії
- Нормативна інструкція Бразильської реєстрації бізнесу (IN RFB № 1863/2018) - Регуляції щодо реєстрації CNPJ
Спробуйте зараз
Наш інструмент генератора та валідатора CNPJ Бразилії робить роботу з цими ідентифікаційними номерами простою та ефективною. Незалежно від того, чи тестуєте ви програми, готуєте зразкові дані або перевіряєте існуючі CNPJ, цей інструмент забезпечує просте рішення без складності інтеграцій API або розширених налаштувань.
Згенеруйте свій перший дійсний CNPJ зараз або перевірте існуючий за допомогою нашого простого інтерфейсу!
Відгуки
Натисніть на тост відгуку, щоб почати залишати відгук про цей інструмент
Супутні інструменти
Відкрийте для себе більше інструментів, які можуть бути корисними для вашого робочого процесу