# BR-CO-03

Source: https://xmlvalid.com/rules/BR-CO-03

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

- Level: error
- Rule sets: EN 16931 rules (UBL) 1.3.17, EN 16931 rules 1.3.16 (UBL), EXTENDED-CTC-FR rules (UBL) 1.4.0.04, Romanian RO e-Factura rules (UBL) 1.0.9
- Context: `/ubl:Invoice | /cn:CreditNote`
- Test: `(exists(cbc:TaxPointDate) and not(cac:InvoicePeriod/cbc:DescriptionCode)) or (not(cbc:TaxPointDate) and exists(cac:InvoicePeriod/cbc:DescriptionCode)) or (not(cbc:TaxPointDate) and not(cac:InvoicePeriod/cbc:DescriptionCode))`

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

- Level: error
- Rule sets: EN 16931 rules (CII) 1.3.17, EN 16931 rules 1.3.16 (CII), EXTENDED-CTC-FR rules (CII) 1.4.0.04
- Context: `//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax`
- Test: `((//ram:TaxPointDate) and not(//ram:DueDateTypeCode)) or (not (//ram:TaxPointDate) and (//ram:DueDateTypeCode)) or (not (//ram:TaxPointDate) and not (//ram:DueDateTypeCode))`

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

- Level: error
- Rule sets: Factur-X BASIC WL rules 1.09, Factur-X EN 16931 rules 1.09.2, Factur-X EXTENDED rules 1.09.2
- Context: `//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax`
- Test: `((ram:TaxPointDate) and not (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and not (ram:DueDateTypeCode))`

## Why it fails

- The invoice gives both a VAT point date (`cbc:TaxPointDate`, BT-7) and a VAT point date code (`cac:InvoicePeriod/cbc:DescriptionCode`, BT-8); in CII both `ram:TaxPointDate` and `ram:DueDateTypeCode`.

## How to fix it

- Keep one: the date when it is known, or the code when the VAT point follows from another date (in UBL `3` issue date, `35` delivery date, `432` paid to date; in CII `5`, `29` and `72`).

Validate a document against these rules: https://xmlvalid.com/validate
