> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.noyax.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Teklif tutarlarının hesaplanması

> Noyax satır tutarlarını ve teklif toplamlarını nasıl hesaplar.

API gönderdiğiniz tutarları olduğu gibi kaydeder; hesaplamaz ve tutarlı olup olmadıklarını denetlemez. Bu sayfa, API ile oluşturulan tekliflerin Noyax'ta oluşturulanlarla aynı görünüp aynı toplansın diye Noyax'ın tutarları nasıl hesapladığını anlatır. Tutarlar 2 ondalığa yuvarlanır.

## Satır

**İndirim oranı.** Satırın indirimleri art arda uygulanır; bu yüzden satırın `DiscountRate` değeri bileşik orandır:

`DiscountRate = 100 × (1 − (1 − oran₁/100) × (1 − oran₂/100) × …)`

10, 10 ve 10 için sonuç 27,1'dir. Kullanıcı oran yerine indirim tutarı girdiyse oran bundan türetilir: `DiscountAmount / (Quantity × UnitPrice) × 100`.

**İndirim tutarı.** `DiscountAmount = Quantity × UnitPrice × DiscountRate / 100`; girilen fiyat üzerinden hesaplanır (`VatIncluded` `true` ise KDV dahil fiyat üzerinden).

**Vergisiz tutar** (`AmountExcludingTax`):

* `VatIncluded = false`: `Quantity × UnitPrice − DiscountAmount`.
* `VatIncluded = true`: fiyat KDV'yi (ve fiyatın üstüne eklenen ek vergileri) içerir; bu yüzden `(Quantity × UnitPrice − DiscountAmount)`, `(1 + ek vergi oranı/100) × (1 + VatRate/100)` değerine bölünür. Stopaj türü ek vergilerde (gelir ya da kurumlar vergisi stopajı gibi) bölen `1 + ek vergi oranı/100 + VatRate/100` olur.

**Ek vergiler.** `AdditionalTaxAmountN = AmountExcludingTax × AdditionalTaxRateN / 100`. `AdditionalTaxBaseN`, verginin hesaplandığı tutardır.

**KDV matrahı** (`VatBase`): `AmountExcludingTax` artı KDV ile birlikte vergilendirilen ek vergi tutarları (örneğin ÖTV). Stopaj türü ek vergiler KDV matrahına girmez.

**KDV tutarı:** `VatAmount = VatBase × VatRate / 100`.

**Tevkifat:** `WithheldVatAmount = VatAmount × WithholdingNumerator / WithholdingDenominator`. Tevkifat, satırın vergili tutarını düşürmez.

**Vergili tutar** (`AmountIncludingTax`): `VatBase + VatAmount`; stopaj türü ek vergiler KDV matrahına girmiyorsa onların tutarı da eklenir.

## Teklif toplamları

Toplamlar satır değerlerinin toplamıdır:

* `SubTotal` = satırların `AmountExcludingTax` toplamı.
* `DiscountTotal` = satır indirimlerinin vergisiz bazdaki toplamı (`VatIncluded` satırlarda satır indirimi yukarıdaki bölenle bölünür).
* `VatTotal` = (`VatAmount` − `WithheldVatAmount`) toplamı. **Tevkifat düşülmüş** tutardır.
* `AdditionalTaxTotal` = bütün satırların ek vergi tutarları toplamı.
* `WithholdingTotal` = satırların `WithheldVatAmount` toplamı.
* `GrandTotal` = `SubTotal` + `VatTotal` + `AdditionalTaxTotal`. `VatTotal` zaten tevkifat düşülmüş olduğu için tevkifat bir kez daha çıkarılmaz.

Noyax teklif KDV'sini yuvarlanmamış değerlerden hesapladığı için toplamlar, yuvarlanmış satır değerlerinin toplamından birkaç kuruş farklı olabilir.

## Dövizler

Satır tutarları satırın kendi dövizindedir.

* Teklif şirketin varsayılan dövizinde, satırlar başka dövizdeyse: her satır tutarı, toplamlara eklenmeden önce satırın `ExchangeRate` değeriyle çarpılır.
* Teklif yabancı dövizde ve satırlar aynı dövizdeyse: toplamlar satırların düz toplamıdır (çarpma yapılmaz) ve her satırın `ExchangeRate` değeri varsayılan dövize karşı kurdur.

`AverageExchangeRate`, satır kurlarının tutarla ağırlıklandırılmış ortalamasıdır: `AmountExcludingTax × ExchangeRate` toplamı, `AmountExcludingTax` toplamına bölünür; kuru 0 olan satır 1 sayılır. Her şey varsayılan dövizdeyse 1'dir.
