# UBL-SR-29

Quoted from a public specification. This page is not a validator, and it is not tax, legal, or accounting advice.

- Country: EU
- Syntax: UBL
- Severity: fatal
- Statement language: en
- Last verified: 2026-10-18

## Official statement

> Bank creditor reference shall occur maximum once

Source: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/UBL-SR-29/

Peppol BIS Billing 3.0, May 2026 release, EN 16931 model bound to UBL

Severity note: fatal, from the Flag column of the Peppol BIS Billing 3.0 UBL rules index retrieved 2026-10-18.

## Plain-language reading

The bank creditor reference shall occur at most once. The statement has no period and says shall. It does not say SEPA. It is 48 characters. The flag is fatal. The context is the same string as BR-CO-18. The published test counts party identification identifiers whose scheme is SEPA. That scheme comparison is upper-case(@schemeID) = 'SEPA' with a straight quote and a space on each side of =. The path starts with //. The count comparison has a space before <= and a space after it.

## What to change

Send at most one party identification identifier whose scheme is SEPA.

## Illustration

Illustration of the condition in the official statement. Not an example published by the source.

**Fails the stated condition.** The invoice has two party identification identifiers whose scheme is SEPA.

**Passes the stated condition.** The invoice has one such identifier, or none.

## Published context and test

Copied from the source. Not reimplemented on this page.

```
/ubl:Invoice | /cn:CreditNote
```

```
(count(//cac:PartyIdentification/cbc:ID[upper-case(@schemeID) = 'SEPA']) <= 1)
```

[All rule notes](https://einvoicegoblin.com/rules/index.md) · [JSON](https://einvoicegoblin.com/rules/UBL-SR-29.json) · [HTML](https://einvoicegoblin.com/rules/UBL-SR-29/) · [llms.txt](https://einvoicegoblin.com/llms.txt) · [Invoice page](https://einvoicegoblin.com/) · [Privacy](https://einvoicegoblin.com/privacy.html)
