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.
Cancellation Request
The CancellationRequest
resource represents a cancellation 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 cancellation request.
Retrieving cancellation 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 cancellation request process in the fulfillment workflow, refer to Manage fulfillments as a fulfillment service app guide.
Endpoints
- post/admin/api/latest/fulfillment_
orders/{fulfillment_ order_ id}/cancellation_ request. json Sends a cancellation request - post/admin/api/latest/fulfillment_
orders/{fulfillment_ order_ id}/cancellation_ request/accept. json Accepts a cancellation request - post/admin/api/latest/fulfillment_
orders/{fulfillment_ order_ id}/cancellation_ request/reject. json Rejects a cancellation request
Anchor to POST request, Sends a cancellation requestpostSends a cancellation request
third_party_fulfillment_orders
access scope.Sends a cancellation request to the fulfillment service of a fulfillment order.
An optional reason for the cancellation request.
Sends a cancellation request to the fulfillment service of a fulfillment order and updates the fulfillment order
Sends a cancellation request to the fulfillment service of a fulfillment order and updates the fulfillment order
/admin/api/2025-07/fulfillment_ orders/1046000812/cancellation_ request. json
Response
examples
Sends a cancellation request to the fulfillment service of a fulfillment order and updates the fulfillment order
curl -d '{"cancellation_request":{"message":"The customer changed his mind."}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-07/fulfillment_orders/1046000812/cancellation_request.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"
const { admin, session } = await authenticate.admin(request); const cancellation_request = new admin.rest.resources.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000812; cancellation_request.message = "The customer changed his mind."; await cancellation_request.save({ update: true, });
# Session is activated via Authentication test_session = ShopifyAPI::Context.active_session cancellation_request = ShopifyAPI::CancellationRequest.new(session: test_session) cancellation_request.fulfillment_order_id = 1046000812 cancellation_request.message = "The customer changed his mind." cancellation_request.save!
// Session is built by the OAuth process const cancellation_request = new shopify.rest.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000812; cancellation_request.message = "The customer changed his mind."; await cancellation_request.save({ update: true, });
response
HTTP/1.1 200 OK{"fulfillment_order":{"id":1046000812,"created_at":"2025-07-01T14:41:51-04:00","updated_at":"2025-07-01T14:41:52-04:00","shop_id":548380009,"order_id":450789469,"assigned_location_id":24826418,"request_status":"cancellation_requested","status":"in_progress","fulfill_at":null,"fulfill_by":null,"supported_actions":["create_fulfillment","cancel_fulfillment_order"],"destination":{"id":1042572136,"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":1072503325,"shop_id":548380009,"fulfillment_order_id":1046000812,"quantity":1,"line_item_id":518995019,"inventory_item_id":49148385,"fulfillable_quantity":1,"variant_id":49148385}],"outgoing_requests":[],"international_duties":null,"fulfillment_holds":[],"delivery_method":null}}
Anchor to POST request, Accepts a cancellation requestpostAccepts a cancellation request
assigned_fulfillment_orders
access scope.Accepts a cancellation request sent to a fulfillment service for a fulfillment order.
An optional reason for accepting the cancellation request.
Accepts a cancellation request sent to a fulfillment service and updates the fulfillment order
Accepts a cancellation request sent to a fulfillment service and updates the fulfillment order
/admin/api/2025-07/fulfillment_ orders/1046000811/cancellation_ request/accept. json
Response
examples
Accepts a cancellation request sent to a fulfillment service and updates the fulfillment order
curl -d '{"cancellation_request":{"message":"We had not started any processing yet."}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-07/fulfillment_orders/1046000811/cancellation_request/accept.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"
const { admin, session } = await authenticate.admin(request); const cancellation_request = new admin.rest.resources.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000811; await cancellation_request.accept({ body: {"cancellation_request": {"message": "We had not started any processing yet."}}, });
# Session is activated via Authentication test_session = ShopifyAPI::Context.active_session cancellation_request = ShopifyAPI::CancellationRequest.new(session: test_session) cancellation_request.fulfillment_order_id = 1046000811 cancellation_request.accept( session: test_session, body: {"cancellation_request" => {"message" => "We had not started any processing yet."}}, )
// Session is built by the OAuth process const cancellation_request = new shopify.rest.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000811; await cancellation_request.accept({ body: {"cancellation_request": {"message": "We had not started any processing yet."}}, });
response
HTTP/1.1 200 OK{"fulfillment_order":{"id":1046000811,"created_at":"2025-07-01T14:41:50-04:00","updated_at":"2025-07-01T14:41:51-04:00","shop_id":548380009,"order_id":450789469,"assigned_location_id":24826418,"request_status":"cancellation_accepted","status":"cancelled","fulfill_at":null,"fulfill_by":null,"supported_actions":["request_fulfillment","create_fulfillment","hold"],"destination":{"id":1042572135,"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":1072503324,"shop_id":548380009,"fulfillment_order_id":1046000811,"quantity":1,"line_item_id":518995019,"inventory_item_id":49148385,"fulfillable_quantity":1,"variant_id":49148385}],"outgoing_requests":[],"international_duties":null,"fulfillment_holds":[],"delivery_method":null}}
Anchor to POST request, Rejects a cancellation requestpostRejects a cancellation request
assigned_fulfillment_orders
access scope.Rejects a cancellation request sent to a fulfillment service for a fulfillment order.
An optional reason for rejecting the cancellation request.
Rejects a cancellation request sent to a fulfillment service and updates the fulfillment order
Rejects a cancellation request sent to a fulfillment service and updates the fulfillment order
/admin/api/2025-07/fulfillment_ orders/1046000810/cancellation_ request/reject. json
Response
examples
Rejects a cancellation request sent to a fulfillment service and updates the fulfillment order
curl -d '{"cancellation_request":{"message":"We have already sent the shipment out."}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-07/fulfillment_orders/1046000810/cancellation_request/reject.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"
const { admin, session } = await authenticate.admin(request); const cancellation_request = new admin.rest.resources.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000810; await cancellation_request.reject({ body: {"cancellation_request": {"message": "We have already sent the shipment out."}}, });
# Session is activated via Authentication test_session = ShopifyAPI::Context.active_session cancellation_request = ShopifyAPI::CancellationRequest.new(session: test_session) cancellation_request.fulfillment_order_id = 1046000810 cancellation_request.reject( session: test_session, body: {"cancellation_request" => {"message" => "We have already sent the shipment out."}}, )
// Session is built by the OAuth process const cancellation_request = new shopify.rest.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000810; await cancellation_request.reject({ body: {"cancellation_request": {"message": "We have already sent the shipment out."}}, });
response
HTTP/1.1 200 OK{"fulfillment_order":{"id":1046000810,"created_at":"2025-07-01T14:41:49-04:00","updated_at":"2025-07-01T14:41:50-04:00","shop_id":548380009,"order_id":450789469,"assigned_location_id":24826418,"request_status":"cancellation_rejected","status":"in_progress","fulfill_at":null,"fulfill_by":null,"supported_actions":["create_fulfillment"],"destination":{"id":1042572134,"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":1072503323,"shop_id":548380009,"fulfillment_order_id":1046000810,"quantity":1,"line_item_id":518995019,"inventory_item_id":49148385,"fulfillable_quantity":1,"variant_id":49148385}],"outgoing_requests":[],"international_duties":null,"fulfillment_holds":[],"delivery_method":null}}