# BR-28 Item gross price must not be negative

The Item gross price (BT-148), the unit price before any item price discount, shall not be negative.

## Problem Description

The Item gross price (BT-148), the unit price before any item price discount, shall not be negative.

> **ERROR**: XRechnung 3.0

## Context and Significance

This rule comes from the EN16931 core semantic model enforced by the KoSIT XRechnung 3.0.2 Schematron, ensuring invoices carry the mandatory data needed for automated processing.

## Solution

Provide the gross price as cac:Price/cac:AllowanceCharge/cbc:BaseAmount with a value of zero or greater, and record the price discount separately.

- validate
- convert

## Valid Examples

- BT-148 = 15.00 with an item price discount of 2.50

## Invalid Examples

- BT-148 = -3.00 — negative gross price rejected

## Code Examples

### Valid XML
```
<cac:Price>
  <cbc:PriceAmount currencyID="EUR">12.50</cbc:PriceAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:BaseAmount currencyID="EUR">15.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>
```

### Invalid XML
```
<cac:Price>
  <cbc:PriceAmount currencyID="EUR">12.50</cbc:PriceAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:BaseAmount currencyID="EUR">-3.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>
```

## Affected Fields

- [BT-148 Item gross price](/resources/xrechnung/bt-148-item-gross-price)

## Related Rules

- [BR-27](/resources/kosit-validator-errors/br-27-item-net-price-not-negative)

## Validation Tools

- [Official KoSIT Validator](https://erechnungsvalidator.service-bw.de/): Validate your XRechnung files against all BR-DE rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Automatic validation error fixes when converting.

## Related Resources

- [Official Specification](https://xeinkauf.de/xrechnung/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Complete Error List](/resources/kosit-validator-errors): Overview of all German XRechnung validation rules.
