For SaaS vendors listing on Microsoft Marketplace
AppSource ReadyWill your SaaS offer and its Teams app list cleanly - and which choices lock the moment you publish?
Paste your Teams app manifest and your SaaS offer's plans, and get the locked-at-publish choices, the Teams link, the landing page and co-sell eligibility checked against Microsoft Marketplace rules, then the publishing plan or the fixes for a validation report. Your browser reads the manifest and the plans and flags flat rate behind a Teams link, metering on per-user plans, subscriptionOffer before the offer is live, an offer off Azure with no Microsoft integration, a landing page with #, a single-tenant Entra app, missing notes for certification, Publisher Verification and MACC on another cloud, builds the locked-choice register, compares the plans as published, re-ranks the path and lays out the timeline from your target date.
The offer and the Teams app free
One offer: line - id, pricing: flat or per user, contract: standard or own terms - then one plan: line per plan: id, name, public or private, then any of seats min-max, price ..., dimension: id=value, id=value and pricing: for a plan that differs. Blank lines and lines starting # are skipped; every other line that does not parse is named.
The interview - each answer moves a check, the path or the timeline free
The checks free
What the page flags
The manifest as read
The offer and its plans
The locked-choice register
Every check, rule by rule
Against the plans as published
The path, re-ranked
Co-sell
The timeline
Your stage's route
The fixed manifest, the fixed plans and the exports free
The fixed manifest
Your manifest.json, pretty-printed, with nothing removed that the page cannot justify. It never writes a URL or an id you did not give: after a plan runs, the plan's own download adds subscriptionOffer only when the offer is live and the plan names publisherId.offerId with a publisher ID your input already contains.
The fixed plans
Per user for every plan when the Teams link needs it and the offer is not yet published - metered dimensions dropped, since metering exists only on flat-rate plans. A locked field of a published offer is never changed: the list says it needs a new offer or plan. Seat limits and prices are never invented.
The listing 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 offers
How it works - and what is sourced
The checks follow the skill's facts that break common plans, its commitments you cannot undo, its path menu and its sections on shipping the SaaS offer, passing Teams validation, private offers and co-sell, plus the skill's submission packet. The manifest is read by JSON.parse, and every parse error names its line and column. The plans come from a small line format: one offer line and one line per plan; a line that does not parse is named and skipped, never guessed. Three objects get three reviews - the Teams app, the SaaS offer and the co-sell solution - and the submission packet keeps them apart.
The locked-choice register lists the pricing model (flat rate or per user, the same for every plan), every plan ID, the seat limits of every per-user plan, every metered dimension, every plan's visibility and the contract, each locked once the offer or plan publishes, its owner and date "unassigned" until someone takes them. When the offer is published, the plans as published are compared with the plans pasted: a changed pricing model, a plan ID gone, changed seat limits or dimensions, a public plan made private or a changed contract each needs a new offer or plan. The path ladder starts from transact SaaS with private offers; answer 1 drops the Teams rungs or the Teams link, another cloud deletes IP co-sell and, with no Microsoft integration, the SaaS offer too; a target date promotes the Teams app and private offers; MACC buyers on Azure promote IP co-sell. The starved option, Microsoft 365 Certification, moves up only when regulated buyers' security reviews stall deals.
The fixed manifest never invents an id or a URL and removes nothing it cannot justify; the fixed plans move to per user only when a Teams link needs it and the offer is not published, and never write a seat limit or a price. A saved offer 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.
Every Microsoft figure the skill quotes carries a dagger: the 3%† fee; the fee halves† on a renewal private offer and offers created before October 2024† never qualify; $100,000† Azure consumed or billed in the trailing 12 months† and a $1M+† MACC route in pilot; the tax profile in up to 48 h†; the purchase token valid 24 hours†; plan and seat changes answered within 10 seconds†; metering sent hourly† and events older than 24 hours† rejected; refunds within 72 hours†; a validation report in 24 working hours†; Teams validation three to six weeks†; Office add-ins 3-4 business days† per round and four to six weeks† end to end; MACC Enrolled within about a week†; schema 1.25† or later for channel-enabled apps. The timeline takes the upper end of each range and the tax profile's 48 h†, counted from the browser's clock. † verify in Partner Center before quoting it, since Microsoft renames programs and moves criteria yearly.