Peppol error codes

PEPPOL-EN16931-R003: buyer reference is missing

Error code PEPPOL-EN16931-R003 means: the invoice contains neither a buyer reference nor a purchase order number. Peppol requires at least one of them.

Rule set: Peppol BIS Billing 3.0 · Severity: error (fatal): an Access Point rejects the invoice · Checked against the official rules of May 2026

What does PEPPOL-EN16931-R003 mean?

The validator shows this message (as worded in the official rules):

[PEPPOL-EN16931-R003]-A buyer reference or purchase order reference MUST be provided.

Peppol wants the buyer to be able to match every invoice automatically to an order, department or contact person. Every invoice must therefore contain at least one of two fields: the buyer reference (BT-10, cbc:BuyerReference) or the purchase order reference (BT-13, cac:OrderReference/cbc:ID). The European standard EN 16931 makes both optional, Peppol does not. An invoice that complies with the standard can still be rejected by this rule.

Common causes

  • The customer gave no purchase order number or reference, and the software leaves the field empty.
  • The reference is on the invoice, but in a free-text note or a field that does not end up in the XML.
  • The software creates the XML for another network or an older version in which the reference was not mandatory.

How to fix it as the sender

  1. Fill in the buyer reference (BuyerReference) with what the customer gave you: a purchase order number, the name of the contact person, a department code or your customer number with them.
  2. If you have a purchase order, you may also send its number as OrderReference. One of the two is enough.
  3. If the customer gave nothing, ask which reference they want to see. Store it in the customer record so it appears on every following invoice.
  4. Validate the invoice again before sending it.

Received an invoice with this error?

The sender’s Access Point normally blocks such an invoice, so you will rarely receive one. To get your invoices processed smoothly, give your suppliers a reference with every order. Large organisations and governments use it to route the invoice to the right department.

Example in the XML

❌ Wrong

<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<!-- no BuyerReference and no OrderReference -->
<cac:AccountingSupplierParty>

✅ Correct

<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>PO-7781</cbc:BuyerReference>
<cac:AccountingSupplierParty>
<!-- or -->
<cac:OrderReference>
  <cbc:ID>PO-7781</cbc:ID>
</cac:OrderReference>

Both snippets come from a complete test invoice that we checked with our validator: the wrong version gives exactly this message, the correct version no errors at all.

Good to know

An empty field does not help. In our tests <cbc:BuyerReference></cbc:BuyerReference> no longer gave R003, but it did give PEPPOL-EN16931-R008: empty elements are not allowed in Peppol. Fill in a real value.

Check your invoice

Drop your XML into the free validator. You see right away whether this error still occurs, with a link to the explanation for every message.

Official rule

The full rule with its technical test (Schematron) is in the official Peppol documentation:

Related error codes

  • PEPPOL-EN16931-R010 / PEPPOL-EN16931-R020: R010: the buyer electronic address is missing. R020: the seller electronic address is missing.
  • BR-CO-26: The invoice contains no number that lets the buyer identify the seller automatically: no seller identifier, no legal registration number and no VAT number.

Frequently asked questions about PEPPOL-EN16931-R003

What do I fill in if the customer gave no reference?

Something that lets the customer match the invoice, such as the contact person’s name, a department or your customer number with them. When in doubt, ask which reference the customer wants.

What is the difference between BuyerReference and OrderReference?

BuyerReference (BT-10) is a free reference given by the buyer. OrderReference (BT-13) is the purchase order number. Peppol requires at least one of the two.

← All Peppol error codes