- Nov 5, 2025
- Parsed from source:Nov 5, 2025
- Detected by Releasebot:Nov 5, 2025
tax_summaries/create webhook and taxSummaryCreate mutation now available
Shopify API 2026-01 adds tax_summaries/create webhook and taxSummaryCreate mutation for Tax Partner Apps. Enables generation of tax summaries by order or bulk, triggered by fulfillments and refunds, with rich tax data. Includes access scope write_taxes and onboarding details.
What's New
The taxSummaryCreate mutation enables apps to request the generation of tax summaries for orders. The tax_summaries/create webhook is triggered by events that may affect tax liability, such as fulfillments and refunds.
Using the Mutation
The mutation accepts either a specific order ID or a time range for bulk processing:
mutation { taxSummaryCreate(orderId: "gid://shopify/Order/123456789") { enqueuedOrders { id } userErrors { field message } } }Webhook Payload
The tax_summaries/create webhook provides comprehensive tax data, including:
- Sales agreements and associated sales details
- Delivery groups with fulfillment information
- Tax exemption details
- Return sales types for refund workflows
- Order context and financial status
Requirements
- Access Scope: write_taxes
- Tax Platform Access: Tax Platform features
Learn More
For information about the Tax Platform and partnership opportunities, see Building tax apps.
Original source Report a problem - Nov 1, 2025
- Parsed from source:Nov 1, 2025
- Detected by Releasebot:Nov 1, 2025
Order Update Phone Field Public
Admin API 2026-01 Update
As of Admin API 2026-01, the phone field is now publicly available in the orderUpdate mutation's OrderInput. This field allows developers to update the customer phone number for an order, overwriting the existing phone number.
This change brings parity with the REST API, which already supports updating the phone field through the Order resource. The phone field is particularly useful for maintaining accurate customer contact information, especially for SMS notifications and order-related communications.
Implementation details
For implementation details, refer to the orderUpdate mutation documentation.
Original source Report a problem - Oct 31, 2025
- Parsed from source:Oct 31, 2025
- Detected by Releasebot:Oct 31, 2025
New Queries for Bulk Operations
New Admin API GraphQL queries unlock bulk operations at scale with bulkOperations and bulkOperation. Enhanced filtering, sorting, and pagination give full visibility and easier debugging for all bulk tasks, while older bulk workflows are deprecated.
What's Changed
Here's an overview of the updates:
New Bulk Operations Retrieval Queries
We have added two new queries for accessing your bulk operations:
- bulkOperations: A connection-based query that returns a paginated list of all your bulk operations, complete with filtering and sorting options.
- bulkOperation: A single-object query that retrieves a specific bulk operation by its ID.
Enhanced Filtering and Search Capabilities
The bulkOperations connection now supports flexible querying with the following features:
- Status Filtering: Locate operations by status (e.g., canceled, completed, running).
- Type Filtering: Filter operations by type (query or mutation).
- Date Filtering: Search for operations created before or after a specific date.
- Sorting Options: Sort operations by created_at, completed_at, or status in ascending or descending order.
- Search Syntax: Use field:value patterns for precise filtering.
What You Need to Do
Depending on your requirements, follow these steps:
To List and Filter Bulk Operations
Utilize the bulkOperations connection query with search syntax:
query { bulkOperations( first: 10 query: "status:completed operation_type:query created_at:>2025-10-10" sortKey: CREATED_AT reverse: true ) { edges { node { id status query createdAt completedAt url } } pageInfo { hasNextPage hasPreviousPage } } }To Retrieve a Specific Bulk Operation
Use the bulkOperation query:
query { bulkOperation(id: "gid://shopify/BulkOperation/123456789") { id status query createdAt completedAt url errorCode } }If You're Using Existing Bulk Operation Workflows
No changes are necessary. The current Bulk Operation can still be used but is being deprecated.
Why We Made This Change
Previously, you could only access the most recent bulk operation through current Bulk Operation. These new queries offer:
- Complete visibility into all your bulk operations, not just the current one.
- Enhanced debugging capabilities by filtering operations by status or date.
- Efficient pagination for managing large numbers of operations.
- Simplified monitoring, debugging, and management of bulk operations at scale.
Learn More
- Bulk Operations Queries Guide
- Oct 31, 2025
- Parsed from source:Oct 31, 2025
- Detected by Releasebot:Oct 31, 2025
Support metafield and metaobject standards in Declarative Custom Data Definitions
We now support enabling and referencing standard metafield and metaobject definitions through an app’s TOML file. Key benefits include:
- Standard metafield and metaobject definitions can be enabled through TOML, and managed through the app dev or app deploy command.
- Shopify automatically distributes these definitions to multiple shops simultaneously, significantly speeding up migration processes.
- Updates are atomic, ensuring that all stores consistently maintain the same version of your definitions.
For more information, see the custom data documentation on shopify.dev.
Original source Report a problem - Oct 30, 2025
- Parsed from source:Oct 30, 2025
- Detected by Releasebot:Oct 31, 2025
The cartDiscountCodeUpdate mutation now requires the discountCodes field
The cartDiscountCodeUpdate mutation now requires the discountCodes field
As part of the GraphQL Storefront API 2026-01 release, the cartDiscountCodesUpdate mutation now requires the discountCodes agrument to be included. Previously, the cartDiscountCodesUpdate mutation would accept a mutation with no discountCodes argument, which would not actually modify the cart in any way.
For more information about the Cart object and its related mutations, visit Shopify.dev.
Original source Report a problem - Oct 30, 2025
- Parsed from source:Oct 30, 2025
- Detected by Releasebot:Oct 31, 2025
Built for Shopify apps get priority visibility across the Shopify App Store
Built for Shopify apps get a visibility upgrade in the App Store with a homepage spotlight, priority placement on category pages, and clickable BFS badges for merchant education. The changes boost discovery while complementing existing BFS benefits.
What's new
- Homepage spotlight: BFS now appears in the featured header section of the App Store homepage, giving certified apps maximum exposure to browsing merchants.
- Priority recommendations: BFS apps receive preferential positioning on some category pages.
- Interactive BFS badge: All BFS badges across the App Store are now clickable to provide merchant education on BFS standards.
These enhancements work alongside existing Built for Shopify benefits including ranking boosts and the BFS search filter, making Built for Shopify the most effective way to maximize your app’s visibility and discovery potential in the App Store.
Original source Report a problem - Oct 29, 2025
- Parsed from source:Oct 29, 2025
- Detected by Releasebot:Oct 30, 2025
Bulk operations group objects default changed to false
GraphQL Admin API bulk ops get faster with groupObjects now defaulting to false for queries and deprecated for mutations. Clear guidance helps apps scale with more reliable, faster outputs while letting you opt into grouped output only if needed.
We have optimized the output of bulk operations in the GraphQL Admin API to enhance speed and reliability.
What's Changed
Bulk Queries (bulkOperationRunQuery)
The groupObjects argument now defaults to false. Grouping objects can slow down operations and increase failure rates, especially with large datasets.
Bulk Mutations (bulkOperationRunMutation)
The groupObjects argument is now deprecated. It does not affect the order of output files because mutation outputs do not have parent objects.
What You Need to Do
If You're Running Bulk Queries
- To maintain grouped output: Set groupObjects: true.
If You're Running Bulk Mutations
- Remove the groupObjects argument from your queries. This will not impact the output files.
Why We Made This Change
Most applications do not require grouped output and the associated overhead negatively impacts performance. These changes deliver faster, more predictable results that are easier to process at scale. Enable groupObjects only if your application specifically depends on the grouped output format. As this was the default behavior previously, you can verify on any version after 2025-07 by setting groupObjects to false and testing your application.
For optimal performance, omit groupObjects on or after 2026-01, and disable this option if you are on 2025-07 or 2025-10.
Learn More
- Bulk Operations Queries Guide
- Bulk Operations Imports Guide
- Working with JSONL Output
- Oct 27, 2025
- Parsed from source:Oct 27, 2025
- Detected by Releasebot:Oct 28, 2025
Optional location inputs for inventory transfers
Inventory transfers can be created without specifying origin or destination locations, allowing unknown origins at creation. The change is non breaking and optional inputs improve workflows; apps can adapt by treating origin or destination as optional. No action required for existing apps.
Change
You can now create inventory transfers without specifying an origin or destination location.
Previously, the Inventory Transfer Create As Ready To Ship mutation required both origin and destination location IDs.
Now, these inputs are optional. This change supports workflows where the transfer's origin or destination is unknown at creation time.Note
You must provide at least one of origin or location as input to validate the mutation.
Example
mutation OmitOriginExample { inventoryTransferCreateAsReadyToShip( input: { lineItems: [ { inventoryItemId: "gid://shopify/InventoryItem/...", quantity: 5 } ] originLocationId: null, destinationLocationId: "gid://shopify/Location/...", } ) { inventoryTransfer { id status origin { name } destination { name } } } }What you need to do
Nothing.
Original source Report a problem
This isn't a breaking change. No action is required. Existing apps that provide IDs for inventory transfer origins or destinations will continue to function correctly. If your app previously required these fields, then you can update your validation logic to treat them as optional. - Oct 24, 2025
- Parsed from source:Oct 24, 2025
- Detected by Releasebot:Oct 27, 2025
Increased limits in metafield and metaobject definitions
Shopify raises metafield and metaobject limits to empower richer data structures and larger catalogs. Apps gain dedicated allocation for up to 128 definitions per resource type; merchants see up to 256 definitions per type, and metaobject entries soar to 1,000,000 per definition.
We've increased the limits for metafield and metaobject definitions, providing you with more flexibility when building custom data structures for your apps and stores.
- For app developers: Each app has its own allocation, so apps aren't competing with each other for definition space.
- For merchants: Higher limits support complex workflows across multiple apps and meet custom data needs.
- For metaobject entries: The 1,000,000 entry limit per definition removes previous plan-based restrictions of 64,000 (non-Plus) and 128,000 (Plus).
With these new limits, you can:
- Create more granular data structures in your apps.
- Support larger catalogs and content libraries.
- Build apps with richer metadata without worrying about hitting limits.
Changes to metaobject definitions
App definitions
- Each app installed on a shop can create up to 128 metaobject definitions
Merchant definitions
- 128 definitions for Basic, Shopify, and Advanced plans
- 256 definitions for Plus and Enterprise plans
Metaobject entries
- Up to 1,000,000 entries per definition
Changes to metafield definitions
App definitions
- Each app can create up to 128 definitions per resource type
Merchant definitions
- 256 definitions per resource type
Note
Standard metaobject and metafield definitions do not count towards these limits.
Learn more
- Metaobject limits
- Metafield limits
- Metaobjects overview
- Metafields overview
- Oct 24, 2025
- Parsed from source:Oct 24, 2025
- Detected by Releasebot:Oct 27, 2025
New ACH support for deferred payments
Shopify Admin GraphQL API adds ACH bank account payments, enabling merchants to accept and manage bank-based payments. New Bank Account instrument type and updated unions unlock B2B terms and draft orders—upgrade to access the new methods.
The 2026-01 Admin GraphQL API introduces support for ACH payment methods, enabling merchants to accept and manage bank account-based payments through Shopify Payments. This means new types of PaymentInstrument and CustomerPaymentInstrument are now available for B2B company locations, supporting payment terms and draft orders. If your integration manages the payment lifecycle of those ways to sell, consider upgrading. If you are not on the latest version of the API, you will not find these available payment methods.
New Objects
- Bank Account - Represents a bank account payment instrument
Updated Types
- Payment Instrument union - Now includes Bank Account
- Customer Payment Instrument union - Now includes Bank Account