Shopify Functions & APIs

Shopify Buyer-Requested Order Edits: Admin and Customer Account APIs

By CartStack Team4 min read

Shopify buyer-requested order edits let a customer ask to remove unfulfilled line items from an order, and let your app or the merchant resolve or decline that request. The feature is available in API version 2026-10 across the Admin GraphQL API, the Customer Account API and webhooks. This guide covers the objects and mutations, the webhook topics, the scopes, and what Shopify’s documentation does not say yet. Checked against Shopify’s buyer-requested order edits announcement and the RequestedOrderEdit reference.

Cover graphic for Shopify buyer-requested order edits
A request is a record to act on, so hold fulfillment until it is handled.

What Buyers Can Request

Per the announcement, buyers can request removal of unfulfilled line items. That is the whole scope for now: Shopify’s page does not describe requests for other kinds of edits. Apps opt in by updating to the latest API versions, and no action is required if you do nothing.

The Admin GraphQL API Objects

A RequestedOrderEdit is described as a buyer-initiated request to edit unfulfilled line items on an order. It needs the read_orders scope to read and implements Node.

  • id, order and lineItems, with the line item changes grouped by type of change.
  • status of type RequestedOrderEditStatus.
  • Timestamps: requestedAt, createdAt, updatedAt, and the nullable requestResolvedAt and requestDeclinedAt.

On orders, the requestedOrderEdits connection lists them and displayRequestedEditStatus gives an aggregated display state. The orders query also accepts a requested_order_edit_status search filter, which Shopify says finds orders with requests awaiting merchant action.

Mutations and Queries

  • requestedOrderEditCreate creates a request on an order on behalf of a buyer.
  • requestedOrderEditResolve marks a request as resolved, meaning handled manually.
  • requestedOrderEditDecline rejects a request.
  • requestedOrderEditCalculate returns the calculated financial outcome before a request is created.

The mutations need write_orders. Each takes an input object, for example RequestedOrderEditCreateInput, RequestedOrderEditResolveInput and RequestedOrderEditDeclineInput.

The Customer Account API Side

Buyers submit requests through the orderRequestEdit mutation. It accepts an optional idempotency key through the @idempotent directive, so a retry returns the original object instead of a duplicate. The Customer Account API also has a requestedOrderEditCalculate query so a buyer can preview the financial outcome. Shopify’s page does not state the scopes for the Customer Account API. If you are new to retry keys, read our guide to idempotency keys for Admin API mutations.

Webhook Topics

Three topics report the lifecycle.

  • requested_order_edit/created
  • requested_order_edit/resolved
  • requested_order_edit/declined

Payloads include the request status, the order_id and the requested line item changes with resolved quantities. Subscribe through Next Gen Events or classic webhooks as your app already does. Our Events vs webhooks comparison explains the choice.

What the Documentation Does Not Say

  • The full RequestedOrderEditStatus list is not shown in the pages we read. The announcement names a REQUESTED status that apps can use to hold fulfillment.
  • It does not say whether a request can be modified after creation.
  • It does not list the exact transition rules between created, resolved and declined.
  • Customer Account API and webhook scopes are not stated.

Check the live reference before you encode assumptions about these.

Our Analysis: Where This Fits in an Order Workflow

Hold fulfillment while a request is open. Shopify says the requested status can be used to hold fulfillment. Our suggestion is to add that check to any app that pushes orders to a warehouse or 3PL, so an item is not shipped after the buyer asked to remove it.

Treat resolve as a record, not an action. The resolve mutation marks a request as handled. The documentation does not say it edits the order for you, so make the actual order change and then resolve the request.

Use the calculate query to set expectations. Showing the financial outcome before the request is created reduces support tickets. Surface it in your UI and in merchant notifications.

Plan for missed events. Combine the webhook topics with a periodic search on requested_order_edit_status, since a missed delivery would otherwise leave a request unnoticed. This sits alongside the other changes in our API 2026-10 checklist.

FAQ about Requested Order Edits

Which API version has it? 2026-10.

Can buyers request anything other than removing items? Shopify’s announcement covers removal of unfulfilled line items only.

Which scopes do I need? read_orders for the Admin GraphQL queries and write_orders for its mutations.

Will my existing app break? No. Shopify says no action is required and that apps opt in by updating to the latest API versions.