About the tracking file

This article provides the technical details of the XML file that generic carriers send to Paazl in order to update the delivery status of an order. About the Generic Carrier interface provides the context for the use of this file.

File name format

There are no filename requirements. Paazl will process any files placed by the generic carrier in its FTP folder.

Element specifications

Element Type Required? Description
statuses Complex element Required

Contains information on the delivery statuses of the various shipments making up an order.

status Complex element Required

Contains information on the delivery status of a shipment in an order.

The Paazl delivery status code for a shipment.

See About Paazl delivery status codes for the meaning of the various codes.

timestamp dateTime Required

The time when the delivery status of a shipment was registered

barcode String Required

The barcode that a carrier assigns to a shipping order

carrierStatus String Required

A shipment's delivery status code as provided by the carrier

carrierStatusDescription String Required

A shipment's delivery status description as provided by the carrier

status statusType Optional

The Paazl delivery status code for a shipment.

See About Paazl delivery status codes for the meaning of the various codes.

town String Optional

The city or town of the address to which an order is being shipped.

country String Optional

The ISO 3166-2 code for the country of the address to which an order is being shipped.

deliveryWindowFrom dateTime Optional

The start of a particular shipping option’s delivery time range

deliveryWindowTo dateTime Optional

The end of a particular shipping option’s delivery time range

deliveryInformation String Optional

Additional information concerning the status of a delivery

version String Required

The status of the delivery status code mapping used by a carrier

timestamp dateTime Required

The time when this tracking file was sent

XSD

<xs:schema targetNamespace="http://www.paazl.com/schemas/tracking" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tracking="http://www.paazl.com/schemas/tracking">

 <xs:element name="tracking">
  <xs:complexType>
      <xs:sequence>
       <xs:element name="statuses" type="tracking:StatusesType" />
      </xs:sequence>
   <xs:attribute name="version" type="xs:string" use="required" />
      <xs:attribute name="timestamp" type="xs:dateTime" use="required" />
    </xs:complexType>
 </xs:element>
 
 <xs:complexType name="StatusesType">
     <xs:sequence>
      <xs:element name="status" type="tracking:StatusData" maxOccurs="unbounded" />
     </xs:sequence>
    </xs:complexType>

 <xs:complexType name="StatusData">
  <xs:sequence>
   <xs:element name="timestamp" type="xs:dateTime" />
   <xs:element name="barcode" type="xs:string" />
   <xs:element name="carrierStatus" type="xs:string" />
   <xs:element name="carrierStatusDescription" type="xs:string" />
   <xs:element name="status" type="tracking:statusType" minOccurs="0"  />
   <xs:element name="town" type="xs:string" minOccurs="0" />
   <xs:element name="country" type="xs:string" minOccurs="0" />
   <xs:element name="deliveryWindowFrom" type="xs:dateTime" minOccurs="0"/>
   <xs:element name="deliveryWindowTo" type="xs:dateTime" minOccurs="0"/>
   <xs:element name="deliveryInformation" type="xs:string" minOccurs="0" />
  </xs:sequence>
 </xs:complexType>
 
 <xs:simpleType name="statusType">
  <xs:restriction base="xs:string">
   <xs:enumeration value="READY_TO_POST"/>
   <xs:enumeration value="SCANNED"/>
   <xs:enumeration value="AVAILABLE_AT_PICKUP_POINT"/>
   <xs:enumeration value="DELIVERED"/>
   <xs:enumeration value="DELIVEREDBB"/>
   <xs:enumeration value="RETOUR"/>
   <xs:enumeration value="PICKEDUP"/>
   <xs:enumeration value="UITLEVERING"/>
   <xs:enumeration value="MANCO"/>
   <xs:enumeration value="NOT_AT_HOME"/>
  </xs:restriction>
 </xs:simpleType>

</xs:schema>

Example

<?xml version="1.0"?>
<trac:tracking xmlns:trac="http://www.paazl.com/schemas/tracking" version="string" timestamp="2017-04-25T13:53:13">
    <trac:statuses>
        <!--1 or more repetitions:-->
        <trac:status>
            <trac:timestamp>2018-04-25T13:53:13</trac:timestamp>
            <trac:barcode>70006800090101000006</trac:barcode>
            <trac:carrierStatus>SCANNED</trac:carrierStatus>
            <trac:carrierStatusDescription>The package is scanned</trac:carrierStatusDescription>
            <!--Optional:-->
            <trac:status>RETOUR</trac:status>
            <!--Optional:-->
            <trac:town>Amsterdam</trac:town>
            <!--Optional:-->
            <trac:country>NL</trac:country>
            <!--Optional:-->
            <trac:deliveryWindowFrom>2018-04-25T13:53:13</trac:deliveryWindowFrom>
            <!--Optional:-->
            <trac:deliveryWindowTo>2018-04-29T13:53:13</trac:deliveryWindowTo>
        </trac:status>
    </trac:statuses>
</trac:tracking>

Was this article helpful?