# BR-CO-21 Belge indirimi bir gerekçe veya gerekçe kodu gerektirir

Her belge düzeyi indirim (BG-20), bir belge düzeyi indirim gerekçesi (BT-97) veya bir belge düzeyi indirim gerekçe kodu (BT-98) ya da her ikisini içermelidir.

## Sorun açıklaması

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

## Bağlam ve önem

Bu EN 16931 kuralı, alıcının indirimi anlayıp kaydedebilmesi için her belge düzeyi indirimin nedeninin metin veya kod olarak belirtilmesini gerektirir. Hata çoğunlukla ERP’nin açıklama olmadan yalnızca indirim tutarını veya yüzdesini dışa aktarmasından kaynaklanır; örneğin salt tutar olarak girilmiş genel bir iskonto.

## Çözüm

Her belge düzeyi indirim için UNCL 5189’dan bir gerekçe (BT-97) ve/veya gerekçe kodu (BT-98) ekleyin: UBL’de cbc:AllowanceChargeReason / cbc:AllowanceChargeReasonCode, CII’de ram:SpecifiedTradeAllowanceCharge içinde ram:Reason / ram:ReasonCode.

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

## Geçerli örnekler

- BT-98 = 95 ve BT-97 = "Miktar iskontosu" içeren belge indirimi

## Geçersiz örnekler

- BT-97 ve BT-98 olmadan 10,00 tutarlı belge indirimi

## Kod örnekleri

### Geçerli XML
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Volume discount</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>
```

### Geçersiz XML
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <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>
```

## Etkilenen alanlar

- [BG-20 Belge düzeyi indirimler](/resources/xrechnung/bt-92-document-level-allowance-amount)
- [BT-97 Belge düzeyi indirim gerekçesi](/resources/xrechnung/bt-97-document-level-allowance-reason)
- [BT-98 Belge düzeyi indirim gerekçe kodu](/resources/xrechnung/bt-98-document-level-allowance-reason-code)

## İlgili kurallar

- [BR-CO-05](/resources/kosit-validator-errors/br-co-05-allowance-reason-code-match)
- [BR-CO-22](/resources/kosit-validator-errors/br-co-22-document-charge-reason-required)
- [BR-CO-23](/resources/kosit-validator-errors/br-co-23-line-allowance-reason-required)

## 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ış.
