The REST Admin API is a legacy API as of October 1, 2024. Starting April 1, 2025, all new public apps must be built exclusively with the GraphQL Admin API. For details and migration steps, visit our migration guide.
Fulfillment Service
fulfillments
access scope.A Fulfillment Service is a third party warehouse that prepares and ships orders
on behalf of the store owner. Fulfillment services charge a fee to package and ship items
and update product inventory levels. Some well known fulfillment services with Shopify integrations
include: Amazon, Shipwire, and Rakuten. When an app registers a new FulfillmentService
on a store,
Shopify automatically creates a Location
that's associated to the fulfillment service.
To learn more about fulfillment services, refer to
Manage fulfillments as a fulfillment service app guide.
Using the FulfillmentService
resource, you can register, edit, and delete a new fulfillment service.
Hosted endpoints
Fulfillment service providers integrate with Shopify by providing Shopify with a set of hosted endpoints that
Shopify can query on certain conditions.
These endpoints must have a common prefix, and this prefix should be supplied in the callback_url
parameter
in the request that creates the fulfillment service.
- Shopify sends POST requests to the
callback_url/fulfillment_order_notification
endpoint to notify the fulfillment service about fulfillment requests and fulfillment cancellation requests.
As of the 2022-07 API version, it's mandatory for a fulfillment service to follow a fulfillment order based workflow by hosting thecallback_url/fulfillment_order_notification
endpoint, and acting on fulfillment requests and cancellations.
For more information, refer to Receive fulfillment requests and cancellations. - Shopify sends GET requests to the
callback_url/fetch_tracking_numbers
endpoint to retrieve tracking numbers for orders iftracking_support
is set totrue
.
For more information, refer to Enable tracking support.
Fulfillment services can also update tracking information with a corresponding API, rather than waiting for Shopify to ask for tracking numbers. - Shopify sends GET requests to the
callback_url/fetch_stock
endpoint to retrieve on hand inventory levels for the fulfillment service location ifinventory_management
is set totrue
.
For more information, refer to Sharing inventory levels with Shopify.
To make sure you have everything set up correctly, you can test the callback_url
-prefixed endpoints
in your development store.
Resources and webhooks
There are a variety of REST resources and webhooks that enable a fulfillment service to work.
To exchange fulfillment information with Shopify, fulfillment services use the
FulfillmentOrder,
FulfillmentRequest, and
CancellationRequest,
Fulfillment and
Order resources.
To act on fulfillment process events that happen on the Shopify side,
besides awaiting calls to callback_url
-prefixed endpoints,
fulfillment services can subscribe to the
fulfillment order and
order webhooks.
Endpoints
- post/admin/api/latest/fulfillment_
services. json Create a new FulfillmentService - get/admin/api/latest/fulfillment_
services. json?scope=all Receive a list of all FulfillmentServices - get/admin/api/latest/fulfillment_
services/{fulfillment_ service_ id}. json Receive a single FulfillmentService - put/admin/api/latest/fulfillment_
services/{fulfillment_ service_ id}. json Modify an existing FulfillmentService - del/admin/api/latest/fulfillment_
services/{fulfillment_ service_ id}. json Remove an existing FulfillmentService
The FulfillmentService resource
Properties
The GraphQL GID for this fulfillment service.
The callback URL that the fulfillment service has registered for requests. The following considerations apply:
Show callback_url properties
- Shopify queries the
callback_url/fetch_tracking_numbers
endpoint to retrieve tracking numbers for orders, iftracking_support
is set totrue
. - Shopify queries the
callback_url/fetch_stock
endpoint to retrieve inventory levels, ifinventory_management
is set totrue
. - Shopify uses the
callback_url/fulfillment_order_notification
endpoint to send fulfillment and cancellation requests
Whether the fulfillment service uses the fulfillment order based workflow for managing fulfillments.
As of 2022-07 API version, the fulfillment order based workflow is the only way to manage fulfillments, and fulfillment_orders_opt_in
must be set to true
.
As the migration is now finished, the fulfillment_orders_opt_in
property is deprecated and is always set to true
on correctly functioning fulfillment services.
Whether the fulfillment service can stock inventory alongside other locations.
Human-readable unique identifier for this fulfillment service.
Whether the fulfillment service tracks product inventory and provides updates to Shopify. Valid values: true
and false
.
The unique identifier of the location associated with the fulfillment service
The name of the fulfillment service as seen by merchants.
A unique identifier for the fulfillment service provider.
Whether the fulfillment service requires products to be physically shipped. Valid values: true
and false
.
Whether the fulfillment service provides tracking numbers for packages. Valid values: true
and false
.
The FulfillmentService resource
Anchor to POST request, Create a new FulfillmentServicepostCreate a new Fulfillment Service
The callback URL that the fulfillment service has registered for requests. The following considerations apply:
Show callback_url properties
- Shopify queries the
callback_url/fetch_tracking_numbers
endpoint to retrieve tracking numbers for orders, iftracking_support
is set totrue
. - Shopify queries the
callback_url/fetch_stock
endpoint to retrieve inventory levels, ifinventory_management
is set totrue
. - Shopify uses the
callback_url/fulfillment_order_notification
endpoint to send fulfillment and cancellation requests
Whether the fulfillment service uses the fulfillment order based workflow for managing fulfillments.
As the migration is now finished, the fulfillment_orders_opt_in
property is deprecated and will be removed in the next API version. This API version defaults it to true
for a smooth migration experience. Do not set the fulfillment_orders_opt_in
argument, and you are ready for the next API version release.
Whether the fulfillment service tracks product inventory and provides updates to Shopify. Valid values: true
and false
.
The name of the fulfillment service as seen by merchants.
Whether the fulfillment service can stock inventory alongside other locations.
Whether the fulfillment service requires products to be physically shipped. Valid values: true
and false
.
Whether the fulfillment service provides tracking numbers for packages. Valid values: true
and false
.
Create a fulfillment service
Create a fulfillment service
Show fulfillment_service properties
The name of the fulfillment service as seen by merchants.
The callback URL that the fulfillment service has registered for requests. The following considerations apply:
Show callback_url properties
- Shopify queries the
callback_url/fetch_tracking_numbers
endpoint to retrieve tracking numbers for orders, iftracking_support
is set totrue
. - Shopify queries the
callback_url/fetch_stock
endpoint to retrieve inventory levels, ifinventory_management
is set totrue
. - Shopify uses the
callback_url/fulfillment_order_notification
endpoint to send fulfillment and cancellation requests
Whether the fulfillment service tracks product inventory and provides updates to Shopify. Valid values: true
and false
.
Whether the fulfillment service provides tracking numbers for packages. Valid values: true
and false
.
Whether the fulfillment service can stock inventory alongside other locations.
/admin/api/2025-07/fulfillment_ services. json
Response
Anchor to GET request, Receive a list of all FulfillmentServicesgetReceive a list of all Fulfillment Services
Specify which fulfillment services to retrieve.
Show scope properties
current_client: Returns fulfillment providers that have been created by the app sending the request (default)
all: Returns all the fulfillment providers
List all of the shop's fulfillment services
List all of the shop's fulfillment services
Specify which fulfillment services to retrieve.
Show scope properties
current_client: Returns fulfillment providers that have been created by the app sending the request (default)
all: Returns all the fulfillment providers
List your app's fulfillment services
List your app's fulfillment services
/admin/api/2025-07/fulfillment_ services. json?scope= all
Response
Anchor to GET request, Receive a single FulfillmentServicegetReceive a single Fulfillment Service
Get a single fulfillment service by its ID
Get a single fulfillment service by its ID
/admin/api/2025-07/fulfillment_ services/755357713. json
Response
Anchor to PUT request, Modify an existing FulfillmentServiceputModify an existing Fulfillment Service
The callback URL that the fulfillment service has registered for requests. The following considerations apply:
Show callback_url properties
- Shopify queries the
callback_url/fetch_tracking_numbers
endpoint to retrieve tracking numbers for orders, iftracking_support
is set totrue
. - Shopify queries the
callback_url/fetch_stock
endpoint to retrieve inventory levels, ifinventory_management
is set totrue
. - Shopify uses the
callback_url/fulfillment_order_notification
endpoint to send fulfillment and cancellation requests
Whether the fulfillment service uses the fulfillment order based workflow for managing fulfillments.
As the migration is now finished, the fulfillment_orders_opt_in
property is deprecated.
Whether the fulfillment service tracks product inventory and provides updates to Shopify. Valid values: true
and false
.
The name of the fulfillment service as seen by merchants.
Whether the fulfillment service can stock inventory alongside other locations.
Whether the fulfillment service requires products to be physically shipped. Valid values: true
and false
.
Whether the fulfillment service provides tracking numbers for packages. Valid values: true
and false
.
Update a fulfillment service
Update a fulfillment service
Show fulfillment_service properties
The name of the fulfillment service as seen by merchants.
/admin/api/2025-07/fulfillment_ services/755357713. json
Response
Anchor to DELETE request, Remove an existing FulfillmentServicedelRemove an existing Fulfillment Service
Destroy a fulfillment service
Destroy a fulfillment service