Генератор і Валідатор CNPJ - Інструмент для Ідентифікації Бізнесу в Бразилії
Генеруйте дійсні номери CNPJ для тестування або миттєво перевіряйте ідентифікатори бізнесу в Бразилії. Безкоштовний інструмент з перевіркою контрольної цифри для розробників, які працюють з Cadastro Nacional da Pessoa Jurídica.
Генератор і валідатор бразильського CNPJ
Генератор CNPJ
Згенеруйте дійсний бразильський номер CNPJ для тестування.
Валідатор CNPJ
Перевірте, чи є бразильський номер CNPJ дійсним.
Документація
Розуміння бразильських номерів CNPJ
CNPJ (Cadastro Nacional da Pessoa Jurídica) - це бразильська версія корпоративного податкового ідентифікатора — 14-значний номер, який ідентифікує кожен юридичний бізнес-суб'єкт у країні. Якщо ви розробляєте програмне забезпечення, що працює з бразильськими бізнес-даними, ви швидко зіткнетеся з цими номерами в реєстраційних формах, рахунках-фактурах та API-інтеграціях.
Ось що робить цей інструмент практичним: він генерує математично коректні CNPJs для тестування без використання реальних ідентифікаторів компаній. Коли ви налаштовуєте тестову базу даних з 1000 записів або налагоджуєте процедуру перевірки о 2 годині ночі, вам потрібні CNPJs, які проходять алгоритмічні перевірки, але випадково не збігаються з реальними підприємствами. Саме це тут і генерується.
Створені номери відповідають офіційному алгоритму перевірки Receita Federal (Бразильської федеральної податкової служби). Вони мають правильні контрольні цифри та належне форматування — просто не зареєстровані в урядовій базі даних. Вважайте їх синтаксично коректними тестовими даними, які не створюють проблем з дотриманням вимог у вашому середовищі розробки.
Що таке CNPJ і чому це важливо
CNPJ слугує корпоративним ідентифікатором Бразилії — подібно до EIN у Сполучених Штатах або реєстраційного номера компанії у Великобританії. Кожен господарюючий суб'єкт, що діє легально в Бразилії, повинен мати його, який видається Receita Federal (Федеральною податковою службою).
Ви зіткнетеся з CNPJ, коли:
- Обробка платежів: Бразильські платіжні шлюзи вимагають перевірки CNPJ для торговельних рахунків
- Податкова звітність: Кожен рахунок-фактура в Бразилії повинен містити дійсний CNPJ
- Реєстрація бізнесу: Державні установи використовують CNPJ для відстеження юридичних осіб у системах
- Банківські операції: Відкриття корпоративних рахунків або здійснення міжнародних переказів
- Імпорт/експорт: Митна документація вимагає перевірки CNPJ
- Державні контракти: Системи публічних тендерів перевіряють CNPJ перед прийняттям пропозицій
З мого досвіду роботи з бразильськими платформами електронної комерції, одним з найпоширеніших моментів інтеграції є процес оформлення замовлення, де користувачі вводять свій CNPJ для корпоративних покупок. Ваша логіка перевірки повинна виявляти помилки форматування ще до того, як це зробить платіжний процесор — інакше ви побачите невдалі транзакції, яких можна було б уникнути.
Структура та формат CNPJ
CNPJ складається з 14 цифр у форматі: XX.XXX.XXX/YYYY-ZZ
Розбиваючи структуру:
- Перші 8 цифр (XX.XXX.XXX): Базовий реєстраційний номер, унікально призначений компанії
- Наступні 4 цифри (/YYYY): Ідентифікатор філії або установи —
/0001позначає головний офіс, а/0002,/0003представляють філії - Останні 2 цифри (-ZZ): Контрольні цифри, розраховані за допомогою зваженого алгоритму
Приклад: 12.345.678/0001-95
Цікаво про ідентифікатор філії: коли компанія відкриває кілька місць, кожне отримує ті самі перші 8 цифр, але інший номер філії. Тому якщо роздрібна мережа має 50 магазинів, вони матимуть CNPJs, що закінчуються на /0001 по /0050, всі з однаковим базовим номером. Це полегшує ідентифікацію того, що кілька CNPJs належать одній материнській організації.
Контрольні цифри не є випадковими — вони обчислюються за допомогою алгоритму модулю-11 з певними послідовностями ваги. Цей варіант вибору, поширений у бразильських адміністративних документах, робить математично складним підробку дійсних номерів або випадкове створення дійсних номерів через помилки.
Як працює перевірка CNPJ
Алгоритм перевірки використовує зважене обчислення за модулем 11. Ось логіка цього процесу:
Обчислення першої контрольної цифри
- Взяти перші 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 - залишок
Чому цей підхід працює: Система зваженого множення створює унікальний зв'язок між усіма 12 базовими цифрами та відповідними контрольними цифрами. Зміна навіть однієї цифри в базовому числі призводить до інших контрольних цифр, що дозволяє виявляти поширені помилки при переписуванні, наприклад, переставлення двох цифр (введення 12.345 замість 12.354).
Практичне зауваження: CNPJ з усіма однаковими цифрами (наприклад, 11.111.111/1111-11) автоматично вважаються недійсними, навіть якщо вони проходять математичну перевірку. Receita Federal явно виключає такі шаблони, щоб запобігти тривіальним випадкам.
Як використовувати генератор і валідатор CNPJ
Генерування тестових CNPJ
Потрібен дійсний CNPJ для тестової бази даних?Ось як:
- Натисніть "Згенерувати CNPJ"
- Інструмент миттєво створює математично коректний номер
- Натисніть "Копіювати", щоб скопіювати його в буфер обміну
- Вставте його в тестові форми, посів бази даних або модульні тести
Кожен згенерований CNPJ проходить всі алгоритмічні перевірки, але не зареєстрований у Receita Federal. Це означає, що ви можете вільно використовувати їх при розробці без хвилювання про випадкове використання ідентифікатора реальної компанії.
Перевірка номерів CNPJ
Маєте CNPJ, який потрібно перевірити? Валідатор впорається:
- Вставте або введіть CNPJ у поле введення
- Не турбуйтеся про форматування — працює з
12345678000195або12.345.678/0001-95 - Натисніть "Перевірити"
- Отримайте миттєву інформацію про правильність контрольних цифр
Що перевіряє валідатор: правильну довжину (14 цифр), коректні обчислення контрольних цифр і виключення неправильних послідовностей на кшталт однакових цифр. Чого він не перевіряє: чи зареєстрований CNPJ у державній базі даних — для цього потрібен безпосередній запит до Receita Federal.
Реальні сценарії використання генератора та валідатора CNPJ
Розробка програмного забезпечення та тестування
Наповнення бази даних: При налаштуванні проміжного середовища з реалістичними тестовими даними, вам потрібні десятки або сотні дійсних CNPJ. Ручне створення є виснажливим, а використання реальних ідентифікаторів компаній викликає занепокоєння щодо приватності. Згенеровані CNPJ вирішують обидві проблеми.
Модульне тестування крайніх випадків: Ваша функція перевірки повинна відхиляти 00.000.000/0000-00, але приймати 11.222.333/0001-81. Наявність генератора дозволяє швидко створювати як дійсні, так і навмисно недійсні тестові випадки для перевірки правильності обробки логіки в межових умовах.
Регресійне тестування QA: При тестуванні реєстраційних форм або B2B процесів оформлення замовлення, команди QA потребують свіжих тестових даних для кожного запуску. Поширена проблема, яку я бачив: тестові середовища забруднюються одними й тими самими 5-6 CNPJ, що використовуються повторно, і це маскує помилки, які з'являються лише з певними цифровими послідовностями.
Тестування інтеграції API: Якщо ви інтегруєтеся з бразильськими платіжними процесорами, такими як PagSeguro або Mercado Pago, їхні пісочниці часто вимагають правильного форматування CNPJ. Математика має бути коректною, навіть якщо ви не працюєте з виробничими базами даних.
Обробка та перевірка даних
Очищення імпортованих даних: Ви отримали CSV з 10 000 записів бразильських компаній. Перед обробкою вам потрібно визначити, які CNPJ є пошкодженими. Пропускання їх через валідатор позначає записи з друкарськими помилками, усіченням або неправильними контрольними цифрами — заощаджуючи години подальшого налагодження.
Клієнтська перевірка форми: Виявлення недійсних CNPJ перед надсиланням форми покращує взаємодію з користувачем. Нікому не хочеться заповнювати реєстраційну форму з 20 полями, щоб отримати помилку при надсиланні через переставлені цифри в CNPJ.
Анонімізація даних для аналізу: При підготовці виробничих даних для обміну з командами аналітики або зовнішніми партнерами, вам потрібно замінити реальні CNPJ на дійсні, але фіктивні. Це зберігає цілісність посилань у вашому наборі даних, захищаючи справжні бізнес-ідентичності.
Міжнародні бізнес-операції
Розуміння бразильських вимог: Якщо ви розширюєтеся на бразильський ринок, ви зіткнетеся з вимогами CNPJ у контрактах, рахунках-фактурах та транспортній документації. Наявність інструменту для експериментування з форматом допомагає зрозуміти, що повинні обробляти ваші системи.
Специфікації інтеграції третіх сторін: При перегляді документації API від бразильських постачальників SaaS ви часто бачитимете поля CNPJ в прикладах корисного навантаження. Можливість генерувати дійсні тестові значення допомагає швидше створювати прототипи інтеграцій.
Альтернативні підходи до перевірки CNPJ
Бібліотеки програмування
Якщо вам потрібна перевірка CNPJ, вбудована в логіку додатку, ці бібліотеки реалізують алгоритм перевірки контрольної цифри:
- JavaScript/Node.js:
cpf-cnpj-validator(понад 130 тис. завантажень на тиждень),validator.js(підтримує бразильські документи) - Python:
validate-docbr(перевіряє CPF, CNPJ та інші бразильські документи),python-cnpj - PHP:
respect/validation(включає правила CNPJ),brazilianutils - Java:
caelum-stella(всебічна перевірка бразильських документів) - Ruby: бібліотека
cpf_cnpj
Ці бібліотеки зазвичай обробляють форматування, аналіз та перевірку кількох типів бразильських документів (CPF, CNPJ тощо).
Офіційні API перевірки
Для виробничих систем, яким потрібно перевірити фактову реєстрацію бізнесу:
- Державна служба Receita Federal: API Consulta CNPJ дозволяє перевірку за офіційною базою даних (потребує належної авторизації та обмеження швидкості)
- Постачальники даних третіх сторін: Служби, як Serasa Experian та Boa Vista SCPC, пропонують комерційні API, які повертають деталі компанії, статус реєстрації та інформацію про кредит
Примітка: Ці служби перевіряють фактичну реєстрацію, а не лише математичну коректність. Вам знадобиться належна авторизація, і слід очікувати витрат на API для виробничого використання.
Коли використовувати кожен підхід
Використовуйте цей браузерний інструмент, коли: вам потрібна швидка перевірка без встановлення залежностей, генерація тестових даних для демонстрацій або вивчення роботи перевірки CNPJ.
Використовуйте бібліотеку, коли: ви створюєте додаток, якому потрібна перевірка на стороні клієнта або сервера як частина обробки форми.
Використовуйте офіційний API, коли: вам потрібно перевірити, що 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 у Receita Federal, чи належить він активній компанії або чи пов'язаний він з очікуваною назвою бізнесу.
Думайте про це як про перевірку правопису проти перевірки фактів. Цей інструмент повідомляє вам, чи "написаний" CNPJ правильно відповідно до математичних правил, але не може сказати, чи відповідає номер реальному, активному бізнес-суб'єкту.
Правове та етичне використання
Згенеровані CNPJ призначені лише для тестування та розробки. Вони математично коректні, але не зареєстровані в бразильських органах влади, що означає:
- ✅ Безпечно використовувати для: Заповнення тестових баз даних, модульного тестування логіки перевірки, середовищ контролю якості, прикладів коду в документації
- ❌ Ніколи не використовувати для: Подання податкових декларацій, реєстрації бізнесу, підписання контрактів, обробки реальних транзакцій або неправдивого представлення бізнес-ідентичності
Використання підробленого CNPJ для офіційних цілей не лише неетичне — воно незаконне за бразильським законодавством і може призвести до кримінальної відповідальності за шахрайство.
Технічні обмеження, які слід знати
Випадкова генерація має наслідки: Інструмент генерує перші 12 цифр випадково. Реальні CNPJ, видані Receita Federal, дотримуються внутрішніх шаблонів, пов'язаних з датою реєстрації, регіональним офісом і типом бізнесу. Згенеровані номери не відповідатимуть цим шаблонам, що може бути позначено складними системами перевірки.
Відсутність семантичної перевірки: Коректний формат CNPJ не означає коректного бізнес-контексту. Наприклад, державні установи мають специфічні діапазони CNPJ — цей генератор може випадково створити такий, але він не матиме сенсу.
Обробка формату: Валідатор приймає різні формати введення (12345678000195, 12.345.678/0001-95), але деякі застарілі системи очікують точного форматування. Завжди тестуйте відповідно до специфічних вимог інтеграції.
Конфіденційність і безпека
Уся обробка відбувається на стороні клієнта у вашому браузері. Жоден CNPJ, який ви генеруєте або перевіряєте, не надсилається на сервери, не реєструється і не зберігається. Інструмент не запитує, не обробляє і не опрацьовує жодної особистої інформації.
Часті запитання про перевірку CNPJ
У чому різниця між перевіркою та підтвердженням CNPJ?
Перевірка перевіряє, чи є число математично коректним — правильний формат, правильні контрольні цифри, без неприпустимих послідовностей. Цей інструмент виконує перевірку.
Підтвердження перевіряє, чи зареєстрований CNPJ у базі даних Receita Federal. Підтвердження вимагає запиту до урядової бази даних, що не є функцією цього інструменту.
Ви можете мати абсолютно коректний CNPJ, який не підтверджений (як тестові номери, що генерує цей інструмент), або некоректний CNPJ, що належить реальній компанії (через помилку при введенні).
Чи можна використовувати згенеровані CNPJ для виробничого тестування?
Це залежить від того, що ви розумієте під "виробничим тестуванням". Вони підходять для середовищ проміжної розробки, навантажувального тестування та передвиробничого контролю якості. Але якщо "виробниче тестування" означає тестування з реальними транзакціями, урядовими API або фінансовими системами — тоді ні, вам потрібні реально зареєстровані CNPJ.
Безпечніший підхід: використовувати згенеровані CNPJ в ізольованих тестових середовищах, потім перейти до невеликого набору реальних тестових CNPJ компаній (якими ви володієте) при тестуванні виробничих інтеграцій.
Чому валідатор відхиляє 11.111.111/1111-11?
Навіть якщо CNPJ з однаковими цифрами може математично мати коректні контрольні цифри, Receita Federal явно забороняє такі послідовності. Це бізнес-правило, а не математичне. Те саме стосується послідовних патернів у деяких системах перевірки.
Це схоже на те, як багато систем забороняють паролі на кшталт "password123", навіть якщо вони відповідають вимогам до довжини — технічно вони коректні, але практично неприйнятні.
Як обробляти перевірку CNPJ в різних локалях?
Бразильські компанії, що працюють міжнародно, інколи видаляють форматуючі символи при введенні CNPJ у закордонні системи. Ваша логіка перевірки має видаляти не-цифрові символи перед перевіркою:
1const cleanCNPJ = input.replace(/\D/g, ''); // Видалити все, крім цифр
2Приймати 12.345.678/0001-95, 12345678000195 та 12 345 678 0001 95 як еквівалентні введення.
Що стосовно перевірки CNPJ та CPF?
CPF (Cadastro de Pessoas Físicas) — це індивідуальний податковий ідентифікатор Бразилії, а CNPJ — для компаній. Вони використовують різні алгоритми контрольних цифр і мають різну довжину (CPF має 11 цифр, CNPJ — 14). Якщо ви створюєте бразильський додаток, що обробляє обидва формати, вам знадобляться окремі функції перевірки — хоча багато бібліотек підтримують обидва формати.
Типовий підхід: дозволити користувачам вводити або CPF, або CNPJ в одне поле, потім визначати тип за довжиною після видалення форматування.
Чи працює це для закордонних компаній, що працюють у Бразилії?
Закордонні компанії, що працюють у Бразилії, також мають отримати CNPJ від Receita Federal. Їхні CNPJ дотримуються того самого формату та правил перевірки, що й вітчизняні компанії. Немає спеціального формату CNPJ для закордонних компаній.
Однак закордонні компанії можуть мати додаткові вимоги до документації та відмінні процеси реєстрації — проконсультуйтеся з бразильським бізнес-адвокатом для деталей.
Чи можу я запитати урядову базу даних для перевірки реєстрації CNPJ?
Так, Receita Federal надає публічний доступ для перевірки базової інформації про CNPJ через їхню Consulta Pública CNPJ службу. Ви можете вручну шукати CNPJ або, маючи відповідний дозвіл, використовувати їхні API для програмного доступу.
Зверніть увагу, що інтенсивне використання вимагає реєстрації, і є обмеження швидкості для запобігання зловживанням.
Як часто змінюються CNPJ?
CNPJ — це постійні ідентифікатори, які не змінюються при зміні назви, адреси або структури власності компанії. Однак, якщо компанія закривається і пізніше перереєструється, вона може отримати новий CNPJ. Номери філій (частина /XXXX) можуть додаватися при відкритті нових локацій, але базовий 8-значний номер залишається незмінним.
Посилання та додаткові ресурси
Офіційні урядові джерела
- Receita Federal do Brasil - Офіційний портал - Офіційний веб-сайт Федеральної податкової служби Бразилії з послугами реєстрації та перевірки CNPJ
- Consulta Pública CNPJ - Публічний пошук CNPJ - Офіційна урядова служба перевірки статусу реєстрації CNPJ
- Нормативна інструкція RFB № 1863/2018 - Правові норми, що регулюють реєстрацію та використання CNPJ в Бразилії
Технічні стандарти та документація
- Алгоритми модулярної арифметики - Обчислення контрольної цифри використовує модульну арифметику, стандартний підхід для перевірочних цифр
- ISO/IEC 7064 - Міжнародний стандарт для систем контрольних цифр, який вплинув на проектування перевірки бразильських документів
- Цивільний кодекс Бразилії (Закон № 10.406/2002) - Правова база, що визначає класифікації бізнес-суб'єктів, які вимагають реєстрації CNPJ
Ресурси для розробників
- Реєстр пакетів NPM - npmjs.com - Репозиторій бібліотек JavaScript, включаючи валідатори бразильських документів
- PyPI (Python Package Index) - pypi.org - Бібліотеки Python для перевірки CNPJ та обробки бразильських документів
- GitHub - Реалізації перевірки CNPJ з відкритим вихідним кодом на різних мовах програмування
Почніть генерацію та перевірку CNPJs
Незалежно від того, чи створюєте ви бразильську платформу електронної комерції, тестуєте інтеграції платежів з Mercado Pago або просто хочете зрозуміти, як працює перевірка CNPJ, цей інструмент надає негайний доступ до можливостей генерації та перевірки.
Без встановлення, без API-ключів, без складного налаштування. Просто відкрийте браузер і почніть працювати з дійсними ідентифікаторами бразильських підприємств.