--- title: CancellationRequest description: Manage the cancellation request flow of fulfillment orders assigned to fulfillment services. api_version: 2025-10 api_name: admin-rest api_type: rest source_url: html: https://shopify.dev/docs/api/admin-rest/latest/resources/cancellationrequest md: https://shopify.dev/docs/api/admin-rest/latest/resources/cancellationrequest.md --- 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). # Cancellation​Request Multiple access scopes needed — refer to each endpoint for access scope requirements. The `CancellationRequest` resource represents a cancellation request made by the merchant or an order management app to a [fulfillment service](https://shopify.dev/docs/admin-api/rest/reference/shipping-and-fulfillment/fulfillmentservice) for a [fulfillment order](https://shopify.dev/docs/admin-api/rest/reference/shipping-and-fulfillment/fulfillmentorder). 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](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments) guide. \# ## Endpoints * [post](https://shopify.dev/docs/api/admin-rest/latest/resources/cancellationrequest#post-fulfillment-orders-fulfillment-order-id-cancellation-request) [/admin/api/latest/fulfillment\_​orders/{fulfillment\_​order\_​id}/cancellation\_​request.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/cancellationrequest#post-fulfillment-orders-fulfillment-order-id-cancellation-request) Sends a cancellation request [fulfillmentOrderSubmitCancellationRequest](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderSubmitCancellationRequest?example=sends-a-cancellation-request) * [post](https://shopify.dev/docs/api/admin-rest/latest/resources/cancellationrequest#post-fulfillment-orders-fulfillment-order-id-cancellation-request-accept) [/admin/api/latest/fulfillment\_​orders/{fulfillment\_​order\_​id}/cancellation\_​request/accept.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/cancellationrequest#post-fulfillment-orders-fulfillment-order-id-cancellation-request-accept) Accepts a cancellation request [fulfillmentOrderAcceptCancellationRequest](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderAcceptCancellationRequest?example=accepts-a-cancellation-request) * [post](https://shopify.dev/docs/api/admin-rest/latest/resources/cancellationrequest#post-fulfillment-orders-fulfillment-order-id-cancellation-request-reject) [/admin/api/latest/fulfillment\_​orders/{fulfillment\_​order\_​id}/cancellation\_​request/reject.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/cancellationrequest#post-fulfillment-orders-fulfillment-order-id-cancellation-request-reject) Rejects a cancellation request [fulfillmentOrderRejectCancellationRequest](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderRejectCancellationRequest?example=rejects-a-cancellation-request) *** ## The CancellationRequest resource ### Properties *** {} ## The CancellationRequest resource ```json {} ``` *** ## postSends a cancellation request [fulfillmentOrderSubmitCancellationRequest](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderSubmitCancellationRequest?example=sends-a-cancellation-request) Requires `third_party_fulfillment_orders` access scope. Sends a cancellation request to the fulfillment service of a fulfillment order. ### Parameters *** api\_version string required *** fulfillment\_order\_id string required *** message An optional reason for the cancellation request. *** ### Examples Sends a cancellation request to the fulfillment service of a fulfillment order and updates the fulfillment order Path parameters fulfillment\_​order\_​id=​1046000778 string required post ## /admin/api/2025-10/fulfillment\_​orders/1046000778/cancellation\_​request.​json ```bash curl -d '{"cancellation_request":{"message":"The customer changed his mind."}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_orders/1046000778/cancellation_request.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` {} ## Response JSON ```json HTTP/1.1 200 OK { "fulfillment_order": { "id": 1046000778, "created_at": "2025-10-01T14:56:32-04:00", "updated_at": "2025-10-01T14:56:32-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": 1042572110, "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": 1072503275, "shop_id": 548380009, "fulfillment_order_id": 1046000778, "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 } } ``` ### examples * #### Sends a cancellation request to the fulfillment service of a fulfillment order and updates the fulfillment order ##### ```curl curl -d '{"cancellation_request":{"message":"The customer changed his mind."}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_orders/1046000778/cancellation_request.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` ##### ```remix const { admin, session } = await authenticate.admin(request); const cancellation_request = new admin.rest.resources.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000778; cancellation_request.message = "The customer changed his mind."; await cancellation_request.save({ update: true, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session cancellation_request = ShopifyAPI::CancellationRequest.new(session: test_session) cancellation_request.fulfillment_order_id = 1046000778 cancellation_request.message = "The customer changed his mind." cancellation_request.save! ``` ##### ```node // Session is built by the OAuth process const cancellation_request = new shopify.rest.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000778; cancellation_request.message = "The customer changed his mind."; await cancellation_request.save({ update: true, }); ``` #### response ```json HTTP/1.1 200 OK{"fulfillment_order":{"id":1046000778,"created_at":"2025-10-01T14:56:32-04:00","updated_at":"2025-10-01T14:56:32-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":1042572110,"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":1072503275,"shop_id":548380009,"fulfillment_order_id":1046000778,"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}} ``` *** ## postAccepts a cancellation request [fulfillmentOrderAcceptCancellationRequest](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderAcceptCancellationRequest?example=accepts-a-cancellation-request) Requires `assigned_fulfillment_orders` access scope. Accepts a cancellation request sent to a fulfillment service for a fulfillment order. ### Parameters *** api\_version string required *** fulfillment\_order\_id string required *** message An optional reason for accepting the cancellation request. *** ### Examples Accepts a cancellation request sent to a fulfillment service and updates the fulfillment order Path parameters fulfillment\_​order\_​id=​1046000779 string required post ## /admin/api/2025-10/fulfillment\_​orders/1046000779/cancellation\_​request/accept.​json ```bash curl -d '{"cancellation_request":{"message":"We had not started any processing yet."}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_orders/1046000779/cancellation_request/accept.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` {} ## Response JSON ```json HTTP/1.1 200 OK { "fulfillment_order": { "id": 1046000779, "created_at": "2025-10-01T14:56:34-04:00", "updated_at": "2025-10-01T14:56:34-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": 1042572111, "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": 1072503276, "shop_id": 548380009, "fulfillment_order_id": 1046000779, "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 } } ``` ### examples * #### Accepts a cancellation request sent to a fulfillment service and updates the fulfillment order ##### ```curl curl -d '{"cancellation_request":{"message":"We had not started any processing yet."}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_orders/1046000779/cancellation_request/accept.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` ##### ```remix const { admin, session } = await authenticate.admin(request); const cancellation_request = new admin.rest.resources.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000779; await cancellation_request.accept({ body: {"cancellation_request": {"message": "We had not started any processing yet."}}, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session cancellation_request = ShopifyAPI::CancellationRequest.new(session: test_session) cancellation_request.fulfillment_order_id = 1046000779 cancellation_request.accept( session: test_session, body: {"cancellation_request" => {"message" => "We had not started any processing yet."}}, ) ``` ##### ```node // Session is built by the OAuth process const cancellation_request = new shopify.rest.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000779; await cancellation_request.accept({ body: {"cancellation_request": {"message": "We had not started any processing yet."}}, }); ``` #### response ```json HTTP/1.1 200 OK{"fulfillment_order":{"id":1046000779,"created_at":"2025-10-01T14:56:34-04:00","updated_at":"2025-10-01T14:56:34-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":1042572111,"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":1072503276,"shop_id":548380009,"fulfillment_order_id":1046000779,"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}} ``` *** ## postRejects a cancellation request [fulfillmentOrderRejectCancellationRequest](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderRejectCancellationRequest?example=rejects-a-cancellation-request) Requires `assigned_fulfillment_orders` access scope. Rejects a cancellation request sent to a fulfillment service for a fulfillment order. ### Parameters *** api\_version string required *** fulfillment\_order\_id string required *** message An optional reason for rejecting the cancellation request. *** ### Examples Rejects a cancellation request sent to a fulfillment service and updates the fulfillment order Path parameters fulfillment\_​order\_​id=​1046000780 string required post ## /admin/api/2025-10/fulfillment\_​orders/1046000780/cancellation\_​request/reject.​json ```bash curl -d '{"cancellation_request":{"message":"We have already sent the shipment out."}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_orders/1046000780/cancellation_request/reject.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` {} ## Response JSON ```json HTTP/1.1 200 OK { "fulfillment_order": { "id": 1046000780, "created_at": "2025-10-01T14:56:35-04:00", "updated_at": "2025-10-01T14:56:36-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": 1042572112, "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": 1072503277, "shop_id": 548380009, "fulfillment_order_id": 1046000780, "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 } } ``` ### examples * #### Rejects a cancellation request sent to a fulfillment service and updates the fulfillment order ##### ```curl curl -d '{"cancellation_request":{"message":"We have already sent the shipment out."}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/fulfillment_orders/1046000780/cancellation_request/reject.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` ##### ```remix const { admin, session } = await authenticate.admin(request); const cancellation_request = new admin.rest.resources.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000780; await cancellation_request.reject({ body: {"cancellation_request": {"message": "We have already sent the shipment out."}}, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session cancellation_request = ShopifyAPI::CancellationRequest.new(session: test_session) cancellation_request.fulfillment_order_id = 1046000780 cancellation_request.reject( session: test_session, body: {"cancellation_request" => {"message" => "We have already sent the shipment out."}}, ) ``` ##### ```node // Session is built by the OAuth process const cancellation_request = new shopify.rest.CancellationRequest({session: session}); cancellation_request.fulfillment_order_id = 1046000780; await cancellation_request.reject({ body: {"cancellation_request": {"message": "We have already sent the shipment out."}}, }); ``` #### response ```json HTTP/1.1 200 OK{"fulfillment_order":{"id":1046000780,"created_at":"2025-10-01T14:56:35-04:00","updated_at":"2025-10-01T14:56:36-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":1042572112,"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":1072503277,"shop_id":548380009,"fulfillment_order_id":1046000780,"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}} ```