Package Tracking
4 API calls in this section.
Track Package by Tracking Number
/express-shipping/order/track/GL1706371234567?language=enAPI: Track Package by Tracking Number Endpoint: GET /express-shipping/order/track/{tracking_number} Purpose: Retrieve detailed package information by tracking number. Returns package status, payment information, and delivery details. Authentication: - Bearer token: Authorization: Bearer {{access_token}} (required) - API Key: X-API-Key: {{api_key}} (alternative authentication method) Path Parameters: - tracking_number (string, required): Package tracking number (format: GL followed by timestamp, e.g., GL1706371234567) Query Parameters: - language (optional): Preferred language for response messages (en, ar, ku) Business Logic: 1. Validate tenant has active express shipping service 2. Locate package using the provided tracking number 3. Verify access permissions (tenant-scoped) 4. Return comprehensive package information Package Status Values: - claimed - Package claimed by customer, pending pickup - received - Package received at facility - in_transit - Package in transit to destination - in_transit_international - Package in international transit - in_warehouse - Package at local warehouse - out_for_delivery - Package out for delivery - delivered - Package delivered to customer - exception - Delivery exception occurred Payment Status Values: - pending - Payment not yet made - paid - Payment completed - failed - Payment failed - refunded - Payment refunded Error Responses: 400 - Missing Tracking Number: 404 - Package Not Found: 403 - Access Denied: 500 - Internal Server Error:
1curl --request GET "$ONDI_BASE_URL/express-shipping/order/track/GL1706371234567?language=en" \2 --header "X-EXPRESS-KEY: {{express_access_token}}"Query parameters
languageOptionalen
Preferred language for response messages (en, ar, ku)
Headers
X-EXPRESS-KEYOptional{{express_access_token}}
Short-lived JWT from OTP verification (required)
Responses
1{2 "success": true,3 "data": {4 "tracking_number": "GL1706371234567",5 "order_id": "TREND-ORD-98765",6 "status": "in_transit",7 "payment_status": "paid",8 "declared_value": 125.5,9 "currency": "USD",10 "store_name": "Trendyol",11 "quantity": 3,12 "weight": 350,13 "delivery_fee": 15,14 "claimed_at": "2024-01-27T10:00:00Z",15 "created_at": "2024-01-27T10:00:00Z",16 "last_updated": "2024-01-28T14:30:00Z"17 }18}1{2 "success": false,3 "message": "Package with tracking number GL9999999999999 not found"4}1{2 "success": false,3 "message": "Missing required parameter: tracking_number"4}1{2 "success": false,3 "message": "Package with tracking number GL1706371234567 not found"4}1{2 "success": false,3 "message": "Access denied. Package does not belong to your account."4}1{2 "success": false,3 "message": "Failed to retrieve package details. Please try again."4}Track Package by Order ID
/express-shipping/order/track-by-order/TREND-ORD-98765?language=enAPI: Track Package by Order ID Endpoint: GET /express-shipping/order/track-by-order/{order_id} Purpose: Retrieve minimal package tracking information by order ID. Returns current status, status history, payment status, claimed_at, and store_name. Authentication: - Bearer token: Authorization: Bearer {{access_token}} (required) Path Parameters: - order_id (string, required): Store order identifier (e.g., TREND-ORD-98765) Error Responses: 400 - Missing Order ID: 404 - Package Not Found: 403 - Express Shipping Not Configured:
1curl --request GET "$ONDI_BASE_URL/express-shipping/order/track-by-order/TREND-ORD-98765?language=en" \2 --header "Authorization: Bearer {{access_token}}"Query parameters
languageOptionalen
Preferred language for response messages (en, ar, ku)
Headers
AuthorizationOptionalBearer {{access_token}}
Bearer token authentication (required)
Responses
1{2 "success": true,3 "data": {4 "status": "claimed",5 "status_history": [],6 "payment_status": "pending",7 "claimed_at": "2024-01-15T10:30:00Z",8 "store_name": "Trendyol"9 }10}1{2 "success": false,3 "message": "Package with order_id TREND-ORD-99999 not found"4}1{2 "success": false,3 "message": "Missing required parameter: order_id"4}1{2 "success": false,3 "message": "Express shipping service is not configured for this tenant"4}List Customer Packages
/express-shipping/order/customer/GAL1704067200000?customer_id=GAL1704067200000&language=en&limit=20&offset=0API: List Customer Packages Endpoint: GET /express-shipping/order/customer/{customer_id} Purpose: Retrieve a list of all packages for a specific customer. Supports pagination and filtering. Authentication: - Bearer token: Authorization: Bearer {{access_token}} (required) - API Key: X-API-Key: {{api_key}} (alternative authentication method) Path Parameters: - customer_id (string, required): Customer identifier in the URL path Query Parameters: - language (string, optional): Preferred language for response messages (en, ar, ku) - limit (integer, optional): Maximum number of packages to return (default: 50, max: 100) - offset (integer, optional): Number of packages to skip for pagination (default: 0) - status (string, optional): Filter by package status (claimed, received, in_transit, delivered, etc.) Business Logic: 1. Validate tenant has active express shipping service 2. Verify customer exists and access permissions 3. Apply pagination and filtering 4. Return list of customer packages with summary information Error Responses: 400 - Missing Customer ID: 400 - Invalid Pagination: 404 - Customer Not Found: 500 - Internal Server Error:
1curl --request GET "$ONDI_BASE_URL/express-shipping/order/customer/GAL1704067200000?customer_id=GAL1704067200000&language=en&limit=20&offset=0" \2 --header "Authorization: Bearer {{access_token}}"Query parameters
customer_idOptionalGAL1704067200000
Customer identifier (required)
languageOptionalen
Preferred language for response messages (en, ar, ku)
limitOptional20
Maximum number of packages to return (default: 50, max: 100)
offsetOptional0
Number of packages to skip for pagination (default: 0)
Headers
AuthorizationOptionalBearer {{access_token}}
Bearer token authentication (required)
Responses
1{2 "success": true,3 "data": {4 "packages": [5 {6 "tracking_number": "GL1706371234567",7 "order_id": "TREND-ORD-98765",8 "status": "in_transit",9 "payment_status": "paid",10 "declared_value": 125.5,11 "currency": "USD",12 "store_name": "Trendyol",13 "claimed_at": "2024-01-27T10:00:00Z",14 "created_at": "2024-01-27T10:00:00Z"15 },16 {17 "tracking_number": "GL1706371234568",18 "order_id": "AMZN-ORD-12345",19 "status": "delivered",20 "payment_status": "paid",21 "declared_value": 89.99,22 "currency": "USD",23 "store_name": "Amazon",24 "claimed_at": "2024-01-25T08:30:00Z",25 "created_at": "2024-01-25T08:30:00Z"26 }27 ],28 "total": 2,29 "limit": 20,30 "offset": 0,31 "has_more": false32 }33}1{2 "success": true,3 "data": {4 "packages": [],5 "total": 0,6 "limit": 20,7 "offset": 0,8 "has_more": false9 }10}1{2 "success": false,3 "message": "Missing required parameter: customer_id"4}1{2 "success": false,3 "message": "Invalid pagination parameters. Limit must be between 1 and 100."4}1{2 "success": false,3 "message": "Customer not found with ID: GAL1704067200000"4}1{2 "success": false,3 "message": "Failed to retrieve customer packages. Please try again."4}List All Packages with Pagination and Search
/express-shipping/order/list?page=1&limit=20&search=GL123&customer_id=GAL1704067200000&status=claimed&payment_status=pending&language=enAPI: List All Packages with Pagination and Search Endpoint: GET /express-shipping/order/list Purpose: Retrieve all packages for a tenant with comprehensive filtering, search, and pagination capabilities. Ideal for admin dashboards and package management interfaces. Authentication: - Bearer token: Authorization: Bearer {{access_token}} (required) - API Key: X-API-Key: {{api_key}} (alternative authentication method) Query Parameters: - page (integer, optional): Page number for pagination (default: 1) - limit (integer, optional): Maximum number of packages per page (default: 20, max: 100) - search (string, optional): Search by tracking number or order ID (case-insensitive partial match) - customer_id (string, optional): Filter by specific customer ID - status (string, optional): Filter by package status (claimed, received, in_transit, delivered, etc.) - payment_status (string, optional): Filter by payment status (pending, paid, failed, refunded) - language (string, optional): Preferred language for response messages (en, ar, ku) Business Logic: 1. Validate tenant has active express shipping service 2. Apply all filters and search criteria 3. Execute paginated query with proper sorting (newest first) 4. Include customer information for each package 5. Return comprehensive package list with pagination metadata Error Responses: 400 - Invalid Pagination: 403 - Express Shipping Not Configured: 404 - Customer Not Found (when filtering by customer_id): 500 - Internal Server Error: Usage Examples: 1. List all packages (first page): GET /express-shipping/order/list-all 2. Search by tracking number: GET /express-shipping/order/list-all?search=GL123 3. Filter by customer: GET /express-shipping/order/list-all?customer_id=GAL1704067200000 4. Filter by status: GET /express-shipping/order/list-all?status=claimed 5. Combine filters with pagination: GET /express-shipping/order/list-all?status=claimed&search=TREND&page=2&limit=10 6. Filter by payment status: GET /express-shipping/order/list-all?payment_status=pending&limit=50
1curl --request GET "$ONDI_BASE_URL/express-shipping/order/list?page=1&limit=20&search=GL123&customer_id=GAL1704067200000&status=claimed&payment_status=pending&language=en" \2 --header "Authorization: Bearer {{access_token}}"Query parameters
pageOptional1
Page number for pagination (default: 1)
limitOptional20
Maximum number of packages per page (default: 20, max: 100)
searchOptionalGL123
Search by tracking number or order ID (optional)
customer_idOptionalGAL1704067200000
Filter by specific customer ID (optional)
statusOptionalclaimed
Filter by package status (optional)
payment_statusOptionalpending
Filter by payment status (optional)
languageOptionalen
Preferred language for response messages (en, ar, ku)
Headers
AuthorizationOptionalBearer {{access_token}}
Bearer token authentication (required)
Responses
1{2 "success": true,3 "data": {4 "packages": [5 {6 "tracking_number": "GL1706371234567",7 "order_id": "TREND-ORD-98765",8 "status": "claimed",9 "payment_status": "pending",10 "declared_value": 125.5,11 "currency": "USD",12 "store_name": "Trendyol",13 "weight": 1500,14 "quantity": 3,15 "claimed_at": "2024-01-27T10:00:00Z",16 "created_at": "2024-01-27T10:00:00Z",17 "updated_at": "2024-01-28T14:30:00Z",18 "customer": {19 "customer_id": "GAL1704067200000",20 "name": "John Doe",21 "email": "john@example.com",22 "phone": "+964751234567"23 }24 },25 {26 "tracking_number": "GL1706371234568",27 "order_id": "AMZN-ORD-12345",28 "status": "delivered",29 "payment_status": "paid",30 "declared_value": 89.99,31 "currency": "USD",32 "store_name": "Amazon",33 "weight": 800,34 "quantity": 1,35 "claimed_at": "2024-01-25T08:30:00Z",36 "created_at": "2024-01-25T08:30:00Z",37 "updated_at": "2024-01-26T12:15:00Z",38 "customer": {39 "customer_id": "GAL1704067200001",40 "name": "Jane Smith",41 "email": "jane@example.com",42 "phone": "+964751234568"43 }44 }45 ],46 "pagination": {47 "page": 1,48 "limit": 20,49 "total": 150,50 "total_pages": 851 }52 }53}1{2 "success": true,3 "data": {4 "packages": [5 {6 "tracking_number": "GL1234567890123",7 "order_id": "TREND-ORD-12345",8 "status": "in_transit",9 "payment_status": "paid",10 "declared_value": 75.25,11 "currency": "USD",12 "store_name": "Trendyol",13 "weight": 1200,14 "quantity": 2,15 "claimed_at": "2024-01-26T15:45:00Z",16 "created_at": "2024-01-26T15:45:00Z",17 "updated_at": "2024-01-27T09:20:00Z",18 "customer": {19 "customer_id": "GAL1704067200002",20 "name": "Ahmed Al-Mahmoud",21 "email": "ahmed@example.com",22 "phone": "+964751234569"23 }24 }25 ],26 "pagination": {27 "page": 1,28 "limit": 10,29 "total": 1,30 "total_pages": 131 }32 }33}1{2 "success": true,3 "data": {4 "packages": [],5 "pagination": {6 "page": 1,7 "limit": 20,8 "total": 0,9 "total_pages": 010 }11 }12}1{2 "success": false,3 "message": "Invalid pagination parameters. Page must be >= 1 and limit must be between 1 and 100."4}1{2 "success": false,3 "message": "Express shipping service is not configured for this tenant"4}1{2 "success": false,3 "message": "Customer not found with ID: GAL1704067200000"4}1{2 "success": false,3 "message": "Failed to retrieve packages. Please try again."4}