API Reference

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 identifierCarrier Name
abfABF
aciACI
ag_systemsAssociated Global Systems
amazon_logisticsAmazon Logistics
amazon_mwsAmazonMws
apcAPC
aramexAramex
arrow_xlArrowXL
asendiaAsendia
asendia_hkAsendia HK
australia_postAustralia Post
axlehire_v3AxlehireV3
better_trucksBetter Trucks
blue_dartBluedart
bopgBolt Delivery
boxberryBoxberry
cainiaoCainiao
canada_postCanada Post
canparCanpar
cdlCDL Delivers
cevaCEVA
columbus_last_mileCDL Last Mile Solutions
china_postChina Post
chronopostChronopost
colis_priveColis Prive
colissimoColissimo
correiosCorreios
correos_chileCorreos Chile
correos_costa_ricaCorreos Costa Rica
couriers_pleaseCouriersPlease
dai_postDai Post
delhiveryDelhivery
delivDeliv
deliverrDeliverr
deutsche_postDeutsche Post
dhl_ecommerceDHL eCommerce
dhl_ecommerce_asiaDHL eCommerce Asia
dhl_expressDHL Express
dhl_freightDHL Freight
dhl_germanyDHL Germany
dicomDicom
direct_linkDirect Link
dominosDominos
doordashDoordash
doormanDoorman
dpdDPD
dpdukDPD UK
dxDX Delivery
ec_firstclassEC Firstclass
ecom_expressEcom Express
china_emsEMS
estafetaEstafeta
estesEstes
evriEvri
fastwayFastway
fedexFedEx
fed_ex_mailviewFedEx Mailview
fed_ex_same_day_cityFedEx SameDay City
fed_ex_ukFedEx UK
fedex_smart_postFedEx SmartPost
first_mileFirstMile
flavor_cloudFlavorCloud
fleet_opticsFleet Optics
flexportFlexport
flyt_expressFlyt Express
freipostFreipost
fscfFrontier
gfsGlobal Freight Solutions
global_eGlobal-E
globegisticsGlobegistics
glsGLS
gsoGSO
hermesHermes
hong_kong_postHong Kong Post
india_postIndia Post
interlink_expressInterlink Express
international_bridgeInternational Bridge
israel_postIsrael Post
janco_freightJanco Freight
jitsuJitsu
jp_postJP Post
kuroneko_yamatoKuroneko Yamato
la_posteLa Poste
laser_shipLaserShip
latvijas_pastsLatvijas Pasts
lieferyLiefery
loomis_expressLoomis Express
lsoLSO
nanjing_woyuanNanjing Woyuan
network4Network4
newgisticsNewgistics
ninja_vanNinja Van
norcoNorco
nova_poshtaNova Poshta
ocs_worldwideOCS Worldwide
on_tracOnTrac
on_trac_direct_postOnTrac DirectPost
orange_dsOrange DS
osm_worldwideOsm Worldwide
parcelforceParcelforce
parcllPARCLL
passportPassport
pcfPCF
pilotPilot
pitney_bowesPitney Bowes
pos_malaysiaPOS Malaysia
postmatesPostmates
post_nlPostNL
postenPosten
post_nordPostNord
purolatorPurolator
rivoRivo
rl_carriersR+L Carriers
royal_mailRoyal Mail
rr_donnelleyRR Donnelley
rslRakuten Super Logistics
sekoSeko
singapore_postSingapore Post
shipmonkShipmonk
smsa_expressSMSA Express
spee_deeSpee-Dee
sprint_shipSprintShip
star_trackStarTrack
store_to_doorStore to Door
sf_expressSF Express
sunyouSunYou Logistics
taiwan_postTaiwan Post
tollToll
tntTNT
t_forceTForce
tuffnellsTuffnells
udsUDS
ukrposhtaUkrposhta
uniuniUniUni
upsUPS
ups_iparcelUPS i-parcel
ups_mail_innovationsUPS Mail Innovations
usf_hollandUSF Holland
uspsUSPS
ubi_smart_parcelUBI Smart Parcel
vehoVeho
watkins_and_shepardWatkins And Shepard
wn_directwnDirect
whistlWhistl
xdpXDP
x_deliveryX Delivery
yanwenYanwen
yellow_freightYellow Freight
yodelYodel
yun_expressYun 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

  1. Customer purchases bundle item on sales channel.
  2. Bundle item appears as a single line item on sales channel.
  3. Bundle item appears as a single line item on Fulfil order.
  4. The customer shipment line includes sub-items (sublines) identified from the BOM for components
  5. 3PL fetches the shipment information with the sub-items as components (see example payload below)
  6. 3PL sends shipping notification to indicate completion of shipment
  7. 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" } ]
Path Params
string
required
Defaults to demo

The merchant_Id (subdomain) of your fulfil instance

Body Params
shipments
array of objects
required

shipments to be marked as shipped

shipments*
Responses

Language
Credentials
URL
Click Try It! to start a request and see the response here! Or choose an example:
application/json