Admin API / Breaking change (2026-10)

Creating a Carrier Service
will no longer auto-add it to the General shipping profile

Starting with GraphQL Admin API 2026-10, creating a carrier service via carrierServiceCreate (or the REST carrier_services.json) will no longer have Shopify automatically add it to the default General shipping profile. Without an extra step, shipping rates won't appear at the merchant's checkout.

On this page
  1. Understand it in 30 seconds: what's changing
  2. How it works: old behavior vs new behavior
  3. Affected APIs
  4. Old vs new comparison
  5. How to respond (2 options)
  6. How to migrate (3 steps)
  7. 5 key points for developers
  8. 3 use cases you can apply
  9. One-line summary for pitches

1Understand it in 30 seconds: what's changing

Until now, creating a carrier service via the API had Shopify automatically add it to the target shipping zones of the General shipping profile, so shipping rates appeared at the merchant's checkout.
From 2026-10 onward, only the service registration happens. You have to add it to the profile yourself.

Until now (old version)

Created via API → Shopify automatically adds it to the eligible zones of the General profile → shipping rates appear at the merchant's checkout right away.

From 2026-10 onward

Created via API → just registered. No adding to any profile or zone. Without an extra step, shipping rates won't appear at checkout.

2How it works: old behavior vs new behavior

Old version (continues until sunset) carrierService Create Automatically added to the General profile at checkout shipping rates appear From 2026-10 onward carrierService Create Service registration only completed No auto-add ★ Manually or via API Add to profile This one step is now required at checkout shipping rates appear
Without this extra step,the shipping rates for your newly created carrier service won't appear at the merchant's checkout at all. If your app assumes "created = ready to use," it needs updating.

3Affected APIs

Breaking change

GraphQL Admin API

carrierServiceCreate mutation.
Applies to API version 2026-10 and later.

Breaking change

REST Admin API

POST /admin/api/{version}/carrier_services.json.
Automatic addition is likewise removed from 2026-10 onward.

Currently supportedolder API versions keep the previous automatic-addition behavior until that version is sunset. So nothing breaks suddenly until you upgrade the version—but the moment you do, the behavior changes.

4Old vs. new comparison

ItemOld version (with automatic addition)2026-10 and later
Behavior on creation Registers the service + auto-adds it to the general profile Changed Registers the service only
Reflection in shipping zones Auto-applied to eligible zones No auto-application (add it yourself)
Shipping rate display at checkout Shown immediately after creation Until you add it to a profilewon't appear
Additional implementation on the app side Not needed Needed Manual guidance or API implementation

5How to handle it (two options)

Recommended

① Prompt the merchant to add it manually

In the Shopify admin, the merchant manually adds the relevant carrier-calculated rate to the appropriate shipping profile themselves. The app guides them through the steps.

Automation

② Add programmatically via API

Use the shipping profile APIs to add the carrier-calculated rate to the appropriate shipping profile programmatically.

In either case, the goal is to ensure that after a Carrier Service is created, its rate is added to a shipping profile.

6How to migrate (3 steps)

1

Inventory your dependencies

Identify the code and flows that assume "create = rate shows up immediately."

2

Implement/wire up profile addition

Add guidance for manual addition, or automatic addition via the shipping profile APIs.

3

Verify on 2026-10

Bump the API to 2026-10 and confirm that shipping rates actually appear at checkout before rolling out to production.

75 points for developers to keep in mind

2026-10

1. The trigger is the API version

It breaks when you call 2026-10 or later. Older versions keep the previous behavior until sunset, sothe behavior switches the moment you upgrade the version— keep that in mind.

2. Both GraphQL and REST are affected

carrierServiceCreate and POST .../carrier_services.json The same change applies to both paths. You're affected whichever one you use.

3. "Registration" and "rate provisioning" are separated

Create only registers the service. Providing the rate to the merchant (i.e., adding it to a profile) becomes a separate step by design.

4. Use the shipping profile APIs

To automate, add the carrier-calculated rate to the appropriate profile via the shipping profile API. Check the official docs for the specific REST/GraphQL field structure.

Recommended Automatic

5. The recommended approach is a flow that prompts merchants to add it manually

Shopify recommends that the app guide merchants to add it manually in the admin. Automatic addition via API is also possible, but firstget the flow design (guidance UI / onboarding steps)in place to be safe.

83 use cases you can apply to your work

USE CASE 1

Regression fixes for shipping apps / carrier integration apps

Problem
Your own shipping rate app assumes that with carrierServiceCreate, "once it's created it shows up at checkout right away." After bumping to 2026-10, rates don't appear, and merchants report that "shipping rates disappeared."
Solution
Add a profile-addition step after creation (manual guidance or the shipping profile API), and run a regression test on 2026-10.
Impact
Prevent missing-shipping-rate incidents at upgrade time before they happen. Reduce support inquiries.
Technical notes
Older API versions keep the previous behavior until sunset. Managing the switchover timing with a feature flag is safer.
USE CASE 2

Build a "rate activation" step into merchant onboarding

Problem
In implementation-agency or partner projects, the carrier service is set up via API, but the merchant sees the setup as complete when in fact no shipping rates are showing — so it slips through the cracks.
Approach
Following the recommended method, add an explicit "add the relevant rate to a shipping profile" checklist item to the onboarding steps. Provide a path to the admin along with screenshots.
Impact
Zero gaps in initial setup. Avoids post-launch "shipping rates aren't showing" trouble.
Technical note
Manual guidance is Shopify's recommendation. If merchants will be doing it themselves, spelling out the name of the profile to add it to in the instructions reduces confusion.
Domestic International Profile
USE CASE 3

Automate profile additions via API to roll out across multiple stores at once

Problem
In apps that manage many stores or brands, having the carrier service manually added to a profile store by store makes operations heavy.
Approach
Use the Delivery Profile API to build profile creation into the flow, programmatically adding the carrier-calculated rate to the target profile.
Impact
Automates "create → serve rates" across stores and eliminates the setup work. Ensures rollout speed and consistency.
Technical note
The app needs to decide which profile/zone to place it on. Decide the design of the target (default or purpose-specific profile) up front.

9One-line summary for proposals

"As of 2026-10, creating a Carrier Service via API will no longer automatically add it to the general shipping profile.
"Create = instant rate display" is over. After creating, you must add the rate to a profile as an additional step.
The recommendation is to guide merchants to add it manually; to automate, use the Delivery Profile API."