Glossary Term

Tax point (VAT point date)

The date on which VAT becomes chargeable on a supply — the 'time of supply'. It can differ from the invoice date and is carried in EN 16931 as BT-7 (VAT point date) or, alternatively, BT-8 (VAT point date code).

Quick Facts

Fallback
Invoice issue date (BT-2) if neither present
BT-8 codes
3 = invoice date, 35 = delivery date, 432 = payment date
Also called
Time of supply, VAT point
Legal basis
VAT Directive 2006/112/EC, Art. 63–66
EN 16931 code
BT-8 (Value added tax point date code)
Mutually exclusive
BT-7 and BT-8 — never both
EN 16931 explicit date
BT-7 (Value added tax point date)

Definition

What it is

The tax point — formally the time of supply, and in EN 16931 terminology the VAT point date — is the date on which VAT becomes chargeable on a transaction. It determines which VAT period a supply falls into, which VAT rate applies if rates change, and when the supplier must account for the output tax. It is a distinct concept from the invoice issue date, even though the two often coincide.

Under the EU VAT Directive (2006/112/EC), VAT becomes chargeable in general when the goods or services are supplied (the "chargeable event", Articles 63–66), but member states apply specific rules that can move the tax point to the invoice date, the payment date, or a fixed period after the supply. Common situations where the tax point is not the invoice date include: advance payments (tax point = date of payment), continuous supplies, cash (payment-based) accounting schemes, and intra-Community transactions with their own timing rules. Because these rules vary by country and by scheme, the tax point is a frequent source of confusion — and of misposted VAT — for cross-border ERP systems.

How it appears in EN 16931

EN 16931 lets an invoice express the tax point in one of two mutually exclusive ways:

  • BT-7 — Value added tax point date. An explicit date, used when the tax point is a specific known date that differs from the invoice issue date (BT-2).

  • BT-8 — Value added tax point date code. A code indicating how the tax point is derived, used when you want to say "the tax point is the delivery date" or "the tax point is the payment date" without restating the date. The code values come from a UNTDID-derived subset: 3 = invoice document issue date, 35 = delivery date (actual), 432 = paid-to date (payment).
  • The standard enforces that BT-7 and BT-8 are mutually exclusive — an invoice carries one or the other, never both. This is a business rule (BR-CO style constraint) that validators check, and supplying both is a common rejection cause. If neither is present, the invoice date (BT-2) is typically taken as the effective tax point.

    How ERP vendors encounter it

    The tax-point fields are optional in the core EN 16931 model, but several national CIUS and tax authorities lean on them. The clearest example is German VAT: for cash-based accounting (Ist-Versteuerung), guidance is to carry the VAT point explicitly via BT-7, or to signal payment-based timing via BT-8 code 432, so that the structured invoice reflects the legally relevant date rather than just the issue date. Getting this wrong does not just risk a validation error — it risks the invoice being booked into the wrong VAT period.

    Mapping into the two main syntaxes:

  • UBL: BT-7 maps to /Invoice/cbc:TaxPointDate; BT-8 maps to /Invoice/cac:InvoicePeriod/cbc:DescriptionCode.

  • CII: BT-7 maps to …/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate; BT-8 maps to …/ram:ApplicableTradeTax/ram:DueDateTypeCode.
  • Why it matters

    For an EU e-invoicing pipeline, the tax point is where VAT law meets the data model. Three practical rules keep ERP integrations safe: (1) never emit both BT-7 and BT-8; (2) only emit a tax point when it genuinely differs from, or needs to be qualified relative to, the invoice date — otherwise leave both empty and let BT-2 stand; and (3) when consuming inbound invoices, resolve the effective tax point in the order BT-7 → BT-8 (decoded) → BT-2, because the period you post to depends on it. Because tax-point rules are member-state specific, this is exactly the kind of cross-border detail a compliance layer should normalise rather than leave to each integration.

    XML Examples

    UBL (Peppol, XRechnung)

    <!-- BT-7 explicit VAT point date (UBL) -->
    <cbc:TaxPointDate>2026-05-31</cbc:TaxPointDate>
    
    <!-- OR BT-8 code: tax point = payment/paid-to date (mutually exclusive with BT-7) -->
    <cac:InvoicePeriod>
      <cbc:DescriptionCode>432</cbc:DescriptionCode>
    </cac:InvoicePeriod>

    CII (ZUGFeRD, Factur-X)

    <!-- BT-7 explicit VAT point date (CII) -->
    <ram:ApplicableHeaderTradeSettlement>
      <ram:ApplicableTradeTax>
        <ram:TaxPointDate>
          <udt:DateString format="102">20260531</udt:DateString>
        </ram:TaxPointDate>
      </ram:ApplicableTradeTax>
    </ram:ApplicableHeaderTradeSettlement>

    Related Content