The Direct Shipment Capture (DSC) v2 API allows DSD Suppliers to send details about planned, started, en route, and arrived shipments, to help ensure a more efficient receiving process within a Walmart store.
Endpoints
POST
/direct-store-shipment-events
Mandatory Headers
Name | Description | Required | Sample Value |
---|---|---|---|
wm_consumer.id | Walmart provided unique ID required to access the API. This is the same as the Client ID. | Yes | 5a2b2098-1503-4c95-9753- 574b6e049e8a |
Authorization | The generated Bearer Token. The bearer token expires after 15 minutes. | Yes | CqFm5HjaCa3u7fdXPLpfE6ia sDTIrjDPKgupM6woi... |
Request Body Details
Parameter | Mandatory | Description | Data Type |
---|---|---|---|
message_id | Yes | A unique reference identifier for the message that can be used for tracing API requests. This is a generally a UUID but can be any unique value up to 36 characters. | String |
event_creation_time | Yes | The system time from the supplier of when the event was created, in Epoch format (ms). | Integer |
event_type | Yes | A unique identifier for the type of action that is being taken. Note: Only the events below will be accepted, and they are case sensitive. PLANNED - Use when the shipment is first planned, but has not left the originating facility. STARTED - Use when the shipment leaves the originating facility. ENROUTE - Use when the shipment is en route to a specific Walmart store. ARRIVED - Use when the shipment has arrived at a specific Walmart store. | String |
trailer_number | No | The identifier for the trailer. | String |
drivers | No | Array containing the driver IDs | Array |
destinations | Yes | An array containing information about the Walmart store and the shipment. Only one destination is allowed. | Array |
shipment_delivery_date | Yes | The Date the shipment will arrive at a Walmart store, in YYYY-MM-DD format. | Date |
store_number | Yes | The Walmart store number for the shipment. | String |
loads | Yes | An array containing information about the shipment contents. | Array |
asn | No | The Advance Shipment Notice associated with the load. | String |
pack_number | Yes | The pack or SSCC number which indicates what products are packed together for shipment. | String |
shipment | Yes | An object containing shipment details. | Object |
location_area | Yes | The location where the shipment will be dropped off, e.g. BACKROOM. | String |
pallet_qty | No | The number of pallets associated with the shipment. | Integer |
case_qty | No | The number of cases associated with the shipment. | Integer |
tote_qty | No | The number of totes associated with the shipment. | Integer |
itemization | No | An array of GTINs and quantities associated with the shipment. | Array |
gtin | No | The 14 digit GTIN of the shipped item. | String |
qty | No | The quantity of the shipped GTIN. | Float |
eta_window | Yes (for planned, started, enroute events) | An object that contains the earliest and latest ETAs for the shipment. Only applicable for planned, started, and enroute events. | Object |
earliest_eta | Yes (for planned, started, enroute events) | Earliest possible ETA in UTC format, e.g. 2024-10-17T16:30+0000Z (where "+0000Z" is not changed, i.e. do not provide the timezone offset). Only for planned, started, enroute events. | UTC Date/time |
latest_eta | Yes (for planned, started, enroute events) | Latest possible ETA in UTC format, e.g. 2024-10-17T16:30+0000Z (where "+0000Z" is not changed, i.e. do not provide the timezone offset) Only for planned, started, enroute events. | UTC Date/time |
arrival_time | Yes (for arrived events) | Actual time of the truck arrival in UTC format, e.g. 2024-10-17T16:30+0000Z (where "+0000Z" is not changed, i.e. do not provide the timezone offset). Only for arrived events. | UTC Date/time |
Error Codes
API call attempts have the potential to return a variety of errors. Find common error codes, reasons, and resolution details below.
400 (BAD REQUEST)
Scenario | Reason | Resolution | Response Sample |
---|---|---|---|
Invalid Length | The value of a property is too short or too long. | Please provide a valid property. | { "type": "https://uri.walmart.com/errors/invalid-request", "title": "Request is not well-formed, syntactically incorrect, or violates schema.", "status": 400, "detail": "Invalid request parameters received", "instance": "/inventory/direct-store-shipment-events", "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736", "errors": [ { "code": "https://uri.walmart.com/errors/invalid-property-length", "reason": "The value of a property is too short or too long.", "property": "store_nbr", "location": "body" }, { "code": "https://uri.walmart.com/errors/invalid-property-length", "reason": "The value of a property is too short or too long.", "property": "message_id", "location": "body" } ] } |
Invalid Property | The value of a property is invalid. | Please provide a valid property (a valid store number, for example). | { "type": "https://uri.walmart.com/errors/invalid-request", "title": "Request is not well-formed, syntactically incorrect, or violates schema.", "status": 400, "detail": "Invalid request parameters received", "instance": "/inventory/direct-store-shipment-events", "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736", "errors": [ { "code": "https://uri.walmart.com/errors/invalid-property-value", "reason": "The value of a property is invalid.", "property": "store_number", "location": "body" }, { "code": "https://uri.walmart.com/errors/invalid-property-value", "reason": "The value of a property is invalid.", "property": "message_id", "location": "body" } ] } |
Invalid JSON | The request JSON is not well formed. | Please check the provided JSON and try again. | { "type": "https://uri.walmart.com/errors/invalid-request", "title": "Request is not well-formed, syntactically incorrect, or violates schema.", "status": 400, "instance": "/inventory/direct-store-shipment-events", "trace_id": "1DWEERQS380JKKROY37710937JFL1006", "errors": [ { "code": "https://uri.walmart.com/errors/malformed-request-json", "reason": "The request JSON is not well formed.", "property": "store_number", "location": "body" } ] } |
Missing Required Properties | A required property is missing. | Provide ensure all required properties are sent in the request. | { "type": "https://uri.walmart.com/errors/invalid-request", "title": "Request is not well-formed, syntactically incorrect, or violates schema.", "status": 400, "details": "Invalid request parameters received", "instance": "/inventory/direct-store-shipment-events", "trace_id": "1DWEERQS380JKKROY37710937JFL1006", "errors": [ { "code": "https://uri.walmart.com/errors/missing-required-property", "reason": "A required property is missing.", "property": "store_number", "location": "body" }, { "code": "https://uri.walmart.com/errors/missing-required-property", "reason": "A required property is missing.", "property": "message_id", "location": "body" }, { "code": "https://uri.walmart.com/errors/missing-required-property", "reason": "A required property is missing.", "property": "event_type", "location": "body" } ] } |
401 (UNAUTHORIZED)
Error Message | Reason | Resolution | Response Sample |
---|---|---|---|
Invalid Authorization header. | Invalid authentication token received. | Make sure you are using the correct client credentials. Please generate a new Bearer token. | { "type": "https://uri.walmart.com/errors/authentication-failure", "title": "Authentication failed due to missing Authorization header, or invalid authentication credentials.", "status": 401, "detail": "Invalid authentication token received", "instance": "/inventory/direct-store-shipment-events", "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736" } |
404 (NOT FOUND)
Error Message | Reason | Resolution | Response Sample |
---|---|---|---|
Requested resource does not exist | The provided URL is incorrect. | Please use the correct endpoints. Refer to individual endpoint reference pages. | { "type": "https://uri.walmart.com/errors/resource-not-found", "title": "The specified resource does not exist.", "status": 404, "detail": "Requested resource does not exist", "instance": "/inventory/direct-store-shipment-events", "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736" } |
500 (INTERNAL SERVER ERROR)
Error Message | Reason | Resolution | Response Sample |
---|---|---|---|
Requested action could not be completed. | An invalid request URI. was provided | Please use the correct URI in the call. | { "type": "https://uri.walmart.com/errors/internal-server-error", "title": "An internal server error has occurred.", "status": 500, "detail": "Requested action could not be completed", "instance": "/inventory/direct-store-shipment-events", "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736" } |
©️Walmart | All Rights Reserved | Confidential