When you want to stop offering an app, you either retire it or delete it. Which one Tringify offers depends on whether the app was ever used. Both are permanent, and both are in the Developer Portal under Apps > your app > Danger zone.
Retire |
Delete |
|
|---|---|---|
When it is offered |
The app was used in any way, or Tringify can't yet prove it wasn't. |
Only when the app was never used anywhere. |
Existing installs |
Keep working until each merchant uninstalls. |
There are none. |
Records |
Every record is kept. |
Tringify removes the app's data, then the app is gone. |
Undo |
Not possible. |
Not possible. |
Which one applies#
You can delete an app only if it never touched a store. That means all of these are true:
It was never installed on any store, and no store is part of the way through an install.
It never had charges, usage records or plan changes.
It has no paid plan that has been through review.
No store holds data for it.
If any of them is not true, retire the app instead. Retiring is also what Tringify offers when it can't finish checking the app's use at the moment; try again later if you expected delete to be offered.
Check before you confirm#
Before asking for a verification code, the Danger zone shows what Tringify found for the app and which action it offers. The CLI shows the same check:
tringify app retire
tringify app delete
When delete is not offered, Tringify lists each reason. They include:
The app is installed on a number of stores, for example 3.
The app was installed on a store before, even if it was uninstalled since.
The app has billing records: charges, usage records or plan changes.
Stores hold data for the app.
The app has a paid plan that has been reviewed.
A store is finishing an install with one of the app's install links.
Some stores can't be checked right now. Delete is not offered until every store has been checked; try again later.
The reasons are written by Tringify and shown as they are. An app that is already retired, or is being deleted, offers neither action.
Confirm with a verification code or passkey#
Retiring and deleting are confirmed like other dangerous actions: with a code sent to your email, or with your passkey. Either action needs the Delete Apps permission (apps:delete) in your organization; see Organization team permissions.
The CLI can show the check, but you confirm in the Developer Portal in your browser, because the confirmation needs your email code or passkey.
What retiring does#
Retiring takes effect at once and cannot be undone. A retired app:
Is hidden from the App Store and from app search.
Can't be newly installed, from the App Store, from an install link you already shared, or through an OAuth-style install. You can't create new install links.
Can't change: no new versions, no submitting for review, no publishing, no updates to private installs, and no edits to the draft configuration, listing, pricing or provider declarations.
Tringify keeps every record of the app. Stores that have it installed keep using it as before: webhooks are delivered, store tokens keep working, merchants can open it in Store Admin, and billing continues. This lasts until each merchant uninstalls it. A merchant who uninstalls a retired app can't install it again.
You can still look after the installs that remain. On a retired app you can:
Rotate credentials: the client secret, store tokens and the webhook signing key.
Manage webhooks, see deliveries and retry them.
See the app's health, its installs and its activity.
Keep your servers running for as long as stores have the app installed. Each uninstall sends app.uninstalled as usual; see Install lifecycle.
What deleting does#
When you confirm, the app is hidden from your apps at once. Tringify then removes the app's data, and once that has finished, the app is gone.
Tringify checks again before it removes anything. If the app turns out to have been used after all, for example because a store installed it in the meantime, the deletion is refused and nothing is removed. The app reappears in your apps with a banner that explains why, and you can retire it from the Danger zone instead.