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

  1. 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.
  2. Convert those nine characters to their numeric values d1..d9 (d1 is the leftmost).
  3. 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.
  4. Add the nine products together to get the weighted sum S.
  5. Compute the check digit as S mod 11 (the raw remainder — NOT an 11-complement).
  6. 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.
  7. 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

ParameterTypeDescription
atAgeintegerExact age in years at request time.
bornAfterstringpattern ^\d{4}(?:-\d{2}(?:-\d{2})?)?$Born after this date or fragment (YYYY, YYYY-MM, YYYY-MM-DD).
bornBeforestringpattern ^\d{4}(?:-\d{2}(?:-\d{2})?)?$Born before this date or fragment (YYYY, YYYY-MM, YYYY-MM-DD).
bornOnstringpattern ^\d{4}(?:-\d{2}(?:-\d{2})?)?$Born on a date or within a fragment: YYYY, YYYY-MM, or YYYY-MM-DD.
countinteger1–1000Number of records to return, 1–1000 (your plan may lower this). Omitted returns a single record; set it for a batch.
edgebooleanRestrict output to valid edge-case values.
extremebooleanReturn 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.
invalidbooleanReturn a number with a deliberately wrong mod-11 check digit; the birth date stays valid.
olderThanintegerMinimum age in years at request time.
seedintegerInteger seed for reproducible output: the same seed always yields the same record.
youngerThanintegerMaximum age in years at request time.

Response fields

FieldTypeDescription
valuestringThe adóazonosító jel as a bare 10-digit string.
digitsstringThe canonical 10-digit number.
birthDatestringThe encoded birth date, ISO `YYYY-MM-DD`.

Other generators for Hungary

See all generators for Hungary →

The same kind of identifier elsewhere

Try it

Generate a live example below — every response is valid by format and entirely synthetic.