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 orders
  • ALL - ALL - Returns both regular and draft orders (default in v1.2)

Examples

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.

Example: Looking Up Orders by Shopify ID
# 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 object
  • GET /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:

Example Response
{
  "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

v1.2 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 present
  • GET /api/v1/orders/:order_id - Order detail now includes addon_statuses array when X-API-Version: 1.1 header is present
  • GET /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:

Response Changes
{
  "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:

Status Classification
{
  "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:

v1.1 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/orders
  • GET /api/v1/orders/:order_id
  • POST /api/v1/orders/:order_id/status
  • POST /api/v1/orders/status-bulk
  • GET /api/v1/statuses
  • GET /api/v1/statuses/:status_id
  • POST /api/v1/orders/:order_id/notify
  • POST /api/v1/orders/notify-bulk

Notes:

Does not include addon status support