Implementation Guide

Date Formats in EN 16931

Stop guessing format codes. 99% of valid Factur-X/ZUGFeRD dates use format 102 (YYYYMMDD).

Rule #1 The Format "102"

In the XML standard (CII or UBL), dates are almost always accompanied by a format code. The standard EN 16931 strictly mandates format 102 which implies YYYYMMDD.

<ram:OccurrenceDateTime>
  <udt:DateTimeString format="102">20260218</udt:DateTimeString>
</ram:OccurrenceDateTime>
❌ 18/02/2026 ❌ 2026-02-18 ✅ 20260218

Critical Date Fields

BT-2

Invoice Issue Date

Validation Date. The exchange rate is calculated based on this date.

BT-9

Due Date

When the payment is expected. Optional if using payment terms description.

BT-72

Actual Delivery Date

Date of supply of goods or services. Vital for VAT tax point.

Using the API

When using React/Node.js/Python with Factur-X Engine, you don't need to obscure XML nodes. Just pass an ISO-8601 string in the JSON metadata, and we convert it to format 102 automatically.

// JSON Metadata Payload
{
  "date": "2026-02-18",      // We convert this -> 20260218 (102)
  "due_date": "2026-03-31",  // We convert this -> 20260331 (102)
  "delivery_date": "2026-02-17"
}

Still getting formatting errors?

Use our validator to verify if your date format codes match the strict EN 16931 Schematron rules.