For SaaS vendors submitting a Shopify app
Shopify SubmitWill your connector pass Shopify App Store review - and which choices can you never undo?
Paste your shopify.app.toml, how you bill Shopify merchants and your listing text, and get distribution, billing, install flow, protected customer data and listing rules checked against Shopify App Store review, then the submission plan or the fixes for a paused review. Your browser reads the TOML and the listing and flags charges kept on your own Stripe, a free connector into a paid SaaS, a shop-domain prompt before install, no expiring offline access tokens†, a missing protected customer data request, missing compliance webhooks, "billed separately" in the listing and a name that starts with Shopify, re-ranks the distribution menu, decides the billing model and lays out the timeline from today.
The app, the listing and the billing free
Read as TOML: key = value with strings, true or false, numbers and lists; [tables], [[array tables]], dotted keys and # comments. Every line that does not parse is named with its number and skipped, never guessed.
Start lines with name:, subtitle: and pricing:; everything else is read as the description.
The interview - each answer moves a check, the menu or the timeline free
The checks free
What the page flags
shopify.app.toml as read
The scopes, by kind
Every check, rule by rule
The distribution menu, re-ranked
The billing decision and the fees
The listing, linted
The timeline
Your stage, the banner and the packet
The fixed TOML, the listing lint and the exports free
The fixed shopify.app.toml
Your TOML written back from what the parser read, with use_legacy_install_flow set to false. It never adds a scope, a URL or an id: after a plan runs, the plan's own download also sets embedded = true when the plan's fix for toml_embedded says so. Comments are not kept.
The submission plan metered
Pricing as soon as the session is ready...
Sign inThe reply could not be read. Here it is as it came back:
Caveats
Caveats
The page's check of this reply
Saved apps
How it works - and what is sourced
The checks follow the skill's rules the review enforces, its distribution menu, its billing decision, its submission and timeline sections, Built for Shopify and keeping the listing, plus the skill's submission packet - which is where the three compliance webhooks (customer data request, customer redact, shop redact) come from. shopify.app.toml is read by a TOML parser written for app configs; every line it cannot read is named with its number and skipped. The scopes are sorted into a fixed set of kinds: orders and customers scopes are protected customer data Level 1; name, address, phone and email (Level 2) can never be read from a scope, so the interview's answer decides them.
The distribution menu starts from a public app with limited visibility for the pilot, flipped to fully visible after launch; launch-day discovery promotes fully visible at approval; a Plus organization that refuses Shopify billing, or a launch inside the 6 weeks review takes at its fastest (reported), promotes a custom app - which wins only on speed. When billing keeps every Shopify charge off Shopify the verdict is "closed to the App Store as planned", and the plan writes the compliant version under a stated assumption. The fixed TOML sets use_legacy_install_flow to false, sets embedded = true only when a plan says so, and never writes a scope, a URL or an id. A saved app keeps a snapshot of its checks, so reopening it shows what changed since you saved it; mark it resubmitted and the next fixes run carries the previous round's fixes with the plan.
Two labels, kept apart. Figures from shopify.dev carry a dagger: registration $19†; 0%† on the first $1M†, then 15%†; 15%† past a $20M† App Store year or $100M† company revenue; processing 2.9%†; names within 30 characters†; review requests at most once per 60 days† and 3 times a year†; 50 net installs† and 5 reviews†; LCP 2.5 s†, CLS 0.1†, INP 200 ms† over 100 calls in 28 days†; a suspension for three months†; quality checks within 7 days† and 30 days†; expiring offline access tokens† before 2027-01-01† and 403 errors from 2027-04-01†; requirement 4.2†. Forum and practitioner figures say so: plan 2-3 rounds and 6-14 weeks to Published (reported); about 30 days per review (reported); reported cooldowns run 2 weeks to a month; exemptions are rare (reported).
† from shopify.dev - Shopify changes requirements without notice; verify before relying on it. "reported" = forum or practitioner reports, not Shopify policy.