
Israeli Id Validator
Implement and validate Israeli Teudat Zehut, company, amuta, and partnership ID numbers with the official check-digit algorithm in your backend or forms.
Overview
Israeli ID Validator is an agent skill for the Build phase that validates and formats Israeli identification numbers—including Teudat Zehut and company-related IDs—using the standard check-digit algorithm.
Install
npx skills add https://github.com/skills-il/developer-tools --skill israeli-id-validatorWhat is this skill?
- Validates Teudat Zehut with 9-digit padding and position-9 check digit
- Covers company, amuta (non-profit), and partnership number formats
- Documents Ministry of Interior issuance context and valid ranges
- Includes check digit algorithm suitable for code implementation
- Supports test ID generation for dev and QA flows
- Teudat Zehut: 9 digits with check digit at position 9
Adoption & trust: 1 installs on skills.sh; 9 GitHub stars; 3/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
What problem does it solve?
You need Israeli ID or company number validation in code but lack a concise, accurate spec for check digits, padding, and entity-specific formats.
Who is it for?
Solo developers building Israeli-market SaaS, APIs, or admin tools that collect national or business registration identifiers.
Skip if: Non-Israeli identity documents, KYC vendors that replace in-app validation, or legal identity proofing without your own compliance review.
When should I use this skill?
User asks to validate Israeli ID, teudat zehut, mispar zehut, company number validation, or implement Israeli ID validation in code.
What do I get? / Deliverables
You implement correct validation and formatting helpers plus test IDs aligned with Israeli Teudat Zehut and related registration number rules.
- Check-digit validation function or module
- Formatting rules for padded 9-digit Teudat Zehut
- Test ID examples for QA
Recommended Skills
Journey fit
Build/backend is canonical because the skill encodes domain validation logic you ship in applications serving Israeli users or businesses. Backend covers check-digit algorithms, formatting rules, and test ID generation—not frontend polish or growth analytics.
How it compares
Use as a locale-specific validation spec skill—not a generic UUID or credit-card validator pattern.
Common Questions / FAQ
Who is israeli-id-validator for?
It is for developers and agent users implementing Israeli ID, ח"פ, or amuta number checks in applications targeting users or companies in Israel.
When should I use israeli-id-validator?
Use it during Build/backend when adding signup, invoicing, or compliance forms that accept teudat zehut or Israeli company numbers, or when writing unit tests that need valid test IDs.
Is israeli-id-validator safe to install?
Review the Security Audits panel on this Prism page; the skill is reference and algorithm guidance and should not require live PII unless you explicitly pass sample numbers in chat.
SKILL.md
READMESKILL.md - Israeli Id Validator
{ "author": "skills-il", "version": "1.1.1", "category": "developer-tools", "tags": { "he": [ "אימות", "מספר-זהות", "תעודת-זהות", "מפתחים", "ישראל" ], "en": [ "validation", "id", "teudat-zehut", "developer", "israel" ] }, "display_name": { "he": "מאמת תעודת זהות", "en": "Israeli ID Validator" }, "display_description": { "he": "מאמתים מספרי תעודת זהות, ח\"פ ומספרי רישום חברות.", "en": "Validate and format Israeli identification numbers including Teudat Zehut (personal ID), company numbers, amuta (non-profit) numbers, and partnership numbers. Use when user asks to validate Israeli ID, \"teudat zehut\", \"mispar zehut\", company number validation, or needs to implement Israeli ID validation in code. Includes check digit algorithm and test ID generation. Do NOT use for non-Israeli identification systems." }, "supported_agents": [ "claude-code", "cursor", "github-copilot", "windsurf", "opencode", "codex", "openclaw", "antigravity", "gemini-cli" ] } # Israeli ID Number Formats Reference ## Teudat Zehut (Personal ID) - **Length:** 9 digits (padded with leading zeros if shorter) - **Prefix:** Any (no fixed prefix for personal IDs) - **Check digit:** Position 9 (last digit) - **Issued by:** Ministry of Interior (Misrad HaPnim) - **Range:** Numbers up to 999999999 - **Notes:** Issued at birth to Israeli citizens and permanent residents ## Company Number (Chevra Ba'am / Ltd) - **Length:** 9 digits - **Prefix:** 51 - **Format:** 51-XXXXXX-C (where C is check digit) - **Issued by:** Companies Registrar (Rasham HaChavarot) - **Registry:** ica.justice.gov.il ## Amuta Number (Non-profit / Registered Association) - **Length:** 9 digits - **Prefix:** 58 - **Format:** 58-XXXXXX-C - **Issued by:** Registrar of Amutot - **Registry:** ica.justice.gov.il ## Partnership Number (Shutafut) - **Length:** 9 digits - **Prefix:** 55 - **Format:** 55-XXXXXX-C - **Issued by:** Registrar of Partnerships ## Cooperative Society (Aguda Shitufit) - **Length:** 9 digits - **Prefix:** 57 - **Format:** 57-XXXXXX-C ## Check Digit Algorithm All Israeli ID types use the same Luhn-variant algorithm: 1. Take the 9-digit number (pad with leading zeros if needed) 2. Multiply each digit by alternating weights: 1, 2, 1, 2, 1, 2, 1, 2, 1 3. If any product exceeds 9, replace it with the sum of its digits 4. Sum all the results 5. The number is valid if the sum is divisible by 10 ### Worked Example: 123456782 ``` Digit: 1 2 3 4 5 6 7 8 2 Weight: 1 2 1 2 1 2 1 2 1 Product: 1 4 3 8 5 12 7 16 2 Adjusted: 1 4 3 8 5 3 7 7 2 Sum: 1 + 4 + 3 + 8 + 5 + 3 + 7 + 7 + 2 = 40 40 % 10 = 0 -> VALID ``` ## Common Errors - **Transposed digits:** Swapping two adjacent digits usually breaks validation - **Missing leading zero:** Short IDs must be zero-padded to 9 digits - **Confusing entity types:** Using a personal ID where a company number is needed - **Format vs existence:** Algorithm validates format only, not that the ID was actually issued #!/usr/bin/env python3 """Israeli ID Number Validator and Test ID Generator. Validates and generates Israeli identification numbers including: - Teudat Zehut (personal ID) - Company numbers (prefix 51) - Amuta/non-profit numbers (prefix 58) - Partnership numbers (prefix 55) Usage: python validate_id.py validate 123456782 python validate_id.py generate --count 10 --prefix 51 python validate_id.py identify 515308201 """ import argparse import random import sys def validate_israeli_id(id_number: str) -> bool: """Validate Israeli ID number using the check digit algorithm. The algorithm: 1. Pad to 9 digits with leading zeros 2. Multiply each digit alternately by 1, 2, 1, 2, ... 3. If product > 9, sum the digits of the product 4. Sum all results 5. Valid if total is divisible by 10 Args: id_nu