Automation MCP Server Features Blog Pricing Contact
Validation rule XRechnung CIUS

BR-DE-2

XRechnung wants a human on the seller side: BR-DE-2 requires the seller contact group (BG-6), and its companion rules require the name, phone number, and email inside it. A German authority processing your invoice must be able to ask someone about it.

What BR-DE-2 checks

BR-DE-2 requires that an XRechnung contain the seller contact group, BG-6: in UBL cac:Contact inside the supplier party, in CII ram:DefinedTradeContact. The group answers the question every clearing clerk eventually has: who do I call about this invoice? Three sibling rules make its content concrete: BR-DE-5 requires the contact name (BT-41), BR-DE-6 the phone number (BT-42), and BR-DE-7 the email address (BT-43). In the European core all of this is optional; in the German CIUS it is a hard requirement.

Layer and formats

The rule fires in the cius layer, only when the document is validated against the XRechnung profile: UBL and CII invoices carrying the XRechnung CustomizationID, plus ZUGFeRD and Factur-X hybrids declaring that profile. Under the plain en16931 profile the same document passes.

Why it fails in practice

  • The master data has a company, not a contact. ERP vendor records rarely include a billing-questions phone number, so the mapping has nothing to emit.
  • Privacy caution backfires. Teams strip personal names and direct dials from outbound documents, and the export ends up with an empty contact group or none at all.
  • Only one of the three values is mapped. An email-only contact satisfies BR-DE-2 but immediately fails BR-DE-6 for the missing phone number.

How to fix it

Emit the full trio in UBL:

<cac:Contact>
  <cbc:Name>Accounts Receivable</cbc:Name>
  <cbc:Telephone>+49 30 1234567</cbc:Telephone>
  <cbc:ElectronicMail>billing@example.de</cbc:ElectronicMail>
</cac:Contact>

In an InvoiceXML create request the group is invoice.seller.contact with name, phone, and email properties. A shared team inbox and service number are fine.

The raw rejection vs the InvoiceXML finding

The Schematron output states the German rule text at an XPath:

<svrl:failed-assert id="BR-DE-2" flag="fatal"
    location="/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]">
  <svrl:text>[BR-DE-2] Die Gruppe "SELLER CONTACT" (BG-6)
    muss übermittelt werden.</svrl:text>
</svrl:failed-assert>

The InvoiceXML validators return the failure as a finding mapped to your input fields:

{
  "rule": "BR-DE-2",
  "layer": "cius",
  "line": null,
  "message": "The seller contact group is required for XRechnung. Add SellerContactName, SellerPhone, and SellerEmail.",
  "btCodes": ["BG-6", "BT-41", "BT-42", "BT-43"],
  "fields": ["seller.contact", "seller.contact.name", "seller.contact.phone", "seller.contact.email"],
  "raw": "[BR-DE-2] CIUS: Die Gruppe \"SELLER CONTACT\" (BG-6) muss übermittelt werden."
}

Instead of parsing rule codes and translating KoSIT prose for your end customers, you get a readable message plus the exact dotted paths to mark invalid in your form. Clients that want their own wording or another language can localize by the stable rule key.

Check or generate XRechnung documents

Validate a file in the XRechnung validator, or generate compliant documents from JSON with POST /v1/create/xrechnung. The XRechnung API toolkit shows the whole flow, from request shape to delivery.

Frequently asked questions

Is an empty contact block enough to pass?

No. BR-DE-2 checks for the group, and the companion rules check its content: BR-DE-5 requires the contact point (BT-41), BR-DE-6 the telephone number (BT-42), and BR-DE-7 the email address (BT-43). Format rules BR-DE-27 and BR-DE-28 additionally sanity-check the phone number and email. Provide all three values.

Can the contact be a mailbox instead of a person?

Yes. BT-41 is a contact point, not necessarily a person: an accounts-receivable team name with a service phone number and a shared inbox is common practice and passes the rules.

Why is this not required in plain EN 16931?

The seller contact group is optional in the European core. The German CIUS tightens it because clarifying questions are part of routine invoice processing in the public sector. The finding therefore appears in the cius layer, only when validating against the XRechnung profile.

Does BR-DE-2 apply to ZUGFeRD or Factur-X files?

As soon as the embedded XML declares the XRechnung profile in BT-24, yes: the hybrid is validated against the full KoSIT rule set, including BR-DE-2.