Account
English

PEPPOL-EN16931-R100: More than one invoiced object identifier on a line

Peppol BIS Billing 3.0 rule · Error · UBL / CII

StandardPeppol BIS Billing 3.0 (OpenPeppol)SeverityError: the invoice is rejectedSyntaxUBL, CIIApplies toInvoices and credit notes sent over the Peppol network (UBL) and, because XRechnung embeds the Peppol rule set, every XRechnung as well.

Official rule text

[PEPPOL-EN16931-R100] Only one invoiced object is allowed pr line

Why this error occurs

An invoice line may reference at most one invoiced object (BT-128), such as a meter number, subscription or contract item. The rule counts cac:DocumentReference inside cac:InvoiceLine / cac:CreditNoteLine (UBL) or ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument with ram:TypeCode 130 (CII) and fails above one. It typically appears when an ERP exports every related document (delivery note, contract, meter) as a line document reference.

How to fix it

Keep only one cac:DocumentReference per line, with cbc:ID (and schemeID if you use a scheme) and cbc:DocumentTypeCode 130. Move other references to their proper fields: order line to cac:OrderLineReference/cbc:LineID (BT-132), delivery note to the header cac:DespatchDocumentReference (BT-16), contract to header cac:ContractDocumentReference (BT-12). Extra descriptive data can go into cac:Item/cac:AdditionalItemProperty. In CII limit ram:AdditionalReferencedDocument[TypeCode=130] to one per line.

Example (valid)

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  ...
  <cac:DocumentReference>
    <cbc:ID schemeID="AUN">METER-00123</cbc:ID>
    <cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
  </cac:DocumentReference>
</cac:InvoiceLine>

What the validator checks

Checked element (context):

UBL

cac:InvoiceLine | cac:CreditNoteLine

Test (XPath):

(count(cac:DocumentReference) <= 1)

CII

ram:IncludedSupplyChainTradeLineItem

Test (XPath):

count(ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument[ram:TypeCode='130']) <=1

Check your invoice

Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.

Check your invoice →

Same check via API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Related rules

Frequently asked questions

What does PEPPOL-EN16931-R100 mean?

PEPPOL-EN16931-R100 is a peppol bis billing 3.0 rule: Only one invoiced object is allowed pr line

Will my invoice be rejected because of PEPPOL-EN16931-R100?

Yes. PEPPOL-EN16931-R100 is flagged "fatal"; validators (KoSIT, Peppol access points, the German ZRE/OZG-RE portals) reject the invoice until it is fixed.

Which formats does PEPPOL-EN16931-R100 apply to?

Invoices and credit notes sent over the Peppol network (UBL) and, because XRechnung embeds the Peppol rule set, every XRechnung as well. Syntax: UBL and CII.

Source: Peppol BIS Billing 3.0.20 (November 2025). Catalogue generated from the official schematron on 2026-10-14.