When a customer completes checkout, you can create a partial shipment in nShift Checkout. A partial shipment contains the delivery choice (carrier/service, pickup point, etc.), but it still needs to be completed (booked) in nShift Ship to generate shipment numbers and labels.
Overview
This is the typical end-to-end flow:
- Create a partial shipment in Checkout (Checkout API).
- Book the shipment in nShift Ship using the Post Shipment request to produce labels and a shipment number.
Step 1: Create the partial shipment in Checkout
After the customer selects a delivery option, create a partial shipment using the Checkout API documentation: Create Partial Shipment.
Important: Make sure you store the identifier you will use later to locate the order/shipment. This is typically the orderID.
Step 3: Complete the shipment by booking it in nShift Ship
To finish a partial shipment, you book it using the Post Shipment method in the Ship API. This creates/books the shipment and returns the shipping label.
| Important note: You must have the ShipAdvisor Import activated on your Ship setup to complete partial shipments from Checkout. Without this Ship is not able to match the orderID with the partial shipment from Checkout. The ShipAdvisor Import setup item must be activated by nShift Customer Service for API and Cloud customers. |
What you need to include to book successfully
A booked shipment requires a complete shipment “data object” (receiver, carrier product/service, parcels/weights, etc.). The following is required, but only the information not included in the partial shipment is needed to complete the shipment. In practice, the partial shipment (from Checkout) usually does not contain everything needed to complete the booking.
- OrderID: added in Options, it retrieves the data from the partial shipment from Checkout
-
Carrier service:
ProdConceptID -
Order number:
OrderNo -
Addresses: receiver (
Kind: 1) and sender (Kind: 2) -
Packages / lines: for example weights/dimensions in
Lines - Goodstypes: required by some carriers
-
Label format options: for example
"Labels": "ZPLGK" - Customs details: needed when sending across customs borders
Each carrier has its own specifications and requirements - read more here: Identifying required fields when booking shipments
For more details on booking a shipment, see How to - Book a Shipment
Sample request (single package)
This example demonstrates a shipment that includes address information. Typically, address details are part of the partial shipment from Checkout and are not required, but some carriers may need extra information depending on their requirements.
curl -s -X POST "{{URL}}/ShipServer/{{ACTOR_ID}}/Shipments" \
-H "Authorization: {{TOKEN}}" \
-H "Content-Type: application/json" \
--data-raw "{
\"data\": {
\"OrderNo\": \"Test Shipment 1\",
\"Addresses\": [{
\"Kind\": 1,
\"Name1\": \"Test Receiver Name1\",
\"Street1\": \"Test Road 1\",
\"PostCode\": 7400,
\"City\": \"Herning\",
\"CountryCode\": \"DK\",
\"Phone\": \"12341234\",
\"Mobile\": \"12341234\",
\"Email\": \"noreply@nshift.com\",
\"Attention\": \"Test Attention\"
},{
\"Kind\": 2,
\"Name1\": \"Test Sender Name1\",
\"Street1\": \"Test Road 1\",
\"PostCode\": 6400,
\"City\": \"Sønderborg\",
\"CountryCode\": \"DK\",
\"Phone\": \"12341234\",
\"Mobile\": \"12341234\",
\"Email\": \"noreply@nshift.com\",
\"Attention\": \"Test Attention\"
}],
\"Lines\":[{
\"Number\": 1,
\"PkgWeight\": 10000,
\"Height\": 100,
\"Length\": 100,
\"Width\": 100,
\"GoodsTypeID\": 13
}]
},
\"options\": { \"Labels\": \"ZPLGK\" \"OrderID\":\"order123\" }
}"
What you get back
The response includes shipment identifiers (e.g., shipment number) and label/document content that you can print or forward to downstream systems.
Flowchart illustrating a Checkout integration with nShift Ship: