Skip to content

BR-CO-27: Payment account (BT-84): state exactly one IBAN or proprietary ID

Official message

[BR-CO-27] Either the IBAN or a Proprietary ID (BT-84) shall be used.

Factur-X / ZUGFeRD EN 16931 · Error · Message language: English · Version: Factur-X 1.08 / ZUGFeRD 2.4
Severity
Error The invoice is invalid and may be rejected by the recipient.
Applies to
Factur-X / ZUGFeRD EN 16931
Affected fields
BT-84

What does this mean?

For payment by credit transfer (payment means code 30) or SEPA credit transfer (58), the payment account identifier (BT-84) shall be given either as IBAN or as proprietary (national) account ID. The check reports the rule if neither of the two is present or both at the same time.

Typical causes

No account was given for the payment means with code 30 or 58, e.g. only BIC or account name.
Both IBAN and proprietary account ID were entered.

How to fix the error

State exactly one account identifier for each payment means with code 30 or 58: the IBAN or the proprietary account ID, not both.
CII: ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount with ram:IBANID or ram:ProprietaryID.
Generate and validate the invoice again.

In E-Rechnungsfreund

In the invoice form, expert view ("Experte"), section "Zahlungsmittel (BG-16)" (payment means), fill in exactly one of the fields "IBAN (BT-84)" or "Nationale Kontonr. (BT-84-0)" (national account number) for the payment means with "Zahlungscode (BT-81)" (payment means code) 30 or 58, and validate the invoice again.

Example

Wrong

<ram:SpecifiedTradeSettlementPaymentMeans>
  <ram:TypeCode>58</ram:TypeCode>
  <ram:PayeePartyCreditorFinancialAccount>
    <ram:AccountName>Example Ltd</ram:AccountName>
  </ram:PayeePartyCreditorFinancialAccount>
</ram:SpecifiedTradeSettlementPaymentMeans>

Correct

<ram:SpecifiedTradeSettlementPaymentMeans>
  <ram:TypeCode>58</ram:TypeCode>
  <ram:PayeePartyCreditorFinancialAccount>
    <ram:IBANID>DE02120300000000202051</ram:IBANID>
    <ram:AccountName>Example Ltd</ram:AccountName>
  </ram:PayeePartyCreditorFinancialAccount>
</ram:SpecifiedTradeSettlementPaymentMeans>
For developers: test expression per syntax

Factur-X / ZUGFeRD EN 16931 (CII)

Technical ID in the source: FX-SCH-A-000132

Context: //ram:SpecifiedTradeSettlementPaymentMeans[some $code in tokenize('30 58', '\s') satisfies normalize-space(ram:TypeCode) = $code]

(ram:PayeePartyCreditorFinancialAccount/ram:IBANID or ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID) and not(ram:PayeePartyCreditorFinancialAccount/ram:IBANID and ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID)

Related validation rules

  • BR-CO-03: Value added tax point date (BT-7) and tax point date code (BT-8) are mutually exclusive
  • BR-CO-04: Invoiced item VAT category code (BT-151) is missing
  • BR-CO-05: Document level allowance reason code (BT-98) and allowance reason (BT-97) must indicate the same type
  • BR-CO-06: Document level charge reason code (BT-105) and charge reason (BT-104) must indicate the same type
  • BR-CO-07: Invoice line allowance reason code (BT-140) and allowance reason (BT-139) must indicate the same type
  • BR-CO-08: Invoice line charge reason code (BT-145) and charge reason (BT-144) must indicate the same type

Frequently asked questions

Does BR-CO-27 apply to XRechnung as well?

The rule comes from the Factur-X/ZUGFeRD Schematron (EN 16931 profile) and is reported when the invoice is validated against those rules.

Last updated:
Explanation of the validation rule, not legal or tax advice.