API Changelog (v1.2)
Track all changes to the Ultimate Custom Order Status API
Version Naming Convention
The API uses a two-tier versioning system:
Major Versions (URL-based)
Major versions with breaking changes require a URL change:
/api/v1/*- Version 1.x/api/v2/*- Version 2.x (future)
Minor Versions (Header-based)
Minor versions with backward-compatible changes use the X-API-Version header:
X-API-Version: 1.0- Version 1.0 (baseline, no addon support)X-API-Version: 1.1- Version 1.1 (current, includes addon support)X-API-Version: 1.2- Version 1.2 (future features)
Support
For questions about API versioning or migration assistance:
Email: support@msmtech.ca
Documentation: API Reference
v1.2 - December 2025
Release Date: December 9, 2025
Access Method: Default (no header required) or X-API-Version: 1.2
New Features
Draft Order Filtering
Added ability to filter orders by type (regular orders, draft orders, or all). Draft orders can now be managed alongside regular orders in the API.
Affected Endpoints:
GET /api/v1/orders- Orders list now supports order_type query parameter (REGULAR, DRAFT, ALL)GET /api/v1/orders/:order_id- Order lookup now automatically detects draft vs regular orders when using Shopify IDs
List Orders Changes
New query parameter order_type allows filtering by order type:
REGULAR- REGULAR - Returns only regular orders (default in v1.0/v1.1)DRAFT- DRAFT - Returns only draft ordersALL- ALL - Returns both regular and draft orders (default in v1.2)
Examples
# Get all orders (both regular and draft) - v1.2 default
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders?order_type=ALL" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.2"
# Get only regular orders
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders?order_type=REGULAR" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.2"
# Get only draft orders
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders?order_type=DRAFT" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.2"Get Order Changes
When using use_shopify_order_id=true, the API now automatically tries both regular and draft order ID formats, making integration easier.
# Look up a draft order by Shopify ID - v1.2 automatically tries both formats
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders/1234567890?use_shopify_order_id=true" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.2"Holiday Skipping
Added skip_holidays flag to status max_duration configuration. When enabled, holidays will be excluded when calculating status duration deadlines, similar to the existing skip_weekends feature.
Affected Endpoints:
GET /api/v1/statuses- Statuses list now includes skip_holidays in max_duration objectGET /api/v1/statuses/:status_id- Status detail now includes skip_holidays in max_duration object
Response Changes
Status responses now include the skip_holidays field in the max_duration object:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Fulfillment",
"color": "#2948ff",
"is_independent": false,
"is_addon": false,
"max_duration": {
"enabled": true,
"seconds": 432000,
"skip_weekends": true,
"skip_holidays": true,
"show_public_overdue_date": true
}
}Migration Guide
- Add X-API-Version: 1.2 header to use this version explicitly
- The order_type parameter is optional - defaults to ALL in v1.2
- Shopify ID lookups now work for both regular and draft orders without changes
- The skip_holidays field is now available in status max_duration configurations
- Fully backward compatible - existing integrations continue to work
Example Request
curl -X GET "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders?order_type=DRAFT" \
-H "X-API-Key: your_api_key_here" \
-H "X-API-Version: 1.2"Breaking Changes
None - this is a backward-compatible release. The default behavior of order_type changed from REGULAR to ALL, but this is additive (returns more data, not less).
v1.1 - November 2025
Release Date: November 14, 2025
Access Method: Default (no header required) or X-API-Version: 1.1
New Features
Addon Status Support
Added support for addon statuses across all order-related endpoints. Addon statuses can be assigned alongside primary statuses.
Affected Endpoints:
GET /api/v1/orders- Orders list now includes addon_statuses array when X-API-Version: 1.1 header is presentGET /api/v1/orders/:order_id- Order detail now includes addon_statuses array when X-API-Version: 1.1 header is presentGET /api/v1/statuses- Statuses list now includes is_addon flag when X-API-Version: 1.1 header is present
Response Changes
Orders now include an addon_statuses field with optional sub-status support:
{
"id": "uuid",
"status": {
"id": "status-uuid",
"name": "Processing",
"color": "#2948ff"
},
"addon_statuses": [
{
"id": "addon-uuid-1",
"name": "Quality Check",
"color": "#10b981",
"sub_status": {
"id": "addon-sub-uuid",
"name": "Passed"
}
},
{
"id": "addon-uuid-2",
"name": "Packaging",
"color": "#f59e0b",
"sub_status": null
}
]
}Statuses now include classification flags:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Processing",
"is_independent": false,
"is_addon": false
}Migration Guide
- No code changes required - fully backward compatible
- Requests without a version header automatically use the latest version
- To use an older version, explicitly specify it with the X-API-Version header
- No changes required to authentication or rate limiting
Example Request:
curl -X GET 'https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders' \
-H 'Authorization: Bearer ucos_live_your_api_key' \
-H 'X-API-Version: 1.1'Breaking Changes
None - this is a backward-compatible release.
v1.0 - Initial Release
Release Date: October 2025
Access Method: Add X-API-Version: 1.0 header to requests
Features
- Order listing with pagination, filtering, and search
- Order detail retrieval
- Status listing with sub-status support
- Order status updates
- Bulk operations support
- Notification triggering
Available Endpoints:
GET /api/v1/ordersGET /api/v1/orders/:order_idPOST /api/v1/orders/:order_id/statusPOST /api/v1/orders/status-bulkGET /api/v1/statusesGET /api/v1/statuses/:status_idPOST /api/v1/orders/:order_id/notifyPOST /api/v1/orders/notify-bulk
Notes:
Does not include addon status support