Download OpenAPI specification:
Logistics operations API for the 4klyft platform.
This API provides comprehensive endpoints for managing:
All API endpoints (except /api/docs and /api/v1/iam/auth/*) require JWT Bearer token authentication.
Include the token in the Authorization header:
Authorization: Bearer <your-jwt-token>
API requests are rate-limited to ensure fair usage. Standard limits are:
A resource that can be placed on a shipment line — the read surface behind the shipment "shippable picker".
Aggregated across every upstream provider (Inventory serial units/batches, Warehousing goods movements, Sales sales orders, Fulfilment orders…) by the {@see \Glacia\Shipping\Application\Shippable\ShippableCatalog}. Each shippable is addressed by an opaque ResourceUri ({@see $reference}); Shipping never leaks the providing module's typed IDs.
Return the event-by-event lifecycle/audit timeline for a package, oldest first.
| id required | string <uuid> Parcel UUID |
| page | integer Default: 1 The collection page number |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "entryId": "string",
- "type": "string",
- "occurredAt": "string",
- "by": "string",
- "summary": "string"
}
]
}Retrieve all shipment lines packed into a specific package.
| packageId required | string <uuid> ParcelResource identifier |
| page | integer Default: 1 |
| itemsPerPage | integer Default: 50 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "packageId": "string",
- "shipmentLineId": "string",
- "quantity": 0
}
]
}Retrieve a paginated list of parcels with optional filters.
| status | string Enum: "pending" "manifested" "dispatched" "delivered" "failed" "returned" "damaged" "lost" |
| shipmentId | string |
| routeId | string Filter to parcels whose shipment is scheduled on this route. |
| page | integer Default: 1 |
| itemsPerPage | integer Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}
]
}Create a parcel
The new Parcel resource
| shipmentId required | string <= 255 characters |
| barcode required | string <= 128 characters |
| weightGrams | integer > 0 |
| requiresSignature | boolean Default: false |
| description | string or null <= 500 characters |
{- "shipmentId": "string",
- "barcode": "string",
- "weightGrams": 0,
- "requiresSignature": false,
- "description": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Retrieve a single parcel by its barcode. Returns 404 when no parcel carries the barcode.
| barcode required | string Parcel barcode |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Retrieve a single parcel by its ID.
| id required | string Parcel identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Report parcel as damaged
| id required | string Parcel identifier |
The new Parcel resource
| description required | string <= 1000 characters |
{- "description": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Mark parcel as delivered
| id required | string Parcel identifier |
The new Parcel resource
| deliveryMethod required | string Default: "delivered_to_recipient" Enum: "delivered_to_recipient" "left_at_door" "left_with_neighbour" "delivery_box" "reception" "other" |
| recipientName | string or null <= 255 characters |
| note | string or null <= 1000 characters |
{- "deliveryMethod": "delivered_to_recipient",
- "recipientName": "string",
- "note": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Dispatch parcel onto vehicle
| id required | string Parcel identifier |
The new Parcel resource
| dispatchedAt |
{- "dispatchedAt": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Mark parcel delivery as failed
| id required | string Parcel identifier |
The new Parcel resource
| reason required | string Default: "other" Enum: "recipient_absent" "refused" "address_not_found" "access_denied" "damaged" "other" |
| note | string or null <= 500 characters |
{- "reason": "recipient_absent",
- "note": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Replace the parcel handling: the data-carrying hazmat/temperature requirements plus the pure-marker set (fragile, keep_upright, oversized, signature_required).
| id required | string Parcel identifier |
The updated Parcel resource
HazmatInput (object) or null | |
TemperatureInput (object) or null | |
| markers | Array of strings Pure handling markers on the parcel. |
{- "hazmat": {
- "hazmatClass": "",
- "unNumber": "string",
- "packingGroup": "string"
}, - "temperature": {
- "min": 0,
- "max": 0,
- "unit": "C"
}, - "markers": [
- "string"
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Stream the rendered parcel label as an attachment. Use ?format=pdf (default) or ?format=zpl.
| id required | string Parcel identifier |
| format | string Default: "pdf" Enum: "pdf" "zpl" |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Add a shipment line to a parcel
| id required | string Parcel identifier |
The new Parcel resource
| lineId required | string Default: "" |
| quantity | integer > 0 Default: 1 |
{- "lineId": "",
- "quantity": 1
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Remove a shipment line from a parcel
| id required | string Parcel identifier |
| lineId required | string Parcel identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Confirm parcel is lost
| id required | string Parcel identifier |
The new Parcel resource
| reason required | string <= 500 characters |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Manifest parcel to route
| id required | string Parcel identifier |
The new Parcel resource
| routeId required | string |
{- "routeId": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Replace the physical dimensions (L/W/H in mm) and weight (grams) of a parcel.
| id required | string Parcel identifier |
The updated Parcel resource
| lengthMm | integer >= 0 Default: 0 |
| widthMm | integer >= 0 Default: 0 |
| heightMm | integer >= 0 Default: 0 |
| weightGrams | integer >= 0 Default: 0 |
{- "lengthMm": 0,
- "widthMm": 0,
- "heightMm": 0,
- "weightGrams": 0
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Return parcel to depot
| id required | string Parcel identifier |
The new Parcel resource
| reason required | string <= 500 characters Default: "Returned to depot" |
{- "reason": "Returned to depot"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Remove parcel from route
| id required | string Parcel identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "barcode": "string",
- "status": "pending",
- "routeId": "string",
- "weightGrams": 0,
- "dimensions": {
- "lengthMm": 300,
- "widthMm": 200,
- "heightMm": 150
}, - "hazmat": {
- "hazmatClass": "3",
- "unNumber": "UN1993",
- "packingGroup": "II"
}, - "temperature": {
- "min": 2,
- "max": 8,
- "unit": "C"
}, - "handlingMarkers": "[\"fragile\", \"signature_required\"]",
- "description": "string",
- "dispatchedAt": "string",
- "deliveredAt": "string",
- "failedAt": "string",
- "failureReason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "label": {
- "number": "GLRPK00000000134",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/parcels/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Retrieve a paginated list of shipments with optional filters. Supports filtering by status, type, route, and date range.
| status | string Enum: "pending" "scheduled" "in_transit" "out_for_delivery" "delivered" "failed" "lost" "damaged" "refused" "cancelled" Example: status=pending Filter by shipment status |
| type | string Enum: "ftl" "ltl" Example: type=ftl Filter by shipment type |
| direction | string Enum: "outbound" "inbound" "transfer" "intra_warehouse" Example: direction=inbound Filter by direction-of-flow (outbound, inbound, transfer, intra_warehouse) |
| originalShipmentId | string <uuid> Example: originalShipmentId=01912345-6789-7abc-def0-123456789abc Filter returns by original shipment UUID |
| routeId | string <uuid> Example: routeId=01912345-6789-7abc-def0-123456789abc Filter by assigned route UUID |
| clientId | string <uuid> Example: clientId=01912345-6789-7abc-def0-123456789abc Filter by owning shipping client UUID |
| trackingNumber | string Example: trackingNumber=TRK-2024 Search by tracking number (partial match) |
| scheduledDateFrom | string <date> Example: scheduledDateFrom=2024-01-01 Filter shipments scheduled from this date |
| scheduledDateTo | string <date> Example: scheduledDateTo=2024-12-31 Filter shipments scheduled up to this date |
| page | integer >= 1 Default: 1 Example: page=1 Page number for pagination |
| itemsPerPage | integer [ 1 .. 100 ] Default: 30 Example: itemsPerPage=30 Number of items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}
]
}Create a new shipment in pending status. The shipment can then be scheduled to a route for delivery.
Shipment creation data
| clientId required | string Shipping Client UUID (the client to bill) |
| type required | string Enum: "ftl" "ltl" Type of shipment |
| direction | string Default: "outbound" Enum: "outbound" "inbound" "transfer" "intra_warehouse" Direction-of-flow (defaults to outbound) |
| reference | string or null <= 100 characters External tracking/reference number |
| serviceLevel | string or null Enum: "standard" "express" "same_day" "next_day" Service level |
| handlingRequirements | Array of strings Items Enum: "fragile" "refrigerated" "hazardous" "oversized" Handling requirements |
object or null | |
object or null | |
object or null Pickup-location coordinates (grouped per Rule 21) | |
object or null | |
object or null | |
object or null Delivery-location coordinates (grouped per Rule 21) | |
| notes | string or null |
| billingSubject | string or null |
Array of objects |
{- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "type": "ltl",
- "direction": "outbound",
- "reference": "string",
- "serviceLevel": "standard",
- "handlingRequirements": [
- "fragile"
], - "pickupAddress": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string",
- "streetLine2": "string",
- "province": "string"
}, - "pickupContact": {
- "name": "string",
- "phone": "string",
- "email": "string"
}, - "pickupCoordinates": {
- "latitude": -90,
- "longitude": -180
}, - "deliveryAddress": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string",
- "streetLine2": "string",
- "province": "string"
}, - "deliveryContact": {
- "name": "string",
- "phone": "string",
- "email": "string"
}, - "deliveryCoordinates": {
- "latitude": -90,
- "longitude": -180
}, - "notes": "string",
- "billingSubject": "string",
- "lines": [
- {
- "shippableRef": "string",
- "quantity": 1,
- "trackingMode": "quantity",
- "weightGrams": 0,
- "description": "string"
}
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Returns the most-urgent open shipments bucketed by SLA urgency (overdue, at_risk, unassigned, scheduled_ahead) and ranked most → least urgent. Delivered/cancelled/terminal shipments are excluded.
| limit | integer [ 1 .. 200 ] Default: 50 Example: limit=50 Maximum number of shipments to return (top-N) |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "shipmentId": "01912345-6789-7abc-def0-123456789abc",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Brooklyn, NY 11201",
- "bucket": "overdue",
- "urgencyRank": 0,
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "handlingRequirements": "[\"fragile\"]",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "status": "pending",
- "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}
}
]
}Retrieve a single shipment by its UUID. Returns full shipment details including sender, recipient, and delivery information.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Shipment UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Update delivery address
| id required | string Shipment identifier |
The new Shipment resource
required | ShipmentAddressInput (object) or null |
ShipmentContactInput (object) or null | |
| instructions | string or null |
{- "deliveryAddress": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "st",
- "streetLine2": "string",
- "province": "string"
}, - "contact": {
- "name": "string",
- "phone": "string",
- "email": "string"
}, - "instructions": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Cancel a pending or scheduled shipment. Shipments that are in transit or delivered cannot be cancelled.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Shipment UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Set delivery availability window
| id required | string Shipment identifier |
The new Shipment resource
required | Array of objects (AvailabilitySlotInput) |
{- "slots": [
- {
- "days": [
- 0
], - "dates": [
- "string"
], - "timeWindow": "string",
- "effectiveRange": {
- "start": "string",
- "end": "string"
}
}
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Clear delivery availability window
| id required | string Shipment identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Assign a shipment to a carrier and route it to fulfilment. INTERNAL (own-fleet) carriers schedule the shipment onto the supplied routeRef — this requires the Routing module enabled and an active internal carrier, otherwise a 409 is returned. EXTERNAL carriers hand the shipment off to the provider integration.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Shipment UUID |
Carrier and (for internal dispatch) routing information
| carrierId required | string <uuid> Carrier UUID to dispatch to |
| routeRef | string or null Route reference to schedule onto (required for internal carriers) |
| scheduledDate | string or null <date> Scheduled date for internal dispatch (defaults to today) |
{- "carrierId": "01912345-6789-7abc-def0-123456789abc",
- "routeRef": "string",
- "scheduledDate": "2019-08-24"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Stream the rendered shipment label as an attachment. Use ?format=pdf (default) or ?format=zpl.
| id required | string <uuid> Shipment identifier |
| format | string Default: "pdf" Enum: "pdf" "zpl" |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Render and persist the in-house shipment label plus one parcel label per package. Idempotent — re-invoking leaves any live (non-voided) labels untouched.
| id required | string Shipment identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Void any live shipment + parcel labels and render fresh ones.
| id required | string Shipment identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Void the live label on the shipment and each of its packages. The voided labels are retained for audit.
| id required | string Shipment identifier |
The new Shipment resource
| reason required | string <= 500 characters Default: "" |
{- "reason": ""
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Add a line item to shipment
| id required | string Shipment identifier |
The new Shipment resource
| shippableRef | string or null <= 500 characters Opaque ResourceUri of the shippable this line references (managed line). |
| quantity | integer > 0 |
| trackingMode | string Default: "quantity" Enum: "quantity" "lot" "serial" |
| weightGrams | integer or null >= 0 |
| description | string or null |
{- "shippableRef": "string",
- "quantity": 0,
- "trackingMode": "quantity",
- "weightGrams": 0,
- "description": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Preferred delivery endpoint — enforces that the caller has captured a POD (status signed or refused) before transitioning the shipment to delivered. Links the POD to the shipment for audit.
| id required | string <uuid> Shipment UUID |
Delivery data referencing the captured POD
| podId required | string <uuid> UUID of a Pod with status "signed" or "refused" |
| deliveredAt | string or null <date-time> |
| outcome | string or null Enum: "delivered" "refused" |
| deliveryMethod | string or null Enum: "delivered_to_recipient" "delivered_to_third_party" "left_in_mailbox" "kept_in_safe_place" "other" |
| receiverName | string or null |
| note | string or null |
{- "podId": "8963ae67-4a9c-404a-b889-2c6d0c10530e",
- "deliveredAt": "2019-08-24T14:15:22Z",
- "outcome": "delivered",
- "deliveryMethod": "delivered_to_recipient",
- "receiverName": "string",
- "note": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Queue asynchronous rendering of the shipment as a packing-slip Document (default PDF). Returns immediately (202) with a QueueJobResponse; track progress and download on the /api/operations feed (its JobItem shares the returned jobId).
| id required | string <uuid> Shipment identifier |
The new Shipment resource
| format | string Default: "pdf" Enum: "pdf" "html" Output format for the packing slip. |
{- "format": "pdf"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "jobId": "",
- "kind": "",
- "title": "",
- "status": "pending",
- "subjectRef": "string"
}Set pickup availability window
| id required | string Shipment identifier |
The new Shipment resource
required | Array of objects (AvailabilitySlotInput) |
{- "slots": [
- {
- "days": [
- 0
], - "dates": [
- "string"
], - "timeWindow": "string",
- "effectiveRange": {
- "start": "string",
- "end": "string"
}
}
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Clear pickup availability window
| id required | string Shipment identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Toggle the requirePhoto flag — when true, the POD captured for this shipment must include at least one photo before the shipment can be marked delivered.
| id required | string <uuid> Shipment UUID |
POD policy update
| requirePhoto required | boolean Whether the captured POD must include at least one photo |
{- "requirePhoto": true
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Schedule a pending shipment to a route for delivery. The shipment will be assigned to a node on the specified route.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Shipment UUID |
Scheduling information
| routeId required | string <uuid> Route UUID to assign the shipment to |
| nodeId | string or null <uuid> Optional specific node UUID to assign to |
{- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "nodeId": "01912345-6789-7abc-def0-123456789abc"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Last-write-wins: the supplied SLA dates fully replace any prior commitments. Omitting all dates clears the SLA. All dates are optional ISO-8601 datetime strings.
| id required | string <uuid> Shipment UUID |
SLA / delivery-date commitments
| requestedDeliveryAt | string or null <date-time> |
| deliverByAt | string or null <date-time> |
| shipByAt | string or null <date-time> |
| expiresAt | string or null <date-time> |
{- "requestedDeliveryAt": "2019-08-24T14:15:22Z",
- "deliverByAt": "2019-08-24T14:15:22Z",
- "shipByAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Update shipment status
| id required | string Shipment identifier |
The new Shipment resource
| status required | string Enum: "in_transit" "out_for_delivery" "delivered" "failed" "lost" "damaged" "refused" "cancelled" |
| reason | string or null |
| deliveryMethod | string or null |
| receiverName | string or null |
| deliveryNote | string or null |
{- "status": "in_transit",
- "reason": "string",
- "deliveryMethod": "string",
- "receiverName": "string",
- "deliveryNote": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Remove a shipment from its assigned route. The shipment will return to pending status and can be scheduled to a different route.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Shipment UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Retrieve all line items belonging to a specific shipment.
| shipmentId required | string <uuid> ShipmentResource identifier |
| page | integer Default: 1 |
| itemsPerPage | integer Default: 50 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "shipmentId": "string",
- "shippableRef": "string",
- "quantity": 0,
- "status": "string",
- "trackingMode": "string",
- "weightGrams": 0,
- "description": "string",
- "createdAt": "string"
}
]
}Proof of Delivery resource.
Captures digital proof (signature or refusal) for a shipment delivery attempt.
Capture a proof of delivery for a shipment
Shipment to capture proof for
| shipmentId required | string <uuid> |
{- "shipmentId": "47efd5a2-af91-4417-950a-7f546cd1b5cf"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "shipmentId": "string",
- "status": "pending",
- "recipientName": "string",
- "outcome": "recipient",
- "proofDocumentRef": "string",
- "capturedAt": "string",
- "latitude": 0,
- "longitude": 0,
- "refusalReason": "string",
- "notes": "string",
- "photoDocumentRefs": [
- "string"
], - "photoUrls": [
- "string"
], - "createdAt": "string",
- "updatedAt": "string"
}Get the proof of delivery for a shipment
| shipmentId required | string <uuid> Shipment UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "shipmentId": "string",
- "status": "pending",
- "recipientName": "string",
- "outcome": "recipient",
- "proofDocumentRef": "string",
- "capturedAt": "string",
- "latitude": 0,
- "longitude": 0,
- "refusalReason": "string",
- "notes": "string",
- "photoDocumentRefs": [
- "string"
], - "photoUrls": [
- "string"
], - "createdAt": "string",
- "updatedAt": "string"
}Get a proof of delivery record
| id required | string <uuid> Pod UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "shipmentId": "string",
- "status": "pending",
- "recipientName": "string",
- "outcome": "recipient",
- "proofDocumentRef": "string",
- "capturedAt": "string",
- "latitude": 0,
- "longitude": 0,
- "refusalReason": "string",
- "notes": "string",
- "photoDocumentRefs": [
- "string"
], - "photoUrls": [
- "string"
], - "createdAt": "string",
- "updatedAt": "string"
}Attach a photo document to a pod
| id required | string <uuid> Pod identifier |
Photo document reference
| documentId required | string <uuid> |
{- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "shipmentId": "string",
- "status": "pending",
- "recipientName": "string",
- "outcome": "recipient",
- "proofDocumentRef": "string",
- "capturedAt": "string",
- "latitude": 0,
- "longitude": 0,
- "refusalReason": "string",
- "notes": "string",
- "photoDocumentRefs": [
- "string"
], - "photoUrls": [
- "string"
], - "createdAt": "string",
- "updatedAt": "string"
}Record a delivery refusal
| id required | string <uuid> Pod identifier |
Refusal data
| reason required | string |
| refusedAt required | string <date-time> |
| latitude | number or null |
| longitude | number or null |
| notes | string or null |
{- "reason": "string",
- "refusedAt": "2019-08-24T14:15:22Z",
- "latitude": 0,
- "longitude": 0,
- "notes": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "shipmentId": "string",
- "status": "pending",
- "recipientName": "string",
- "outcome": "recipient",
- "proofDocumentRef": "string",
- "capturedAt": "string",
- "latitude": 0,
- "longitude": 0,
- "refusalReason": "string",
- "notes": "string",
- "photoDocumentRefs": [
- "string"
], - "photoUrls": [
- "string"
], - "createdAt": "string",
- "updatedAt": "string"
}Record a signed delivery proof
| id required | string <uuid> Pod identifier |
Signature data
| recipientName required | string |
| signatureData required | string Base64-encoded signature |
| capturedAt required | string <date-time> |
| outcome | string or null Enum: "recipient" "third_party" "mailbox" "safe_place" "other" Delivery outcome |
| latitude | number or null |
| longitude | number or null |
| notes | string or null |
{- "recipientName": "string",
- "signatureData": "string",
- "capturedAt": "2019-08-24T14:15:22Z",
- "outcome": "recipient",
- "latitude": 0,
- "longitude": 0,
- "notes": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "shipmentId": "string",
- "status": "pending",
- "recipientName": "string",
- "outcome": "recipient",
- "proofDocumentRef": "string",
- "capturedAt": "string",
- "latitude": 0,
- "longitude": 0,
- "refusalReason": "string",
- "notes": "string",
- "photoDocumentRefs": [
- "string"
], - "photoUrls": [
- "string"
], - "createdAt": "string",
- "updatedAt": "string"
}Generate a shipment barcode
The new ShipmentBarcode resource
| number | string The generated shipment barcode |
| type | string Resource type |
| barcode | string or null GS1-128 barcode (if applicable) |
| generatedAt | string Generation timestamp (ISO 8601) |
{- "number": "SHP000000001",
- "type": "routing.shipment_barcode",
- "barcode": "string",
- "generatedAt": "2026-02-15T10:30:00+00:00"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "number": "SHP000000001",
- "type": "routing.shipment_barcode",
- "barcode": "string",
- "generatedAt": "2026-02-15T10:30:00+00:00"
}Represents a shipment moving through the logistics pipeline.
Shipments are assigned to routes for delivery and track the full lifecycle from creation to delivery.
Types:
Returns the carrier provider registry that drives the carrier-creation picker.
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "type": "ups",
- "label": "UPS",
- "capabilities": [
- "rate"
], - "serviceLevels": [
- "GROUND",
- "NEXT_DAY_AIR"
], - "coverage": [
- "US",
- "CA"
], - "credentialFields": [
- {
- "key": "clientId",
- "label": "Client ID",
- "type": "text",
- "required": true,
- "help": "string"
}
], - "supportedScopes": [
- "platform"
], - "allowsManualConfiguration": false
}
]
}Returns only whether a shared account is configured. The secret config is never returned.
| type required | string CarrierPlatformCredential identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "type": "ups",
- "configured": true
}Validates the supplied credentials against the provider's credential-field schema and stores them encrypted. Write-only — the secret is never echoed back.
| type required | string CarrierPlatformCredential identifier |
The updated CarrierPlatformCredential resource
object Provider credential config/secrets keyed by the provider's declared credential-field keys. Write-only — never returned. |
{- "credentials": {
- "apiKey": "sk_live_xxx",
- "accountNumber": "123456"
}
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "type": "ups",
- "configured": true
}Retrieve a paginated list of external shipping providers.
| page | integer Default: 1 The collection page number |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "code": "UPS-PRIMARY",
- "name": "UPS",
- "type": "ups",
- "isInternal": false,
- "credentialScope": "platform",
- "environment": "sandbox",
- "status": "active",
- "capabilities": [
- "rate"
], - "serviceLevels": [
- "GROUND",
- "NEXT_DAY_AIR"
], - "coverage": [
- "US",
- "CA",
- "GB"
], - "createdAt": "string",
- "updatedAt": "string"
}
]
}Register an external carrier
The new Carrier resource
| code required | string [ 2 .. 64 ] characters |
| type required | string Default: "custom" Enum: "ups" "dhl" "fedex" "usps" "sendcloud" "custom" "internal" |
| credentialScope | string or null Value: "tenant" Credential model — |
| environment | string Default: "sandbox" Enum: "sandbox" "production" Provider environment — "sandbox" (test upstream, the default) or "production" (live upstream). Opting into production is deliberate. |
object BYO provider keys/secrets/config — required only for tenant scope. | |
| name | string or null <= 255 characters Display name — required for the custom provider, inherited otherwise. |
| capabilities | Array of strings Capabilities — custom provider only. |
| coverage | Array of strings Coverage as ISO 3166-1 alpha-2 country codes — custom provider only. |
{- "code": "string",
- "type": "ups",
- "credentialScope": "tenant",
- "environment": "sandbox",
- "credentials": {
- "property1": "string",
- "property2": "string"
}, - "name": "string",
- "capabilities": [
- "string"
], - "coverage": [
- "string"
]
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "code": "UPS-PRIMARY",
- "name": "UPS",
- "type": "ups",
- "isInternal": false,
- "credentialScope": "platform",
- "environment": "sandbox",
- "status": "active",
- "capabilities": [
- "rate"
], - "serviceLevels": [
- "GROUND",
- "NEXT_DAY_AIR"
], - "coverage": [
- "US",
- "CA",
- "GB"
], - "createdAt": "string",
- "updatedAt": "string"
}Get an external carrier
| id required | string Carrier identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "code": "UPS-PRIMARY",
- "name": "UPS",
- "type": "ups",
- "isInternal": false,
- "credentialScope": "platform",
- "environment": "sandbox",
- "status": "active",
- "capabilities": [
- "rate"
], - "serviceLevels": [
- "GROUND",
- "NEXT_DAY_AIR"
], - "coverage": [
- "US",
- "CA",
- "GB"
], - "createdAt": "string",
- "updatedAt": "string"
}Update an external carrier
| id required | string Carrier identifier |
The updated Carrier resource
| name | string [ 2 .. 255 ] characters |
| type | string Default: "custom" Enum: "ups" "dhl" "fedex" "usps" "custom" "internal" |
| capabilities | Array of strings |
| serviceLevels | Array of strings |
| coverage | Array of strings |
| environment | string or null Enum: "sandbox" "production" Provider environment — "sandbox" or "production". Omit to leave unchanged. |
{- "name": "string",
- "type": "ups",
- "capabilities": [
- "string"
], - "serviceLevels": [
- "string"
], - "coverage": [
- "string"
], - "environment": "sandbox"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "code": "UPS-PRIMARY",
- "name": "UPS",
- "type": "ups",
- "isInternal": false,
- "credentialScope": "platform",
- "environment": "sandbox",
- "status": "active",
- "capabilities": [
- "rate"
], - "serviceLevels": [
- "GROUND",
- "NEXT_DAY_AIR"
], - "coverage": [
- "US",
- "CA",
- "GB"
], - "createdAt": "string",
- "updatedAt": "string"
}Activate an external carrier
| id required | string Carrier identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "code": "UPS-PRIMARY",
- "name": "UPS",
- "type": "ups",
- "isInternal": false,
- "credentialScope": "platform",
- "environment": "sandbox",
- "status": "active",
- "capabilities": [
- "rate"
], - "serviceLevels": [
- "GROUND",
- "NEXT_DAY_AIR"
], - "coverage": [
- "US",
- "CA",
- "GB"
], - "createdAt": "string",
- "updatedAt": "string"
}Deactivate an external carrier
| id required | string Carrier identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "code": "UPS-PRIMARY",
- "name": "UPS",
- "type": "ups",
- "isInternal": false,
- "credentialScope": "platform",
- "environment": "sandbox",
- "status": "active",
- "capabilities": [
- "rate"
], - "serviceLevels": [
- "GROUND",
- "NEXT_DAY_AIR"
], - "coverage": [
- "US",
- "CA",
- "GB"
], - "createdAt": "string",
- "updatedAt": "string"
}Cancel a dispatched shipment's carrier label with the provider and void it on the shipment (clears the provider parcel id, tracking number, and label).
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Shipment UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "type": "ftl",
- "direction": "outbound",
- "clientId": "01912345-6789-7abc-def0-123456789abc",
- "clientName": "Riverside Retail Ltd",
- "status": "pending",
- "routeId": "01912345-6789-7abc-def0-123456789abc",
- "routeCode": "ROUTE-2024-001",
- "trackingNumber": "TRK-2024-001234",
- "senderName": "Acme Corporation",
- "senderAddress": "123 Business Ave, Suite 100, New York, NY 10001",
- "recipientName": "John Smith",
- "recipientAddress": "456 Main Street, Apt 2B, Brooklyn, NY 11201",
- "scheduledDate": "2024-06-15",
- "serviceLevel": "standard",
- "carrierName": "UPS",
- "carrierType": "ups",
- "packageCount": 3,
- "grossWeightGrams": 12500,
- "declaredHandlingRequirements": "[\"fragile\", \"refrigerated\"]",
- "effectiveHandlingRequirements": "[\"fragile\", \"refrigerated\", \"hazardous\"]",
- "requestedDeliveryAt": "2024-06-15T17:00:00+00:00",
- "deliverByAt": "2024-06-16T17:00:00+00:00",
- "shipByAt": "2024-06-14T12:00:00+00:00",
- "slaExpiresAt": "2024-06-20T00:00:00+00:00",
- "notes": "Handle with care",
- "billingSubject": "INV-2024-001",
- "subject": "glacia:///sales/orders/01912345-6789-7abc-def0-123456789abc",
- "controlMode": "unassigned",
- "compositionMode": "standalone",
- "deliveredAt": "2024-06-15T14:30:00+00:00",
- "createdAt": "2024-06-10T09:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00",
- "returnDetails": {
- "reason": "damaged",
- "method": "pickup",
- "condition": "new"
}, - "originalShipmentId": "01912345-6789-7abc-def0-123456789abc",
- "originalShipmentNumber": "string",
- "podId": "01912345-6789-7abc-def0-123456789abc",
- "requirePhoto": false,
- "providerParcelId": "parcel_01HXYZ",
- "providerStatus": "in_transit",
- "pickupCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "deliveryCoordinates": {
- "latitude": 52.3676,
- "longitude": 4.9041
}, - "label": {
- "number": "SHIP-001",
- "status": "generated",
- "formats": "[\"pdf\", \"zpl\"]",
- "downloadUrl": "/api/v1/shipping/shipments/0192.../label",
- "generatedAt": "string",
- "expiresAt": "string"
}
}Fetch live rate quotes for a shipment from a carrier (carrierId query parameter, required).
| serviceLevel required | string CarrierRate identifier |
| page | integer Default: 1 The collection page number |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "serviceLevel": "GROUND",
- "amount": 595,
- "currency": "EUR",
- "estimatedTransitDays": 2
}
]
}A shipping client — a first-class customer that LINKS to an existing Partner (billing/contact entity) and layers shipping-specific defaults on top: preferred pickup/delivery addresses, billing terms, service level, and handling requirements.
Tenant-managed reference data. The linked partner is immutable once set.
Retrieve a paginated list of shipping clients.
| page | integer Default: 1 The collection page number |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "Acme Corp",
- "status": "active",
- "accountReference": "string",
- "defaultServiceLevel": "standard",
- "defaultHandlingRequirements": [
- "fragile"
], - "defaultPickupAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "defaultDeliveryAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "billingTerms": {
- "netDays": 30,
- "currency": "EUR",
- "paymentMethod": "string"
}, - "createdAt": "string",
- "updatedAt": "string"
}
]
}Register a shipping client for an existing partner
The new Client resource
| partnerId required | string <= 100 characters The existing Partner this client wraps. |
| accountReference | string or null <= 128 characters |
| defaultServiceLevel | string or null Enum: "standard" "express" "same_day" "next_day" |
| defaultHandlingRequirements | Array of strings |
ShipmentAddressInput (object) or null | |
ShipmentContactInput (object) or null | |
ShipmentCoordinatesInput (object) or null | |
ShipmentAddressInput (object) or null | |
ShipmentContactInput (object) or null | |
ShipmentCoordinatesInput (object) or null | |
ClientBillingTermsInput (object) or null |
{- "partnerId": "string",
- "accountReference": "string",
- "defaultServiceLevel": "standard",
- "defaultHandlingRequirements": [
- "string"
], - "pickupAddress": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "st",
- "streetLine2": "string",
- "province": "string"
}, - "pickupContact": {
- "name": "string",
- "phone": "string",
- "email": "string"
}, - "pickupCoordinates": {
- "latitude": -90,
- "longitude": -180
}, - "deliveryAddress": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "st",
- "streetLine2": "string",
- "province": "string"
}, - "deliveryContact": {
- "name": "string",
- "phone": "string",
- "email": "string"
}, - "deliveryCoordinates": {
- "latitude": -90,
- "longitude": -180
}, - "billingTerms": {
- "netDays": 0,
- "currency": "str",
- "paymentMethod": "string"
}
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "Acme Corp",
- "status": "active",
- "accountReference": "string",
- "defaultServiceLevel": "standard",
- "defaultHandlingRequirements": [
- "fragile"
], - "defaultPickupAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "defaultDeliveryAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "billingTerms": {
- "netDays": 30,
- "currency": "EUR",
- "paymentMethod": "string"
}, - "createdAt": "string",
- "updatedAt": "string"
}Get a shipping client
| id required | string Client identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "Acme Corp",
- "status": "active",
- "accountReference": "string",
- "defaultServiceLevel": "standard",
- "defaultHandlingRequirements": [
- "fragile"
], - "defaultPickupAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "defaultDeliveryAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "billingTerms": {
- "netDays": 30,
- "currency": "EUR",
- "paymentMethod": "string"
}, - "createdAt": "string",
- "updatedAt": "string"
}Update a shipping client profile
| id required | string Client identifier |
The updated Client resource
| accountReference | string or null <= 128 characters |
| defaultServiceLevel | string or null Enum: "standard" "express" "same_day" "next_day" |
| defaultHandlingRequirements | Array of strings |
ShipmentAddressInput (object) or null | |
ShipmentContactInput (object) or null | |
ShipmentCoordinatesInput (object) or null | |
ShipmentAddressInput (object) or null | |
ShipmentContactInput (object) or null | |
ShipmentCoordinatesInput (object) or null | |
ClientBillingTermsInput (object) or null |
{- "accountReference": "string",
- "defaultServiceLevel": "standard",
- "defaultHandlingRequirements": [
- "string"
], - "pickupAddress": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "st",
- "streetLine2": "string",
- "province": "string"
}, - "pickupContact": {
- "name": "string",
- "phone": "string",
- "email": "string"
}, - "pickupCoordinates": {
- "latitude": -90,
- "longitude": -180
}, - "deliveryAddress": {
- "street": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "st",
- "streetLine2": "string",
- "province": "string"
}, - "deliveryContact": {
- "name": "string",
- "phone": "string",
- "email": "string"
}, - "deliveryCoordinates": {
- "latitude": -90,
- "longitude": -180
}, - "billingTerms": {
- "netDays": 0,
- "currency": "str",
- "paymentMethod": "string"
}
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "Acme Corp",
- "status": "active",
- "accountReference": "string",
- "defaultServiceLevel": "standard",
- "defaultHandlingRequirements": [
- "fragile"
], - "defaultPickupAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "defaultDeliveryAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "billingTerms": {
- "netDays": 30,
- "currency": "EUR",
- "paymentMethod": "string"
}, - "createdAt": "string",
- "updatedAt": "string"
}Activate a shipping client
| id required | string Client identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "Acme Corp",
- "status": "active",
- "accountReference": "string",
- "defaultServiceLevel": "standard",
- "defaultHandlingRequirements": [
- "fragile"
], - "defaultPickupAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "defaultDeliveryAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "billingTerms": {
- "netDays": 30,
- "currency": "EUR",
- "paymentMethod": "string"
}, - "createdAt": "string",
- "updatedAt": "string"
}Deactivate a shipping client
| id required | string Client identifier |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "partnerId": "string",
- "partnerName": "Acme Corp",
- "status": "active",
- "accountReference": "string",
- "defaultServiceLevel": "standard",
- "defaultHandlingRequirements": [
- "fragile"
], - "defaultPickupAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "defaultDeliveryAddress": {
- "street": "1 Market St",
- "streetLine2": "string",
- "city": "Springfield",
- "province": "string",
- "postalCode": "12345",
- "countryCode": "US",
- "contactName": "string",
- "contactPhone": "string",
- "instructions": "string",
- "latitude": 0,
- "longitude": 0
}, - "billingTerms": {
- "netDays": 30,
- "currency": "EUR",
- "paymentMethod": "string"
}, - "createdAt": "string",
- "updatedAt": "string"
}