Most generators produce numbers that merely look right. Sampuli computes the real check digits — so a generated IBAN passes IBAN validation, a card passes Luhn, an Aadhaar passes Verhoeff, and a passport's MRZ conforms to ICAO 9303. Below is a sample of the algorithms the engine runs. Every value is still entirely synthetic.
DE42500400004106678305| IBAN — mod-97 (ISO 7064) | Bank accounts across 30+ countries; passes every IBAN validator de.iban, fr.iban, es.iban… |
| Luhn (mod-10) | Payment card numbers (Visa / Mastercard / Amex) with real IIN ranges ke.card, us.card |
| Verhoeff | India Aadhaar national ID in.id |
| ICAO 9303 (7-3-1) | Machine-readable passport zone (TD3 MRZ) any .passport_mrz |
| EAN-13 | Product barcodes via product fields |
| CPF & CNPJ | Brazil individual & company IDs br.id |
| Codice Fiscale & Partita IVA | Italy personal & VAT IDs it.id, it.tax |
| DNI / NIF, CIF control | Spain es.id |
| PESEL & NIP | Poland pl.id, pl.tax |
| Fødselsnummer & org.nr | Norway no.id |
| BSN (elfproef) | Netherlands nl.id |
| PPS number | Ireland ie.id |
| Rijksregisternummer | Belgium be.id |
| HETU & Y-tunnus | Finland fi.id |
| AFM & AMKA | Greece gr.id |
| T.C. Kimlik No | Turkey tr.id |
| CNP | Romania ro.id |
| Rodné číslo | Czechia cz.id |
| OIB | Croatia hr.id |
| EGN | Bulgaria bg.id |
| EMŠO | Slovenia si.id |
| Kennitala | Iceland is.id |
| RRN | South Korea kr.id |
| My Number & Corporate Number | Japan jp.id |
| Resident ID & USCC | China (individual & business) cn.id |
| CURP & CLABE | Mexico mx.id, mx.account |
| CUIT & CBU | Argentina ar.id, ar.account |
| RUT | Chile cl.id |
| NIT | Colombia co.id |
| RUC | Peru pe.id |
| Cédula | Ecuador ec.id |
| NRIC / FIN | Singapore sg.id |
| HKID | Hong Kong hk.id |
| Thai ID | Thailand th.id |
| Israeli ID & Kuwait Civil No | Israel, Kuwait il.id, kw.id |
| TFN & ABN | Australia au.id, au.tax |
| ABA routing (check digit) | United States us.routing |
| UID | Switzerland ch.id |
Format-invalid test data is worse than none: it passes your happy-path tests and hides the bugs that only fire on real input. Sampuli's data exercises your validators, your parsers and your storage exactly as production data would — which is why it's built on 38+ verified algorithms rather than regexes. Check your own values against them, or see the comparison with faker & Mockaroo.