e-invoice validator

Peppol errors

PEPPOL-EN16931-R003: buyer reference or purchase order reference missing

The official rule

A buyer reference or purchase order reference MUST be provided.

Rule pages: PEPPOL-EN16931-R003

What it means

Peppol requires at least one of two fields so the buyer can match the invoice internally: cbc:BuyerReference (BT-10) or cac:OrderReference/cbc:ID (BT-13). Plain EN 16931 does not, so invoices from other systems often fail here first.

Common causes

Example

Wrong:

<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cac:AccountingSupplierParty>

Right:

<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>PO-4711</cbc:BuyerReference>
<cac:AccountingSupplierParty>

How to fix it

  1. Use the reference your customer gave you: a purchase order number, a department code or a contact name.
  2. Put it in cbc:BuyerReference, after cbc:DocumentCurrencyCode (and after cbc:TaxCurrencyCode or the accounting fields, if present), or in cac:OrderReference/cbc:ID if it is an order number.
  3. If you do not have one, ask the customer. The rule only checks that a value exists, but a made-up value can get the invoice rejected by the buyer, or stuck in their process.

Automatic repair does not fill this in: only your customer knows the right value.

Check your invoice against the Peppol rules

Paste the UBL XML: you get every error at once (UBL schema, EN 16931, Peppol BIS 3.0), with the fix for each one. Free, 3 checks a day, no account. The file is not stored.

Frequently asked questions

Do I need both?

No, one is enough. You can send both.

Does the rule check that the reference is correct?

No, only that one of the two is present. Whether it is the right one is between you and the buyer.

Can I put my own invoice number there?

It passes the rule, but it does not help the buyer, who may send it back. Ask for their reference.

Other Peppol errors