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.
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.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/2026-07/fulfillment_ orders/1046000784/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/2026-07/fulfillment_orders/1046000784/cancellation_request.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"use Shopify\Rest\Admin2026_07\CancellationRequest; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $cancellation_request = new CancellationRequest($this->test_session); $cancellation_request->message = "The customer changed his mind."; $cancellation_request->post( 1046000784, );use Shopify\Rest\Admin2026_07\CancellationRequest; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $cancellation_request = new CancellationRequest($this->test_session); $cancellation_request->message = "The customer changed his mind."; $cancellation_request->post( test_session, 1046000784, );use Shopify\Rest\Admin2026_07\CancellationRequest; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $cancellation_request = new CancellationRequest($this->test_session); $cancellation_request->message = "The customer changed his mind."; $cancellation_request->post( 1046000784, );response
HTTP/1.1 200 OK{"fulfillment_order":{"id":1046000784,"created_at":"2026-07-02T10:41:16-04:00","updated_at":"2026-07-02T10:41:16-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":1042572117,"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":1072503282,"shop_id":548380009,"fulfillment_order_id":1046000784,"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.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/2026-07/fulfillment_ orders/1046000783/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/2026-07/fulfillment_orders/1046000783/cancellation_request/accept.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"use Shopify\Rest\Admin2026_07\CancellationRequest; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $cancellation_request = new CancellationRequest($this->test_session); $cancellation_request->cancellation_request = {"message":"We had not started any processing yet."}; $cancellation_request->accept( 1046000783, );use Shopify\Rest\Admin2026_07\CancellationRequest; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $cancellation_request = new CancellationRequest($this->test_session); $cancellation_request->cancellation_request = {"message":"We had not started any processing yet."}; $cancellation_request->accept( test_session, 1046000783, );use Shopify\Rest\Admin2026_07\CancellationRequest; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $cancellation_request = new CancellationRequest($this->test_session); $cancellation_request->cancellation_request = {"message":"We had not started any processing yet."}; $cancellation_request->accept( 1046000783, );response
HTTP/1.1 200 OK{"fulfillment_order":{"id":1046000783,"created_at":"2026-07-02T10:41:15-04:00","updated_at":"2026-07-02T10:41:15-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":1042572116,"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":1072503281,"shop_id":548380009,"fulfillment_order_id":1046000783,"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.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/2026-07/fulfillment_ orders/1046000782/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/2026-07/fulfillment_orders/1046000782/cancellation_request/reject.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"use Shopify\Rest\Admin2026_07\CancellationRequest; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $cancellation_request = new CancellationRequest($this->test_session); $cancellation_request->cancellation_request = {"message":"We have already sent the shipment out."}; $cancellation_request->reject( 1046000782, );use Shopify\Rest\Admin2026_07\CancellationRequest; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $cancellation_request = new CancellationRequest($this->test_session); $cancellation_request->cancellation_request = {"message":"We have already sent the shipment out."}; $cancellation_request->reject( test_session, 1046000782, );use Shopify\Rest\Admin2026_07\CancellationRequest; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $cancellation_request = new CancellationRequest($this->test_session); $cancellation_request->cancellation_request = {"message":"We have already sent the shipment out."}; $cancellation_request->reject( 1046000782, );response
HTTP/1.1 200 OK{"fulfillment_order":{"id":1046000782,"created_at":"2026-07-02T10:41:13-04:00","updated_at":"2026-07-02T10:41:14-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":1042572115,"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":1072503280,"shop_id":548380009,"fulfillment_order_id":1046000782,"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}}