Products Array

This array holds details of each itemised product within a Parcels Array. The properties are as follows:

Table 17. Products Array Properties

Property Name

Type

Manda- tory?

Description

countryOfOrigin

string

The code of the country of origin.

fabricContent

string

If you are shipping textiles outside of your borders, you need to specify the exact materials from which they are made.

harmonisedProductCode

string

Enter the 'commodity code', which is a sequence of numbers made up of 6, 8, or 10 digits.

Six-digit commodity codes are Harmonised System (HS) codes. These are used worldwide in monitoring trade volumes and applying international trade measures to goods.

The HS nomenclature forms the basis for the 8-digit Combined Nomenclature and the 10-digit Taric Nomenclature. These are used in both import/export and statistics declarations on internal trade between EU countries ('Intrastat' declarations).

miscellaneousInfo

array of type string

Additional information about the product (maximum overall length 2000 characters).

This property is not mapped to any carrier fields for labels and manifests, and so should only be used for ad hoc information that cannot be added in other fields.

productCode

string

The SKU (Stock Keeping Unit) - maximum length 50 characters.

productDescription

string

The product description.

productQuantity

long double

The quantity of the product (this must be greater than zero).

productTypeDescription

string

The description of the product type. For example, if you are shipping trousers and shirts, you might enter "Clothes" so that this then appears on the transport label instead of the productDescription.

totalProductValue

 

The overall product value (in GBP).

unitProductWeight

double precision floating point number

The weight of an individual product. The units default to kilograms if Imperial units are not set (refer to How do I create consignments in Imperial Weights and Measures?).

dangerousGoods

array of type dangerousGoods

An optional set of parameters that tell a carrier that a product contains Dangerous Goods.

For the full list of parameters, refer to the table below.

compliance

object of type Compliance

An optional set of parameters used to provide regulatory compliance data required by government agencies for specific product categories. For the full list of parameters, refer to the Compliance Parameters table below.


Customs Brokerage Parameters

The parameters are specified at the product level and are as follows:

Table 18. Customs Brokerage Properties

Property Name

Type

Manda- tory?

Description

exportReferenceNumber

alphanumeric string (maximum length defined by seller)

ECCN (Export Control Classification Number).

exportLicenseNumber

numeric string (10)

Export license number.

batteryChemCode

alphanumeric string (2)

Battery Hazard Characteristic Code.


Dangerous Goods Parameters

The parameters are as follows:

Table 19. : Dangerous Goods Parameters

Parameter

Type

Manda- tory?

Description

unId

numeric string (4)

The UN ID standard to identify dangerous goods.

Contains a 4-digit number, e.g., "3091".

External references:

Lists of UN Numbers

ADR European Agreement

shippingName

string (255)

Trade description of the goods, e.g., "COMPOUND DISPERSION, WATER-REACTIVE, FLAMMABLE, N.O.S"

External reference:

Dangerous Goods List (page 147)

productClass

numeric string (4)

Substances (including mixtures and solutions) and articles are assigned to one of nine classes according to either the hazard, or the most prominent of the hazards, they present, e.g., "9".

Some of these classes are subdivided into divisions, e.g., "4.1".

External reference:

ADR European Agreement (page 97)

packagingGroup

alpha-numeric string (3)

From the three packing groups that can be assigned to the substance, the one that indicates the degree of danger it presents, e.g., "III".

measurementUnit

string (50)

Volumetric/mass measurement unit of the material being shipped, e.g., "ml", "kg".

amount

double

Numeric value of the volumetric/mass measurement unit, e.g., "50", "0.7".

packagingInstructions

numeric string (3)

The specific standardised packaging instructions from the relevant regulatory agency that have been applied to the parcel/container.

External references:

Transport of Dangerous Goods

IATA Dangerous Goods Documentation

packagingInstructionSection

Note

Refer to the diagram below and the 2021 Lithium Battery Guidance Document.

alpha-numeric string (2)

(for lithium batteries)

Complementary information to specify the exact 'Section of Packaging' Instructions (a mandatory piece of data for processing lithium-battery shipments).

You need to specify one of the following values:

  • I

  • IA

  • IB

  • II

Lithium_Categories.png

quantity

double

Mathematical representation of the copies/pieces/volumes of the material being transported.

This number needs to be multiplied by the amount to calculate the total content of the parcel/container.

additionalInfo

string (255)

Additional information that may be required by regulations concerning hazardous materials.

packageType

string (50)

Regardless of the regulatory agency specified in the next row, you should use the appropriate ADR codes to describe the packaging.

Click here for more information.

regulationAuthority

string (50)

Regulatory agency whose standards are being followed for the shipment, e.g., "ADR", "CFR", "IATA", "TDG".

regulationLevelCode

string (50)

Reference to the amount of the particular substance being transported.

The field is used to trigger different levels of controls and restrictions:

  • "LR" - Lightly Regulated

  • "FR" - Fully Regulated

  • "LQ" - Limited Quantities

  • "EQ" - Excepted Quantity.

Caution

You should check with your carrier, as not all carriers support all the codes. Where a carrier does not support a specified code, the consignment will fail allocation.

transportationMean

string (50)

The most critical leg of the journey required to deliver the goods, e.g., "Ground", "Water", "CAO" (Cargo Aircraft Only), "PA" (Passenger Aircraft).

reportableQuantity

boolean

A flag to indicate whether or not the quantity of a hazardous substance from Title 40, Code of Federal Regulations (40 CFR) is sufficient to trigger a report under the Comprehensive Environmental Response, Compensation, and Liability Act (CERCLA).

radioactive

boolean

A flag to indicate whether or not the substance is radioactive.

subRiskClass

string (5)

A secondary productClass for substances presenting more than one particular hazard.

techName

string (255)

A widely recognised chemical or technical name. e.g. "Cyclotrimethylenetrinitramine, desensitized".

overPack

string (255)

Additional description for wrapping/overpack,


Compliance Parameters

The compliance object is a container for regulatory compliance data. It does not represent an array itself, but contains one or more arrays of certificate data specific to a given regulatory body.

Table 20. Compliance Parameters

Property Name

Type

Mandatory?

Description

cpsc

array of type CpscCertificate

An optional set of parameters providing US Consumer Product Safety Commission (CPSC) certificate data. Required for regulated consumer products imported into the United States, in line with CPSC electronic filing (eFiling) requirements effective 8th July 2026. For the full list of parameters, refer to the CpscCertificate Parameters table below.


CpscCertificate Parameters

Each item within the cpsc array represents a single certificate and contains the following parameters:

Table 21. CpscCertificate Parameters

Property Name

Type

Mandatory?

Description

certifierId

string (50)

A unique identifier created by the importer responsible for certifying the product certificate.

certificateVersionId

string (50)

A unique identifier for the specific version of the product certificate.


Handling Multiple CPSC Certificates

A product may have more than one CPSC certificate associated with it — for example, where a product is subject to multiple safety standards. Each certificate should be provided as a separate item within the `cpsc` array.

Code snippet notifying a carrier that a product contains lithium batteries

Customs Brokerage and Dangerous Goods parameters for shipping lithium batteries might be specified as follows:

...
<consignments xsi:type="soapenc:Array" soapenc:arrayType="tns1:Consignment[1]">
      <item xsi:type="tns1:Consignment">
      ...
          <parcels soapenc:arrayType="ns2:Parcel[1]" xsi:type="soapenc:Array">          
                <item xsi:type="tns1:Parcel">
                ...
                 <products soapenc:arrayType="ns2:Product[1]" xsi:type="soapenc:Array">
                        <products xsi:type="ns2:Product">
                           <countryOfOrigin xsi:type="soapenc:string">GBR</countryOfOrigin>
                           <exportReferenceNumber xsi:type="soapenc:string">1AA99</exportReferenceNumber>
                           <exportLicenseNumber xsi:type="soapenc:string">48201020</exportLicenseNumber>
                           <batteryChemCode xsi:type="soapenc:string">Z6</batteryChemCode>                           
                           <fabricContent xsi:type="soapenc:string">1</fabricContent>
                           <harmonisedProductCode xsi:type="soapenc:string">1</harmonisedProductCode>
                           <miscellaneousInfo>
                               <item>
                                 My miscellaneousInfo string as an array item
                               </item>
                           </miscellaneousInfo>
                           <productCode xsi:type="soapenc:string">1</productCode>
                           <productDescription xsi:type="soapenc:string">1</productDescription>
                           <productQuantity xsi:type="xsd:long">1</productQuantity>
                           <productTypeDescription xsi:type="soapenc:string">1</productTypeDescription>
                           <totalProductValue xsi:type="xsd:double">20.0</totalProductValue>
                           <unitProductWeight xsi:type="xsd:double">2.0</unitProductWeight>
                               <dangerousGoods soapenc:arrayType="ns2:DangerousGoods[2]" xsi:type="soapenc:Array">
                                 <dangerousGoods xsi:type="ns2:DangerousGoods">
                                 <unId>3481</unId>
                                 <shippingName>Lithium metal batteries</shippingName>
                                 <productClass>9</productClass>
                                 <packagingGroup>III</packagingGroup>
                                 <packagingInstructions>965</packagingInstructions>
                                 <packagingInstructionSection>II</packagingInstructionSection>
                                 <amount>2</amount>
                                 <measurementUnit>Kg</measurementUnit>
                                 <regulationLevelCode>FR</regulationLevelCode>
                                 <additionalInfo>Lithium ion batteries packed in accordance with packing instruction 965 are forbidden on passenger aircraft</additionalInfo>
                                 </dangerousGoods>
                               </dangerousGoods>
                        </products>
                  </products>
                  ...
           </item>
          </parcels>
      ...
      </item>
</consignments>
...

If you then go to the consignment in the Delivery Manager GUI, the Dangerous Goods fields are displayed under the product in the Dangerous Goods tab.

Code snippet notifying a carrier that a product has CPSC compliance certificates

Compliance parameters for products requiring US CPSC certification might be specified as follows:

```
...
<consignments xsi:type="soapenc:Array" soapenc:arrayType="tns1:Consignment[1]">
      <item xsi:type="tns1:Consignment">
      ...
          <parcels soapenc:arrayType="ns2:Parcel[1]" xsi:type="soapenc:Array">
                <item xsi:type="tns1:Parcel">
                ...
                 <products soapenc:arrayType="ns2:Product[1]" xsi:type="soapenc:Array">
                        <products xsi:type="ns2:Product">
                            <productCode xsi:type="soapenc:string">PROD-001</productCode>
                            <productDescription xsi:type="soapenc:string">Test Product</productDescription>
                            <productQuantity xsi:type="xsd:long">1</productQuantity>
                            <unitProductWeight xsi:type="xsd:double">1.0</unitProductWeight>
                            <totalProductValue xsi:type="xsd:double">20.0</totalProductValue>
                            <countryOfOrigin xsi:type="soapenc:string">US</countryOfOrigin>
                            <compliance xsi:type="ns2:Compliance">
                                <cpsc soapenc:arrayType="ns2:CpscCertificate[2]" xsi:type="soapenc:Array">
                                    <cpsc xsi:type="ns2:CpscCertificate">
                                        <certifierId xsi:type="soapenc:string">UL-2025-001234</certifierId>
                                        <certificateVersionId xsi:type="soapenc:string">GCC-2025-REV2</certificateVersionId>
                                    </cpsc>
                                    <cpsc xsi:type="ns2:CpscCertificate">
                                        <certifierId xsi:type="soapenc:string">UL-2025-005678</certifierId>
                                        <certificateVersionId xsi:type="soapenc:string">GCC-2025-REV4</certificateVersionId>
                                    </cpsc>
                                </cpsc>
                            </compliance>
                        </products>
                  </products>
                  ...
           </item>
          </parcels>
      ...
      </item>
</consignments>
...
```