TR Try tools

Guides

Working solutions to problems that keep showing up when you deal with Turkish and EU business data. Every example runs against the live API without a key.

TCMB exchange rate API: pulling USD/TRY into code without the weekend-gap bugs

The Central Bank publishes one XML file per date, nothing for weekends. How to get a date range in one call, gaps carried forward on purpose, and "what rate applied to this invoice" answered right.

Which country identifiers we actually check (checksum vs live vs nothing)

Country-by-country IBAN, tax ID, VIES and GLEIF coverage. Checksum is not a company registry. No exclusivity. Best-effort, no SLA.

EU VAT number validation: a VIES timeout is not “invalid”

VIES is free and drops member states one at a time. Treating a timeout as invalid charges VAT to a B2B buyer who should have been reverse-charged.

BIC, VIN, ISIN, LEI, container: catch the typo without pretending the thing exists

ISO 9362 / 3779 / 6166 / 17442 / 6346 checksums in one place. A valid check digit is not a registration. Country is required for tax IDs.

Turkish severance (kıdem) and notice (ihbar): the formula, the ceiling, and what calculators get wrong

Kıdem uses a 365-day year and a half-yearly ceiling on the monthly wage. Stamp tax 0.759%, no income tax. Notice pay is the opposite.

Data sources and method: where every number comes from

Every source we read, how often we read it, what we keep, how we catch ourselves being wrong — and an explicit list of what we do not cover.

Point-in-time sanctions screening: "was this name on the list on that day"

A live sanctions check answers "today". An audit asks about a past date. How to screen as-of a historical date, why birth year beats a smarter name match, and what the endpoint does not cover.

Turkish business-day math: religious holidays move every year, and half-days change the answer

Adding "5 business days" in Türkiye is not fixed-offset — religious holidays shift ~10 days a year and arife half-days can move an SLA deadline by a day. One call, holidays it skipped listed out.

Validating a Turkish TCKN or VKN (and the checksum algorithm behind each)

TCKN (11-digit citizen ID) and VKN (10-digit tax ID) carry different checksums — a length check alone lets garbage through. Both algorithms in plain code, plus the one-call version.

We connected to every public MCP server. Half of them hand over their entire tool list with no key.

A nightly measurement of every remote server in the official MCP registry: how many list their tools with no key, how many addresses are already dead, and what the descriptions tell the model to do.

Parsing Turkish addresses: mahalle, sokak, kapı no, daire

Turkish addresses are written free-form and read right-to-left in scope. Here is why western parsers fail on them and how to get province, district, street and door number reliably.

Historical fuel prices in Türkiye: what diesel cost on any past date

How to get the petrol or diesel price in force in any Turkish province on any date back to 2009 — one call, gaps carried forward, and a source URL plus content hash for every point.

Issuing a Turkish e-Invoice (UBL-TR) from your own software

What a UBL-TR document must contain, why integrators reject valid-looking invoices, and how to produce one from JSON without reading the 400-page spec.

How to validate a Turkish IBAN (and why mod-97 alone is not enough)

Turkish IBANs are 26 characters and pass mod-97 even when the bank code is nonsense. Here is what to check, in what order, with runnable code.