Генератор и валидатор CNPJ - Инструмент для идентификации бразильского бизнеса
Генерируйте действительные номера CNPJ для тестирования или мгновенно проверяйте идентификаторы бразильского бизнеса. Бесплатный инструмент с проверкой контрольной цифры для разработчиков, работающих с Национальным реестром юридических лиц.
Генератор и валидатор бразильского 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
Разработка программного обеспечения и тестирование
Заполнение базы данных: При настройке промежуточной среды с реалистичными тестовыми данными вам нужны десятки или сотни действительных CNPJs. Ручное создание этих данных утомительно, а использование реальных идентификаторов компаний вызывает опасения по поводу конфиденциальности. Сгенерированные CNPJs решают обе проблемы.
Модульное тестирование пограничных случаев: Ваша функция проверки должна отклонять 00.000.000/0000-00, но принимать 11.222.333/0001-81. Наличие генератора позволяет быстро создавать как действительные, так и намеренно недействительные тестовые случаи для проверки правильности обработки пограничных условий.
Регрессионное тестирование QA: При тестировании форм регистрации или B2B процессов оформления заказа командам QA требуются свежие тестовые данные для каждого запуска. Распространенная проблема, которую я видел: тестовые среды загрязняются одними и теми же 5-6 CNPJs, используемыми многократно, что маскирует ошибки, которые появляются только с определенными цифровыми шаблонами.
Тестирование интеграции API: Если вы интегрируетесь с бразильскими платежными процессорами, такими как PagSeguro или Mercado Pago, их песочницы часто требуют правильного форматирования CNPJ. Математика должна быть корректной, даже если вы не работаете с производственными базами данных.
Обработка и проверка данных
Очистка импортированных данных: Вы получили CSV с 10 000 записей бразильских компаний. Перед обработкой вам нужно определить, какие CNPJs имеют дефекты. Пропуск их через валидатор помечает записи с опечатками, усечением или неправильными контрольными цифрами — сэкономив часы на отладке.
Проверка формы на стороне клиента: Обнаружение недействительных CNPJs перед отправкой формы улучшает пользовательский опыт. Никто не хочет заполнять регистрационную форму из 20 полей, чтобы получить ошибку при отправке из-за перестановки двух цифр в CNPJ.
Анонимизация данных для анализа: При подготовке производственных данных для обмена с аналитическими командами или внешними партнерами вам нужно заменить реальные CNPJs на действительные, но фиктивные. Это сохраняет целостность ссылок в вашем наборе данных, защищая при этом фактические бизнес-идентификаторы.
Международные бизнес-операции
Понимание бразильских требований: Если вы расширяете бизнес на бразильский рынок, вы столкнетесь с требованиями к CNPJ в контрактах, счетах-фактурах и транспортной документации. Наличие инструмента для экспериментов с форматом помогает понять, что должны обрабатывать ваши системы.
Спецификации интеграции третьих сторон: При просмотре документации API бразильских SaaS-провайдеров вы часто будете видеть поля CNPJ в примерах полезной нагрузки. Возможность генерировать действительные тестовые значения помогает быстрее прототипировать интеграции.
Альтернативные подходы к проверке CNPJ
Библиотеки программирования
Если вам нужна проверка CNPJ, встроенная в логику приложения, эти библиотеки реализуют алгоритм проверки контрольной суммы:
- JavaScript/Node.js:
cpf-cnpj-validator(130 000+ еженедельных загрузок),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: Consulta CNPJ API позволяет проверять данные по официальной базе (требуется надлежащая авторизация и ограничение скорости)
- Сторонние поставщики данных: Сервисы, такие как 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, принадлежность активной компании или соответствие ожидаемому названию бизнеса.
Думайте об этом как о проверке орфографии versus проверке фактов. Этот инструмент сообщает, правильно ли "написан" 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 в Бразилии
Технические стандарты и документация
- Алгоритмы модулярной арифметики - Расчет контрольной цифры использует модульную арифметику по модулю 11, стандартный подход для проверочных цифр
- ISO/IEC 7064 - Международный стандарт для систем контрольных цифр, который повлиял на разработку проверки бразильских документов
- Гражданский кодекс Бразилии (Закон № 10.406/2002) - Правовая база, определяющая классификации бизнес-субъектов, требующих регистрации CNPJ
Ресурсы для разработчиков
- Реестр пакетов NPM - npmjs.com - Репозиторий библиотек JavaScript, включая валидаторы бразильских документов
- PyPI (Индекс пакетов Python) - pypi.org - Библиотеки Python для проверки CNPJ и обработки бразильских документов
- GitHub - Открытые реализации проверки CNPJ на нескольких языках программирования
Начните генерировать и проверять CNPJs
Независимо от того, создаете ли вы бразильскую платформу электронной коммерции, тестируете интеграции платежей с Mercado Pago или просто хотите понять, как работает проверка CNPJ, этот инструмент предоставляет вам немедленный доступ к возможностям генерации и проверки.
Никакой установки, никаких API-ключей, никаких сложных настроек. Просто откройте браузер и начните работать с действительными идентификаторами бразильских предприятий.