put https://{merchant}.fulfil.io/services/3pl/v1/customer-shipments/ship.json
When a shipment has been labelled and shipped, use this endpoint to mark a group of shipments as shipped.
Log in to see full request history
curl --location --request PUT 'https://{merchant}.fulfil.io/services/3pl/v1/customer-shipments/ship.json' \
--data-raw '{
"shipments": [
{
"id": 1,
"carrier_identifier": "ups",
"warehouse": 5, // only send if multi-warehouse setup in Fulfil for 3PL
"tracking_number": "1Z012457878787",
"cost": "10.59",
"lines": [
{
"product_code": "SKU",
"quantity": 1.0
},
{
"product_code": "SKU",
"quantity": 1.0,
"lot": {
"number": "LOT-1"
}
}
]
}
]
}'
Supported carrier identifiers
Fulfil carrier identifier | Carrier Name |
---|---|
abf | ABF |
aci | ACI |
ag_systems | Associated Global Systems |
amazon_logistics | Amazon Logistics |
amazon_mws | AmazonMws |
apc | APC |
aramex | Aramex |
arrow_xl | ArrowXL |
asendia | Asendia |
asendia_hk | Asendia HK |
australia_post | Australia Post |
axlehire_v3 | AxlehireV3 |
better_trucks | Better Trucks |
blue_dart | Bluedart |
bopg | Bolt Delivery |
boxberry | Boxberry |
cainiao | Cainiao |
canada_post | Canada Post |
canpar | Canpar |
cdl | CDL Delivers |
ceva | CEVA |
columbus_last_mile | CDL Last Mile Solutions |
china_post | China Post |
chronopost | Chronopost |
colis_prive | Colis Prive |
colissimo | Colissimo |
correios | Correios |
correos_chile | Correos Chile |
correos_costa_rica | Correos Costa Rica |
couriers_please | CouriersPlease |
dai_post | Dai Post |
delhivery | Delhivery |
deliv | Deliv |
deliverr | Deliverr |
deutsche_post | Deutsche Post |
dhl_ecommerce | DHL eCommerce |
dhl_ecommerce_asia | DHL eCommerce Asia |
dhl_express | DHL Express |
dhl_freight | DHL Freight |
dhl_germany | DHL Germany |
dicom | Dicom |
direct_link | Direct Link |
dominos | Dominos |
doordash | Doordash |
doorman | Doorman |
dpd | DPD |
dpduk | DPD UK |
dx | DX Delivery |
ec_firstclass | EC Firstclass |
ecom_express | Ecom Express |
china_ems | EMS |
estafeta | Estafeta |
estes | Estes |
evri | Evri |
fastway | Fastway |
fedex | FedEx |
fed_ex_mailview | FedEx Mailview |
fed_ex_same_day_city | FedEx SameDay City |
fed_ex_uk | FedEx UK |
fedex_smart_post | FedEx SmartPost |
first_mile | FirstMile |
flavor_cloud | FlavorCloud |
fleet_optics | Fleet Optics |
flexport | Flexport |
flyt_express | Flyt Express |
freipost | Freipost |
fscf | Frontier |
gfs | Global Freight Solutions |
global_e | Global-E |
globegistics | Globegistics |
gls | GLS |
gso | GSO |
hermes | Hermes |
hong_kong_post | Hong Kong Post |
india_post | India Post |
interlink_express | Interlink Express |
international_bridge | International Bridge |
israel_post | Israel Post |
janco_freight | Janco Freight |
jitsu | Jitsu |
jp_post | JP Post |
kuroneko_yamato | Kuroneko Yamato |
la_poste | La Poste |
laser_ship | LaserShip |
latvijas_pasts | Latvijas Pasts |
liefery | Liefery |
loomis_express | Loomis Express |
lso | LSO |
nanjing_woyuan | Nanjing Woyuan |
network4 | Network4 |
newgistics | Newgistics |
ninja_van | Ninja Van |
norco | Norco |
nova_poshta | Nova Poshta |
ocs_worldwide | OCS Worldwide |
on_trac | OnTrac |
on_trac_direct_post | OnTrac DirectPost |
orange_ds | Orange DS |
osm_worldwide | Osm Worldwide |
parcelforce | Parcelforce |
parcll | PARCLL |
passport | Passport |
pcf | PCF |
pilot | Pilot |
pitney_bowes | Pitney Bowes |
pos_malaysia | POS Malaysia |
postmates | Postmates |
post_nl | PostNL |
posten | Posten |
post_nord | PostNord |
purolator | Purolator |
rivo | Rivo |
rl_carriers | R+L Carriers |
royal_mail | Royal Mail |
rr_donnelley | RR Donnelley |
rsl | Rakuten Super Logistics |
seko | Seko |
singapore_post | Singapore Post |
shipmonk | Shipmonk |
smsa_express | SMSA Express |
spee_dee | Spee-Dee |
sprint_ship | SprintShip |
star_track | StarTrack |
store_to_door | Store to Door |
sf_express | SF Express |
sunyou | SunYou Logistics |
taiwan_post | Taiwan Post |
toll | Toll |
tnt | TNT |
t_force | TForce |
tuffnells | Tuffnells |
uds | UDS |
ukrposhta | Ukrposhta |
uniuni | UniUni |
ups | UPS |
ups_iparcel | UPS i-parcel |
ups_mail_innovations | UPS Mail Innovations |
usf_holland | USF Holland |
usps | USPS |
ubi_smart_parcel | UBI Smart Parcel |
veho | Veho |
watkins_and_shepard | Watkins And Shepard |
wn_direct | wnDirect |
whistl | Whistl |
xdp | XDP |
x_delivery | X Delivery |
yanwen | Yanwen |
yellow_freight | Yellow Freight |
yodel | Yodel |
yun_express | Yun Express |
Sending a custom tracking URL or using an unsupported carrier
If using a supported carrier identifier in the payload, Fulfil will automatically export the tracking URL based on the carrier to external marketplaces.
However, if you are using an unsupported carrier or want to send a custom tracking URL to export - you can use the field tracking_url
in your payload to specify a custom URL that will be exported to external channels.
curl --location --request PUT 'https://{merchant}.fulfil.io/services/3pl/v1/customer-shipments/ship.json' \
--data-raw '{
"shipments": [
{
"id": 97589,
"carrier": "3pl",
"carrier_service": "test_carrier_service1",
"tracking_number": "TEST1079197",
"tracking_url": "https://www.test-carrier.com/business-shipment-tracking/TEST1079197",
"cost": "10.59",
"lines": [
{
"product_code": "ITEM-1",
"quantity": 2
}
]
}
]
}'
Marking bundled items as fulfilled
Fulfil natively supports the ability for merchants to sell and fulfil bundles. It is important the 3PL understand how this workflow works in Fulfil and how to handle fulfilling bundle components as sub-items in a customer shipment.
Important points to note
- Fulfil will only mark the bundled item as shipped once all the bundle inputs have been fulfilled.
- If partially fulfilling bundle inputs, the inputs fulfilled will be packaged separately with a unique tracking number - if included on the partial shipment confirmation.
Workflow overview
- Customer purchases bundle item on sales channel.
- Bundle item appears as a single line item on sales channel.
- Bundle item appears as a single line item on Fulfil order.
- The customer shipment line includes sub-items (
sublines
) identified from the BOM for components - 3PL fetches the shipment information with the sub-items as components (see example payload below)
- 3PL sends shipping notification to indicate completion of shipment
- Order line with bundle item is considered fulfilled if all inputs are fulfilled and tracking information is sent to sales channel.
"lines": [
{
"currency": "USD",
"id": 674,
"order": {
"channel": {
"code": null,
"id": 2,
"name": "Phone Order"
},
"id": 277,
"number": "SO246",
"reference": null
},
"product": {
"code": "HOODIE-BUNDLE",
"id": 45,
"name": "Hoodie Bundle (Large & Medium)",
"upc": null
},
"quantity": 3.0,
"sublines": [
{
"id": 677,
"product": {
"code": "HOODIE-001-M",
"id": 8,
"name": "Hoodie (Medium)",
"upc": null
},
"quantity": 3.0,
"uom": "u"
},
{
"id": 676,
"product": {
"code": "HOODIE-001-L",
"id": 7,
"name": "Hoodie (Large)",
"upc": null
},
"quantity": 3.0,
"uom": "u"
}
],
"unit_customs_value": {
"__class__": "Decimal",
"decimal": "91.95"
},
"unit_price": {
"__class__": "Decimal",
"decimal": "91.95"
},
"uom": "u"
}
]
Responses