This page describes what a merchant sees when your app sends them to the authorize URL, and how they disconnect it later. Use it when you write your own onboarding, and when you need to explain why a shop cannot be selected.
The Consent Screen
When a merchant opens your authorize URL, they sign in to Triple Whale if they are not already signed in. The consent screen shows:
- Your app's logo and name, as submitted in the portal
- The scopes you requested, in the wording from OAuth Scopes
- A shop picker, so they can connect one shop or several
After they approve, they are redirected to your redirect URI with the authorization code. Call granted shops with the access token to see which shops were granted.
Choosing Shops
A merchant may have access to more than one Triple Whale shop.
- Shops that can be combined are selected together. Your app receives one token that covers all of them.
- A shop that cannot be combined with others can still be connected on its own. The screen explains that, and picking it clears any other selection.
- For an app with
moby:read, a shop whose plan does not include MCP cannot be selected. The screen tells the merchant what to do next. If none of their shops can be connected, the screen says so instead of offering the picker.
Where Merchants See Connected Apps
Connected apps are listed in the merchant's shop settings under Apps & Extensions, with your app's name and logo. The page is at app.triplewhale.com/apps.
Disconnecting an App
A merchant who can manage apps on the shop opens Apps & Extensions and clicks Remove app. From that moment:
- Refreshing that merchant's token fails
- Granted shops no longer lists their shop or shops
- The app disappears from their Apps & Extensions page
To reconnect, send the merchant through the authorize URL again.
Best Practices
- Tell merchants which shops they should connect, and that combining shops depends on their plan.
- When a refresh fails, offer a "reconnect Triple Whale" action instead of a raw error. A
401on refresh means the merchant removed the app, or your client secret was rotated. - If your app uses
moby:read, mention the MCP plan requirement in your own docs so a disabled shop on the consent screen is not a surprise.