The REST Admin API is a legacy API as of October 1, 2024. All apps and integrations should be built with the GraphQL Admin API. For details and migration steps, visit our migration guide.

Multiple access scopes needed — refer to each endpoint for access scope requirements.

The FulfillmentRequest resource represents a fulfillment request made by the merchant or an order management app to a fulfillment service for a fulfillment order. A fulfillment service can accept or reject the fulfillment request.

Terminating a fulfillment request

A fulfillment service can stop fulfilling an accepted fulfillment request if they choose closing the fulfillment order as incomplete. The fulfillment order can be partially fulfilled when a fulfillment service chooses to stop the fulfillment.

The merchant or an order management app can notify the fulfillment service to cancel an accepted fulfillment request by sending a cancellation request. The fulfillment service can accept or reject the cancellation request. The fulfillment order can be partially fulfilled at this time.

The merchant or an order management app can also cancel a fulfillment order. Calling the cancel endpoint results in the fulfilment order being cancelled within Shopify. This change will not be communicated to the fulfilment service. If the intention is for a fulfilment service to halt fulfilment activity, a cancellation request should be sent to the fulfilment service instead, as described above.

Retrieving fulfillment request details

The FulfillmentOrder resource and the merchant_requests field can be used to retrieve the merchant requests which have been made. The overall status of these requests is also available using the request_status field of the fulfillment order.

To learn more about the fulfillment request process in the fulfillment workflow, refer to Manage fulfillments as a fulfillment service app guide.

Was this section helpful?

Properties

message
A message for the fulfillment request.

sent_at
The timestamp when the request was made.

response_data
The response from the fulfillment service.

request_options
Whether to notify the customer about the fulfillment request.

kind
The kind of request made.

Was this section helpful?
{}The FulfillmentRequest resource
{
  "message": "The optional message that the merchant included in the request.",
  "sent_at": "2024-04-01T13:38:11-04:00",
  "response_data": {
    "response": {}
  },
  "request_options": {
    "notify_customer": true
  },
  "kind": "fulfillment_request"
}

Requires third_party_fulfillment_orders access scope.

Sends a fulfillment request to the fulfillment service of a fulfillment order.

api_version
string
required

fulfillment_order_id
string
required

fulfillment_order_line_items
The fulfillment order line items to be requested for fulfillment. If left blank, all line items of the fulfillment order are requested for fulfillment.

message
An optional message for the fulfillment request.

notify_customer
Whether to notify the customer about the fulfillment request.

Was this section helpful?
Path parameters
fulfillmentorderid=1046000800
string
required
Request body
fulfillmentrequest
Fulfillment_request resource
Was this section helpful?
post
/admin/api/2024-10/fulfillment_orders/1046000800/fulfillment_request.json
Copy
curl -d '{"fulfillment_request":{"message":"Fulfill this ASAP please."}}' \
-X POST "https://your-development-store.myshopify.com/admin/api/2024-10/fulfillment_orders/1046000800/fulfillment_request.json" \
-H "X-Shopify-Access-Token: {access_token}" \
-H "Content-Type: application/json"
{}Response
JSON
HTTP/1.1 200 OK
{
  "original_fulfillment_order": {
    "id": 1046000800,
    "created_at": "2024-09-19T10:13:40-04:00",
    "updated_at": "2024-09-19T10:13:41-04:00",
    "shop_id": 548380009,
    "order_id": 450789469,
    "assigned_location_id": 24826418,
    "request_status": "submitted",
    "status": "open",
    "fulfill_at": null,
    "supported_actions": [
      "cancel_fulfillment_order"
    ],
    "destination": {
      "id": 1042572133,
      "address1": "Chestnut Street 92",
      "address2": "",
      "city": "Louisville",
      "company": null,
      "country": "United States",
      "email": "bob.norman@mail.example.com",
      "first_name": "Bob",
      "last_name": "Norman",
      "phone": "+1(502)-459-2181",
      "province": "Kentucky",
      "zip": "40202"
    },
    "origin": {
      "address1": null,
      "address2": null,
      "city": null,
      "country_code": "DE",
      "location_id": 24826418,
      "name": "Apple Api Shipwire",
      "phone": null,
      "province": null,
      "zip": null
    },
    "line_items": [
      {
        "id": 1058737508,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000800,
        "quantity": 1,
        "line_item_id": 466157049,
        "inventory_item_id": 39072856,
        "fulfillable_quantity": 1,
        "variant_id": 39072856
      },
      {
        "id": 1058737509,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000800,
        "quantity": 1,
        "line_item_id": 518995019,
        "inventory_item_id": 49148385,
        "fulfillable_quantity": 1,
        "variant_id": 49148385
      },
      {
        "id": 1058737510,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000800,
        "quantity": 1,
        "line_item_id": 703073504,
        "inventory_item_id": 457924702,
        "fulfillable_quantity": 1,
        "variant_id": 457924702
      }
    ],
    "outgoing_requests": [
      {
        "message": "Fulfill this ASAP please.",
        "request_options": {
          "notify_customer": false
        },
        "sent_at": "2024-09-19T10:13:41-04:00",
        "kind": "fulfillment_request"
      }
    ],
    "international_duties": null,
    "fulfillment_holds": [],
    "fulfill_by": null,
    "delivery_method": {
      "id": 989232618,
      "method_type": "shipping",
      "min_delivery_date_time": null,
      "max_delivery_date_time": null,
      "additional_information": {
        "phone": null,
        "instructions": null,
        "failed_carriers": null,
        "pickup_point_id": null
      },
      "service_code": null,
      "detailed_branded_promise": null,
      "source_reference": null,
      "presented_name": "Expedited Shipping"
    }
  },
  "submitted_fulfillment_order": {
    "id": 1046000800,
    "created_at": "2024-09-19T10:13:40-04:00",
    "updated_at": "2024-09-19T10:13:41-04:00",
    "shop_id": 548380009,
    "order_id": 450789469,
    "assigned_location_id": 24826418,
    "request_status": "submitted",
    "status": "open",
    "fulfill_at": null,
    "supported_actions": [
      "cancel_fulfillment_order"
    ],
    "destination": {
      "id": 1042572133,
      "address1": "Chestnut Street 92",
      "address2": "",
      "city": "Louisville",
      "company": null,
      "country": "United States",
      "email": "bob.norman@mail.example.com",
      "first_name": "Bob",
      "last_name": "Norman",
      "phone": "+1(502)-459-2181",
      "province": "Kentucky",
      "zip": "40202"
    },
    "origin": {
      "address1": null,
      "address2": null,
      "city": null,
      "country_code": "DE",
      "location_id": 24826418,
      "name": "Apple Api Shipwire",
      "phone": null,
      "province": null,
      "zip": null
    },
    "line_items": [
      {
        "id": 1058737508,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000800,
        "quantity": 1,
        "line_item_id": 466157049,
        "inventory_item_id": 39072856,
        "fulfillable_quantity": 1,
        "variant_id": 39072856
      },
      {
        "id": 1058737509,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000800,
        "quantity": 1,
        "line_item_id": 518995019,
        "inventory_item_id": 49148385,
        "fulfillable_quantity": 1,
        "variant_id": 49148385
      },
      {
        "id": 1058737510,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000800,
        "quantity": 1,
        "line_item_id": 703073504,
        "inventory_item_id": 457924702,
        "fulfillable_quantity": 1,
        "variant_id": 457924702
      }
    ],
    "outgoing_requests": [
      {
        "message": "Fulfill this ASAP please.",
        "request_options": {
          "notify_customer": false
        },
        "sent_at": "2024-09-19T10:13:41-04:00",
        "kind": "fulfillment_request"
      }
    ],
    "international_duties": null,
    "fulfillment_holds": [],
    "fulfill_by": null,
    "delivery_method": {
      "id": 989232618,
      "method_type": "shipping",
      "min_delivery_date_time": null,
      "max_delivery_date_time": null,
      "additional_information": {
        "phone": null,
        "instructions": null,
        "failed_carriers": null,
        "pickup_point_id": null
      },
      "service_code": null,
      "detailed_branded_promise": null,
      "source_reference": null,
      "presented_name": "Expedited Shipping"
    }
  },
  "unsubmitted_fulfillment_order": null
}

Requires assigned_fulfillment_orders access scope.

Accepts a fulfillment request sent to a fulfillment service for a fulfillment order.

api_version
string
required

fulfillment_order_id
string
required

message
An optional reason for accepting the fulfillment request.

Was this section helpful?
Path parameters
fulfillmentorderid=1046000799
string
required
Request body
fulfillmentrequest
Fulfillment_request resource
Was this section helpful?
post
/admin/api/2024-10/fulfillment_orders/1046000799/fulfillment_request/accept.json
Copy
curl -d '{"fulfillment_request":{"message":"We will start processing your fulfillment on the next business day."}}' \
-X POST "https://your-development-store.myshopify.com/admin/api/2024-10/fulfillment_orders/1046000799/fulfillment_request/accept.json" \
-H "X-Shopify-Access-Token: {access_token}" \
-H "Content-Type: application/json"
{}Response
JSON
HTTP/1.1 200 OK
{
  "fulfillment_order": {
    "id": 1046000799,
    "created_at": "2024-09-19T10:13:39-04:00",
    "updated_at": "2024-09-19T10:13:40-04:00",
    "shop_id": 548380009,
    "order_id": 450789469,
    "assigned_location_id": 24826418,
    "request_status": "accepted",
    "status": "in_progress",
    "fulfill_at": null,
    "supported_actions": [
      "create_fulfillment",
      "request_cancellation"
    ],
    "destination": {
      "id": 1042572132,
      "address1": "Chestnut Street 92",
      "address2": "",
      "city": "Louisville",
      "company": null,
      "country": "United States",
      "email": "bob.norman@mail.example.com",
      "first_name": "Bob",
      "last_name": "Norman",
      "phone": "+1(502)-459-2181",
      "province": "Kentucky",
      "zip": "40202"
    },
    "origin": {
      "address1": null,
      "address2": null,
      "city": null,
      "country_code": "DE",
      "location_id": 24826418,
      "name": "Apple Api Shipwire",
      "phone": null,
      "province": null,
      "zip": null
    },
    "line_items": [
      {
        "id": 1058737505,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000799,
        "quantity": 1,
        "line_item_id": 466157049,
        "inventory_item_id": 39072856,
        "fulfillable_quantity": 1,
        "variant_id": 39072856
      },
      {
        "id": 1058737506,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000799,
        "quantity": 1,
        "line_item_id": 518995019,
        "inventory_item_id": 49148385,
        "fulfillable_quantity": 1,
        "variant_id": 49148385
      },
      {
        "id": 1058737507,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000799,
        "quantity": 1,
        "line_item_id": 703073504,
        "inventory_item_id": 457924702,
        "fulfillable_quantity": 1,
        "variant_id": 457924702
      }
    ],
    "outgoing_requests": [],
    "international_duties": null,
    "fulfillment_holds": [],
    "fulfill_by": null,
    "delivery_method": {
      "id": 989232617,
      "method_type": "shipping",
      "min_delivery_date_time": null,
      "max_delivery_date_time": null,
      "additional_information": {
        "phone": null,
        "instructions": null,
        "failed_carriers": null,
        "pickup_point_id": null
      },
      "service_code": null,
      "detailed_branded_promise": null,
      "source_reference": null,
      "presented_name": "Expedited Shipping"
    }
  }
}

Requires assigned_fulfillment_orders access scope.

Rejects a fulfillment request sent to a fulfillment service for a fulfillment order.

api_version
string
required

fulfillment_order_id
string
required

line_items
array
An optional array of line item rejection details. If none are provided, all line items will be assumed to be unfulfillable.

Note: After the fulfillment request has been rejected, none of the line items will be able to be fulfilled. This field documents which line items specifically were unable to be fulfilled and why.

Each line item has the following properties:

message
An optional message for rejecting the fulfillment request.

reason
enum
An optional reason for the fulfillment request rejection.

Was this section helpful?
Path parameters
fulfillmentorderid=1046000796
string
required
Request body
fulfillmentrequest
Fulfillment_request resource
Was this section helpful?
post
/admin/api/2024-10/fulfillment_orders/1046000796/fulfillment_request/reject.json
Copy
curl -d '{"fulfillment_request":{"message":"Not enough inventory on hand to complete the work.","reason":"inventory_out_of_stock","line_items":[{"fulfillment_order_line_item_id":1058737499,"message":"Not enough inventory."}]}}' \
-X POST "https://your-development-store.myshopify.com/admin/api/2024-10/fulfillment_orders/1046000796/fulfillment_request/reject.json" \
-H "X-Shopify-Access-Token: {access_token}" \
-H "Content-Type: application/json"
{}Response
JSON
HTTP/1.1 200 OK
{
  "fulfillment_order": {
    "id": 1046000796,
    "created_at": "2024-09-19T10:13:36-04:00",
    "updated_at": "2024-09-19T10:13:37-04:00",
    "shop_id": 548380009,
    "order_id": 450789469,
    "assigned_location_id": 24826418,
    "request_status": "rejected",
    "status": "open",
    "fulfill_at": null,
    "supported_actions": [
      "request_fulfillment",
      "create_fulfillment",
      "hold",
      "split"
    ],
    "destination": {
      "id": 1042572129,
      "address1": "Chestnut Street 92",
      "address2": "",
      "city": "Louisville",
      "company": null,
      "country": "United States",
      "email": "bob.norman@mail.example.com",
      "first_name": "Bob",
      "last_name": "Norman",
      "phone": "+1(502)-459-2181",
      "province": "Kentucky",
      "zip": "40202"
    },
    "origin": {
      "address1": null,
      "address2": null,
      "city": null,
      "country_code": "DE",
      "location_id": 24826418,
      "name": "Apple Api Shipwire",
      "phone": null,
      "province": null,
      "zip": null
    },
    "line_items": [
      {
        "id": 1058737499,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000796,
        "quantity": 1,
        "line_item_id": 466157049,
        "inventory_item_id": 39072856,
        "fulfillable_quantity": 1,
        "variant_id": 39072856
      },
      {
        "id": 1058737500,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000796,
        "quantity": 1,
        "line_item_id": 518995019,
        "inventory_item_id": 49148385,
        "fulfillable_quantity": 1,
        "variant_id": 49148385
      },
      {
        "id": 1058737501,
        "shop_id": 548380009,
        "fulfillment_order_id": 1046000796,
        "quantity": 1,
        "line_item_id": 703073504,
        "inventory_item_id": 457924702,
        "fulfillable_quantity": 1,
        "variant_id": 457924702
      }
    ],
    "outgoing_requests": [],
    "international_duties": null,
    "fulfillment_holds": [],
    "fulfill_by": null,
    "delivery_method": {
      "id": 989232614,
      "method_type": "shipping",
      "min_delivery_date_time": null,
      "max_delivery_date_time": null,
      "additional_information": {
        "phone": null,
        "instructions": null,
        "failed_carriers": null,
        "pickup_point_id": null
      },
      "service_code": null,
      "detailed_branded_promise": null,
      "source_reference": null,
      "presented_name": "Expedited Shipping"
    }
  }
}