Rule reference

PEPPOL-EN16931-R010 The buyer electronic address (BT-49) must be provided

The buyer electronic address (BT-49) must be provided. This is the routing identifier a Peppol access point uses to deliver the document — a postal address and an email are not substitutes, and without it the invoice cannot be addressed on the network.

This rule is implemented and its error payload below is real, but the long-form write-up — normative text, worked example, divergence note — is not written yet. Everything the library knows about this rule is on this page. Ask and we will prioritise it.

Business term
BT-49
Severity
warning

What the library returns

The exact object in result.errors when this rule fires. Generated by running @attestwire/en16931, not transcribed:

TeachingError
{
  "rule": "PEPPOL-EN16931-R010",
  "field": "BT-49",
  "severity": "warning",
  "message": "The buyer electronic address (BT-49) must be provided. This is the routing identifier a Peppol access point uses to deliver the document — a postal address and an email are not substitutes, and without it the invoice cannot be addressed on the network.",
  "fix": "Set buyer.electronicAddress to the participant identifier and its scheme, e.g. scheme \"9930\" (German VAT ID) or \"0204\" (Leitweg-ID). The full list is the Peppol EAS code list (ISO 6523 ICD).",
  "example": "\"electronicAddress\": { \"schemeId\": \"9930\", \"value\": \"DE123456789\" }",
  "xpath": "/ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID",
  "docsUrl": "https://attestwire.com/rules/PEPPOL-EN16931-R010"
}

xpath locates the element in the generated UBL document, which is where a KoSIT or Peppol validator will report the same problem.

A passing value

the shape this field expects
"electronicAddress": { "schemeId": "9930", "value": "DE123456789" }

The fix

Set buyer.electronicAddress to the participant identifier and its scheme, e.g. scheme "9930" (German VAT ID) or "0204" (Leitweg-ID). The full list is the Peppol EAS code list (ISO 6523 ICD).

Arrived from a stack trace? The docsUrl on every error links straight here. Something wrong on this page — tell us.