---
title: "TL, Döviz Kuru ve Rounding: Travel Pricing Tasarımı"
description: "Türkiye travel pricing sistemlerinde FX source, TRY conversion, rounding, quote timestamp ve stale-rate riskini production seviyesinde modelleyin."
slug: "tl-fx-rounding-travel-pricing"
translationKey: "learn-try-fx-rounding-travel-pricing"
locale: "tr"
type: "guide"
category: "pricing"
tags: ["try","fx","currency","rounding","price-accuracy","turkiye"]
publishedAt: "2026-09-26"
updatedAt: "2026-09-26"
reviewedAt: "2026-09-26"
sources:
  - title: "TCMB — Gösterge Niteliğindeki Kurlar"
    url: "https://www.tcmb.gov.tr/wps/wcm/connect/TR/TCMB%2BTR/Main%2BMenu/Temel%2BFaaliyetler/Doviz%2BEfektif/Doviz%2Bve%2BEfektif%2BPiyasalari/Gosterge%2BNiteligindeki%2BKurlar"
  - title: "TCMB — Kurlar"
    url: "https://www.tcmb.gov.tr/kurlar/kurlar_tr.html"
---
Türkiye travel pricing sisteminde “USD fiyatı TL'ye çevir” yeterli bir kural değildir. Hangi kur kaynağının kullanıldığı, quote timestamp, buy/sell/mid semantics, rounding, supplier currency ve booking-time reprice aynı ürün için farklı TRY toplamları üretebilir.

## TCMB gösterge kuru ne anlama gelir?

TCMB gösterge niteliğindeki kurları iş günlerinde belirler ve yayımlar. TCMB ayrıca bu kurların gerçek/tüzel kişiler arasındaki işlemlerde zorunlu uygulanacak transaction rate olmadığını açıkça belirtir. Bu nedenle “TCMB kuru = booking conversion kuru” varsayımı yapılmamalıdır.

## Currency model

```text
Money
 ├─ amount
 ├─ currency
 └─ precision

FxQuote
 ├─ baseCurrency
 ├─ quoteCurrency
 ├─ rate
 ├─ source
 ├─ quoteType
 ├─ observedAt
 └─ validUntil
```

ConvertedPrice ayrıca originalAmount ve appliedFxQuoteId taşımalıdır.

## Source-of-truth

Supplier EUR fiyat gönderiyor ve OTA TRY satıyorsa üç ayrı değer vardır:

1. supplier source amount,
2. conversion quote,
3. displayed/charged TRY amount.

Bu değerleri overwrite ederek tek amount alanında tutmak reconciliation'ı bozar.

## Rounding

Rounding mümkün olduğunca final display/settlement boundary'sinde yapılmalıdır. Her component'i ayrı round edip sonra toplamak ile toplamı convert edip bir kez round etmek farklı sonuç üretebilir.

Örnek:

```text
Hotel net EUR
 + tax EUR
 + fee EUR
 → total EUR
 → FX conversion
 → TRY rounding
```

Bu order explicit olmalıdır.

## Freshness

FX TTL ile hotel/flight price TTL aynı değildir. Supplier offer 10 dakika valid olabilirken FX quote daha kısa veya daha uzun policy taşıyabilir. Booking/reprice aşamasında hangi ikisinin yeniden doğrulanacağı ayrı karar olmalıdır.

## Parity ve comparison

İki provider farklı FX policy kullanıyorsa converted TRY price farkı gerçek rate parity ihlali olmayabilir. Mümkünse comparison önce source currency'de veya ortak timestamp'teki controlled FX ile yapılmalıdır.

## Failure mode'lar

- stale FX,
- wrong currency pair direction,
- buy/sell rate confusion,
- decimal precision kaybı,
- component-level cumulative rounding,
- weekend/holiday quote reuse,
- booking reprice sırasında new FX'in old offer ile birleşmesi,
- display currency ile settlement currency'nin karıştırılması.

## Observability

Track:
- FX age,
- conversion delta,
- source-vs-display currency,
- booking-time FX delta,
- rounding delta,
- provider-specific currency mismatch,
- failed/unsupported currency pair.

## Production checklist

- [ ] Original currency ve amount korunuyor mu?
- [ ] FX quote source/timestamp saklanıyor mu?
- [ ] Pair direction explicit mi?
- [ ] Rounding policy versioned mı?
- [ ] Display ve settlement currency ayrı mı?
- [ ] Weekend/holiday behavior belli mi?
- [ ] Reprice FX policy tanımlı mı?
- [ ] Parity controlled FX ile tekrar üretilebiliyor mu?
