For ISVs evaluating self-hosted Microsoft Marketplace

Self-Service Migration Guide

Replacing WeTransact's managed integration with the open-source Microsoft SaaS Accelerator — what you keep, what you lose, and what it really costs.

Your listing, your customers, your revenue are on the line.
Version: April 2026 Microsoft Commercial Marketplace Reading time: ~12 min
Section 01 · Scope

What this guide covers

WeTransact's managed integration sits between your Microsoft Marketplace listing and your customers. If you remove it, six pieces stop working — and you take responsibility for rebuilding them.

01

Subscription Fulfillment

SaaS Fulfillment API v2 — the contract that turns a Marketplace purchase into an active subscription.

02

Landing Page & SSO

Branded activation page and Microsoft Entra ID single sign-on so the buyer never sees a broken redirect.

03

Webhook Processing

The 6 lifecycle events Microsoft fires — activated, suspended, reinstated, plan changed, quantity changed, unsubscribed.

04

Order Management

The portal where you see every order, plan, customer, MRR, and payout — without opening Partner Center.

05

Metered Billing

Usage events posted to the Marketplace metering API for consumption-priced plans.

06

Private Offers

Direct, CSP, and Multiparty Private Offers (MPPO) — created and tracked from a single dashboard.

Your listing is yours.

Your Partner Center account, your offers, your customers, your historical sales data — none of that changes when you switch off WeTransact. You own everything you ever published. This guide is only about replacing the integration layer.

Section 02 · What you lose

Eight things that turn off the day you switch.

The SaaS Accelerator is a deployment template, not a product. It rebuilds the plumbing — and nothing else. Below is the honest list of what disappears the moment you cut over.

01

Managed SaaS Fulfillment & Webhook Processing

WeTransact handles every lifecycle webhook, retries failures, and activates subscriptions inside the 30-day Microsoft window. Self-hosted, your App Service has to be online and correct on every retry.

If this breaks: Subscription is voided. Customer is refunded by Microsoft. You never see the deal.
02

Private Offers & Enterprise Deal Infrastructure

No Direct, CSP, or Multiparty Private Offer creation flow. You go back to Partner Center's manual UI — 15+ steps per offer, no templates, no co-sell linkage.

If this breaks: Enterprise deal cycle slows by days. Sales reps cut WeTransact-only workflows from their playbook.
03

Order & Subscription Management Portal

No financial reporting. No invoices. No payout reconciliation. The Accelerator admin portal shows raw rows from a SQL table — no MRR, no churn, no CFO-ready exports.

If this breaks: Finance writes spreadsheets every month. Audits get expensive.
04

Co-Sell & Microsoft AE Intelligence

Zero GTM tooling. No MACC consumption data, no Microsoft AE contact discovery, no deal registration, no buyer-intent signals.

If this breaks: You stop showing up in Microsoft's pipeline. Co-sell pivots to email and LinkedIn.
05

CRM Integration & Revenue Sync

No HubSpot, no Salesforce, no Pipedrive sync. Marketplace deals don't flow into your CRM. Finance reconciles by hand.

If this breaks: Revenue forecasts drift. Sales ops loses the marketplace channel from its dashboards.
06

Integration Updates When Microsoft Changes Things

The Accelerator is a community-supported open-source repo. Microsoft does not own it. When the Fulfillment API or webhook contract changes, somebody has to read the changelog, ship the fix, and redeploy.

If this breaks: You discover the API change when activations start failing. Engineering drops sprint plans.
07

App Verification & Trust

Without publisher verification on your Entra ID app registration, customers see an "unverified app" warning during SSO. Verification takes 1–3 weeks and requires legal docs.

If this breaks: Buyer trust collapses on first click. Conversion drops the moment they see the yellow warning.
08

Operational Peace of Mind

Realistically: 5–10 hours per month of monitoring, secret rotation, and incident response. At a loaded engineering rate, that's before anything goes wrong.

If this breaks: An on-call rotation appears in your engineering Slack. Marketplace becomes someone's least favorite owner.
Section 03 · The real cost

What it actually costs to run.

The Azure bill is the easy number. The expensive number is your engineers — and that's the one most TCO comparisons forget. Honest math, in euros, per month.

Azure Infrastructure

SaaS Accelerator deployment (predictable)

  • App Service (2× B1)
  • Azure SQL (Basic / S0)
  • Key Vault
  • Application Insights
  • Entra ID App RegistrationsFree
Subtotal

Human Cost

Your engineering team — at loaded

  • Initial deployment (amortized)
  • Ongoing monitoring
  • Landing page customization
  • API updates & patches
  • Incident response
Subtotal

Self-hosted, all-in

per month — and still no GTM, no private offers, no CRM sync
vs

WeTransact WeLaunch

per month — everything above, managed, with co-sell & CRM included

Pricing source: wetransact.io/pricing-wetransact

Section 04 · Deployment guide

Still want to proceed? Here's how.

Below is the full SaaS Accelerator deployment path — written so a reasonably experienced .NET / Azure engineer can follow it end-to-end. Read every prerequisite first; fixing them mid-deploy is painful.

Heads up: the SaaS Accelerator is community-supported on GitHub. It is not an officially supported Microsoft product. Microsoft will help you with Partner Center; they will not help you debug your fork.

View Azure/Commercial-Marketplace-SaaS-Accelerator

Prerequisites — get all six green before you start

1

Azure Subscription

Owner role. New resource group recommended.

2

Microsoft Entra ID Tenant

Permission to create app registrations.

3

Partner Center Account

Marketplace publisher with at least one SaaS offer.

4

Global Admin Consent

Required to grant the multi-tenant app SSO permissions.

5

.NET & PowerShell Knowledge

You will read C#, debug PowerShell, and edit Razor pages.

6

Tax & Payout Profile

Verified in Partner Center — required to be paid by Microsoft.

Section 05 · Step by step

Eight steps from zero to live cutover.

Each step assumes the previous one finished cleanly. Don't skip ahead — the cutover step (4) is irreversible without a rollback.

Step 01

Register App Registrations in Entra ID

Create two Microsoft Entra ID app registrations:

  • Single-tenant — service principal the Accelerator uses to call the Fulfillment API on your behalf.
  • Multi-tenant — the app customers SSO into. This one needs publisher verification later.
Capture the Application (client) ID, Tenant ID, and a client secret for each. Store the secrets in Key Vault — never in source.

Step 02

Deploy via Azure Cloud Shell

Run the deployment script from Azure Cloud Shell (PowerShell). Total deploy time is ~8–15 minutes. The script provisions App Services, SQL, Key Vault, Application Insights, and Managed Identity.

cloud-shell — PowerShell
# Clone the supported release tag, not main
git clone https://github.com/Azure/Commercial-Marketplace-SaaS-Accelerator.git -b 8.2.1 --depth 1
cd ./Commercial-Marketplace-SaaS-Accelerator/deployment

# Deploy
.\Deploy.ps1 `
  -WebAppNamePrefix "UNIQUE-PREFIX" `
  -ResourceGroupForDeployment "RG-NAME" `
  -PublisherAdminUsers "admin@domain.com" `
  -TenantID "TENANT-ID" `
  -AzureSubscriptionID "SUB-ID" `
  -Location "YOUR-PREFERRED-REGION"
Step 03

Capture Stack Outputs

When Deploy.ps1 finishes, copy these four values — you'll paste them into Partner Center in the next step.

FieldWhere to get it
Landing Page URLhttps://PREFIX-portal.azurewebsites.net/
Webhook URLhttps://PREFIX-portal.azurewebsites.net/api/AzureWebhook
Tenant IDFrom Entra ID overview blade
Application IDMulti-tenant app registration created in Step 01
Step 04 · The cutover

Update Partner Center Technical Configuration

Open every SaaS offer in Partner Center → Technical Configuration → paste the four values from Step 03 → Publish. The moment the publish succeeds, every new Marketplace purchase routes to your Azure deployment instead of WeTransact. Existing active subscriptions continue under their original webhook URL until they renew or you migrate them manually.

Step 05

Test with a $0 Plan

Create a $0 / Free private plan, restrict it to a test tenant, and walk through the full purchase cycle: land on your branded page, sign in with SSO, accept the subscription, see it activate in the admin portal, then unsubscribe. If any step shows a yellow Microsoft warning or a 500 — stop and fix before opening up paid plans.

Step 06

Customize the Landing Page

The default Razor page is intentionally generic. You'll want to add: your branding, an SSO sign-in button wired to the multi-tenant app, error and pending states, and outbound notifications via Logic Apps (subscription activated, plan changed, unsubscribed). Email out-of-the-box: none.

Step 07

Publisher App Verification

Submit your multi-tenant app registration for publisher verification. Until this is approved, customers see an "unverified app" warning during SSO. Approval takes 1–3 weeks and requires legal documentation. Open the request the same day you cut over — don't wait.

Step 08

End-to-End Validation

Run all seven scenarios. Every row needs a green pass before you mark the migration complete.

ScenarioExpected behaviourStatus
Free trial activationLands, SSOs, activates within 30sRequired ✓
Paid plan purchaseActivates, charge appears in payout reportRequired ✓
Plan change (upgrade)Webhook fires, plan updates in DBRequired ✓
Quantity changeSeat count updates, proratedRequired ✓
Suspension (failed payment)Subscription marked suspended, customer notifiedRequired ✓
ReinstatementSubscription returns to activeRequired ✓
UnsubscribeStatus flips, customer access revokedRequired ✓
Section 06 · Your responsibility now

What you own from day one.

Once you cut over, every one of these is on your engineering team. There is no support contract behind them.

Monitor

App Service Health

HTTP 5xx, response time, restarts. The portal is the customer's first impression.

Monitor

SQL Database

DTU saturation, blocking queries, backup verification, growth.

Monitor

Webhook Reliability

Every dropped event is a lost subscription. Alert on any 4xx/5xx from the AzureWebhook endpoint.

Monitor

SSL Certificates

App Service managed certs auto-renew, custom domains do not. Calendar reminder, two weeks out.

Rotate

Entra ID App Secrets

They expire — usually quietly. The day they do, every new SSO sign-in fails. Rotate on a schedule.

Section 07 · Rollback & checklist

If you change your mind — or want a sanity check.

The rollback path is honest and short. The checklist is what we'd run through with you on a call before any cutover.

Rollback to WeTransact

  1. Email your CSM. We re-enable your account same-day.
  2. We re-publish the WeTransact webhook + landing page URLs to your offers in Partner Center.
  3. New subscriptions route through us again on next purchase.
  4. Existing self-hosted subscriptions continue on your Azure infra until renewal — or we help you migrate them.
  5. Deprovision Azure resources at your own pace. No data is lost.
  6. Resume on WeLaunch, your existing plan, or the plan that fits.

Before you cut over

  • All 6 prerequisites confirmed
  • Two Entra ID app registrations created & secrets stored
  • Deployment script ran successfully end-to-end
  • Four stack outputs captured
  • Engineering on-call rotation set up
  • Logic Apps wired for buyer notifications
  • Landing page branded & tested
  • Publisher verification submitted
  • $0 plan purchase flow validated
  • Webhook reliability monitoring live
  • SQL backups verified
  • SSL cert renewal calendar set
  • Secret rotation calendar set
  • Finance briefed on new (manual) reporting
  • Sales briefed on no co-sell / private offers
  • Rollback contact saved
One more thing

Why go it alone when you can go with WeTransact?

We built this guide because we'd rather you read the truth than hear it from a thread on GitHub. If after all this you still want to self-host — we'll help you cut over. If not, WeLaunch is and includes everything above.

500+ISVs trust WeTransact for Microsoft Marketplace
~10%of all SaaS offers in the Marketplace
per month for the WeLaunch plan

Start your free 30-day trial →