InvoiceValidator.eu

DE-R-023-1

fatalPeppol BIS Billing 3.0profileUBLBG-17BT-81

If "Payment means type code" (BT-81) contains a code for credit transfer (30, 58), "CREDIT TRANSFER" (BG-17) shall be provided.

Why it fails

The payment means code says credit transfer (30 or 58), but the matching CREDIT TRANSFER (BG-17) group is missing, so the buyer has no instructions to pay by that method.

How to fix it

Add CREDIT TRANSFER (BG-17) with its details — for a transfer the IBAN (BT-84), for a card the masked PAN and holder name, for a direct debit the mandate reference and the debited account. Or change BT-81 to the method you actually mean.

What the validator checks

UBL — context (/ubl-invoice:Invoice/cac:PaymentMeans[cbc:PaymentMeansCode = (30,58)] | /ubl-creditnote:CreditNote/cac:PaymentMeans[cbc:PaymentMeansCode = (30,58)])[$supplierCountryIsDE and $customerCountryIsDE]

cac:PayeeFinancialAccount

Related rules

Part of DE-R — XRechnung via Peppol.

Check your own invoice against DE-R-023-1

…or paste the XML instead

Nothing is stored, and the whole invoice is checked, not just this rule. A PDF only works if it is Factur-X / ZUGFeRD — a PDF with the invoice XML inside it.

This is a Peppol BIS Billing 3.0 rule: an invoice can be perfectly valid EN 16931 and still be rejected by it.