Introducing Northern Cyprus UBAN Support: Validator and Bank Directory
We added a validator for the 28-character Northern Cyprus UBAN and a directory of all 23 registered banks. Here's what UBAN is, why it needed its own tool, and what it can't confirm.
Founder, ibanchecker.cash
I'm Koray, the founder of ibanchecker.cash. This week we shipped support for the Northern Cyprus UBAN, the 28-character domestic bank account number format defined by the Northern Cyprus Central Bank, alongside a directory of the 23 banks registered under its UBAN regulation. Neither existed on the site before. This post explains what UBAN actually is, why it needed its own tool instead of being folded into the IBAN checker, and where the coverage still has honest limits.
What Is a Northern Cyprus UBAN?
UBAN stands for Ulusal Banka Hesap Numarası (National Bank Account Number). It is a 28-character account number used for domestic transfers within Northern Cyprus, defined by a Central Bank communique, not by ISO 13616. A UBAN begins with CT, followed by two check digits, a three-digit bank code, a reserve field, a four-digit branch code, and a 16-character account number. It looks enough like an IBAN, starting with two letters and two digits, that it's easy to assume it is one.
Why Not Just Add CT to the IBAN Checker?
Because it isn't an IBAN, and treating it like one would be the wrong kind of convenience. CT does not appear in the official SWIFT IBAN Registry, so it has no ISO 13616 structure, no MOD-97-10 check that reuses IBAN's exact letter-to-number mapping in the same way, and none of these 23 banks have to carry a BIC for it to work. Bending our IBAN engine to accept a non-IBAN format would have meant either inventing rules that don't exist or quietly weakening the checks that do. So this shipped as a separate, purpose-built Northern Cyprus UBAN Validator, and a separate bank directory, neither merged into the IBAN/BIC system. The one place they do meet is user experience: if you paste a CT-shaped number into the main IBAN checker, it now recognizes the pattern and points you to the right tool instead of a generic “unsupported country” error.
How Does the UBAN Checksum Work?
The same MOD-97-10 family of arithmetic that IBAN's ISO 7064 check digit uses, applied to the layout the Central Bank's communique specifies: the 28 characters are rearranged with the country code and check digits moved to the end, letters are converted to numbers (A=10 through Z=35), and the resulting number must reduce to a remainder of 1 when divided by 97. The Central Bank's own published example, CT34 0010 9901 0035 0401 0000 0756, validates against this exact calculation. The validator walks through each step of it on screen, and none of it leaves your browser. No UBAN is sent to or stored on our servers, the same zero-retention approach as every checker on this site.
Which Northern Cyprus Banks Are Covered?
All 23 institutions in the Central Bank's official bank and branch directory, each with its own profile page and 3-digit UBAN bank code. Seventeen of them, including the Central Bank itself, issue UBANs directly for domestic transfers, among them Koopbank, İktisatbank, Creditwest Bank, Near East Bank, Albank, and Cyprus Vakıflar Bank. The other six are Northern Cyprus branches of Turkish banks (Ziraat, Halkbank, TEB, DenizBank, Garanti BBVA, Işbank), which the UBAN regulation carves out an exception for: in practice their transfers typically route on a Turkish IBAN, not a UBAN, and each of their profile pages says so directly rather than implying otherwise. Every one of the 23 now has a logo, sourced from the bank's own site and checked for legibility on both light and dark backgrounds before it shipped, including the Central Bank's own mark, the last one to land.
When a UBAN you validate has a checksum-valid bank code, the validator looks that code up against this directory and shows you the bank behind it, purely informationally. A bank match, or the lack of one, never changes whether the checksum itself passed or failed.
How Is a UBAN Different from a Republic of Cyprus IBAN?
Completely different formats sharing an island. A Republic of Cyprus IBAN begins with CY, follows ISO 13616, and is what the Cyprus IBAN format page and the main IBAN Checker already cover. A Northern Cyprus UBAN begins with CTand follows the Central Bank's own domestic standard. They are not interchangeable, and a number that's valid in one format has no meaning in the other. If your number starts with CY, use the IBAN tools; if it starts with CT, this is the one you want.
What Can't This Tool Confirm?
A checksum pass proves the number is structurally valid under the Central Bank's rules. It doesn't prove the account exists, is active, or belongs to the person or business you think you're paying. That confirmation only comes from the receiving bank. Treat a valid UBAN the same way you'd treat a valid IBAN: as a necessary check, not a substitute for verifying the recipient directly before sending money.
Where Can You Try It?
The Northern Cyprus UBAN Validator is free, requires no account, and runs entirely client-side. The Northern Cyprus bank directory lists all 23 institutions with their bank codes, logos, and official websites. Both are new this week; if you spot a bank code, name, or logo that looks wrong, every profile page has a Report incorrect info link, and I read every one of them myself.
Sources & References
- Northern Cyprus Central Bank: UBAN Communique (26 February 2016): the official regulation defining the 28-character structure and the MOD-97-10 checksum this validator implements.
- Northern Cyprus Central Bank: bank and branch directory: the source for all 23 institutions and their bank codes in our directory.
- SWIFT: IBAN Registry: confirms CY (Republic of Cyprus) is a registered ISO 13616 IBAN format and CT is not.
Last updated: August 2026
Integrate IBAN validation via API
REST API with 1,000 free validations/month. JSON response with bank name, SEPA status, and BBAN breakdown.
npm trust github Fails with 400 Bad Request: The Missing Permission Flag
A bare 400 with no error body, caused by a 20 May 2026 registry rule. The exact npm version boundary, the one flag that ...
How to Validate IBANs in JavaScript (API & Manual)
Two approaches: call the ibanchecker.cash API for full bank data, or implement MOD-97 validation yourself. Includes work...
IBAN Validation in Python: Complete Implementation with Regex and Check Digits
Two production-ready approaches: call the ibanchecker.cash API for bank metadata, or implement the MOD-97 algorithm your...
Building an IBAN Validation API: REST Endpoint Design and Edge Cases
Architect-level guide to IBAN API design: GET vs POST tradeoffs, error code standards, normalization contracts, KV cachi...