# BR-CO-12 Belge ek ücretleri toplamı toplamla eşleşmelidir

Belge düzeyi ek ücretler toplamı (BT-108), tüm belge düzeyi ek ücret tutarlarının (BT-99) toplamına eşit olmalıdır: BT-108 = Σ BT-99.

## Sorun açıklaması

> **HATA**: EN 16931 hesaplama ve tutarlılık kuralı (BR-CO)

## Bağlam ve önem

Bu EN 16931 hesaplama kuralı toplamlar zincirini besler: BT-108, KDV hariç fatura toplamına (BR-CO-13) girer. Doğrulayıcı BT-108’i belge düzeyi ek ücretlerin toplamıyla tam olarak karşılaştırır. Hata tipik olarak nakliye masrafları BT-108 güncellenmeden eklendiğinde, belge düzeyinde ek ücret yokken BT-108 doldurulduğunda ya da satır net tutarlarına zaten dahil olan fatura satırı ek ücretleri (BG-28) BT-108’e de sayıldığında ortaya çıkar.

## Çözüm

BT-108’i tüm belge düzeyi ek ücret tutarlarının (BT-99) tam toplamı olarak yeniden hesaplayın ve cbc:ChargeTotalAmount (UBL) veya ram:ChargeTotalAmount (CII) alanına yazın. Belge düzeyinde ek ücret yoksa BT-108’i çıkarın veya 0,00 yazın.

- [XML doğrula](/tr/xrechnung-validator?source=resource&rule=BR-CO-12)
- [Faturayı dönüştür](/tr/pdf-to-xrechnung?source=resource&rule=BR-CO-12)

## Geçerli örnekler

- BT-99 = 20,00 ve BT-99 = 10,00, BT-108 = 30,00
- Belge düzeyinde ek ücret yok ve BT-108 yok

## Geçersiz örnekler

- BT-99 = 20,00 ve BT-99 = 10,00, ancak BT-108 = 25,00
- Tek 3,00 ek ücret bir fatura satırı ek ücreti (BG-28) olduğu halde BT-108 = 3,00

## Kod örnekleri

### Geçerli XML
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Freight charge</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">20.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>ABL</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Additional packaging</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">10.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
<cac:LegalMonetaryTotal>
  <cbc:ChargeTotalAmount currencyID="EUR">30.00</cbc:ChargeTotalAmount>
</cac:LegalMonetaryTotal>
```

### Geçersiz XML
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Freight charge</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">20.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>ABL</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Additional packaging</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">10.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
<cac:LegalMonetaryTotal>
  <cbc:ChargeTotalAmount currencyID="EUR">25.00</cbc:ChargeTotalAmount>
</cac:LegalMonetaryTotal>
```

## Etkilenen alanlar

- [BT-99 Belge düzeyi ek ücret tutarı](/resources/xrechnung/bt-99-document-level-charge-amount)
- [BT-108 Belge düzeyi ek ücretler toplamı](/resources/xrechnung/bt-108-sum-of-charges-on-document-level)

## İlgili kurallar

- [BR-CO-11](/resources/kosit-validator-errors/br-co-11-sum-of-document-allowances-must-match)
- [BR-CO-13](/resources/kosit-validator-errors/br-co-13-invoice-total-without-vat-must-match-totals-chain)

## Doğrulama araçları

- [Resmi KoSIT doğrulayıcı](https://github.com/itplr-kosit/validator): EN 16931 ve XRechnung kurallarını denetlemek için resmi KoSIT doğrulayıcısını XRechnung yapılandırmasıyla çalıştırın.
- [PDF’yi XRechnung’e dönüştür](/pdf-to-xrechnung): Dönüştürme sırasında doğrulama hatalarını bulun ve her düzeltmeyi inceleyin.

## İlgili kaynaklar

- [Resmi spesifikasyon](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Test paketi](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Tüm doğrulama hataları](/resources/kosit-validator-errors): Burada açıklanan EN 16931, XRechnung ve Peppol doğrulama kurallarına genel bakış.
