DataShift Logo
Back to schemas
ASNAdvanceShippingNotice

Advance Shipping Notice

Supplier shipment notice describing dispatched goods.

An Advance Shipping Notice describes goods that have been dispatched or are planned for dispatch. It separates authoritative shipped lines from carton allocation details so receiving, fulfilment, and invoice reconciliation can reason about what moved and how it was packed.

Lifecycle And Correlation

Lifecycle Position

Follows PO acknowledgement and precedes receipt, giving the buyer shipment detail before goods arrive.

Correlation Guidance

Use data.lineItems[] as the authoritative shipped line list. Packages should reference those lines through data.packages[].lineReferences[] using uniqueLineKey or lineNumber; they do not replace shipped line data.

Contract Shape

Envelope

Identifies the shipment notice and traces it through fulfilment and invoice workflows.

docType

Always ASN for advance shipping notice payloads.

correlationId

Stable UUID used to trace the shipment notice through downstream workflows.

timestamp

UTC timestamp for when the canonical shipment notice was created.

Shipment Header

Captures shipment identity, operation, timing, fulfilment type, and purchase order references.

data.dispatchAdviceNumber

Supplier shipment or dispatch advice identifier.

data.noticeDate

Date and time the supplier created the notice.

data.shipmentDate

Date and time goods left the supplier.

data.poReferences[]

Purchase orders being fulfilled by this shipment.

Carrier And Parties

Describes the carrier, tracking identifiers, origin, destination, and delivery terms.

data.carrier

Carrier and service details for the shipment.

data.shipmentIdentifiers[]

Tracking, bill of lading, pro, airwaybill, or container references.

data.shipFrom

Shipment origin.

data.shipTo

Shipment destination.

Lines And Packages

Separates shipped line facts from physical carton and SSCC allocation detail.

data.lineItems[]

Authoritative shipped line data.

data.lineItems[].uniqueLineKey

Stable line key copied from the original PO.

data.packages[]

Physical package or carton detail.

data.packages[].lineReferences[]

Quantities packed in each carton by line reference.

Validation Notes

  • Require dispatchAdviceNumber, noticeDate, shipmentDate, carrier, shipFrom, shipTo, and lineItems.
  • Validate package SSCC values when supplied.
  • Require each package line reference to include quantity and either lineNumber or uniqueLineKey.
  • Keep unitOfMeasure aligned between lineItems and package lineReferences.

Mapping Notes

  • Map shipped quantities to data.lineItems[] first, then map carton allocation to packages[].lineReferences[].
  • Preserve PO uniqueLineKey values on shipped lines whenever available.
  • Use shipmentIdentifiers for tracking and transport references instead of comments.
  • Represent partial and complete fulfilment through fulfillmentType.

Operational Notes

  • Receiving progress should be calculated from data.lineItems[], not package allocation rows.
  • If uniqueLineKey is missing or unknown, send the shipment line to manual review rather than matching on item text or array position.

Implementation Pitfalls

  • Do not use package item arrays as authoritative ASN line data.
  • Do not infer line fulfilment from carton count alone.
  • Do not match ASN lines to PO lines by array index, description, or quantity.