Generator · Hungarian data
Hungarian adóazonosító jel
Endpoint GET /v1/hu/adoazonosito-jel
What it covers
Returns a valid Hungarian adóazonosító jel (personal tax identification number) with a correct mod-11 check digit. The number encodes a birth date but no sex; constrain it with age/birth-date filters. Contradictory combinations are rejected with a 400. Set `invalid=true` for a deliberately wrong check digit.
How it’s calculated
The tenth digit of a Hungarian adóazonosító jel is a weighted-sum mod-11 check: each of the first nine digits is multiplied by its 1-based position weight, summed, and the check digit is that sum modulo 11 (residue 10 is unissued).
Algorithm
- Build the first nine digits: digit 1 is the constant '8'; digits 2-6 are the five-digit day count (number of days between the birth date and the epoch 1867-01-01, zero on the epoch itself), zero-padded to exactly five characters; digits 7-9 are a three-digit random serial, zero-padded to three characters.
- Convert those nine characters to their numeric values d1..d9 (d1 is the leftmost).
- Multiply each digit by its 1-based position weight: weights are [1, 2, 3, 4, 5, 6, 7, 8, 9], i.e. d_i is multiplied by i.
- Add the nine products together to get the weighted sum S.
- Compute the check digit as S mod 11 (the raw remainder — NOT an 11-complement).
- If the remainder equals 10, the identifier is not issued by the authority: discard it and redraw the three-digit serial, repeating from step 1 until the remainder is 0-9.
- Append the check digit (0-9) as the tenth character to the nine payload digits to form the final ten-digit adóazonosító jel.
Worked example
First nine digits 82345678? (constant 8, day-count 23456, serial 789), check digit = ?
Digits d1..d9 = 8,2,3,4,5,6,7,8,9 with weights 1,2,3,4,5,6,7,8,9.
Products: 8x1=8, 2x2=4, 3x3=9, 4x4=16, 5x5=25, 6x6=36, 7x7=49, 8x8=64, 9x9=81.
Sum S = 8+4+9+16+25+36+49+64+81 = 292.
292 mod 11 = 292 - (26 x 11) = 292 - 286 = 6.
Remainder is 6, not 10, so the identifier is valid and the check digit is 6.The check digit is 6, giving the full adóazonosító jel 8234567896.
Edge cases
- The first digit is always the constant '8' (identifies the number as an adóazonosító jel), so it always contributes 8 to the weighted sum via weight 1.
- Digits 2-6 encode the number of days since 1867-01-01; on the epoch date itself the day count is 00000. The encodable range is birth dates 1867-01-01 through 2099-12-31.
- The check digit is read directly as sum mod 11; there is no 11-complement step, so a payload whose weighted sum is a multiple of 11 legitimately yields a check digit of 0.
Gotchas
- Residue 10 has no valid single-digit representation and is treated as unissued: the generator redraws the three-digit serial rather than emitting a 10 or collapsing it to 0, so no real adóazonosító jel corresponds to a mod-11 remainder of 10.
- The check is the raw remainder (mod11.ts 'remainder' style), not the complement style used by some other mod-11 identifiers — do not compute 11 minus the remainder.
- Digit strings are handled as strings with significant leading zeros; the day count and serial are zero-padded to 5 and 3 characters respectively before the digits are summed.
Parameters
| Parameter | Type | Description |
|---|---|---|
| atAge | integer | Exact age in years at request time. |
| bornAfter | stringpattern ^\d{4}(?:-\d{2}(?:-\d{2})?)?$ | Born after this date or fragment (YYYY, YYYY-MM, YYYY-MM-DD). |
| bornBefore | stringpattern ^\d{4}(?:-\d{2}(?:-\d{2})?)?$ | Born before this date or fragment (YYYY, YYYY-MM, YYYY-MM-DD). |
| bornOn | stringpattern ^\d{4}(?:-\d{2}(?:-\d{2})?)?$ | Born on a date or within a fragment: YYYY, YYYY-MM, or YYYY-MM-DD. |
| count | integer1–1000 | Number of records to return, 1–1000 (your plan may lower this). Omitted returns a single record; set it for a batch. |
| edge | boolean | Restrict output to valid edge-case values. |
| extreme | boolean | Return a correct value wrapped in a hostile encoding (untrimmed whitespace, invisible/zero-width characters, BOM, or bidi/combining marks). Homoglyphs are excluded so the value stays machine-parseable; it still validates after normalisation. |
| invalid | boolean | Return a number with a deliberately wrong mod-11 check digit; the birth date stays valid. |
| olderThan | integer | Minimum age in years at request time. |
| seed | integer | Integer seed for reproducible output: the same seed always yields the same record. |
| youngerThan | integer | Maximum age in years at request time. |
Response fields
| Field | Type | Description |
|---|---|---|
| value | string | The adóazonosító jel as a bare 10-digit string. |
| digits | string | The canonical 10-digit number. |
| birthDate | string | The encoded birth date, ISO `YYYY-MM-DD`. |
Other generators for Hungary
The same kind of identifier elsewhere
Try it