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 packageproduct_code- Fulfil product code (can also be the UPC/EAN/GTIN)quantity- Quantity of the item in the packagelot.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",
"override_weight": 10,
"override_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",
"override_weight": 10,
"override_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 code | Medium description |
|---|---|
| BAG | Bag |
| BAL | Bale |
| BBL | Barrel |
| BOX | Box |
| CTN | Carton |
| PLT | Pallet |
| SKD | Skid |
List of materials
| Fulfil material code | Material description |
|---|---|
| 01 | Aluminium |
| 03 | Hard Wood |
| 05 | Soft Wood |
| 25 | Corrugated or Solid |
| 31 | Fibre |
| 43 | Glass |
| 58 | Metal |
| 76 | Paper |
| 79 | Plastic |
| 91 | Stainless Steel |
