Get Order Status
Query the current status and status history of a specific order using its unique order number.
GET
/shipment/client/order-status/:unique_order_numberThis endpoint allows you to get the order status by passing the unique_order_number as a parameter in the URL.
Headers
| Parameter | Type | Required | Description |
|---|---|---|---|
Authorization | string | β Yes | Bearer token obtained from /token/generate endpoint |
Examples
- cURL
- JavaScript
- Python
curl -X GET https://apisandbox.eonwms.com/shipment/client/order-status/TESTORDER01 \
-H "Authorization: Bearer YOUR_TOKEN"
const uniqueOrderNumber = 'TESTORDER01';
const response = await fetch(
`https://apisandbox.eonwms.com/shipment/client/order-status/${uniqueOrderNumber}`,
{
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
}
);
const orderStatus = await response.json();
console.log('Current status:', orderStatus.data.find(s => s.current).status);
import requests
unique_order_number = 'TESTORDER01'
response = requests.get(
f'https://apisandbox.eonwms.com/shipment/client/order-status/{unique_order_number}',
headers={
'Authorization': 'Bearer YOUR_TOKEN'
}
)
order_status = response.json()
# Get current status
current_status = next(s for s in order_status['data'] if s['current'])
print(f"Current status: {current_status['status']}")
Responses
200Success - Order status obtained
{
"shipment": {
"uniqueOrderNumber": "order18",
"masterTrackingNumber": "390450842353",
"shippingService": "FEDEX"
},
"data": [
{
"id": 1,
"status": "PLACED",
"shipment_id": 1,
"current": false,
"date": null,
"time": null,
"created_at": "2022-11-10T02:07:46.474-06:00",
"updated_at": "2022-11-10T02:19:08.457-06:00"
},
{
"id": 2,
"status": "READY",
"shipment_id": 1,
"current": false,
"date": null,
"time": null,
"created_at": "2022-11-10T02:19:08.476-06:00",
"updated_at": "2023-01-10T13:48:51.966-06:00"
},
{
"id": 9,
"status": "Shipment information sent to FedEx",
"shipment_id": 1,
"current": true,
"date": "2022-11-10",
"time": "2000-01-01T02:19:00.000-06:00",
"created_at": "2023-01-10T13:48:51.982-06:00",
"updated_at": "2023-02-08T16:44:01.727-06:00"
}
]
}
401Unauthorized - Invalid token
{
"v": "EON_V2.0",
"fault": {
"arguments": {
"Authorization": "invalid"
},
"type": "InvalidAuthorizationException",
"message": "The request is unauthorized, the access token is invalid."
}
}
422Unprocessable Entity - Invalid order number
{
"fault": {
"error": "invalid_unique_order_number",
"error_description": "The unique order number is invalid."
}
}
Response Structureβ
Shipment Informationβ
The shipment object contains:
- uniqueOrderNumber: Your unique order number
- masterTrackingNumber: Carrier's master tracking number
- shippingService: Shipping service used
Status Historyβ
The data array contains the complete status history, where each object includes:
- id: Unique status identifier
- status: Status description
- current: Boolean indicating if this is the current status
- date: Date when the change occurred (YYYY-MM-DD format)
- time: Time of the change
- created_at: Record creation timestamp
- updated_at: Last update timestamp
Possible Order Statusesβ
Fulfillment Statusesβ
| Status | Description |
|---|---|
PLACED | Order received and registered |
READY | Stock confirmed, ready for fulfillment |
PICKED | Products collected from warehouse |
PACKED | Order packed |
SHIPPED | Sent to carrier |
Carrier Statusesβ
Once the order is shipped, you'll receive carrier-specific statuses, for example:
- "Shipment information sent to FedEx"
- "In transit"
- "Out for delivery"
- "Delivered"
Practical Usage Exampleβ
// Function to check if an order was shipped
async function checkShipment(uniqueOrderNumber) {
const response = await fetch(
`https://apisandbox.eonwms.com/shipment/client/order-status/${uniqueOrderNumber}`,
{
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
}
);
const data = await response.json();
const statuses = data.data;
// Check if SHIPPED status exists
const shipped = statuses.some(status =>
status.status === 'SHIPPED' ||
status.status.includes('sent to')
);
if (shipped) {
console.log(`Order ${uniqueOrderNumber} was shipped`);
console.log(`Tracking number: ${data.shipment.masterTrackingNumber}`);
} else {
const currentStatus = statuses.find(s => s.current);
console.log(`Current status: ${currentStatus.status}`);
}
}
Status Monitoring
You can use this endpoint to:
- Create a notification system when status changes
- Display order progress to your customers
- Detect orders that need attention (e.g., stuck in a status for too long)
Query Frequency
- We recommend not querying more than once per minute per order
- For real-time monitoring, consider implementing webhooks
- Carrier statuses may have a 15-30 minute delay