--- title: FulfillmentService description: Register a fulfillment service with a store. The merchant can then set it as the fulfillment service for their products, and your service can manage the fulfillment of those products using the Fulfillment and FulfillmentEvent APIs. api_version: 2025-10 api_name: admin-rest api_type: rest source_url: html: https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice md: https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice.md --- ![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg) 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](https://shopify.dev/docs/api/admin-graphql). For details and migration steps, visit our [migration guide](https://shopify.dev/docs/apps/build/graphql/migrate). # Fulfillment​Service Requires `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](https://shopify.dev/apps/fulfillment/fulfillment-service-apps) 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](https://shopify.dev/changelog/legacy-fulfillment-api-deprecation), it's mandatory for a fulfillment service to follow a fulfillment order based workflow by hosting the `callback_url/fulfillment_order_notification` endpoint, and acting on fulfillment requests and cancellations.\ For more information, refer to [Receive fulfillment requests and cancellations](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-2-receive-fulfillment-requests-and-cancellations). * Shopify sends GET requests to the `callback_url/fetch_tracking_numbers` endpoint to retrieve tracking numbers for orders if `tracking_support` is set to `true`.\ For more information, refer to [Enable tracking support](https://shopify.dev/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-9-optional-enable-tracking-support).\ Fulfillment services can also update tracking information with a [corresponding API](https://shopify.dev/api/admin-rest/latest/resources/fulfillment#post-fulfillments-fulfillment-id-update-tracking), 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 if `inventory_management` is set to `true`.\ For more information, refer to [Sharing inventory levels with Shopify](https://shopify.dev/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-10-optional-share-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](https://shopify.dev/api/admin-rest/latest/resources/fulfillmentorder), [FulfillmentRequest](https://shopify.dev/api/admin-rest/latest/resources/fulfillmentrequest), and [CancellationRequest](https://shopify.dev/api/admin-rest/latest/resources/cancellationrequest), [Fulfillment](https://shopify.dev/api/admin-rest/latest/resources/fulfillment) and [Order](https://shopify.dev/api/admin-rest/latest/resources/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](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#webhooks) and [order](https://shopify.dev/api/admin-rest/latest/resources/webhook) webhooks. \# ## Endpoints * [post](https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice#post-fulfillment-services) [/admin/api/latest/fulfillment\_​services.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice#post-fulfillment-services) Create a new FulfillmentService [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceCreate?example=create-a-new-fulfillmentservice) [fulfillmentServiceCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceCreate?example=create-a-new-fulfillmentservice) * [get](https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice#get-fulfillment-services?scope=all) [/admin/api/latest/fulfillment\_​services.​json?scope=all](https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice#get-fulfillment-services?scope=all) Receive a list of all FulfillmentServices [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/queries/shop?example=receive-a-list-of-all-fulfillmentservices) [shop](https://shopify.dev/docs/api/admin-graphql/latest/queries/shop?example=receive-a-list-of-all-fulfillmentservices) * [get](https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice#get-fulfillment-services-fulfillment-service-id) [/admin/api/latest/fulfillment\_​services/{fulfillment\_​service\_​id}.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice#get-fulfillment-services-fulfillment-service-id) Receive a single FulfillmentService [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/queries/fulfillmentService?example=receive-a-single-fulfillmentservice) [fulfillmentService](https://shopify.dev/docs/api/admin-graphql/latest/queries/fulfillmentService?example=receive-a-single-fulfillmentservice) * [put](https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice#put-fulfillment-services-fulfillment-service-id) [/admin/api/latest/fulfillment\_​services/{fulfillment\_​service\_​id}.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice#put-fulfillment-services-fulfillment-service-id) Modify an existing FulfillmentService [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceUpdate?example=modify-an-existing-fulfillmentservice) [fulfillmentServiceUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceUpdate?example=modify-an-existing-fulfillmentservice) * [del](https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice#delete-fulfillment-services-fulfillment-service-id) [/admin/api/latest/fulfillment\_​services/{fulfillment\_​service\_​id}.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentservice#delete-fulfillment-services-fulfillment-service-id) Remove an existing FulfillmentService [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceDelete?example=remove-an-existing-fulfillmentservice) [fulfillmentServiceDelete](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceDelete?example=remove-an-existing-fulfillmentservice) *** ## The FulfillmentService resource ### Properties *** admin\_graphql\_api\_id -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.id) [id](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.id) The GraphQL GID for this fulfillment service. *** callback\_url -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.callbackUrl) [callbackUrl](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.callbackUrl) 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, if `tracking_support` is set to `true`. * Shopify queries the `callback_url/fetch_stock` endpoint to retrieve inventory levels, if `inventory_management` is set to `true`. * Shopify uses the `callback_url/fulfillment_order_notification` endpoint to send [fulfillment and cancellation requests](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-2-receive-fulfillment-requests-and-cancellations) *** fulfillment\_orders\_opt\_in deprecated Whether the fulfillment service uses the [fulfillment order based workflow](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments) for managing fulfillments.\ [As of 2022-07 API version](https://shopify.dev/changelog/legacy-fulfillment-api-deprecation), 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](https://shopify.dev/changelog/deprecation-of-the-fulfillmentservice-fulfillmentordersoptin-field) and is always set to `true` on correctly functioning fulfillment services. *** permits\_sku\_sharing -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.permitsSkuSharing) [permitsSkuSharing](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.permitsSkuSharing) Whether the fulfillment service can stock inventory alongside other locations. *** handle -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.handle) [handle](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.handle) Human-readable unique identifier for this fulfillment service. *** inventory\_management -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.inventoryManagement) [inventoryManagement](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.inventoryManagement) Whether the fulfillment service tracks product inventory and provides updates to Shopify. Valid values: `true` and `false`. *** location\_id -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-Location.fields.id) [id](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-Location.fields.id) The unique identifier of the location associated with the fulfillment service *** name -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.serviceName) [serviceName](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.serviceName) The name of the fulfillment service as seen by merchants. *** provider\_id deprecated A unique identifier for the fulfillment service provider. *** requires\_shipping\_method deprecated Whether the fulfillment service requires products to be physically shipped. Valid values: `true` and `false`. *** tracking\_support -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.trackingSupport) [trackingSupport](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService#field-FulfillmentService.fields.trackingSupport) Whether the fulfillment service provides tracking numbers for packages. Valid values: `true` and `false`. *** {} ## The FulfillmentService resource ```json { "admin_graphql_api_id": "gid://shopify/FulfillmentService/1", "callback_url": "http://myapp.com", "fulfillment_orders_opt_in": true, "permits_sku_sharing": true, "handle": "my-fulfillment-service", "inventory_management": true, "location_id": 19, "name": "My Fulfillment Service", "provider_id": null, "requires_shipping_method": true, "tracking_support": true } ``` *** ## postCreate a new Fulfillment​Service [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceCreate?example=create-a-new-fulfillmentservice) [fulfillmentServiceCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceCreate?example=create-a-new-fulfillmentservice) ### Parameters *** api\_version string required *** callback\_url 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, if `tracking_support` is set to `true`. * Shopify queries the `callback_url/fetch_stock` endpoint to retrieve inventory levels, if `inventory_management` is set to `true`. * Shopify uses the `callback_url/fulfillment_order_notification` endpoint to send [fulfillment and cancellation requests](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-2-receive-fulfillment-requests-and-cancellations) *** fulfillment\_orders\_opt\_in boolean default true Whether the fulfillment service uses the [fulfillment order based workflow](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments) for managing fulfillments.\ As the migration is now finished, the `fulfillment_orders_opt_in` property is [deprecated](https://shopify.dev/changelog/deprecation-of-the-fulfillmentservice-fulfillmentordersoptin-field) 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. *** inventory\_management boolean Whether the fulfillment service tracks product inventory and provides updates to Shopify. Valid values: `true` and `false`. *** name string The name of the fulfillment service as seen by merchants. *** permits\_sku\_sharing boolean default true Whether the fulfillment service can stock inventory alongside other locations. As of API version `2025-10` this property will return an error if set to `false` and default to `true` if omitted. It will be removed in the next API version. *** requires\_shipping\_method boolean Whether the fulfillment service requires products to be physically shipped. Valid values: `true` and `false`. *** tracking\_support boolean Whether the fulfillment service provides tracking numbers for packages. Valid values: `true` and `false`. *** ### Examples Create a fulfillment service Request body fulfillment\_​service​ Fulfillment\_service resource Show fulfillment\_service properties fulfillment\_​service.name:​"Jupiter Fulfillment" The name of the fulfillment service as seen by merchants. fulfillment\_​service.callback\_​url:​"http\://google.com" 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, if `tracking_support` is set to `true`. * Shopify queries the `callback_url/fetch_stock` endpoint to retrieve inventory levels, if `inventory_management` is set to `true`. * Shopify uses the `callback_url/fulfillment_order_notification` endpoint to send [fulfillment and cancellation requests](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-2-receive-fulfillment-requests-and-cancellations) fulfillment\_​service.inventory\_​management:​true Whether the fulfillment service tracks product inventory and provides updates to Shopify. Valid values: `true` and `false`. fulfillment\_​service.tracking\_​support:​true Whether the fulfillment service provides tracking numbers for packages. Valid values: `true` and `false`. fulfillment\_​service.permits\_​sku\_​sharing:​true Whether the fulfillment service can stock inventory alongside other locations. post ## /admin/api/2025-10/fulfillment\_​services.​json ```bash curl -d '{"fulfillment_service":{"name":"Jupiter Fulfillment","callback_url":"http://google.com","inventory_management":true,"tracking_support":true,"permits_sku_sharing":true}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_services.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` {} ## Response JSON ```json HTTP/1.1 201 Created { "fulfillment_service": { "id": 1061774489, "name": "Jupiter Fulfillment", "email": null, "service_name": "Jupiter Fulfillment", "handle": "jupiter-fulfillment", "fulfillment_orders_opt_in": true, "include_pending_stock": false, "provider_id": null, "location_id": 1072404546, "callback_url": "http://google.com/", "tracking_support": true, "inventory_management": true, "admin_graphql_api_id": "gid://shopify/ApiFulfillmentService/1061774489", "permits_sku_sharing": true, "requires_shipping_method": true } } ``` ### examples * #### Create a fulfillment service ##### ```curl curl -d '{"fulfillment_service":{"name":"Jupiter Fulfillment","callback_url":"http://google.com","inventory_management":true,"tracking_support":true,"permits_sku_sharing":true}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_services.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` ##### ```remix const { admin, session } = await authenticate.admin(request); const fulfillment_service = new admin.rest.resources.FulfillmentService({session: session}); fulfillment_service.name = "Jupiter Fulfillment"; fulfillment_service.callback_url = "http://google.com"; fulfillment_service.inventory_management = true; fulfillment_service.tracking_support = true; fulfillment_service.permits_sku_sharing = true; await fulfillment_service.save({ update: true, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session fulfillment_service = ShopifyAPI::FulfillmentService.new(session: test_session) fulfillment_service.name = "Jupiter Fulfillment" fulfillment_service.callback_url = "http://google.com" fulfillment_service.inventory_management = true fulfillment_service.tracking_support = true fulfillment_service.permits_sku_sharing = true fulfillment_service.save! ``` ##### ```node // Session is built by the OAuth process const fulfillment_service = new shopify.rest.FulfillmentService({session: session}); fulfillment_service.name = "Jupiter Fulfillment"; fulfillment_service.callback_url = "http://google.com"; fulfillment_service.inventory_management = true; fulfillment_service.tracking_support = true; fulfillment_service.permits_sku_sharing = true; await fulfillment_service.save({ update: true, }); ``` #### response ```json HTTP/1.1 201 Created{"fulfillment_service":{"id":1061774489,"name":"Jupiter Fulfillment","email":null,"service_name":"Jupiter Fulfillment","handle":"jupiter-fulfillment","fulfillment_orders_opt_in":true,"include_pending_stock":false,"provider_id":null,"location_id":1072404546,"callback_url":"http://google.com/","tracking_support":true,"inventory_management":true,"admin_graphql_api_id":"gid://shopify/ApiFulfillmentService/1061774489","permits_sku_sharing":true,"requires_shipping_method":true}} ``` *** ## getReceive a list of all Fulfillment​Services [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/queries/shop?example=receive-a-list-of-all-fulfillmentservices) [shop](https://shopify.dev/docs/api/admin-graphql/latest/queries/shop?example=receive-a-list-of-all-fulfillmentservices) ### Parameters *** api\_version string required *** scope enum 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 *** ### Examples List all of the shop's fulfillment services Query parameters scope=​all enum 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 get ## /admin/api/2025-10/fulfillment\_​services.​json?scope=​all ```bash curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_services.json?scope=all" \ -H "X-Shopify-Access-Token: {access_token}" ``` {} ## Response JSON ```json HTTP/1.1 200 OK { "fulfillment_services": [ { "id": 611870435, "name": "Venus Fulfillment", "email": null, "service_name": "Venus Fulfillment", "handle": "venus-fulfillment", "fulfillment_orders_opt_in": true, "include_pending_stock": false, "provider_id": null, "location_id": 611870435, "callback_url": "http://google.com/", "tracking_support": false, "inventory_management": false, "admin_graphql_api_id": "gid://shopify/ApiFulfillmentService/611870435", "permits_sku_sharing": false, "requires_shipping_method": true }, { "id": 755357713, "name": "Mars Fulfillment", "email": null, "service_name": "Mars Fulfillment", "handle": "mars-fulfillment", "fulfillment_orders_opt_in": true, "include_pending_stock": false, "provider_id": null, "location_id": 24826418, "callback_url": "http://google.com/", "tracking_support": true, "inventory_management": true, "admin_graphql_api_id": "gid://shopify/ApiFulfillmentService/755357713", "permits_sku_sharing": true, "requires_shipping_method": true } ] } ``` ### examples * #### List all of the shop's fulfillment services ##### ```curl curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_services.json?scope=all" \ -H "X-Shopify-Access-Token: {access_token}" ``` ##### ```remix await admin.rest.resources.FulfillmentService.all({ session: session, scope: "all", }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session ShopifyAPI::FulfillmentService.all( session: test_session, scope: "all", ) ``` ##### ```node // Session is built by the OAuth process await shopify.rest.FulfillmentService.all({ session: session, scope: "all", }); ``` #### response ```json HTTP/1.1 200 OK{"fulfillment_services":[{"id":611870435,"name":"Venus Fulfillment","email":null,"service_name":"Venus Fulfillment","handle":"venus-fulfillment","fulfillment_orders_opt_in":true,"include_pending_stock":false,"provider_id":null,"location_id":611870435,"callback_url":"http://google.com/","tracking_support":false,"inventory_management":false,"admin_graphql_api_id":"gid://shopify/ApiFulfillmentService/611870435","permits_sku_sharing":false,"requires_shipping_method":true},{"id":755357713,"name":"Mars Fulfillment","email":null,"service_name":"Mars Fulfillment","handle":"mars-fulfillment","fulfillment_orders_opt_in":true,"include_pending_stock":false,"provider_id":null,"location_id":24826418,"callback_url":"http://google.com/","tracking_support":true,"inventory_management":true,"admin_graphql_api_id":"gid://shopify/ApiFulfillmentService/755357713","permits_sku_sharing":true,"requires_shipping_method":true}]} ``` * #### List your app's fulfillment services ##### ```curl curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_services.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` ##### ```remix await admin.rest.resources.FulfillmentService.all({ session: session, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session ShopifyAPI::FulfillmentService.all( session: test_session, ) ``` ##### ```node // Session is built by the OAuth process await shopify.rest.FulfillmentService.all({ session: session, }); ``` #### response ```json HTTP/1.1 200 OK{"fulfillment_services":[{"id":755357713,"name":"Mars Fulfillment","email":null,"service_name":"Mars Fulfillment","handle":"mars-fulfillment","fulfillment_orders_opt_in":true,"include_pending_stock":false,"provider_id":null,"location_id":24826418,"callback_url":"http://google.com/","tracking_support":true,"inventory_management":true,"admin_graphql_api_id":"gid://shopify/ApiFulfillmentService/755357713","permits_sku_sharing":true,"requires_shipping_method":true}]} ``` *** ## getReceive a single Fulfillment​Service [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/queries/fulfillmentService?example=receive-a-single-fulfillmentservice) [fulfillmentService](https://shopify.dev/docs/api/admin-graphql/latest/queries/fulfillmentService?example=receive-a-single-fulfillmentservice) ### Parameters *** api\_version string required *** fulfillment\_service\_id string required *** ### Examples Get a single fulfillment service by its ID Path parameters fulfillment\_​service\_​id=​755357713 string required get ## /admin/api/2025-10/fulfillment\_​services/755357713.​json ```bash curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_services/755357713.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` {} ## Response JSON ```json HTTP/1.1 200 OK { "fulfillment_service": { "id": 755357713, "name": "Mars Fulfillment", "email": null, "service_name": "Mars Fulfillment", "handle": "mars-fulfillment", "fulfillment_orders_opt_in": true, "include_pending_stock": false, "provider_id": null, "location_id": 24826418, "callback_url": "http://google.com/", "tracking_support": true, "inventory_management": true, "admin_graphql_api_id": "gid://shopify/ApiFulfillmentService/755357713", "permits_sku_sharing": true, "requires_shipping_method": true } } ``` ### examples * #### Get a single fulfillment service by its ID ##### ```curl curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_services/755357713.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` ##### ```remix await admin.rest.resources.FulfillmentService.find({ session: session, id: 755357713, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session ShopifyAPI::FulfillmentService.find( session: test_session, id: 755357713, ) ``` ##### ```node // Session is built by the OAuth process await shopify.rest.FulfillmentService.find({ session: session, id: 755357713, }); ``` #### response ```json HTTP/1.1 200 OK{"fulfillment_service":{"id":755357713,"name":"Mars Fulfillment","email":null,"service_name":"Mars Fulfillment","handle":"mars-fulfillment","fulfillment_orders_opt_in":true,"include_pending_stock":false,"provider_id":null,"location_id":24826418,"callback_url":"http://google.com/","tracking_support":true,"inventory_management":true,"admin_graphql_api_id":"gid://shopify/ApiFulfillmentService/755357713","permits_sku_sharing":true,"requires_shipping_method":true}} ``` *** ## putModify an existing Fulfillment​Service [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceUpdate?example=modify-an-existing-fulfillmentservice) [fulfillmentServiceUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceUpdate?example=modify-an-existing-fulfillmentservice) ### Parameters *** api\_version string required *** fulfillment\_service\_id string required *** callback\_url 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, if `tracking_support` is set to `true`. * Shopify queries the `callback_url/fetch_stock` endpoint to retrieve inventory levels, if `inventory_management` is set to `true`. * Shopify uses the `callback_url/fulfillment_order_notification` endpoint to send [fulfillment and cancellation requests](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-2-receive-fulfillment-requests-and-cancellations) *** fulfillment\_orders\_opt\_in boolean Whether the fulfillment service uses the [fulfillment order based workflow](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments) for managing fulfillments.\ As the migration is now finished, the `fulfillment_orders_opt_in` property is [deprecated.](https://shopify.dev/changelog/deprecation-of-the-fulfillmentservice-fulfillmentordersoptin-field) *** inventory\_management boolean Whether the fulfillment service tracks product inventory and provides updates to Shopify. Valid values: `true` and `false`. *** name string The name of the fulfillment service as seen by merchants. *** permits\_sku\_sharing boolean Whether the fulfillment service can stock inventory alongside other locations. *** requires\_shipping\_method boolean Whether the fulfillment service requires products to be physically shipped. Valid values: `true` and `false`. *** tracking\_support boolean Whether the fulfillment service provides tracking numbers for packages. Valid values: `true` and `false`. *** ### Examples Update a fulfillment service Path parameters fulfillment\_​service\_​id=​755357713 string required Request body fulfillment\_​service​ Fulfillment\_service resource Show fulfillment\_service properties fulfillment\_​service.name:​"New Fulfillment Service Name" The name of the fulfillment service as seen by merchants. put ## /admin/api/2025-10/fulfillment\_​services/755357713.​json ```bash curl -d '{"fulfillment_service":{"id":755357713,"name":"New Fulfillment Service Name"}}' \ -X PUT "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_services/755357713.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` {} ## Response JSON ```json HTTP/1.1 200 OK { "fulfillment_service": { "id": 755357713, "name": "New Fulfillment Service Name", "email": null, "service_name": "New Fulfillment Service Name", "handle": "mars-fulfillment", "fulfillment_orders_opt_in": true, "include_pending_stock": false, "provider_id": null, "location_id": 24826418, "callback_url": "http://google.com/", "tracking_support": true, "inventory_management": true, "admin_graphql_api_id": "gid://shopify/ApiFulfillmentService/755357713", "permits_sku_sharing": true, "requires_shipping_method": true } } ``` ### examples * #### Update a fulfillment service ##### ```curl curl -d '{"fulfillment_service":{"id":755357713,"name":"New Fulfillment Service Name"}}' \ -X PUT "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_services/755357713.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` ##### ```remix const { admin, session } = await authenticate.admin(request); const fulfillment_service = new admin.rest.resources.FulfillmentService({session: session}); fulfillment_service.id = 755357713; fulfillment_service.name = "New Fulfillment Service Name"; await fulfillment_service.save({ update: true, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session fulfillment_service = ShopifyAPI::FulfillmentService.new(session: test_session) fulfillment_service.id = 755357713 fulfillment_service.name = "New Fulfillment Service Name" fulfillment_service.save! ``` ##### ```node // Session is built by the OAuth process const fulfillment_service = new shopify.rest.FulfillmentService({session: session}); fulfillment_service.id = 755357713; fulfillment_service.name = "New Fulfillment Service Name"; await fulfillment_service.save({ update: true, }); ``` #### response ```json HTTP/1.1 200 OK{"fulfillment_service":{"id":755357713,"name":"New Fulfillment Service Name","email":null,"service_name":"New Fulfillment Service Name","handle":"mars-fulfillment","fulfillment_orders_opt_in":true,"include_pending_stock":false,"provider_id":null,"location_id":24826418,"callback_url":"http://google.com/","tracking_support":true,"inventory_management":true,"admin_graphql_api_id":"gid://shopify/ApiFulfillmentService/755357713","permits_sku_sharing":true,"requires_shipping_method":true}} ``` *** ## delRemove an existing Fulfillment​Service [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceDelete?example=remove-an-existing-fulfillmentservice) [fulfillmentServiceDelete](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentServiceDelete?example=remove-an-existing-fulfillmentservice) ### Parameters *** api\_version string required *** fulfillment\_service\_id string required *** ### Examples Destroy a fulfillment service Path parameters fulfillment\_​service\_​id=​755357713 string required del ## /admin/api/2025-10/fulfillment\_​services/755357713.​json ```bash curl -X DELETE "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_services/755357713.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` {} ## Response JSON ```json HTTP/1.1 200 OK {} ``` ### examples * #### Destroy a fulfillment service ##### ```curl curl -X DELETE "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_services/755357713.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` ##### ```remix await admin.rest.resources.FulfillmentService.delete({ session: session, id: 755357713, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session ShopifyAPI::FulfillmentService.delete( session: test_session, id: 755357713, ) ``` ##### ```node // Session is built by the OAuth process await shopify.rest.FulfillmentService.delete({ session: session, id: 755357713, }); ``` #### response ```json HTTP/1.1 200 OK{} ```