Automation MCP Server Features Blog Pricing Contact
Validation rule Peppol · German national rules

DE-R-002

The second headline rule of Peppol's German national pack: when both parties are German, the invoice must name a seller contact (BG-6). DE-R-002 mirrors XRechnung's BR-DE-2 on the network's own rails, and fails documents whose seller is a company without a human.

What DE-R-002 checks

DE-R-002 requires that a domestic German Peppol invoice carry the seller contact group, BG-6: cac:Contact inside the supplier party in UBL. German invoice processing assumes a reachable counterpart for clarifying questions, and the national pack enforces on the network what BR-DE-2 enforces in XRechnung: a name, a phone number, and an email address on the seller side.

Layer and formats

The finding carries "layer": "cius" and fires when validating against the Peppol BIS profile with both country codes DE. Under options.profile en16931 the overlay and the national packs are dropped; the European core itself keeps the contact group optional.

Why it fails in practice

  • Master data without a billing contact. The seller record holds legal name and address; the accounts-receivable phone and inbox were never part of it.
  • Privacy-motivated stripping. Personal names and direct numbers are removed from outbound documents, leaving the group empty or absent.
  • A cross-border pipeline meets a domestic pair. The Peppol integration validated cleanly for months on exports; the first DE-to-DE document activates a pack nobody had tested against.

How to fix it

Emit the full contact trio in the supplier party:

<cac:Contact>
  <cbc:Name>Accounts Receivable</cbc:Name>
  <cbc:Telephone>+49 40 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. Fill it once in your seller defaults and both the Peppol and the XRechnung rulebooks are satisfied.

The raw rejection vs the InvoiceXML finding

The raw Schematron output, silent about the domestic trigger:

<svrl:failed-assert id="DE-R-002" flag="fatal"
    location="/*:Invoice[namespace-uri()='...']/cac:AccountingSupplierParty[1]/cac:Party[1]">
  <svrl:text>The group "SELLER CONTACT" (BG-6) shall be provided.</svrl:text>
</svrl:failed-assert>

The InvoiceXML finding with the context and the field paths:

{
  "rule": "DE-R-002",
  "layer": "cius",
  "line": null,
  "message": "This is a domestic German invoice (both parties in DE), so Peppol BIS requires the seller contact group (BG-6). Add a seller contact with name, phone, and email.",
  "btCodes": ["BG-6", "BT-41", "BT-42", "BT-43"],
  "fields": ["seller.contact", "seller.contact.name", "seller.contact.phone", "seller.contact.email"],
  "raw": "[DE-R-002] CIUS: The group \"SELLER CONTACT\" (BG-6) shall be provided."
}

The message explains the domestic-pair trigger and names the inputs; your UI marks all four paths invalid in one pass. No rule prose to parse, and clients localize by the stable rule key.

Check or generate Peppol documents

Validate a domestic German BIS document in the UBL validator, or generate with POST /v1/create/ubl: the national packs are always the network-current versions, applied server-side with nothing to monitor or redeploy. The Peppol hub has the full network picture.

Frequently asked questions

When does DE-R-002 apply?

When the document is validated as Peppol BIS and both the seller's and the buyer's country codes are DE. Cross-border invoices do not trigger the German pack; domestic German network traffic does, regardless of which access points carry it.

What content does the contact group need?

A contact point (BT-41), a telephone number (BT-42) and an email address (BT-43), the same trio the XRechnung side requires via BR-DE-5 to BR-DE-7. A team name with a service number and shared inbox is fine; it does not have to be a named individual.

Is DE-R-002 the same as BR-DE-2?

Same requirement, different rulebook. BR-DE-2 is KoSIT's rule on the XRechnung profile; DE-R-002 is OpenPeppol's national rule on domestic German BIS documents. A document generator serving both channels should simply always fill the seller contact.

Can I avoid the rule for a non-network document?

Yes: validated under options.profile en16931 the Peppol overlay and its national packs do not run. For documents actually sent over Peppol between German parties, fill the contact group instead.