# BT-98 Document level allowance reason code

Coded reason for the document-level allowance.

## Quick answer

> **Discounts and charges**: Document-level discounts, surcharges, and the tax data attached to them.

- [Validate XML](/en/xrechnung-validator?source=resource&bt=BT-98)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&bt=BT-98)

## In plain language

Document-level allowances reduce the invoice total; document-level charges increase it. ChargeIndicator selects the BG-20 allowance or BG-21 charge interpretation in UBL/CII.

## What you usually enter here

UN/CEFACT allowance/charge reason code

Typical valid values include: 41, 42, 60

Either BT-97 or BT-98 must be present for each document-level allowance.

## Where the field sits

BT-98 belongs to the Totals and tax part of the invoice. UBL 2.1 Syntax: Invoice › cac:AllowanceCharge[cbc:ChargeIndicator=false()] › cbc:AllowanceChargeReasonCode. CII (UN/CEFACT) Syntax: rsm:CrossIndustryInvoice › rsm:SupplyChainTradeTransaction › ram:ApplicableHeaderTradeSettlement › ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false()] › ram:ReasonCode.

## What goes wrong often

Avoid values like: discount, 999

Relevant rule codes: BR-33, BR-CO-21

## Valid Examples

- 41
- 42
- 60

## Invalid Examples

- discount
- 999

## Related Fields

- [BT-97 Document level allowance reason](/resources/xrechnung/bt-97-document-level-allowance-reason)

## XML mapping and field facts

Open the technical reference if you need XML paths, validator rule codes, legal wording, or schema-specific mapping details.

### Field ID:
BT-98

### Data Type:
code

### Cardinality:
0..1

### Requirement:
Optional

### Max Length:
3 characters

## XML Implementation

### UBL 2.1 Syntax
```
/Invoice/cac:AllowanceCharge[cbc:ChargeIndicator=false()]/cbc:AllowanceChargeReasonCode
```

### CII (UN/CEFACT) Syntax
```
/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false()]/ram:ReasonCode
```

## Validation Rules

### BR-33
BR-33

### BR-CO-21
BR-CO-21

## Check whether your XRechnung sets BT-98 correctly

Upload the XML file to the free validator. It applies the KoSIT rules for XRechnung 3.0 and names each finding with its rule ID, for this field for example BR-33, BR-CO-21. Creating a new invoice instead? The converter checks the invoice against the same rules and shows the findings before download.

- [Validate XML](/en/xrechnung-validator)
- [Convert invoice](/en/pdf-to-xrechnung)

Free, no account needed. XML file up to 2 MB.

## Official sources and tools

- [KoSIT Validator](https://erechnungsvalidator.service-bw.de/)
- [XRechnung Standard](https://xeinkauf.de/xrechnung/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
