# BR-DE-10 Deliver-to city must be provided when a delivery address is used

When an invoice specifies a distinct physical delivery address (BG-15 / DELIVER TO ADDRESS) that differs from the buyer billing address, XRechnung requires the deliver-to city name (BT-77) to be provided. In German public procurement, physical goods or on-site services are frequently delivered to regional facilities, depots, schools, or construction projects. The deliver-to city is necessary to match the invoice against goods receipt documentation (Lieferscheine / Wareneingangsbuchungen).

## Problem Description

> **ERROR**: German XRechnung rule (KoSIT, BR-DE) · XRechnung 3.0

## Context and Significance

Rule BR-DE-10 is evaluated conditionally: if BG-15 is present, BT-77 is mandatory. Omitting BT-77 when BG-15 is instantiated results in immediate validation failure.

## Solution

In your shipping or sales order processing system, verify that the ship-to address includes the city. In UBL 2.1 syntax, populate <cbc:CityName> within <cac:Delivery><cac:DeliveryLocation><cac:Address>. In UN/CEFACT CII syntax, populate <ram:CityName> within <ram:ApplicableHeaderTradeDelivery><ram:ShipToTradeParty><ram:PostalTradeAddress>. If no separate delivery address is required, omit the delivery address container (<cac:Address>) completely rather than exporting an incomplete block.

- [Validate XML](/en/xrechnung-validator?source=resource&rule=BR-DE-10)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&rule=BR-DE-10)

## Valid Examples

- Delivery address BG-15 present with BT-77 = "München", postal code "80331", and country code "DE"
- Invoice contains no separate delivery address group BG-15 (delivered to buyer billing address)

## Invalid Examples

- Delivery address group (cac:Delivery/cac:DeliveryLocation/cac:Address) contains street and postal code but omits cbc:CityName
- Ship-to address instantiated with empty city element (<cbc:CityName/>)

## Code Examples

### Valid XML
```
<cac:Delivery>
  <cac:DeliveryLocation>
    <cac:Address>
      <cbc:StreetName>Industriestraße 5</cbc:StreetName>
      <cbc:CityName>München</cbc:CityName>
      <cbc:PostalZone>80331</cbc:PostalZone>
      <cac:Country><cbc:IdentificationCode>DE</cbc:IdentificationCode></cac:Country>
    </cac:Address>
  </cac:DeliveryLocation>
</cac:Delivery>
```

### Invalid XML
```
<cac:Delivery>
  <cac:DeliveryLocation>
    <cac:Address>
      <cbc:StreetName>Industriestraße 5</cbc:StreetName>
      <cbc:PostalZone>80331</cbc:PostalZone>
      <cac:Country><cbc:IdentificationCode>DE</cbc:IdentificationCode></cac:Country>
    </cac:Address>
  </cac:DeliveryLocation>
</cac:Delivery>
```

## Affected Fields

- [BT-77 Deliver to city](/resources/xrechnung/bt-77-deliver-to-city)
- [BG-15 Deliver to address](/resources/xrechnung/bt-80-deliver-to-country-code)
- [BT-78 Deliver to post code](/resources/xrechnung/bt-78-deliver-to-post-code)
- [BT-80 Deliver to country code](/resources/xrechnung/bt-80-deliver-to-country-code)

## Related Rules

- [BR-20](/resources/kosit-validator-errors/br-20-tax-representative-country-code-required)
- [BR-DE-11](/resources/kosit-validator-errors/br-de-11-deliver-to-post-code-required)

## Validation Tools

- [Official KoSIT Validator](https://github.com/itplr-kosit/validator): Run the official KoSIT validator with the XRechnung configuration to check EN 16931 and XRechnung rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Find validation errors during conversion and review each correction.

## Related Resources

- [Official Specification](https://xeinkauf.de/xrechnung/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [All validation errors](/resources/kosit-validator-errors): Overview of the EN 16931, XRechnung and Peppol validation rules explained here.
