Naar inhoud springen

CPF Generator - Maak Geldige Braziliaanse Belasting-ID's voor Testen

Gratis CPF-generator maakt geldige Braziliaanse belasting-ID-nummers die de validatiealgoritmen doorstaan. Perfect voor het testen van formulieren, API's en databases zonder echte persoonsgegevens te gebruiken.

Klik om een geldig Braziliaans CPF-nummer te genereren voor testdoeleinden

Laadcalculator...
📚

Documentatie

CPF Generator - Maak Geldige Braziliaanse Belasting-ID-nummers voor Testen

Waarom Je Een CPF-Generator Nodig Hebt voor Testen

Bij het ontwikkelen van applicaties voor de Braziliaanse markt loop je snel tegen een veelvoorkomende uitdaging aan: het testen van formulieren en validatielogica zonder echte gebruikersgegevens te compromitteren. Daarom is een CPF-generator essentieel.

De CPF (Cadastro de Pessoas Físicas) is het unieke 11-cijferige identificatienummer dat in Brazilië wordt uitgegeven aan burgers en inwoners voor belastingdoeleinden. Deze tool maakt wiskundig geldige, willekeurige CPF-nummers die de officiële Braziliaanse validatie-algoritme doorstaan—perfect voor het vullen van testdatabases, het valideren van invoerformulieren en het uitvoeren van geautomatiseerde tests zonder privacyzorgen.

Kritieke beperking: Gegenereerde CPF's zijn uitsluitend voor testomgevingen. Ze zijn niet gekoppeld aan echte personen en mogen nooit worden gebruikt in productiesystemen of voor frauduleuze doeleinden. Hun waarde zit in het feit dat ze validatiecontroles doorstaan terwijl de testgegevens volledig gescheiden blijven van echte persoonlijke informatie.

Het begrijpen van CPF-structuur en -formaat

Een geldige CPF bestaat uit 11 cijfers met een specifieke structuur:

  • Eerste 9 cijfers: Basis identificatienummers
  • Laatste 2 cijfers: Controletekens voor validatie
  • Standaardformaat: XXX.XXX.XXX-XX (met punten en koppelteken)

Voorbeeld: 123.456.789-09

De controletekens zorgen ervoor dat het CPF-nummer wiskundig geldig is, waardoor typefouten en ongeldige invoer in Braziliaanse systemen worden voorkomen.

Hoe CPF-validatie werkt

Het CPF-validatie-algoritme gebruikt een modulo-11 gewogen controlegetal systeem om nummerintegriteit te garanderen. Het begrijpen van dit algoritme is cruciaal bij het implementeren van CPF-validatie in uw toepassingen.

Het validatieproces uitgelegd

Het algoritme berekent twee controletekens (de laatste twee cijfers van de CPF) op basis van de eerste negen cijfers:

Berekenen van het eerste controlegetal:

  1. Vermenigvuldig de eerste 9 cijfers met dalende gewichten (10, 9, 8, 7, 6, 5, 4, 3, 2)
  2. Som alle vermenigvuldigingsresultaten
  3. Bereken de rest bij deling door 11
  4. Als de rest < 2 is, is het controlegetal 0; anders is het 11 min de rest

Berekenen van het tweede controlegetal:

  1. Herhaal het proces voor de eerste 9 cijfers plus het eerste controlegetal (10 cijfers in totaal)
  2. Gebruik gewichten 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
  3. Pas dezelfde restlogica toe

Deze twee-fasen validatie vangt de meeste overschrijvingsfouten op en voorkomt dat willekeurige nummers als geldige CPF's worden beschouwd. Het algoritme is gedocumenteerd in Lei nº 4.862/1965, die het CPF-systeem heeft ingesteld.

Waarom dit belangrijk is voor ontwikkelaars

Bij het bouwen van CPF-validatie zien ontwikkelaars vaak over het hoofd dat de rand waarbij de rest 0 of 1 is—deze moeten worden toegewezen aan controlegetal 0, niet 10 of 11. Dit is een veelvoorkomende bron van validatiefouten. De formule (som * 10 % 11) % 10 behandelt deze randcase netjes door ervoor te zorgen dat het resultaat nooit meer dan 9 bedraagt.

Hoe deze CPF-generator gebruiken

Het genereren van geldige test-CPF's duurt enkele seconden:

  1. Klik op de knop "CPF genereren"
  2. Bekijk het geldige, willekeurige CPF-nummer weergegeven in standaard XXX.XXX.XXX-XX-formaat
  3. Kopieer het gegenereerde nummer met één klik
  4. Plak direct in uw testformulieren, API-aanvragen of database seeds

Elk gegenereerd CPF doorstaat Brazilië's officiële validatie-algoritme, zodat u uw validatielogica met vertrouwen kunt testen. De nummers worden willekeurig gegenereerd bij elke keer, waardoor de kans op conflicten in uw testdatasets wordt verkleind.

Formule

De formule voor het genereren van een geldig CPF is als volgt:

1def generate_cpf():
2    # Genereer 9 willekeurige cijfers
3    base_cpf = [random.randint(0, 9) for _ in range(9)]
4    
5    # Bereken eerste controlegetal
6    sum_1 = sum((10 - i) * digit for i, digit in enumerate(base_cpf))
7    check_digit_1 = (sum_1 * 10 % 11) % 10
8    
9    # Bereken tweede controlegetal
10    sum_2 = sum((11 - i) * digit for i, digit in enumerate(base_cpf + [check_digit_1]))
11    check_digit_2 = (sum_2 * 10 % 11) % 10
12    
13    return base_cpf + [check_digit_1, check_digit_2]
14

Berekening

De generator voert de volgende stappen uit:

  1. Genereer 9 willekeurige cijfers
  2. Bereken het eerste controlegetal met behulp van het beschreven algoritme
  3. Bereken het tweede controlegetal
  4. Combineer alle cijfers om de volledige CPF te vormen

Voorbeelden

Hier zijn enkele voorbeelden van gegenereerde CPF's:

  1. 123.456.789-09
  2. 987.654.321-00
  3. 111.222.333-96

Veelvoorkomende gebruiksgevallen voor het testen van CPF-nummers

Gebaseerd op praktische ontwikkelingsscenario's, hier zijn de momenten waarop je gegenereerde CPF-nummers nodig hebt:

Ontwikkelings- en testscenario's

Database seeding en migraties: Bij het opzetten van lokale of staging-omgevingen heb je realistische testgegevens nodig. Gegenereerde CPF's stellen je in staat om honderden of duizenden testgebruikersrecords te maken zonder echte persoonlijke informatie aan te raken. Dit is vooral nuttig bij het testen van databasebeperkingen en unieke indexen op CPF-kolommen.

Formuliervalidatietesten: Braziliaanse registratieformulieren vereisen doorgaans CPF-validatie aan zowel de client- als de serverkant. Het testen van grensgevallen - zoals correct geformatteerde maar ongeldige CPF's, of cijfers die allemaal hetzelfde zijn (111.111.111-11) - helpt bij het vinden van validatiefouten voordat ze de productieomgeving bereiken. Gegenereerde CPF's bieden geldige testgevallen om te verifiëren of uw validatielogica correct werkt.

API-integratietesten: Bij het bouwen van integraties met Braziliaanse betaalgateways, financiële diensten of overheids-API's heb je vaak geldige CPF-nummers nodig in je testverzoeken. Het gebruik van gegenereerde CPF's houdt je testsuite onafhankelijk van echte gebruikersgegevens.

Belasting- en prestatietesten: Voor het testen van systemen die Braziliaanse gebruikersgegevens verwerken, heb je grote hoeveelheden unieke, geldige CPF's nodig. Het genereren van duizenden test-CPF's stelt je in staat realistische belasting te simuleren zonder privacyzorgen.

UI/UX-validatie: Testen hoe uw interface CPF-weergave, maskering en opmaak verwerkt op verschillende schermformaten en in verschillende contexten. Gegenereerde CPF's helpen bij het verifiëren of uw opmaaklogica (het toevoegen van punten en koppeltekens) consistent werkt.

Veelvoorkomende valkuilen om te vermijden

Een fout die ontwikkelaars vaak maken, is vergeten dat cijfers die allemaal hetzelfde zijn (zoals 000.000.000-00 of 111.111.111-11) technisch geldig zijn volgens het algoritme, maar worden afgewezen door echte Braziliaanse systemen. Neem bij het testen controles op voor deze bekende ongeldige patronen, ook al slagen ze voor wiskundige validatie.

Een ander probleem: gegenereerde CPF's werken geweldig voor het testen van validatielogica, maar zullen niet helpen bij het testen van daadwerkelijke CPF-opzoekacties in overheiddatabases. Voor integratietests die query's uitvoeren op echte Braziliaanse overheids-API's, zul je aangewezen test-CPF's moeten gebruiken die door die diensten worden verstrekt (zoals Serpro's testomgeving).

Gerelateerde Braziliaanse identificatiesystemen

Hoewel CPF de primaire individuele identificator in Brazilië is, helpt het begrijpen van gerelateerde systemen bij het bouwen van uitgebreide Braziliaanse toepassingen:

RG (Registro Geral): Staatlijk afgegeven identiteitsdocumentnummers. In tegenstelling tot CPF, dat federaal is en een consistente indeling volgt, variëren RG-nummers per staat en hebben ze geen gestandaardiseerd validatie-algoritme. Bij het bouwen van toepassingen voor Brazilië zul je doorgaans CPF vereisen voor backend-validatie en RG kunnen accepteren als secundaire identificatie.

CNPJ (Cadastro Nacional da Pessoa Jurídica): Het bedrijfsequivalent van CPF, gebruikt voor bedrijven en rechtspersonen. CNPJ gebruikt een vergelijkbaar modulo-11-validatie-algoritme maar heeft 14 cijfers in plaats van 11. Als je B2B-toepassingen voor Brazilië bouwt, zul je zowel CPF (voor individuele bedrijfseigenaren) als CNPJ (voor geregistreerde bedrijven) moeten verwerken.

PIS/PASEP/NIT: Werkgerelateerde identificatienummers die worden gebruikt door Brazilië's sociale zekerheidssysteem. Deze worden minder vaak vereist in algemene toepassingen, maar zijn essentieel voor HR- en salarisadministratiesystemen.

De evolutie van CPF in Brazilië

Het CPF-systeem werd opgericht door Lei nº 4.862/1965 als onderdeel van Brazilië's belastingmoderniseringsinspanningen. Wat begon als een eenvoudige belastingidentificator is uitgegroeid tot Brazilië's de facto nationale ID-nummer.

Belangrijke mijlpalen:

  • 1965: CPF geïntroduceerd voor belastingaangifte
  • 1972: Verplicht gesteld voor alle belastingplichtigen
  • 1990s: Commerciële adoptie versnelt - banken en detailhandelszaken beginnen CPF te vereisen voor transacties
  • 2000s: Digitale transformatie maakt CPF essentieel voor online diensten
  • 2020s: CPF vereist voor bijna alle overheidsservices, financiële transacties en zelfs consumentenaankopen

Deze uitbreiding verklaart waarom CPF-validatie kritiek is voor elke toepassing die Braziliaanse gebruikers bedient - het is niet langer alleen een belasting-ID, maar hoe Brazilianen zich identificeren in talloze contexten. Bij het testen van deze systemen is het hebben van geldige CPF-nummers essentieel voor realistische testscenario's.

Codevoorbeelden voor CPF-generatie en -validatie

Als je CPF-generatie en -validatie rechtstreeks in je toepassing wilt integreren, hier zijn productierijpe implementaties in populaire talen. Elk voorbeeld bevat zowel generatie- als validatiefuncties zodat je de volledige workflow kunt implementeren.

Deze implementaties volgen het officiële Receita Federal-algoritme en omvatten de eerder genoemde randgevallen (restwaarden 0 en 1 die worden toegewezen aan controlegetal 0).

1import random
2
3def generate_cpf():
4    cpf = [random.randint(0, 9) voor _ in range(9)]
5    for _ in range(2):
6        value = sum((cpf[num] * ((len(cpf) + 1) - num) for num in range(len(cpf)))) % 11
7        cpf.append(11 - value if value > 1 else 0)
8    return ''.join(map(str, cpf))
9
10def validate_cpf(cpf):
11    numbers = [int(digit) for digit in cpf if digit.isdigit()]
12    if len(numbers) != 11 of len(set(numbers)) == 1:
13        return False
14    for i in range(9, 11):
15        value = sum((numbers[num] * ((i + 1) - num) for num in range(i))) % 11
16        if numbers[i] != (11 - value if value > 1 else 0):
17            return False
18    return True
19

Voorbeeldgebruik

cpf = genereer_cpf() print(f"Gegenereerde CPF: {cpf}") print(f"Is geldig: {valideer_cpf(cpf)}")

1
2

javascript function genereerdeCPF() { const cpf = Array.from({length: 9}, () => Math.floor(Math.random() * 10)); for (let i = 0; i < 2; i++) { let som = cpf.reduce((acc, cur, idx) => acc + cur * (cpf.length + 1 - idx), 0); let cijfer = 11 - (som % 11); cpf.push(cijfer > 9 ? 0 : cijfer); } return cpf.join(''); }

function valideerCPF(cpf) { const nummers = cpf.match(/\d/g).map(Number); if (nummers.length !== 11 || new Set(nummers).size === 1) return false; for (let i = 9; i < 11; i++) { let som = nummers.slice(0, i).reduce((acc, cur, idx) => acc + cur * (i + 1 - idx), 0); let cijfer = 11 - (som % 11); if (nummers[i] !== (cijfer > 9 ? 0 : cijfer)) return false; } return true; }

// Voorbeeldgebruik const cpf = genereerdeCPF(); console.log(Gegenereerde CPF: ${cpf}); console.log(Is geldig: ${valideerCPF(cpf)});

1
2

java import java.util.Random;

public class CPFGenerator { private static final Random willekeurig = new Random();

public static String genereerdeCPF() {
    int[] cpf = new int[11];
    for (int i = 0; i < 9; i++) {
        cpf[i] = willekeurig.nextInt(10);
    }
    cpf[9] = berekenControlecijfer(cpf, 10);
    cpf[10] = berekenControlecijfer(cpf, 11);
    return formatteerdCPF(cpf);
}

private static int berekenControlecijfer(int[] cpf, int factor) {
    int som = 0;
    for (int i = 0; i < factor - 1; i++) {
        som += cpf[i] * (factor - i);
    }
    int resultaat = 11 - (som % 11);
    return resultaat > 9 ? 0 : resultaat;
}

private static String formatteerdCPF(int[] cpf) {
    return String.format("%d%d%d.%d%d%d.%d%d%d-%d%d",
            cpf[0], cpf[1], cpf[2], cpf[3], cpf[4], cpf[5], cpf[6], cpf[7], cpf[8], cpf[9], cpf[10]);
}

public static boolean valideerCPF(String cpf) {
    cpf = cpf.replaceAll("[^0-9]", "");
    if (cpf.length() != 11) return false;
    int[] nummers = cpf.chars().map(Character::getNumericValue).toArray();
    if (allenGelijk(nummers)) return false;
    int cijfer10 = berekenControlecijfer(nummers, 10);
    int cijfer11 = berekenControlecijfer(nummers, 11);
    return nummers[9] == cijfer10 && nummers[10] == cijfer11;
}

private static boolean allenGelijk(int[] array) {
    for (int i = 1; i < array.length; i++) {
        if (array[i] != array[0]) return false;
    }
    return true;
}

public static void main(String[] args) {
    String cpf = genereerdeCPF();
    System.out.println("Gegenereerde CPF: " + cpf);
    System.out.println("Is geldig: " + valideerCPF(cpf));
}

}


**Deze implementaties gebruiken:**

- De validatiefuncties kunnen zowel geformatteerde (XXX.XXX.XXX-XX) als ongeformatteerde (XXXXXXXXXXX) invoer verwerken
- Voeg controles toe voor bekende ongeldige patronen (alle identieke cijfers) in productie-code
- Overweeg het gebruik van gevestigde bibliotheken zoals `validate-docbr` (Python) of `cpf-cnpj-validator` (JavaScript) voor productiesystemen—zij behandelen randgevallen en zijn grondig getest
- Deze voorbeelden zijn geweldig om het algoritme te begrijpen of lichtgewicht implementaties te bouwen zonder externe afhankelijkheden

## Veelgestelde vragen over CPF-generatie

### Is de CPF-generator gratis te gebruiken?
Ja, deze tool is volledig gratis zonder registratie vereist. Genereer zoveel CPF-nummers als je nodig hebt voor testdoeleinden. Er zijn geen gebruikslimieten of verborgen kosten.

### Zijn gegenereerde CPF-nummers gekoppeld aan echte personen?
Nee. Hoewel de nummers wiskundig geldig zijn en validatiealgoritmen doorstaan, worden ze willekeurig gegenereerd en niet geregistreerd bij de Braziliaanse Receita Federal. Ze bestaan uitsluitend als testgegevens en mogen alleen worden gebruikt in ontwikkel- en testomgevingen.

### Kan ik gegenereerde CPF's gebruiken in productiesystemen?
Nooit. Productiesystemen moeten echte, geverifieerde CPF's gebruiken die door gebruikers worden verstrekt via legitieme registratieprocessen. Het gebruik van gegenereerde CPF's in live systemen schendt de beginselen van gegevensintegriteit en kan ernstige juridische problemen veroorzaken onder de [Braziliaanse wet gegevensbescherming (LGPD)](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd).

### Hoe zorgt de generator voor CPF-validiteit?
De tool implementeert het officiële CPF-validatiealgoritme zoals gespecificeerd door de Receita Federal. Het berekent beide controletekens met behulp van de gewogen modulo-11-formule, waardoor elk gegenereerd nummer standaardvalidatietests doorstaat. Het algoritme is hetzelfde als dat wordt gebruikt door Braziliaanse overheidsystemen en financiële instellingen.

### Wat is het verschil tussen CPF en CNPJ?
CPF (Cadastro de Pessoas Físicas) identificeert individuele personen—burgers en inwoners. CNPJ (Cadastro Nacional da Pessoa Jurídica) identificeert bedrijven en rechtspersonen. Beschouw CPF als vergelijkbaar met een Sociaal-Fiscaal Nummer in de VS, terwijl CNPJ lijkt op een Werkgeveridentificatienummer (EIN). Je hebt verschillende generators nodig voor elk type.

### Is het legaal om test-CPF-nummers te genereren?
Het genereren van CPF-nummers voor legitiem software testen en ontwikkeling is legaal. Wat illegaal is, is het frauduleus gebruiken—om zich voor te doen als echte personen, identiteitsfraude te plegen of beveiligingsmaatregelen te omzeilen. Houd gegenereerde CPF's duidelijk gemarkeerd als testgegevens en beperk ze tot niet-productieomgevingen.

### Hoe zit het met dubbele CPF's?
Hoewel theoretisch mogelijk, zijn duplicaten uiterst zeldzaam. Er zijn ongeveer 100 miljard mogelijke geldige CPF-combinaties (gezien de beperkingen van het controleteken), dus de kans op het genereren van hetzelfde nummer is ongeveer 1 op 100 miljard per poging. In praktische testsituaties zullen duplicaten geen probleem zijn tenzij je honderden miljoenen CPF's genereert.

### Werken gegenereerde CPF's met validatiebibliotheken?
Ja. Gegenereerde CPF's doorstaan validatie in populaire bibliotheken in verschillende talen—Python's `validate-docbr`, JavaScript's `cpf-cnpj-validator`, PHP's `geekcom/validator-docs`, en andere. Ze voldoen aan de wiskundige vereisten die deze bibliotheken controleren. Ze zullen echter geen "echte CPF-lookup" doorstaan bij overheidsgegevensbanken, wat precies is wat je wilt voor geïsoleerd testen.

### Waarom worden sommige geldige CPF's geweigerd door mijn validatie?
Je validator controleert mogelijk op bekende ongeldige patronen naast het wiskundige algoritme. CPF's met allemaal identieke cijfers (000.000.000-00, 111.111.111-11, etc.) zijn wiskundig geldig maar worden door de meeste Braziliaanse systemen geweigerd omdat ze bekende testwaarden zijn. Goede validatielogica omvat zowel het controleteken-algoritme als deze patroongebaseerde weigeringen.

## Juridische en Ethische Overwegingen

Bij het gebruik van een **CPF-generator**, volg deze belangrijke richtlijnen:

1. **Alleen testen:** Gegenereerde CPF's zijn uitsluitend bedoeld voor ontwikkel- en testomgevingen
2. **Duidelijke labeling:** Markeer alle testgegevens die gegenereerde CPF's bevatten om verwarring met echte gegevens te voorkomen
3. **Privacywetgeving:** Begrijp de wetten inzake gegevensbescherming (zoals LGPD in Brazilië) ook bij het omgaan met nepidentificatoren
4. **Productiesystemen:** Gebruik altijd echte, geverifieerde CPF's van geautoriseerde bronnen in live-omgevingen
5. **Beveiligingsmaatregelen:** Implementeer adequate bescherming voor zowel echte als gegenereerde CPF's in uw systemen
6. **Geen nabootsing:** Gebruik gegenereerde nummers nooit om echte personen na te bootsen of fraude te plegen

## Gegenereerde CPF's gebruiken in uw testsuite

Voor ontwikkelaars die werken aan Braziliaanse applicaties is betrouwbare testgegevens ononderhandelbaar. Deze CPF-generator levert wiskundig geldige nummers die validatiecontroles doorstaan terwijl uw testen volledig gescheiden blijven van echte gebruikersgegevens.

Onthoud deze belangrijke punten bij het integreren van gegenereerde CPF's in uw workflow:

- **Markeer testgegevens duidelijk** in uw databaseschema's en documentatie
- **Implementeer patrooncontroles** voor bekende ongeldige CPF's (alle identieke cijfers) in uw validatie
- **Gebruik gegenereerde CPF's alleen in niet-productieomgevingen**—staging, ontwikkeling en CI/CD-pijplijnen
- **Raadpleeg officiële validatiespecificaties** van [Receita Federal](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf) bij het bouwen van uw eigen validatielogica

Klik op de genereerknop hierboven om geldige CPF-nummers te maken voor uw testbehoeften.

## Referenties en Officiële Documentatie

Voor gezaghebbende informatie over CPF-standaarden en Braziliaanse gegevensregulering:

1. **Receita Federal do Brasil.** "CPF - Cadastro de Pessoas Físicas." Officiële documentatie van CPF-vereisten en validatie. [https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf)

2. **Serpro (Federale Gegevensverwerkingsservice).** "Validador de CPF." Overheids-CPF-validatieservice met testomgeving. [https://www.serpro.gov.br/links-fixos-superiores/validador-cpf](https://www.serpro.gov.br/links-fixos-superiores/validador-cpf)

3. **Lei Geral de Proteção de Dados (LGPD).** "Braziliaanse Algemene Wet Gegevensbescherming." Wettelijk kader voor het verwerken van persoonsgegevens in Brazilië. [https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd)

4. **Lei nº 4.862/1965.** "Wijzigt de wetgeving op de inkomstenbelasting." Oorspronkelijke wetgeving die het CPF-systeem vaststelt. [https://www.planalto.gov.br/ccivil_03/leis/l4862.htm](https://www.planalto.gov.br/ccivil_03/leis/l4862.htm)

5. **Ministério da Fazenda.** "Geschiedenis van CPF." Historische context en evolutie van het CPF-systeem. [https://www.gov.br/fazenda/pt-br/assuntos/receita-federal](https://www.gov.br/fazenda/pt-br/assuntos/receita-federal)

---

**Meta Titel:** CPF Generator - Maak Geldige Braziliaanse Belasting-ID's voor Testen
**Meta Beschrijving:** Gratis CPF-generator maakt geldige Braziliaanse belasting-ID-nummers die validatie-algoritmen doorstaan. Perfect voor het testen van formulieren, API's en databases zonder echte persoonsgegevens te gebruiken.