How to update order tracking status using Shopify API

Topic summary

A developer is building a dropship management application and needs to mark order items as fulfilled while adding tracking numbers via the Shopify API once shipping labels are generated.

Solution provided:

  • Use Shopify’s Fulfillment API to create fulfillments for specific line items
  • Include tracking details: tracking_company, tracking_number, tracking_url, and notify_customer flag
  • The API endpoint is POST /admin/api/2023-04/orders/{order_id}/fulfillments.json

Key implementation notes:

  • Reference line item IDs from the original order to fulfill specific products
  • Use recognized carrier names for tracking_company or default to “Other”
  • The newer Fulfillment Orders API supports multiple tracking numbers per fulfillment
  • Setting notify_customer: true triggers automatic tracking notifications to customers

Additional suggestion: Third-party tracking apps like ParcelPanel can handle the customer-facing tracking experience automatically once tracking numbers are pushed via API, eliminating the need to build custom branded tracking pages.

A code example and link to official Shopify Fulfillments API documentation were provided.

Summarized with AI on October 24. AI used: claude-sonnet-4-5-20250929.

Hi there!
We are building an application to manage dropship purchases and need to update order tracking status once our system generates a shipping label.
So there, through the Shopify API, the relevant items should be marked as fulfilled and the Tracking number from the generated label should be added as part of the fulfillment.

Like this

Hey @ironpro,

Shopify’s Fulfillment API is what you’ll use to mark items fulfilled and attach tracking info. The general flow looks like this:

  1. Create a fulfillment for the order (or specific line items).

    POST /admin/api/2023-04/orders/{order_id}/fulfillments.json
    {
      "fulfillment": {
        "line_items": [
          { "id": 123456789 }
        ],
        "tracking_company": "UPS",
        "tracking_number": "1Z12345E0205271688",
        "tracking_url": "https://wwwapps.ups.com/WebTracking?track=yes&trackNums=1Z12345E0205271688",
        "notify_customer": true
      }
    }
    
  2. Shopify will then update the order status, send tracking notifications (if notify_customer is true), and display the tracking in the customer’s account.

A couple of notes:

  • Use the line item IDs from the order to mark specific products fulfilled.

  • tracking_company should match a supported carrier name; otherwise, use "Other".

  • You can attach multiple tracking numbers with the newer Fulfillment Orders API if needed.

If you’re mainly trying to spare yourself building the branded tracking layer, that’s where an app like ParcelPanel Order Tracking can help. Once you push the tracking numbers via API, it auto-syncs them, updates the customer with real-time tracking, and hosts everything on a branded “Track My Order” page. Saves you from reinventing the customer-facing piece.

Shopify’s docs for reference: Fulfillments API

Hope this helps a bit! If it does, feel free to mark it as a solution so others can find it too!