API Reference

The 3PL API supports sending multiple packages back to Fulfil for a shipment

When calling the mark done endpoint, you can send multiple packages per shipment.

Each with its own tracking number and associated packed items. Additionally, you can send a master tracking number if supported by the carrier which Fulfil will then export to the marketplace.

To send back a multi-package shipment, you will need to specify the list of items packed within each package:

{ "shipments": [ { "id": 536, "carrier_identifier": "ups", "tracking_number": "1Z9999999999999988", "override_sscc": "00012345678912345678", "cost": "23.89", "packages": [ { "reference": "PKG9", "dimensions": { "length": 10, "width": 10, "height": 10, "uom": "in" }, "medium": "CTN", "material": "05", "weight": 10.0, "weight_uom": "lb", "tracking_number": "1Z9999999999999999", "override_sscc": "00012345678912345676", "bill_of_lading": "123455678", "seal_number": "ABC1234XYZ", "carrier_identifier": "ups", "items": [ { "product_code": "CONT-TIRE-001", "quantity": 1 } ] }, { "reference": "PKG10", "dimensions": { "length": 10, "width": 10, "height": 10, "uom": "in" }, "medium": "CTN", "material": "05", "weight": 10.0, "weight_uom": "lb", "tracking_number": "1Z9999999999999998", "override_sscc": "00012345678912345675", "carrier_identifier": "ups", "items": [ { "product_code": "CONT-TIRE-002", "quantity": 1, "lot": { "number": "LOT-1" } } ] } ] } ] }

Package object

  • reference (optional) - The package reference number. This is useful for EDI integrations to allow passing custom values as needed

  • dimensions (optional) - Custom package dimensions can be specified in this object

  • medium (optional) - This is the Fulfil package type code for the box type used (see below for a list of codes and descriptions)

  • material (optional) - This is the Fulfil package type material code (see below for list of codes)

  • weight (optional) - Float type value of the package weight

  • weight_uom (optional) - Weight UOM code

  • tracking_number (optional) - Package level tracking number

  • override_sscc (optional) - Package level SSCC override value. Fulfil can automatically generate an SSCC, however, if you would like to override the SSCC set by Fulfil then this value can be sent back.

  • carrier_identifier (optional) - Fulfil carrier identifier code - see here for a full list of supported carrier codes

  • bill_of_lading (optional) - An identifier that is a legally binding document that tracks and confirms the receipt, carriage, and delivery of cargo.

  • seal_number (optional) - A seal number is a unique identifier assigned to secure cargo containers during FTL shipments. Used to detect tampering, this number should match at pickup and delivery.

  • items[] (required) - List of products that are fulfilled in the specified package

    • product_code - Fulfil product code (can also be the UPC/EAN/GTIN)
    • quantity - Quantity of the item in the package
    • lot.number (optional) If the 3PL warehouse tracks lots, the same can be communicated back to Fulfil on shipment confirmation

Splitting multi-quantity lines

If you have a multi-quantity line that is fulfilled in multiple different packages the request schema will be the same and Fulfil will handle splitting the moves into the respective package.

For example - if we have a shipment with "Item A" with a quantity of 10 to be fulfilled shipped in two packages:

{ "shipments": [ { "id": 537, "carrier_identifier": "ups", "tracking_number": "1Z9999999999999988", "cost": "23.89", "packages": [ { "reference": "PKG99", "dimensions": { "length": 10, "width": 10, "height": 10, "uom": "in" }, "medium": "CTN", "material": "05", "weight": 10, "weight_uom": "lb", "tracking_number": "1Z9999999999999999", "carrier_identifier": "ups", "items": [ { "product_code": "Item A", "quantity": 5 } ] }, { "reference": "PKG910", "dimensions": { "length": 10, "width": 10, "height": 10, "uom": "in" }, "medium": "CTN", "material": "05", "weight": 10, "weight_uom": "lb", "tracking_number": "1Z9999999999999998", "carrier_identifier": "ups", "items": [ { "product_code": "Item A", "quantity": 5 } ] } ] } ] }

Fulfil will then mark the shipment as 'done', creating two packages each with a quantity of 5 for "Item A"

List of package mediums

Fulfil medium codeMedium description
BAGBag
BALBale
BBLBarrel
BOXBox
CTNCarton
PLTPallet
SKDSkid

List of materials

Fulfil material codeMaterial description
01Aluminium
03Hard Wood
05Soft Wood
25Corrugated or Solid
31Fibre
43Glass
58Metal
76Paper
79Plastic
91Stainless Steel