LUCENTCOMMERCEGET A FREE STORE AUDITFREE AUDIT

CHECKOUT · SHOPIFY PLUS · THEME · 12 FEBRUARY 2026 · 7 MIN READ

Checkout branding: how far Shopify lets you go now

The Checkout Branding API goes further than most teams realise, and most teams should still stop after the first four changes.

A release note pinned beside the storefront it changed

Further than the old reputation suggests, and only on Plus. The Checkout Branding API exposes two layers — a designSystem of colours, typography and corner radius, and customizations for individual areas such as the header and its logo, the main column, the order summary, form controls, checkboxes, the footer, the cart link, the buyer journey and the favicon — and it accepts your own .woff or .woff2 files, so checkout can genuinely carry your typeface rather than an approximation of it. What you cannot do is style one step differently from another: Shopify states you "can't currently customize styling for individual pages", and the styles you set apply across checkout, the checkout queue, UI extensions and account pages together. The documented plan requirement is a Plus plan or a development store, and the mutation is only available to a user with the right permission and scopes.

IN SHORT

  • Checkout branding is applied to a checkout profile via the Admin GraphQL API, and Shopify documents the requirement as a shop "on a Plus plan or a Development store plan".
  • The API has two levels: `designSystem` for foundational colours, typography and corner radius, and `customizations` for specific components and areas.
  • Custom fonts are supported by file: a `genericFileId` for "a font file uploaded via the Files api", where "Allowed font types are .woff and .woff2" and weight "should be between 100 and 900".
  • You cannot style checkout steps individually — the documentation is explicit that styling for individual pages is not currently customisable, and settings apply across checkout, UI extensions and account pages.
  • SVG is not a supported image type for styling checkout, so a logo needs a raster export.
  • The reference now marks `checkoutBrandingUpsert` as deprecated in favour of `checkoutAndAccountsConfigurationUpdate` — check the current API version before building an integration around either.
  • Branding is not a conversion lever. Do the four changes that make checkout feel continuous with the site, then spend the remaining budget on the cart and product pages.

Where checkout branding actually lives

Two things confuse this conversation, and both are historical. The first is that checkout used to be a Liquid template some stores could edit, which set an expectation of total control that no longer applies. The second is that checkout UI extensions exist, so people assume extensions are the styling mechanism. They are not — extensions run in a sandbox with no access to the checkout page itself, and they render Shopify's components.

Branding is a separate, controlled surface. It attaches to a checkout profile, which is the unit you publish, and it is set either in the checkout and accounts editor by hand or through the Admin GraphQL API by an app. The API route is what makes it a development topic rather than a design one: it can be versioned, reviewed and applied to a draft profile before anyone sees it.

The plan requirement is the first thing to establish, because it ends a lot of scoping conversations early. Shopify documents the mutation as requiring a shop "on a Plus plan or a Development store plan", with the read_checkout_branding_settings and write_checkout_branding_settings scopes and a user holding the relevant permission. If you are not on Plus, checkout branding at this depth is not a project you can start.

The two layers, and which one you actually need

The input splits into designSystem and customizations, and the split is a good piece of API design because it matches how the work should be sequenced.

`designSystem` holds the foundational decisions: colour — a global accent and colour schemes covering base, control and button variants — typography with a primary font group "used for most components such as text, buttons and form controls" and a secondary group "used for heading components by default", font sizing, and corner radius. Set these and most of checkout changes at once, correctly, because everything downstream inherits them.

`customizations` reaches into specific areas: the header and its logo, alignment and position; the main column; the order summary and its colour scheme; form controls and checkboxes; the primary button; the footer; the cart link; the buyer journey; the favicon.

The useful discipline is to get everything you can out of the first layer before touching the second. A team that sets schemes and typography properly usually finds that three-quarters of their customisation list is already done. A team that starts in customizations ends up with a set of component overrides that drift away from the design system and have to be re-reconciled every time the brand changes.

Fonts are the thing most people do not know they can do

The assumption that checkout cannot carry your typeface is out of date. A font group can be a shopifyFontGroup — a family from Shopify's library — or a customFontGroup, which takes your own files.

The mechanism is specific and worth knowing before you promise it to a brand team. Each custom font is a genericFileId, described as "a globally-unique ID for a font file uploaded via the Files api", and the documented constraint is that "Allowed font types are .woff and .woff2", with a weight that "should be between 100 and 900". So the sequence is: upload the file, get its ID, reference it in the font group, apply it to the profile.

The practical catch is licensing rather than technology. A webfont licence that covers your storefront domain does not automatically cover a file hosted in Shopify Files and served into checkout, and that is a question for whoever bought the licence, not for the developer doing the upload. Ask it before the work is scheduled, because the answer occasionally changes what is possible.

The other catch is that you need .woff/.woff2. A brand team handing over .otf files is handing over a conversion step, not an asset.

The real limits, and why they are the right ones

Three constraints define the ceiling, and none of them is arbitrary.

You cannot style one step differently from another. Shopify states you "can't currently customize styling for individual pages", and that what you set applies across checkout, the checkout queue, UI extensions and customer account pages. Teams occasionally want a different treatment on the payment step, or a distinct look for the Thank you page. The answer is no, and the by-product is that extensions and accounts inherit your design system automatically rather than needing to be styled a second time.

SVG is not supported. "SVG is not a supported image type for styling checkout", so a logo goes in as a raster file at an appropriate resolution. Worth catching at asset handover.

Layout is not yours. You are configuring a design system, not writing CSS. The structure of checkout — what is asked, in what order, in which column — is Shopify's, and that is the trade that lets Shopify keep improving checkout without breaking every merchant who styled it. The last decade of ecommerce is full of bespoke checkouts that were a competitive disadvantage within two years.

One moving part to check rather than trust: the API reference currently marks checkoutBrandingUpsert as deprecated in favour of checkoutAndAccountsConfigurationUpdate, which requires write_checkout_and_accounts_configurations or write_checkout_settings and access to the checkout and accounts editor. If you are building an integration rather than making a one-off change, read the mutation page for the API version you are pinning to before you write against either.

How much of this is worth doing

Here is the part a checkout branding article is not supposed to say: almost none of the fine detail matters to revenue, and we would talk most stores out of the long version.

There is a real effect and it is narrow. A buyer arriving at checkout should not feel handed off to a third party — that moment of doubt is worth removing, and it is removed by four things: the logo, the colour scheme, the typeface, and the corner radius that makes buttons and fields look like the ones on your site. That is an afternoon of work with the API, most of it in the design system layer, and it captures essentially all of the available benefit.

Everything after that is taste, and taste at checkout is expensive taste. The order summary's exact background, the checkbox treatment, the header alignment — a week of iteration there competes for budget with the cart page, the delivery-date question, or the mobile product page, all of which are surfaces where buyers are still deciding rather than paying. Checkout is where they have already decided. The job is to not interrupt them.

This is also the honest answer to "should we move to Plus for checkout branding?" — no. Move to Plus for checkout Functions, B2B, multiple storefronts, the API limits or the support model. Branding is a pleasant thing that comes with the plan, not a reason to buy it. When we scope [a Shopify build](/services/build) that includes checkout, branding is a day in the plan and the rest of the checkout work is rules, not looks.

A sensible order of work

If you are on Plus and this is on the roadmap, the sequence that avoids rework:

  • Query checkoutProfiles and identify the published profile. Apply changes to a draft profile first — publishing is the moment customers see it.
  • Set the design system: colour schemes, accent, primary and secondary font groups, font size, corner radius. Review checkout against the site at this point, before customising anything.
  • Upload custom fonts as .woff/.woff2 via the Files API and reference them by genericFileId — but confirm the licence covers it first.
  • Add only the customizations that the design system could not reach. If the list is long, the design system was set carelessly.
  • Add the favicon and the logo, remembering the logo cannot be an SVG.
  • Check it on a phone, in the checkout your buyers actually use, and against a real order — then stop, and put the next week into the cart page.

Questions this raises

Can you brand Shopify checkout without Plus?

Not at this depth. Shopify documents the checkout branding mutation as requiring a shop on a Plus plan or a development store plan, alongside the checkout branding scopes and the relevant user permission. Stores on other plans get the standard checkout, which is a well-tested page that converts, and their effort is better spent on the cart and product pages.

Can you use a custom font in Shopify checkout?

Yes, on Plus. A font group can reference a custom font by `genericFileId` — "a globally-unique ID for a font file uploaded via the Files api" — and the documented constraint is that "Allowed font types are .woff and .woff2", with a weight between 100 and 900. Check the webfont licence covers hosting the file in Shopify Files and serving it into checkout, because storefront-only licences often do not.

Can you style each checkout step differently?

No. Shopify states you "can't currently customize styling for individual pages", and the styling you apply extends across checkout, the checkout queue, UI extensions and customer account pages. That is a constraint with a benefit: extensions and account pages inherit your design system rather than needing to be styled separately.

What is a checkout profile?

The container branding is applied to and published from. You query `checkoutProfiles` to find the published profile's ID, and you can apply and review changes on a draft profile before publishing. Treating the draft profile as a staging step is the difference between reviewing a change and discovering it.

Do checkout UI extensions let you restyle checkout?

No, and that is by design. Extensions run in an isolated sandbox with no access to the checkout page's HTML or assets, and render Shopify's own components. Styling is the Checkout Branding API's job; extensions are for adding a field, a delivery date or a required consent. An extension that tries to fight the host page's visual language just looks like an insert.

Is checkout branding worth the development time?

The first four changes are: logo, colour scheme, typeface and corner radius, so a buyer does not feel handed to a third party. Beyond that the returns fall away quickly, because checkout is the page where the decision has already been made. If the choice is another week on the order summary's background or a week on the cart page, take the cart page.

NEXT STEP

Free store audit

A senior Shopify engineer reviews your storefront, theme performance and checkout, then sends a prioritised list of fixes.