# BR-CO-23 Satır indirimi bir gerekçe veya gerekçe kodu gerektirir

Her fatura satırı indirimi (BG-27), bir fatura satırı indirim gerekçesi (BT-139) veya bir fatura satırı indirim gerekçe kodu (BT-140) 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 kural, BR-CO-21’in satır düzeyindeki karşılığıdır: her fatura satırı indirimi (UBL: cbc:ChargeIndicator = false olan cac:InvoiceLine/cac:AllowanceCharge) bir gerekçe veya gerekçe kodu gerektirir. Gerekçe gerektirmeyen ürün fiyatı indirimine (cac:Price/cac:AllowanceCharge, BT-147) uygulanmaz. Hata çoğunlukla yüzde olarak verilen bir satır indiriminin açıklama olmadan dışa aktarılmasından kaynaklanır.

## Çözüm

Her fatura satırı indirimi için bir gerekçe (BT-139) ve/veya gerekçe kodu (BT-140) ekleyin: UBL’de cac:InvoiceLine/cac:AllowanceCharge içinde cbc:AllowanceChargeReason / cbc:AllowanceChargeReasonCode, CII’de ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge içinde ram:Reason / ram:ReasonCode.

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

## Geçerli örnekler

- BT-140 = 95 ve BT-139 = "Numune iskontosu" içeren satır indirimi

## Geçersiz örnekler

- BT-139 ve BT-140 olmadan 2,00 tutarlı satır indirimi

## Kod örnekleri

### Geçerli XML
```
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Sample discount</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">2.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
```

### Geçersiz XML
```
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">2.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
```

## Etkilenen alanlar

- [BG-27 Fatura satırı indirimleri](/resources/xrechnung/bt-136-invoice-line-allowance-amount)
- [BT-139 Fatura satırı indirim gerekçesi](/resources/xrechnung/bt-139-invoice-line-allowance-reason)
- [BT-140 Fatura satırı indirim gerekçe kodu](/resources/xrechnung/bt-140-invoice-line-allowance-reason-code)

## İlgili kurallar

- [BR-CO-07](/resources/kosit-validator-errors/br-co-07-line-allowance-reason-code-match)
- [BR-CO-21](/resources/kosit-validator-errors/br-co-21-document-allowance-reason-required)
- [BR-CO-24](/resources/kosit-validator-errors/br-co-24-line-charge-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ış.
