Not necessarily. It only passes the mathematical check-digit rule.
Generate check-digit-valid CNPJ numbers for testing, staging and form validation.
The CNPJ (Cadastro Nacional da Pessoa Jurídica) is the 14-digit number Brazil's federal tax authority uses to identify companies and other entities. It splits into a root (8 digits identifying the organization), an establishment order (4 digits, where 0001 is the headquarters) and two check digits computed with modulo 11. A "valid" CNPJ here only means those check digits match the mathematical rule, not that the company exists, is active or belongs to anyone. This tool produces test data: fictitious numbers, coherent with the algorithm, so developers can validate forms, masks and integrations without using a real company's CNPJ. Everything runs in the browser, without querying the tax authority and without creating any registration.
A CNPJ has 14 digits: the first 8 are the root that identifies the organization; the next 4 mark the establishment order (0001 is the headquarters, 0002 onward are branches); and the last 2 are check digits. The tool draws 8 root digits at random, fixes the order at 0001 and calculates the check digits.
Each check digit comes from a weighted sum of the preceding digits under modulo 11: the first uses weights 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 and the second uses 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2. You sum the products, take the remainder of division by 11, and if that remainder is below 2 the digit is 0; otherwise it is 11 minus the remainder.
First case: validating forms. When you test a CNPJ field, you need values that pass check-digit verification to exercise the happy path and deliberately broken values to exercise the error messages. Generating coherent synthetic CNPJs covers the happy path without reaching for a real company.
Second case: seeding databases and fixtures. Development seeds, staging environments and automated tests often need dozens of fictitious companies. A generator provides volume quickly while keeping the data decoupled from any existing legal entity.
The numbers here are fictitious and exist for testing. They must not be used to impersonate a company, open real registrations, issue invoices, defraud systems or any deceptive purpose, misusing documents is a crime in Brazil.
There is also a technical limit: passing the check digit is not the same as existing in the tax authority's records. Systems that query the official registry will reject the number if it does not match a real record, so it cannot bypass genuine verification.
Paste the code into your HTML and the tool shows up on your page, without J-Kit's navigation and ads. It still runs in the browser of whoever visits your site.
<iframe
src="https://jkit.tools/embed/en-US/cnpj-generator"
width="100%"
height="600"
style="border:0"
loading="lazy"
title="CNPJ Generator"
></iframe>These references help contextualize formulas, standards, APIs and limitations used on this page. They do not replace professional validation when a result has legal, financial, medical or operational impact.
Not necessarily. It only passes the mathematical check-digit rule.
The tool generates eight base digits, uses 0001 as the establishment order and calculates the two check digits with modulo-11 weights. The result is valid for tests, not real registrations.
The number is generated locally in the browser. Analytics receives only action, status, type and format, never the generated CNPJ.