PIS/PASEP/NIS generator and validator
Create fictitious Brazilian worker IDs (PIS/PASEP/NIS/NIT) with a valid check digit for form tests, automated suites and staging databases — or paste a list and see instantly which numbers pass the check.
Up to 1000 items at once. Everything is generated in your browser.
How to use
- On the Generate tab, toggle With mask (punctuation) to choose between
914.24813.61-4and91424813614. - Set the Quantity (1 to 1000) and click Generate.
- Click Copy to put the numbers on your clipboard, or use Export CSV / Export JSON to build fixtures and seed files.
- To check existing numbers, open the Validate tab and paste one value per line, with or without punctuation.
- Click Validate: each line is marked valid or invalid, with the reason (wrong length, invalid characters, repeated digits or wrong check digit).
How it works
What PIS, PASEP, NIS and NIT are
Brazil gives every formal worker a social-insurance number. PIS (Programa de Integração Social) covers private-sector employees and is run by Caixa Econômica Federal, a state-owned bank. PASEP is the equivalent for civil servants, registered at Banco do Brasil. NIS is the same number when used for social programmes, and NIT is the label used by the social security institute (INSS). If you are integrating with Brazilian payroll, HR or benefits systems, you will meet this field under any of those names. They all share one format: 11 digits — 10 base digits plus 1 check digit — usually displayed as ###.#####.##-#.
Check-digit algorithm
We could not find a current, public specification of this calculation on official portals; the rule below is the one widely used by Brazilian payroll software and is exactly what this tool implements.
- Multiply the first 10 digits, left to right, by the weights
3, 2, 9, 8, 7, 6, 5, 4, 3, 2. - Add the products and take the remainder of the sum divided by 11.
- Compute
11 − remainder. If the result is 10 or 11, the check digit is 0; otherwise it is the result itself.
Worked example
Base: 9142481361.
| Digit | 9 | 1 | 4 | 2 | 4 | 8 | 1 | 3 | 6 | 1 |
|---|---|---|---|---|---|---|---|---|---|---|
| Weight | 3 | 2 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
| Product | 27 | 2 | 36 | 16 | 28 | 48 | 5 | 12 | 18 | 2 |
Sum: 27 + 2 + 36 + 16 + 28 + 48 + 5 + 12 + 18 + 2 = 194. 194 mod 11 = 7 (11 × 17 = 187). Check digit: 11 − 7 = 4. Full number: 914.24813.61-4. Change the last digit to 5 and the validator reports a check-digit error.
How this tool behaves
- The generator draws 10 random base digits, skips bases that start with 0 or repeat a single digit, and appends the computed check digit.
- The validator accepts dots, hyphens and spaces, requires exactly 11 digits, rejects sequences such as
111.11111.11-1and verifies the check digit. - Everything runs in your browser; no number is sent to a server.
Passing the check only means a number is structurally valid. It says nothing about whether it is registered with Caixa, Banco do Brasil or INSS. The numbers generated here are fictitious and meant for software testing only.
FAQ
Do PIS, PASEP, NIS and NIT use the same calculation?
Yes. All four share the 11-digit format and the same check-digit rule (weights 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 with modulo 11). One validator covers them all, and a number generated here can be used to test a field labelled with any of these names.
Is a valid number actually registered?
Not necessarily. The validator only checks structure and the check digit; it does not query any official database. Generated numbers are random and fictitious, intended for form tests, QA and staging data — never for real registrations, payroll submissions or benefit claims.
Should I store it with or without the mask?
Store only the 11 digits (91424813614) and apply the ###.#####.##-# mask at display time. That avoids duplicates and keeps lookups simple. Use the With mask (punctuation) option to check that your input fields accept both forms.
Why are numbers like 000.00000.00-0 rejected?
Sequences made of one repeated digit can satisfy check-digit arithmetic by coincidence, but they are not real numbers and are a classic placeholder or autofill mistake. The validator flags them as invalid so your tests mirror what a production system should do.
Has the CPF replaced the PIS number?
Several federal systems now use the CPF (Brazil’s individual taxpayer ID) as the main worker identifier, but PIS/PASEP/NIS still appears in payroll files, legacy systems, FGTS statements and social programmes. Validating this field remains worthwhile when you integrate with Brazilian HR or benefits software.
Sources
- Caixa Econômica Federal — official website (PIS, NIS)
- Ministry of Labour and Employment — Abono Salarial (PIS/PASEP)
Related tools
Updated 2026-11-13 · Rafael Lima