Skip to content
Peppol BIS 3.0 rules

PEPPOL-EN16931-R003: Buyer reference (BT-10) or Purchase order reference (BT-13) is required

What this rule requires

Buyer reference (BT-10) or Purchase order reference (BT-13) is required.

ExamplePeppol BIS 3.0

An invoice built like a valid one, except for this:

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
  <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
  <cbc:ID>INV-1001</cbc:ID>
  <cbc:IssueDate>2026-01-15</cbc:IssueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
</Invoice>

The validator says: Buyer reference (BT-10) or Purchase order reference (BT-13) is required, and the document contains neither.

How to fix it

Add Buyer reference or Purchase order reference to the invoice.

Frequently asked questions

What does PEPPOL-EN16931-R003 mean?
Buyer reference (BT-10) or Purchase order reference (BT-13) is required. The rule runs under Peppol BIS 3.0.
How do I fix PEPPOL-EN16931-R003?
Add Buyer reference or Purchase order reference to the invoice. In UBL the element is ⁦/Invoice/cbc:BuyerReference⁩.

Runs under these profiles

  • Peppol BIS 3.0

Element path

  • Buyer reference (BT-10)UBL /Invoice/cbc:BuyerReferenceCII /CrossIndustryInvoice/SupplyChainTradeTransaction/ApplicableHeaderTradeAgreement/BuyerReferenceRead from what WorkAlio's CII parser accepts — there is no CII writer yet, so this path is not independently verified the way the UBL path is.
  • Purchase order reference (BT-13)UBL /Invoice/cac:OrderReference/cbc:IDCII /CrossIndustryInvoice/SupplyChainTradeTransaction/ApplicableHeaderTradeAgreement/BuyerOrderReferencedDocument/IssuerAssignedIDRead from what WorkAlio's CII parser accepts — there is no CII writer yet, so this path is not independently verified the way the UBL path is.