Close-up of rusted, static-like metal texture, standing in for Shopify checkout rates that fail silently after a carrier service install

Shopify Carrier Service Rates: Confirm Checkout After 2026-10

Shopify Carrier Service Rates: Confirm Checkout After 2026-10

Oct 19, 2026

Octavian Contis 10 minutes

Share

A merchandiser reinstalls the live-rate shipping app before a campaign weekend. The app page says installed. Checkout still opens. The shipping step shows no carrier-calculated options, only a leftover flat rate or an empty list.

Shopify posted the reason on 26 June 2026: Admin API version 2026-10 registers a new carrier service and leaves the General shipping profile alone. The stable version landed on 1 October 2026. The next job is a sheet: every live-rate app, every profile and zone you sell into, and a test checkout that proves the rate appears.

Introduction

This article teaches that inventory after the 2026-10 Admin API change. Confirming UK VAT on EU orders after the 29 September tax product move belongs in Shopify Tax Checklist: Confirm UK VAT on EU Orders Over £135. Peak gates that include fulfilment and support belong in A Shopify Black Friday Readiness Checklist for Brands That Already Scale. This piece stays on carrier services: attach the rate, then prove it at checkout.

Merchant and developer threads this month keep returning to the same cluster. A store installs or reinstalls a shipping app, the callback looks healthy, and checkout has no live rates. A second group is asking whether carrierServiceCreate itself is going away. A third reports duplicate named rates or an app-controlled profile that never gets asked for a quote when a flat rate already sits on General. The shared work is a verification owner after an API create, not a new theme section.

Treat the walk as a settings checklist. Confirm plan eligibility and vendor API version before you rebuild rate logic.

Checklist rowWhat you recordPass criterionOwner
Live-rate shipping appApp name, vendor contact, Admin API version, create pathEvery app that can return a checkout rate is namedOps / tech
Plan eligibilityGrow add-on, Advanced, Plus, or built-in Shopify Shipping onlyThe plan can show third-party calculated rates if you need themCommerce
Profile and zone attachGeneral plus extra profiles, each zone, carrier-or-app rate presentEvery zone that should show a live rate has the service attachedOps
Test checkoutOne cart per zone, plus a product that lives only in an extra profileThe expected carrier or app line appears on the shipping stepCommerce
Backup and name clashBackup rate, leftover flat rate with the same titleBackup shows only on live-rate failure; titles do not hide the app lineOps / tech
Vendor follow-upWhether 2026-10 create now writes the profile, or staff must attach itWritten path for the next install or reinstallTech / vendor

What changed in Admin API 2026-10

Shopify's developer changelog is explicit. Starting with GraphQL Admin API version 2026-10, creating a carrier service no longer automatically adds it to the shop's General shipping profile.

The breaking change hits both create paths that apps have used for years: GraphQL carrierServiceCreate, and REST POST /admin/api/{version}/carrier_services.json. Earlier versions added an active API carrier service to eligible zones on General as soon as create succeeded. On 2026-10 and later, create only registers the service. Shopify no longer adds that service to General or to any of its shipping zones by default.

The 2026-10 release notes repeat the same shipping line: configure carrier-calculated rates in a shipping profile before you expect checkout visibility. Older supported API versions keep the automatic-add behaviour until those versions are sunset. That is why a vendor still on 2026-07 can look fine on one shop and fail on a fresh install that already calls 2026-10.

Carrier service attach after 2026-10

App creates carrier serviceService registers onlyAttach rate on each profileand zoneTest checkout per zoneCarrier service attach after 2026-10
Carrier service attach after 2026-10

Shopify's recommended path after create is to send the merchant into admin to add the carrier-calculated rate on the right profile. The alternative is that the app writes the rate through the shipping profile APIs. Either path needs a named owner. An install that only stores a callback URL will pass the app page and still fail the shipping step.

Who is affected

Stores that install, reinstall, or migrate an app that shows live carrier rates are in scope when that app now calls Admin API 2026-10. A first-time install on a new shop, a reinstall after a token rotation, and a vendor migration that recreates the carrier service are the three moments that quietly mint a service with no zone attach.

Existing checkouts that already show live rates are outside the changelog's create story. Still re-test after any of those three moments, because the failure mode is silence: checkout loads, the shipping step is empty, and Settings still lists the app.

Plan eligibility sits on a different row. Shopify Help says third-party carrier-calculated shipping is included on Advanced and Plus. Grow stores can add it for an extra monthly fee or by switching to annual billing. Other plans do not include that product. Built-in Shopify Shipping carrier rates on supported fulfilment locations can still appear on all plans. If the store cannot buy third-party calculated rates, the 2026-10 attach change is the wrong diagnosis. Put the plan decision on Choosing the Right Shopify Plan and come back to this sheet once the plan can show the rate.

App-owned delivery profiles keep using the delivery profile API, including on shops that later opt into market-driven shipping. Merchant-owned profiles are the ones the changelog now leaves empty after create. Write which kind you run before you ask a vendor to "just enable rates".

Scrumbles is a health and wellness subscription brand where fulfilment cost already varied by English postcode. We implemented Shopify delivery functions so checkout could allocate those zones in the stack the team owns. That pattern is useful when you control the rate table. A third-party carrier callback is useful when the quote has to come from a 3PL or a carrier account you do not want to copy into Functions. Both still need a visible shipping option at checkout after an app change.

List each live-rate shipping app

Start with the apps that can return a checkout rate, not with the theme footer. Open Settings, Apps, and write one row per install that calculates shipping: the carrier account connector, the 3PL live-rate app, the subscription shipper that injects a rate, and any custom app that registered a callback.

For each row record the vendor contact, the Admin API version they ship today, and whether create still writes the profile or only registers the service. Ask them to say which of Shopify's two post-create paths they use: a merchant prompt in admin, or a programmatic attach through the shipping profile APIs. If they cannot name the path, assume staff must attach the rate after every install.

Add the callback URL status and the last successful rate request if the vendor can show it. A healthy callback with no profile attach is the 2026-10 failure mode. A dead callback is a different ticket.

Include which products the app is supposed to cover. A bulky-item profile, a subscription box profile, and the General catalogue can each miss the attach on their own. YuMOVE moved more than 300,000 subscription customers while support tools and storefront performance still had to hold. A shipping app swap in the middle of a subscription migration is exactly when a silent empty shipping step shows up as "checkout is broken" rather than "the profile was never written".

Confirm the carrier-calculated rate on every profile and zone

Open Settings, then Shipping and delivery. Work profile by profile. Shopify Help still documents shipping profiles as the way to give specific products and locations their own rules, while shipping options by market roll out separately and migrate existing rates when a shop is upgraded.

On each profile, open every zone that should show a live rate. Confirm a rate set to use a carrier or app to calculate rates, and that the selected service matches the app on your sheet. A zone with only a flat "Standard" leftover from last year will hide the problem until a buyer in that country reaches checkout.

Do the extra profiles, not only General. The changelog's old behaviour added the new service to eligible zones on General. Extra profiles never received that gift. A mattress, a hazardous SKU, or a gift-box bundle that lives on its own profile can stay blank after a "successful" install even on older API versions.

Screenshot the profile list before you change anything, so you can compare after a vendor patch. Markets that already moved to shipping options by market need the same confirm on the market's shipping options. Recording duties, currency, and catalog gaps on those markets still belongs in Shopify Markets Black Friday Traps: Duties, Currency, and Catalog Gaps. This row only asks whether the carrier or app rate is attached.

Place a test checkout

Attach is a settings claim. Checkout is the proof. Place a test order to every zone on the sheet, using a product from General and a product that lives only in an extra profile. Use a real destination postcode, because some callbacks ignore a half-filled address.

Write what appears on the shipping step: the carrier or app title, the price, and whether a backup rate also showed. Shopify Help says a backup shipping rate displays when calculated rates fail and no other eligible rate is available. Flat rates on the same destination always display when they are eligible, so a leftover flat option can sit next to the live rate or, in older behaviour, hide a duplicate name. Developer reports this month describe both rates showing when titles match. Record the titles you actually see so you can tell a missing attach from a name clash.

If the shipping step is empty while add-to-cart and the information step still look healthy, stay on this sheet until the attach is proven. The diagnostic for payment and step failures after rates appear belongs in How to Fix Shopify Checkout Abandonment When Your Funnel Looks Healthy. Shop Pay and agentic checkout handoffs are a separate inventory in Shopify Shop Pay Delegated Payments: What Merchants Should Inventory.

Keep the test-order screenshots with the vendor API version. That packet is what you send when the app page says installed and checkout still has no live rate.

What this does not change

The Carrier Service callback remains the documented way for an app to return live rates once the service is active and attached. Shopify's 26 June note covers the auto-add into General. Reading that note as a sunset of the whole callback flow will send you into a Functions rebuild you did not need this week.

Market-driven shipping is a separate Markets programme. Shopify said merchant-owned shipping configuration is moving onto Markets, with a feature preview from 1 July 2026, merchant rollout from 1 October 2026, and a stated default of 1 July 2027. App-owned delivery profiles keep the delivery profile API. Put that upgrade on the Markets sheet. Do not fold it into this attach check.

Delivery option generator Functions remain a valid way to own rate logic in your stack, which is the path we took for postcode zones on Scrumbles. Choose Functions when you want the quote inside a Function you maintain. Choose a carrier service when the quote has to come from a carrier or 3PL callback. The 2026-10 change does not force that choice.

Conclusion

You can now list each live-rate shipping app, confirm the carrier-calculated rate on every profile and zone you sell into, and prove the line on a test checkout after Admin API 2026-10. Write the vendor path for the next install so the next reinstall does not fail in silence.

If a 3PL app, a Markets option, and a merchant-owned profile all write to the same shipping step, or the vendor cannot say whether 2026-10 create attaches the rate, book a shipping and integrations review or a stack assessment. A missing carrier-calculated line stays missing after a theme edit, so finish the sheet, the attach, and the test order this week.

Frequently Asked Questions

Shopify announced on 26 June 2026 that Admin API version 2026-10, which became the latest stable version on 1 October 2026, registers a new carrier service and leaves the General shipping profile alone. The GraphQL carrierServiceCreate mutation and the REST POST /admin/api/{version}/carrier_services.json endpoint no longer add the service to eligible zones by default. A merchant will not see those live rates at checkout until someone attaches a carrier-calculated rate to the right shipping profile, either in Settings, Shipping and delivery, or through the shipping profile APIs.

Shopify's changelog describes newly created carrier services on API 2026-10 and later. Older supported API versions keep the automatic-add behaviour until those versions are sunset. Ask each vendor which API version the current install uses, and whether a reinstall, migration, or new shop would call 2026-10. Treat an already-working checkout as something you still re-test after any app change, because the silent failure is an empty shipping step rather than an admin error.

Shopify Help says third-party carrier-calculated shipping is included on Advanced and Plus. Grow stores can add it for an extra monthly fee or by switching to annual billing. Other plans do not include it. Built-in Shopify Shipping carrier rates on supported fulfilment locations sit on a separate table and can appear on all plans. Confirm the plan row before you blame the 2026-10 attach change for a missing rate.

Open Settings, then Shipping and delivery. Open each shipping profile that can hold a product you sell, then open each zone that should show live rates. Add a rate set to use a carrier or app to calculate rates, and pick the service that matches the installed app. Shopify recommends that apps send merchants to this admin path after create. Place a test checkout to each zone, including a product that lives only in a separate profile, before you treat the attach as done.

The 26 June changelog covers only the auto-add into the General shipping profile. The documented callback still receives checkout details and returns rates once the service is active and attached to a profile. Delivery option generator Functions are a different way to own rate logic in your stack, which we used for postcode zones on Scrumbles. Treat Functions as a later architecture choice, not as a required replacement for this attach check.

Place a test order to every zone that should return a live rate, using a product from the General profile and a product from any extra profile. Confirm the carrier or app line appears, that a backup rate only shows when the live call fails, and that a leftover flat rate with the same name does not hide the result. Screenshot the shipping step and keep the vendor API version on the same row. If the shipping step is empty while add-to-cart still looks healthy, use the checkout abandonment guide after this inventory.

Bring in a technical partner when a 3PL app, a Markets profile, and a merchant-owned profile all write rates to the same checkout, or when a reinstall still leaves zones blank after the vendor says they attach the rate. A shipping and integrations review maps which app owns each callback before peak traffic. Theme edits will not restore a missing carrier-calculated line.

Related Articles