Generator · Slovak data

Slovak IČO

Endpoint GET /v1/sk/ico

What it covers

Returns a valid Slovak IČO (identifikačné číslo organizácie) with a correct mod-11 check digit. Set `invalid=true` for an IČO with a deliberately wrong check digit, or `edge=true` for valid edge cases.

How it’s calculated

The Slovak IČO's 8th digit is a weighted mod-11 check digit over the 7 leading digits, read as the 11-complement of the weighted sum modulo 11, then reduced modulo 10 so it is always a single digit.

Algorithm

  1. Take the 7 payload digits d1 d2 d3 d4 d5 d6 d7 (the IČO without its final check digit). Positions are read left to right.
  2. Apply the fixed position weights [8, 7, 6, 5, 4, 3, 2]: multiply d1 by 8, d2 by 7, d3 by 6, d4 by 5, d5 by 4, d6 by 3, d7 by 2.
  3. Sum the seven products to get the weighted sum S.
  4. Compute base = S mod 11 (a value 0..10).
  5. Compute the 11-complement: raw = 11 - base (a value 1..11).
  6. Reduce with the mod10 overflow rule: check = raw mod 10. (So raw 11 -> 1, raw 10 -> 0, otherwise raw unchanged.)
  7. The check digit is this single digit 0..9; append it as the 8th digit to form the full IČO.

Worked example

IČO 1234567? (7 payload digits 1234567, check digit unknown)

Weights [8,7,6,5,4,3,2] against digits [1,2,3,4,5,6,7].
Products: 8*1=8, 7*2=14, 6*3=18, 5*4=20, 4*5=20, 3*6=18, 2*7=14.
Weighted sum S = 8+14+18+20+20+18+14 = 112.
base = 112 mod 11 = 2 (since 11*10 = 110, 112-110 = 2).
raw = 11 - 2 = 9.
check = 9 mod 10 = 9.

The check digit is 9, so the full IČO is 12345679.

Edge cases

  • Leading-zero IČOs are valid: the first payload digit may be 0 (the edge generator emits these deliberately), so an IČO parsed as a number and reformatted can lose its leading zero and drop below 8 characters.
  • A check digit of 0 is legitimate and occurs whenever the 11-complement raw value is 10 or 11 (both reduce to 0 under the mod-10 rule).

Gotchas

  • The overflow rule is mod10, not 'invalid': under 11-complement the raw result can be 10 or 11, and both are folded to a real digit (10->0, 11->1) rather than being treated as unissued. There is therefore always a single-digit answer and no residue is rejected — the code's guard for undefined is unreachable.
  • The complement is taken before the mod-10 reduction (check = (11 - (S mod 11)) mod 10), not after; reversing the two operations gives wrong results for the overflow cases.

Parameters

ParameterTypeDescription
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 IČOs from the rare corners.
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 an IČO with a deliberately wrong mod-11 check digit.
seedintegerInteger seed for reproducible output: the same seed always yields the same record.

Response fields

FieldTypeDescription
valuestringThe 8-digit IČO.
digitsstringThe canonical 8-digit IČO.

Other generators for Slovakia

See all generators for Slovakia →

The same kind of identifier elsewhere

Try it

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