Mark order as "Delivered" through an API

I am currently working on a Shopify app that marks orders as “Delivered” via an API. While reviewing the Shopify documentation, I noticed that the API allows orders to be marked as “Fulfilled” but does not natively support marking them as “Delivered.” It appears that this functionality is typically handled by third-party carrier providers.

I would like to understand which API these providers use to update an order as delivered and how I might implement similar functionality within my app. Any guidance or best practices would be greatly appreciated.

Shopify does not support a native “Delivered” status on orders. Instead, their app marks orders as delivered by creating a Fulfillment Event with the status set to "delivered" on the order’s fulfillment record via the REST Admin API.

This is the same approach used by third-party carrier and fulfillment providers. It allows Shopify’s order status page and internal tracking to reflect that the order has been delivered, even though the core order status remains “Fulfilled.”

If the order has not yet been fulfilled, our app first creates a fulfillment using the fulfillmentCreateV2 mutation in GraphQL, then posts the "delivered" event on that fulfillment.