Sync Inventory
Used by retailers or 3PL providers to synchronize inventory quantities for one or more SKUs at a specific fulfillment center.
Request Body — InventorySyncRequest
- Name
tenantCode- Type
- string
- Description
Retailer tenant code.
- Name
fulfillmentCentreId- Type
- string
- Description
Fulfillment center identifier.
- Name
provider- Type
- string
- Description
Inventory provider/system name.
- Name
items- Type
- array<InventorySyncItem>
- Description
Lines of inventory to upsert at this FC.
InventorySyncItem
- Name
sku- Type
- string
- Description
SKU to update.
- Name
variantProductCode- Type
- string
- Description
Optional variant code.
- Name
upc- Type
- string
- Description
Optional UPC code.
- Name
ean- Type
- string
- Description
Optional EAN code.
- Name
size- Type
- string
- Description
Size descriptor.
- Name
color- Type
- string
- Description
Color descriptor.
- Name
articleStatus- Type
- string
- Description
One of
Expected|Active|Quarantine|Suspended.
- Name
quantity- Type
- integer
- Description
Available quantity at this FC.
Request
curl -X POST "https://logistics-fulfillment-api.test.eshopworld.net/v1/Inventory/Sync" \
-H "Content-Type: application/json" \
-d '{
"tenantCode": "GOCAS",
"fulfillmentCentreId": "AGVAGV-ES-001",
"provider": "mirolog",
"items": [
{
"sku": "ABC-BLUE-XL-12345",
"variantProductCode": "60433",
"upc": "036000291452",
"ean": "4006381333931",
"size": "L",
"color": "Black",
"articleStatus": "Active",
"quantity": 10
}
]
}'
Response (400 Bad Request) — ValidationProblemDetails
{
"errors": {
"FulfillmentCentreId": [
"The FulfillmentCentreId field is required."
],
"Provider": [
"The Provider field is required."
]
},
"type": "https://httpstatuses.com/400",
"title": "One or more validation errors occurred.",
"status": 400,
"detail": "Validation failed for one or more fields.",
"traceId": "00-0403053dcf6dc794b02b09b0ca3ef956-e6eda743157a8d75-0"
}
Submit Advanced Shipping Notice (ASN)
Notify the system when an order is shipped. Includes package, carrier, and item-level details.
Request Body — AdvancedShippingNoticeRequest
- Name
shipmentId- Type
- string
- Description
Optional shipment identifier.
- Name
eswOrderReference- Type
- string
- Description
ESW order reference.
- Name
shipmentDateTime- Type
- string
- Description
ISO-8601 timestamp.
- Name
shipmentStatus- Type
- string
- Description
One of
Unshipped|PartiallyShipped|Shipped.
- Name
shipFrom- Type
- ShipmentLocation
- Description
Ship-from location.
- Name
carrierId- Type
- string
- Description
Carrier identifier.
- Name
packageReference- Type
- string
- Description
Optional package reference.
- Name
carrierSCAC- Type
- string
- Description
SCAC code.
- Name
carrierReference- Type
- string
- Description
Carrier tracking/reference.
- Name
packageWeight- Type
- PackageWeight
- Description
Package weight.
- Name
packageDimensions- Type
- PackageDimensions
- Description
Package dimensions.
- Name
items- Type
- array<ShipmentItem>
- Description
Item-level shipment details.
ShipmentLocation
- Name
name- Type
- string
- Description
Location name.
- Name
locationCode- Type
- string
- Description
Location code (e.g., FC identifier).
PackageWeight
- Name
weight- Type
- number
- Description
Numeric weight.
- Name
weightUnit- Type
- string
- Description
One of
KG|LB.
PackageDimensions
- Name
length- Type
- number
- Description
Length.
- Name
width- Type
- number
- Description
Width.
- Name
height- Type
- number
- Description
Height.
- Name
dimensionUnit- Type
- string
- Description
One of
IN|CM.
ShipmentItem
- Name
sku- Type
- string
- Description
SKU code.
- Name
quantityOrdered- Type
- integer
- Description
Ordered quantity.
- Name
quantityShipped- Type
- integer
- Description
Shipped quantity.
- Name
unitOfMeasure- Type
- string
- Description
Unit of measure.
- Name
itemStatus- Type
- string
- Description
One of
Shipped.
Request
curl -X POST "https://logistics-fulfillment-api.test.eshopworld.net/v1/PickPack/AdvancedShippingNotice" \
-H "Content-Type: application/json" \
-d '{
"shipmentId": "SHIP123456789",
"eswOrderReference": "ORD987654321",
"shipmentDateTime": "2025-11-10T16:12:07.4399847+00:00",
"shipmentStatus": "Shipped",
"shipFrom": { "name": "Main Fulfillment Center", "locationCode": "AGVAGV-GB-001" },
"carrierId": "1015",
"packageReference": null,
"carrierSCAC": "FDXE",
"carrierReference": "DHL1234567890",
"packageWeight": { "weight": 12.5, "weightUnit": "KG" },
"packageDimensions": { "length": 30.0, "width": 25.5, "height": 15.0, "dimensionUnit": "CM" },
"items": [
{ "sku": "SKU123456", "quantityOrdered": 3, "quantityShipped": 3, "unitOfMeasure": "EA", "itemStatus": "Shipped" },
{ "sku": "SKU789012", "quantityOrdered": 2, "quantityShipped": 1, "unitOfMeasure": "BOX", "itemStatus": "Shipped" }
]
}'
Response (400 Bad Request) — ValidationProblemDetails
{
"errors": {
"ShipmentDateTime": [
"ShipmentDateTime is required.",
"ShipmentDateTime must be a valid ISO 8601 timestamp."
]
},
"type": "https://httpstatuses.com/400",
"title": "One or more validation errors occurred.",
"status": 400,
"detail": "Validation failed for one or more fields.",
"traceId": "00-0403053dcf6dc794b02b09b0ca3ef956-e6eda743157a8d75-0"
}
Confirm Pick & Pack
Used by a 3PL to confirm that an order has been picked, packed, and is ready for shipment. Includes timestamps and item-level results.
Request Body — PickPackConfirm
- Name
confirmationId- Type
- string
- Description
Confirmation identifier.
- Name
confirmationDateTime- Type
- string
- Description
ISO-8601 timestamp of confirmation.
- Name
eswOrderReference- Type
- string
- Description
ESW order reference.
- Name
tenantCode- Type
- string
- Description
Retailer tenant code.
- Name
pickPackResponse- Type
- PickPackResponse
- Description
Provider response payload.
PickPackResponse
- Name
status- Type
- string
- Description
One of
AcceptedForProcessing|PartiallyConfirmedByProvider|Confirmed|Failed|BadRequest|BadAddress|TimeOut.
- Name
failureReason- Type
- string
- Description
One of
None|TransientError|NotFound|BadAddress|TimeOut|_3PLNotConfigured|CancelledItem|OperationalCancel|Damaged|ReallocatedExclude|EndOfDay.
- Name
problemMessage- Type
- string
- Description
Optional message.
- Name
itemsResult- Type
- array<ItemProviderResponse>
- Description
Item-level confirmations.
ItemProviderResponse
- Name
productCode- Type
- string
- Description
Product code.
- Name
quantityConfirmed- Type
- integer
- Description
Confirmed quantity.
- Name
status- Type
- string
- Description
One of
Created|Success|Failed|PartialSuccess.
- Name
problemMessage- Type
- string
- Description
Optional message.
Request
curl -X POST "https://logistics-fulfillment-api.test.eshopworld.net/v1/PickPack/Confirm" \
-H "Content-Type: application/json" \
-d '{
"confirmationId": "556223225",
"confirmationDateTime": "2025-11-10T16:12:07.3514889+00:00",
"eswOrderReference": "6658874585",
"tenantCode": "GOCAS",
"pickPackResponse": {
"status": "PartiallyConfirmedByProvider",
"failureReason": "None",
"problemMessage": null,
"itemsResult": [
{ "productCode": "W-FD7090-NBL-M", "quantityConfirmed": 20, "status": "Success", "problemMessage": null },
{ "productCode": "W-M9779-BLK-S", "quantityConfirmed": 0, "status": "Failed", "problemMessage": "OutOfStock" }
]
}
}'
Response (400 Bad Request) — ValidationProblemDetails
{
"errors": {
"TenantCode": [
"The TenantCode field is required."
]
},
"type": "https://httpstatuses.com/400",
"title": "One or more validation errors occurred.",
"status": 400,
"detail": "Validation failed for one or more fields.",
"traceId": "00-0403053dcf6dc794b02b09b0ca3ef956-e6eda743157a8d75-0"
}