Developer reference
Türkiye TC Kimlik verification API: 11-digit structure, check digit formulas and NVI checks
The Turkish Republic identity number, TC Kimlik No, has eleven digits. The first nine are the base, and the last two are check digits computed from published formulas, so every number can be fully validated for structure offline. The record sits with the General Directorate of Population and Citizenship Affairs (NVI). The deepidv verification API validates both check digits, reads the chip ID card and matches the face live.
Last reviewed October 2026
Field layout of the TC Kimlik No
| Digits | Field | Implementation notes |
|---|---|---|
| 1 | First digit | Never 0. |
| 1-9 | Base number | No readable date, region or gender. |
| 10 | First check digit | Formula below. |
| 11 | Second check digit | Formula below. Always even. |
Computing the check digits
- Add the digits in positions 1, 3, 5, 7 and 9, and multiply by 7.
- Subtract the sum of the digits in positions 2, 4, 6 and 8.
- The tenth digit is the result mod 10.
- The eleventh digit is the sum of the first ten digits mod 10.
A number that passes both checks is well formed. NVI confirms it belongs to a living person with that name.
Response contents of a Türkiye ID verification API
A parse result tells you whether a number is well formed. A verification response tells you whether the person in front of the camera owns it. deepidv runs one session: document capture with OCR and the AI document fraud check, face liveness with a 1:1 match to the document photo, the NVI record check, PEP and sanctions screening, and an optional 1:N match that flags the same face behind a second account.
- One decision per session, with an outcome for every step, delivered by webhook (session.status.verified, session.status.rejected, session.status.failed).
- Fields as printed on the document, with a normalized Latin form in its own field where the document uses another script.
- A reason for every non-pass outcome, separating malformed input, a record that was not found, a mismatch between document and record, and a registry that did not answer.
- A signed verification receipt with a UTC timestamp per step, anchored on Base L2 with zero personal data on chain, checkable at proof.deepidv.com.
Turkish character OCR on the ID card
The chip ID card, issued since 2017, prints names with Turkish characters: ç, ğ, ı, İ, ö, ş and ü. A recogniser that folds dotless ı into i or drops the dot on dotted İ breaks name matching against the registry. deepidv keeps the characters as captured, returns an ASCII form in its own field, and reads the chip by NFC.
NVI record checks
NVI's identity sharing system gives authorized institutions access to population records. NVI also runs a public service that confirms whether a TC Kimlik No matches a given name, surname and year of birth. Personal data is processed under KVKK, Law 6698.
Liveness, face match and Turkish rules
Law 5549 and MASAK's regulations require customer identification and suspicious transaction reporting to MASAK. BDDK's Regulation on Remote Identification Methods to be Used by Banks, published in the Resmî Gazete on 1 April 2021 (No. 31441) and in force since 1 May 2021, sets the requirements for remote onboarding: identification over video conference by trained bank personnel, active liveness detection, and NFC reading of the chip (or verification of at least four visual security features when NFC is not possible). deepidv runs passive liveness, a face match and PEP and sanctions screening, and Arbiter drafts reports for MASAK.
How deepidv runs Türkiye verification
deepidv is a verification engine and agentic compliance suite built from the ground up, without third-party verification APIs underneath. The engine is SOC 2, ISO 27001 and PCI DSS certified, and deepidv is a member of DIACC and the AVPA. Luna, the verification agent, builds and sends Türkiye verification workflows from the platform or from any LLM through MCP. Arbiter, the compliance agent, maps the workflow to Law 5549 and MASAK's regulations requirements, monitors accounts after onboarding and drafts suspicious transaction reports for MASAK for your team to review.
Frequently asked questions
How is the tenth digit of a TC Kimlik No calculated?
Seven times the sum of digits 1, 3, 5, 7 and 9, minus the sum of digits 2, 4, 6 and 8, mod 10.
Why is the last digit of a TC Kimlik No always even?
It is the sum of the first ten digits mod 10, and the formula for the tenth digit makes that sum even.
Can a TC Kimlik No start with 0?
No.
Can a TC Kimlik No be validated offline?
Fully for structure, using both check digit formulas. Ownership needs the NVI check.
Why do Turkish characters matter for KYC?
Registry matching is character-exact. Folding dotless ı into i or dropping the dot on dotted İ produces false mismatches.
API documentation
Read the endpoints, field names and webhook events in the docs, or book a call to scope Türkiye verification for your product.
Related pages