The Shipment Status EDI is an XML-based file conforming to the ANSI X.12 315 event standard. The file is structured into four key sections:
This section displays the ShipmentStatusEvent schema, representing a key part of the overall EDI structure. The complete XSD schema, including all elements and attributes, is available for download at the bottom of this page.
...
...
<xsd:complexType name="ShipmentStatusEventType">
<xsd:sequence>
<xsd:element name="EventCode">
<xsd:simpleType>
<xsd:restriction base="xsd:string"></xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="EventName" type="xsd:string"></xsd:element>
<xsd:element name="EventDateTime" type="EventDateTimeType"></xsd:element>
<xsd:element name="EventLocation" type="EventLocationType"></xsd:element>
<xsd:element name="ContainerPrefix" type="xsd:string"></xsd:element>
<xsd:element name="ContainerNumber" type="xsd:string"></xsd:element>
<xsd:element name="ContainerCheckDigit" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
<xsd:element name="ContainerType" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
<xsd:element name="SealNumber" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
<xsd:element name="ContainerStatus" maxOccurs="1" minOccurs="0">
<xsd:annotation><xsd:documentation>'L' - Load / Full (Full containenr) or 'E' - Empty (empty container)</xsd:documentation></xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="L"></xsd:enumeration>
<xsd:enumeration value="E"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="EventDateTimeType">
<xsd:sequence>
<xsd:element name="DateTime" type="DateTimeType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DateTimeType">
<xsd:sequence>
<xsd:element name="Date" type="xsd:string">
<xsd:annotation><xsd:documentation>Date pattern : CCYYMMDD eg. 20250207</xsd:documentation></xsd:annotation>
</xsd:element>
<xsd:element name="Time" type="xsd:string">
<xsd:annotation><xsd:documentation>Event time pattern: HHMM (without second) eg. 0546</xsd:documentation></xsd:annotation>
</xsd:element>
<xsd:element name="DateTimeQualifier">
<xsd:annotation><xsd:documentation>'A' - Actual or 'E' - Estimated</xsd:documentation></xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="A"></xsd:enumeration>
<xsd:enumeration value="E"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LocationType">
<xsd:sequence>
<xsd:element name="LocationFunction" minOccurs="0">
<xsd:annotation>
<xsd:documentation> R - Place of receipt
E - Place of delivery
L - Port of loading
D - Port of discharge
T - Transhipment port
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="R"></xsd:enumeration>
<xsd:enumeration value="L"></xsd:enumeration>
<xsd:enumeration value="D"></xsd:enumeration>
<xsd:enumeration value="E"></xsd:enumeration>
<xsd:enumeration value="T"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="LocationCode">
<xsd:annotation><xsd:documentation>Generally, an UNLOCODE is mapped unless carrier doesn't provde any code for them. And it will be defaulted as '0'.</xsd:documentation></xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="5"></xsd:maxLength>
<xsd:minLength value="1"></xsd:minLength>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="LocationCodeQualifier">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"></xsd:maxLength>
<xsd:enumeration value="UN"></xsd:enumeration>
<xsd:enumeration value="ZZ"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="LocationName" type="xsd:string"></xsd:element>
<xsd:element name="CountryCode" maxOccurs="1" minOccurs="0" type="xsd:string">
<xsd:annotation><xsd:documentation>ISO country code</xsd:documentation></xsd:annotation>
</xsd:element>
<xsd:element name="StateProvinceCode" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
<xsd:element name="TerminalName" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
<xsd:element name="DateTime" type="DateTimeType" maxOccurs="1" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="EventLocationType">
<xsd:sequence>
<xsd:element name="Location" type="LocationType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
...
...
This example highlights the ShipmentStatusEvent. For the complete XML structure and all data elements, please download the full sample file.
...
...
<ShipmentStatusEvent>
<EventCode>RCVE</EventCode>
<EventName>Empty Container Returned</EventName>
<EventDateTime>
<DateTime>
<Date>20250410</Date>
<Time>1136</Time>
<DateTimeQualifier>A</DateTimeQualifier>
</DateTime>
</EventDateTime>
<EventLocation>
<Location>
<LocationCode>BRSSZ</LocationCode>
<LocationCodeQualifier>UN</LocationCodeQualifier>
<LocationName>SANTOS</LocationName>
<DateTime>
<Date>20250410</Date>
<Time>1136</Time>
<DateTimeQualifier>A</DateTimeQualifier>
</DateTime>
</Location>
</EventLocation>
<ContainerPrefix>PCIU</ContainerPrefix>
<ContainerNumber>180535</ContainerNumber>
<ContainerCheckDigit>5</ContainerCheckDigit>
<ContainerType>20'</ContainerType>
<SealNumber>A4230376177</SealNumber>
</ShipmentStatusEvent>
...
...
How can I get the EDI file?
The EDI file can be transferred using FTP or SFTP. For enhanced security, we strongly recommend using SFTP, which supports both password and key-based authentication.
How do I validate the XML?
You can use the provided XSD (XML Schema Definition) file to validate the XML file. An XSD defines the structure and rules for the XML.