Legacy Custom Apps Workaround

Hi there! Up until now, for backend/backoffice integrations that didn’t require an actual interface for the merchant, we had been creating apps directly from the merchant’s store admin. This flow allowed us to easily get a non-expiring access token with the necessary access scopes for a store, purely for our Admin API calls that our external systems performed on the stores of our clients.

However, with the introduction of the Dev Dashboard, we can see that this flow (the legacy custom apps) has been deprecated. We can still create them while the store is in client-transfer (development) mode, and has not yet been transferred to the merchant, which is OK since we mainly do the setup of our integrations before the store reaches the client and goes live.

How does that impact us?

  • Can we still use the legacy custom apps flow to get a permanent access token, while the store is on development and not yet transferred to the merchant? The apps created in this way will still exist once the store has been transferred, from what we understand. Therefore, our external systems can keep using these access tokens, without the need to refresh them.
  • If we wanted to abandon this workflow entirely, what would our options be? We checked out the client credentials grant flow, but this method produces access tokens that last for 24 hours. This means that in our backend integrations, we will have to implement access token caching and refreshing upon expiry.

Hi @WhitestRabbit :waving_hand: This has come up a lot since the January 1st deprecation. To answer your questions directly:

Legacy custom apps created before January 1, 2026 will continue to work. Existing tokens remain valid and apps created before transfer should persist once the store is handed over. New legacy custom apps can no longer be created though.

All new custom apps go through the Dev Dashboard now, and you have two paths for access tokens. The client credentials grant you already looked at is the closest equivalent to your old workflow, but it requires the app and store to be in the same organization, so the merchant would need to create the app in their Dev Dashboard after transfer. The 24-hour expiry just means re-POSTing the same client_id and client_secret before it lapses.

If you’d rather keep control of setup before transfer, the authorization code grant lets you create the app, install via a one-time OAuth flow, and get an offline access token. With expiring=1 you get a ~1hr access token plus a 90-day refresh token, and each refresh gives a fresh pair so the integration stays alive indefinitely. More upfront work (you need a callback endpoint), but you can do everything before the store is transferred.

More detail in these threads; deprecation overview and migration paths. Hope this helps, but let me know if I can clarify further!

Thank you for your response. More specifically, what I wanted to address was that new stores generated by our partner account (in client transfer mode) still show this:

So let’s say that while the store is in client transfer mode, we allow legacy custom app development and create a legacy app to store its token. When the store is finally transferred to the client, will this legacy app and its token cease to function?

Thanks for the screenshot. That carve-out for Partners on client-transfer stores is intentional and documented internally, so your workflow there is fine.

To answer your specific question: no, the legacy app and its token will not cease to function after the store is transferred. The “new custom apps will be disabled” message refers to the ability to create additional legacy custom apps after transfer, not to existing apps stopping. The whole point of that workflow is to let Partners set up apps that will be owned by the merchant post-transfer. Existing tokens remain valid and the app continues working on the transferred store.

So your current workflow (create legacy custom app on client-transfer store, set up integrations, transfer to merchant) is still a supported path. The only limitation is that once the store is transferred, no further legacy custom apps can be created on it.

1 Like