Skip to main content

xInvoice Delivery Date

EN16931 field BT-72 (Actual delivery date) carries the date on which the goods were delivered or the service was rendered. mseDoc365 fills it from the posted document — in both syntaxes and for both document types:

SyntaxElement
CII (XRechnung)ApplicableHeaderTradeDelivery/ActualDeliverySupplyChainEvent/OccurrenceDateTime/DateTimeString
UBL (XRechnung-UBL / Peppol)Delivery/ActualDeliveryDate

Which BC date is used​

The date is resolved once per document, in this order:

  1. Shipment Date of the posted sales invoice / credit memo, when it is filled.
  2. Posting Date of the same document, when no Shipment Date is set.

This is the "Liefer- oder Buchungsdatum" behaviour German invoice recipients expect: a document posted without a shipment date still carries a delivery date instead of omitting BT-72 altogether.

If the document has neither date, BT-72 stays empty and the surrounding delivery block is left out of the XML — unchanged from earlier versions.

Where to override it​

The resolved value is written to the field Delivery or Posting Date on the mseDoc365 sales invoice buffer, and the XML schema line for BT-72 reads that field. Two consequences:

  • A customer extension can override the delivery date in its OnAfterCreateBuffer subscriber by writing that buffer field — no schema editing needed.
  • Repointing the schema line itself (mseDoc365 XML Schema → Lines → Source Table No. / Source Field No.) still works. Set the line's Locked flag so the mapping survives Update schema from standard.

Upgrading from an earlier version​

The mapping lives in schema data, not in code. Existing installations keep their current BT-72 mapping until the schema is refreshed:

  • New installations get the new mapping immediately.
  • Existing installations pick it up by running Update schema from standard on the XRECHNUNG-OUT and XRECHNUNG-UBL-OUT schemas. Unlocked lines are rebuilt; locked lines keep the customer's own mapping.

Note for credit memos: before this change the CII syntax used the Posting Date while UBL used the Shipment Date. Both now follow the same Shipment-Date-then-Posting-Date rule.