Create an inbound shipment order (IO)
After you convert your item for fulfillment via Walmart Fulfillment Service (WFS), you can create an Inbound Order (IO).
To create an Inbound Shipment Order (IO), Call the Create inbound Shipment API: POST /v3/inbound-shipments
.
Specify all required request parameters
To avoid errors, you must provide information in the request to create the IO. Requests require these parameters:
- Create an ID for the shipment request –
inboundOrderId
- Provide a return address to return shipment if needed –
returnAddress
- Updated shipment quantity –
updatedShipmentQty
- Seller’s item ID –
sku
How to prevent common errors
- Ensure you have filled in all required fields in the API request call. The IO cannot be created if the required parameters are missing.
- Verify
productId
contains the correct number of digits depending on which item code you specified forproductType
: GTIN. - Make sure the
shipmentId
is unique for this IO request. If it was used previously, it will return errors.
Shipment Statuses
When you submit your request to create an Inbound Order, you will receive one of these order statuses in the response:
- Pending Shipment Details – Shipment is created but still requires a shipment label or tracking information.
- Awaiting Delivery indicates that the shipment has been created and the shipping label and tracking information have been provided. WFS is waiting for the Shipment to arrive at the warehouse. Shipments remain in this status until the first unit is received. If the carrier states that your shipment has been delivered, but WFS indicates “Awaiting Delivery,” it is likely due to backups at the inbound dock. Always schedule freight appointments with the required documents in advance to avoid backups.
- Receiving in Progress indicates that the shipment has been delivered to the warehouse and the inventory has been filled.
- Closed – Indicates that WFS has fulfilled the IO.
- Canceled – Indicates shipment was canceled and will not be sent to the WFS warehouse.
Example: Inbound shipment request
A successful request to create an inbound shipment:
{ "inboundOrderId": "32414541542", "returnAddress": { "addressLine1": "860 W California Ave", "addressLine2": "", "city": "Sunnyvale", "stateCode": "CA", "countryCode": "US", "postalCode": "94086" }, "orderItems": [ { "productId": "231263112312", "productType": "UPC", "sku": "VV-631", "itemDesc": "Blue jeans", "itemQty": 123, "vendorPackQty": 123, "innerPackQty": 1, "expectedDeliveryDate": "2020-05-19T00:00:00.000Z" }, { "productId": "1213223423131", "productType": "EAN", "sku": "VV-234", "itemDesc": "Google mini", "itemQty": 22, "vendorPackQty": 2, "innerPackQty": 11, "expectedDeliveryDate": "2020-05-25T00:00:00.000Z" } ]
}
Example: Inbound Order Response
Upon success, the API returns a response with the status “OK.”
HTTP/1.1 200 OK
Content-Length: xxx
Content-Type: application/json; charset=utf-8 { "status": "OK", "payload": [ { "shipmentId": "2312355646", "shipToAddress": { "addressLine1": "860 W California Ave", "addressLine2": "", "city": "Sunnyvale", "stateCode": "CA", "countryCode": "US", "postalCode": "94086" }, "shipmentItems": [ { "sku": "VV-631", "itemQty": 123 } ] } ]
}
Example: Inbound Shipment Response with Errors
If the API request fails, you will get the errors returned with FAIL status:
HTTP/1.1 400 BAD REQUEST
Content-Length: xxx
Content-Type: application/json; charset=utf-8
Error Response { "status": "FAIL", "errors": [ { "code": "400.INBOUND_SHIPMENTS.100", "field": "vendorSku", "description": "vendorSku cannot be null or empty", "severity": "ERROR", "category": "REQUEST", "errorIdentifiers": {} } ]
}
How does WFS decide which fulfillment center to send my Inbound Order?
WFS has an allocation engine to determine network capacity for order fulfillment and sends your Inbound Order to the FC that can handle the shipment request.
Why is there a different expected delivery date in the response?
WFS may change the expected delivery date depending on the Fulfillment center capacity. You might see a different entry in the response for expectedDeliveryDate
than what you provided in the request.
Check for IO errors and resubmit the IO request
To check for errors, call the Inbound Shipment Errors API.
After you correct any errors in the Inbound Order, resubmit the request with the same Inbound Order ID: inboundOrderId
.
Updated about 1 month ago