Self-Service
Migration Guide

Replacing Awssome's managed integration with the AWS open-source reference. Read this before you decide.

Your listing, your customers, your revenue are on the line.

Your listing is live. Your revenue is flowing. This guide covers exactly what changes — technically and operationally — if you swap Awssome's managed integration for the AWS open-source Serverless SaaS Integration reference.

March 2026  |  Version 1.0

Skai mascot

What This Guide Covers

Skai

You are live on AWS Marketplace with your own seller account and your own SaaS listing. Awssome provides the technical integration layer that powers your listing: subscriber registration, entitlement management, metering, and lifecycle event processing.

This guide covers what happens if you replace Awssome's managed integration with the AWS open-source Serverless SaaS Integration reference, which you would deploy and operate yourself.

Your listing is yours. Your seller account, your listing, your ProductId, your pricing, and your customers are yours. They do not change. This is only about the technical plumbing behind your listing.

What the Integration Does

Whether Awssome or you manage it, the Marketplace integration handles four things:

ComponentWhat It Does
Subscriber RegistrationBuyer subscribes → redirected to landing page → token resolved → subscriber record created.
Entitlement ManagementFor contracts, checks and stores what each customer is entitled to.
Lifecycle EventsAWS sends SNS notifications on subscribe, unsubscribe, renew, or entitlement changes.
MeteringFor usage-based listings, collects usage records and reports them to AWS's BatchMeterUsage API every hour.

What You Lose

This is the section that matters. Read every item. If any of these makes you uncomfortable, stay with managed.

Skai concerned

24/7 Integration Monitoring

01 / 07
Awssome monitors your Marketplace integration continuously: Lambda execution errors, SNS delivery failures, SQS dead-letter queue depth, DynamoDB throttling, metering job health, and API Gateway errors. We catch problems before they reach your customers or your revenue.
If this breaks: A metering Lambda fails silently on a Friday night. You don't notice until Monday. Three days of usage data are permanently lost. AWS does not allow retroactive metering. That revenue is gone.

Metering Accuracy Validation

02 / 07
Awssome validates every metering record before it hits the BatchMeterUsage API: duplicate detection, dimension validation, timestamp formatting, quantity sanity checks.
If this breaks: You submit metering records with a wrong dimension name. The API accepts them silently but they don't map to any billing dimension. Your customer's AWS bill shows $0. You have no recourse.

Error Recovery & Dead-Letter Queue Processing

03 / 07
When Marketplace API calls fail (throttling, transient errors, malformed payloads), Awssome processes the dead-letter queues, investigates root causes, and resubmits.
If this breaks: DLQ messages expire after 14 days. If you don't process them, those events are permanently lost: subscribers who paid but never got provisioned, cancellations that never took effect.

Lifecycle Automation

04 / 07
Awssome automates the full subscriber lifecycle: granting access on subscription, updating on entitlement changes, revoking on cancellation, handling edge cases.
If this breaks: The open-source reference does NOT automate provisioning. By default it sends an email. If your admin is on holiday, the customer waits. If the email lands in spam, the customer waits forever.

Integration Updates When AWS Changes Things

05 / 07
AWS periodically changes Marketplace APIs, SNS message formats, and integration requirements. Awssome tracks, tests, and deploys updates with zero downtime.
If this breaks: AWS deprecates an API version. Your integration breaks. You don't know until customers complain. You debug an unfamiliar codebase under pressure.

Awssome Engineering Support

06 / 07
When something weird happens (and it will), you call Awssome. We've seen it before. We fix it fast.
If this breaks: Without us, you open an AWS Support case and wait. Response time depends on your AWS support plan. Business = 1 hour. Developer = 12 hours. Basic = community forums only.

Operational Peace of Mind

07 / 07
You don't think about your Marketplace integration today. It just works. Self-service means this becomes your problem, your on-call, your incident response.
If this breaks: Budget 2–5 hours/month minimum for monitoring and maintenance. During incidents, more. At €80–120/hour loaded engineering cost, that's €200–600/month before anything breaks.

The AWS bill is the easy part.

The AWS infrastructure cost is effectively zero. That is not the issue.

ISVs who self-service consistently underestimate total cost by 5–10x. Here is why.

Skai deflated

AWS Infrastructure

ResourceCost
Lambda (6–8 functions)$0.00
API Gateway$0.00
DynamoDB (on-demand)$0.00–$0.01
SQS + SNS + EventBridge$0.00
CloudFront + S3$0.01
CloudWatch Logs$0.01–$0.03
Total Infrastructure< $1 / month

The Actual Cost

ItemEstimate
AWS infrastructure< $1/month
Monitoring & maintenance€200–600/mo
Incident response€400–1,200/incident
Knowledge ramp-up€2,000–5,000
Year 1 Total€5,000–€15,000

Most ISVs who self-service underestimate the human cost by 5–10x because they only look at the AWS bill. The AWS bill is irrelevant. The engineering time is what costs money.

Still Want to Proceed?

If you've read everything above and still want to self-service, here's the deployment guide.

Repository: github.com/aws-samples/aws-marketplace-serverless-saas-integration

Skai
FeatureDetails
AWS-maintainedBuilt by the AWS Marketplace team.
ServerlessLambda, API Gateway, DynamoDB, SQS, SNS. No servers.
SAM-basedOne command deploys everything.
All pricing modelsContracts, subscriptions, contracts-with-subscription.
It's what Awssome extendsSame core mechanics.
Reference implementation only. This is a reference implementation with no SLA from AWS. You are responsible for hardening, monitoring, and maintaining it.

Prerequisites

1AWS Marketplace Seller Account
aws.amazon.com/marketplace/management
2Your SaaS listing + ProductId
AMMP → Products → Your listing
3Your listing type
AMMP → Pricing tab
4Amazon SES verified + production
SES Console → Verified identities
5AWS CLI + SAM CLI
CloudShell has these pre-installed
6Coordinate timing with Awssome
Email your account manager

Deployment Steps

Follow these in order. Each step includes what you configure and what breaks if you skip it.

1
2
3
4
5
6
7
8

1 Collect Your Configuration Values

Log into your AWS Marketplace Management Portal. Go to AMMP → Products → Your SaaS Listing.

ParameterWhere
ProductIdProduct summary page
TypeOfSaaSListingPricing tab (contracts / subscriptions / contracts_with_subscription)
MarketplaceTechAdminEmailYour ops email — receives lifecycle notifications
MarketplaceSellerEmailSES-verified email — must be in SES production mode
WebsiteS3BucketNameGlobally unique name — only if using built-in landing page
Leave SNSAccountID (287250355862) and SNSRegion (us-east-1) as defaults. These are AWS Marketplace's own accounts.

2 Clone and Deploy

git clone https://github.com/aws-samples/aws-marketplace-serverless-saas-integration.git
cd aws-marketplace-serverless-saas-integration
sam build
sam deploy --guided --capabilities CAPABILITY_NAMED_IAM

When prompted, provide your values:

ParameterYour Value
Stack Namemy-marketplace-integration
AWS Regioneu-west-1
ProductIdprod-abc123def456
TypeOfSaaSListingcontracts_with_subscription
MarketplaceTechAdminEmailops@yourcompany.com
MarketplaceSellerEmailmarketplace@yourcompany.com
WebsiteS3BucketNamemy-company-mp-registration

Wait for the stack to complete (3–5 minutes).

3 Confirm SNS Subscription

Check the inbox of your MarketplaceTechAdminEmail for an email from AWS Notifications. Click "Confirm subscription".

Critical: If you don't confirm, your integration will NOT receive Marketplace lifecycle events. New subscriptions, cancellations, and entitlement changes will be silently dropped. This is the #1 post-deployment failure.

4 Get Stack Outputs

aws cloudformation describe-stacks \
  --stack-name YOUR_STACK_NAME \
  --query "Stacks[0].Outputs"

You can also find these in CloudFormation → Stacks → Outputs. Save the MarketplaceFulfillmentUrl and RedirectUrl.

5 Update Fulfillment URL (The Cutover)

Point of no return. After this step, all new subscriptions go through your integration. If your integration is broken, new buyers hit a dead end. Complete Steps 1–4 and validate before doing this.
  1. Go to your product listing in AMMP.
  2. Find the SaaS Fulfillment URL field.
  3. Replace the URL with MarketplaceFulfillmentUrl from Step 4.
  4. Save.

6 Configure Landing Page

If using the built-in page (CreateRegistrationWebPage = true):

  1. Update web/script.js: Replace baseUrl with RedirectUrl from Step 4.
  2. Update Redirect Lambda: set RedirectUrl environment variable.
  3. Upload updated web files to your WebsiteS3BucketName.

If using your own custom page: Update your page to POST to the new /subscriber API Gateway endpoint.

7 Coordinate Cutover with Awssome

  1. Tell Awssome your integration is deployed and Fulfillment URL is updated.
  2. Awssome decommissions the managed integration.
  3. Confirm no events were lost during switchover.
Existing subscribers are NOT affected. Their subscriptions live in AWS Marketplace, not the integration layer. Ask Awssome for historical data export if needed.

8 End-to-End Validation

Do this BEFORE telling Awssome to decommission.

#TestVerifyHow
1SubscribeBuyer can subscribeUse separate AWS account
2RegistrationToken resolves correctlyComplete registration form
3DynamoDBSubscriber record createdCheck AWSMarketplaceSubscribers table
4NotificationAdmin email receivedCheck inbox + spam
5EntitlementCorrect data returnedCall Entitlement API
6MeteringRecord processesInsert record, trigger Lambda
7CancellationHandled correctlyCancel from buyer console

What You Must Set Up

The reference does NOT include monitoring. Without these, failures are silent.

CloudWatch Alarms
Set alarms on all Lambdas for Errors and Throttles. Alert via SNS. Catch errors before they impact revenue.
SQS DLQ Monitoring
Alarm on ApproximateNumberOfMessagesVisible > 0. Lost events = lost subscribers. Messages expire at 14 days.
DynamoDB Monitoring
Alarm on ThrottledRequests for both tables. Throttling drops writes silently during subscriber bursts.
Metering Job Validation
The hourly metering job must actually fire. Set CloudWatch Logs + alarm on failures. Silence > 70 min = revenue at risk.
SES Health
Emails fail silently in sandbox mode. Monitor bounce and complaint rates. SES suspension kills lifecycle emails.
No retroactive metering. AWS does not allow retroactive metering. If your metering Lambda fails and you don't notice, that usage data is permanently lost. Set up alarms on day one.

Rollback Plan

  1. Change the Fulfillment URL in AMMP back to Awssome's URL.
  2. Tell Awssome to re-enable the managed integration.
  3. That's it.
The self-deployed stack costs nothing when idle. No rush to delete it. To delete: aws cloudformation delete-stack --stack-name YOUR_STACK_NAME

Migration Checklist

Do not go live without completing every item.

  • Read "What You Lose" section completely
  • Config values collected (ProductId, type, emails)
  • sam build + sam deploy completed
  • SNS subscription confirmed
  • Stack outputs saved
  • Fulfillment URL updated in AMMP
  • Landing page configured
  • All 7 validation tests passed
  • CloudWatch alarms on ALL Lambdas
  • DLQ monitoring alarms
  • DynamoDB throttle alarms
  • Metering job alarm
  • Awssome cutover confirmed
Before
Talk to your Awssome account manager.
During
Cutover support at no extra charge.
After
AWS Seller Support for integration. Awssome for advisory.

Not sure? That's a sign you should stay with managed.

Why go awful when it can go awssome!

Let's talk before you migrate
Skai celebrating