Do not provide both the VAT date and VAT date code

Error BR-CO-03 EN 16931

Value added tax point date (BT-7) and Value added tax point date code (BT-8) are mutually exclusive.

Mandatory rule: As long as it is violated, the invoice is invalid and will be rejected by validators.
What is wrong

Both ram:TaxPointDate (BT-7) and ram:DueDateTypeCode (BT-8) are provided in the same VAT breakdown. These two values are mutually exclusive.

What the rule means

BT-7 contains the VAT date, while BT-8 contains a VAT date code. Both values must not be used together for an invoice.

Affected fields BT-7 BT-8
Please provide either the VAT date or its code

The invoice contains both a VAT date and a VAT date code. Keep one of these values; you may also leave both out.

What to do
  1. Find the relevant ram:ApplicableTradeTax.
  2. If both are present, remove either ram:TaxPointDate or ram:DueDateTypeCode.
  3. Check the call to SetTaxPointDate(...).
  4. Generate the invoice again and validate it once more.
What it looks like
✗ Triggers the message
<ram:ApplicableTradeTax>
  <ram:TaxPointDate>2026-10-03</ram:TaxPointDate>
  <ram:DueDateTypeCode>5</ram:DueDateTypeCode>
</ram:ApplicableTradeTax>
✓ Correct
<ram:ApplicableTradeTax>
  <ram:TaxPointDate>2026-10-03</ram:TaxPointDate>
</ram:ApplicableTradeTax>
Check in FactoorSharp
  • Tax.SetTaxPointDate(taxPointDate, dueDateTypeCode) (BT-7; BT-8)
Technical details

The test passes when exactly one of the two elements is present or when both are absent. It fails when ram:TaxPointDate and ram:DueDateTypeCode are both present.

Where the rule applies

The rule applies within each ram:ApplicableTradeTax in the document-level settlement.

Context (rule/@context)
//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax
Test expression (assert/@test)
((ram:TaxPointDate) and not (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and not (ram:DueDateTypeCode))