# BR-57 Deliver-to country code must be present when delivery address is used

Under EN 16931 rule BR-57, whenever an invoice specifies a distinct delivery address (BG-15 / DELIVER TO ADDRESS), the deliver-to country code (BT-80) must be explicitly provided using a valid two-letter ISO 3166-1 alpha-2 country code (such as DE, FR, NL, AT, or IT). Tax compliance and customs algorithms require the delivery country code to verify cross-border VAT treatment, intra-community supply status, and export tax exemptions.

## Problem Description

> **ERROR**: EN 16931 core business rule (CEN)

## Context and Significance

An incomplete delivery address without country code fails Schematron rule BR-57 and prevents automated tax determination on cross-border invoices.

## Solution

In your sales order or shipping configuration, verify that the delivery address includes the two-letter ISO country code. In UBL 2.1 syntax, populate <cac:Country><cbc:IdentificationCode>DE</cbc:IdentificationCode></cac:Country> within <cac:Delivery><cac:DeliveryLocation><cac:Address>. In UN/CEFACT CII syntax, populate <ram:CountryID>DE</ram:CountryID> within <ram:PostalTradeAddress> under <ram:ShipToTradeParty>. If delivery is made to the buyer’s standard billing address, omit BG-15 completely.

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

## Valid Examples

- Delivery address BG-15 with BT-80 = "DE" (Delivery within Germany)
- Delivery address BG-15 with BT-80 = "FR" (Cross-border delivery to France)

## Invalid Examples

- Delivery address (cac:Address / ram:PostalTradeAddress) includes street and city but omits Country element
- CII ram:ShipToTradeParty/ram:PostalTradeAddress with an empty ram:CountryID; in UBL an empty <cbc:IdentificationCode/> does not trigger BR-57 but fails the code list rule BR-CL-14

## Code Examples

### Valid XML
```
<cac:Delivery>
  <cac:DeliveryLocation>
    <cac:Address>
      <cbc:CityName>Köln</cbc:CityName>
      <cbc:PostalZone>50667</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:CityName>Köln</cbc:CityName>
      <cbc:PostalZone>50667</cbc:PostalZone>
    </cac:Address>
  </cac:DeliveryLocation>
</cac:Delivery>
```

## Affected Fields

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

## Related Rules

- [BR-DE-10](/resources/kosit-validator-errors/br-de-10-deliver-to-city-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://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [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.
