AWS Marketplace Made Simple: Deploying Your SaaS Solution with a SaaS Contract

Alexandre Bergere
datalex
Published in
8 min readAug 16, 2023

Having led the integration of DataGalaxy into the AWS Marketplace, I’m excited to share the invaluable insights acquired throughout this transformative voyage.

DataGalaxy is now available on the AWS marketplace

There are several advantages to listing your SaaS solution on AWS Marketplace:

  • Increased visibility and discoverability: By listing your SaaS solution on AWS Marketplace, you can increase your visibility and discoverability to potential customers. AWS Marketplace offers a variety of promotional programs and tools to help you reach your target audience and promote your solution.
  • Trusted platform: AWS Marketplace is a trusted platform with a strong reputation for security, reliability, and compliance. Listing your SaaS solution on AWS Marketplace can help build trust with potential customers who are looking for a secure and reliable solution.
  • Access to a large and growing customer base: AWS Marketplace has a large and diverse customer base, including enterprises, startups, and government organisations, which can help you reach new customers and expand your business.
  • Billing and Subscriptions Management: AWS Marketplace handles the billing and subscriptions management for your SaaS solution, so you don’t have to worry about managing multiple contracts and invoicing systems. This can help simplify your financial operations and reduce administrative overhead.
Deploying Your SaaS Solution with a SaaS Contract

In order to deploy your SaaS solution on the AWS Marketplace, the following steps has to be done:

  • Build your SaaS solution — obvious
  • Choose your Pricing Models
  • Create an AWS Marketplace seller account
  • Register your product
  • Configure your SQS
  • Integrate with your SaaS Solution

Don’t hesitate to watch this video for a starter: Integrating Your SaaS Application with AWS Marketplace.

Build your SaaS solution

Naturally, to list an offer on the marketplace, you need to have an offer ready for listing.

If required, here are some reference sources that might be useful:

Choose your Pricing Models

There is 3 different pricing model in Decide Product Type:

  • SaaS Contract Model
  • SaaS Subscription Model
  • SaaS Contract with Consumption

If you’re not certain about which pricing models you should select, don’t hesitate to explore further using the links provided below:

Choose your Pricing Models

This article will focus on exploring the SaaS Contract Model solution. However, if you opt for a different pricing model, the only alteration will be in the ‘Integrate with your SaaS Solution’ step.

Create an AWS Marketplace seller account

If you don’t already have an AWS Marketplace seller account, you will need to create one. Go to the AWS Marketplace website and follow the steps to create an account.

  1. Go to the AWS Marketplace Management Portal.
  2. Click on “Sign in to the console” at the top right corner of the page.
  3. You will be taken to the AWS Sign-In page. If you already have an AWS account, enter your email address and password and click on “Sign In”. If you don’t have an AWS account, click on “Create a new AWS account” and follow the instructions to create a new account.
  4. Once you’re signed in to your AWS account, click on the “Become a Seller” button in the top right corner of the AWS Marketplace Management Portal.
  5. Review the Seller Agreement and accept the terms and conditions.
  6. Fill out the Seller Information form, which includes your business details, tax information, and payment information — detail here.
  7. Create your public profile — You provide the information that is displayed in AWS Marketplace to buyers that tells them about your company, such as your company name and logo.
  8. Provide your tax information — To appropriately assess, report, and (where applicable) withhold taxes on your paid sales, you must provide your tax and value added tax (VAT) information.
  9. Provide your banking information — You provide your US bank information (mandatory) so that AWS Marketplace can pay you for your sales.
  10. Enroll in the US tax calculation service (optional) — You can optionally enroll in this service to calculate your US state sales and use tax for products you sell on AWS Marketplace.

You can find detail over here.

Register your product

Once your AWS Marketplace seller account ready, you can publish your first product. Collect the assets that you will need to use to submit your product. Assets for your product include:

  • Product logo URL — A publicly accessible URL that contains a clear image of the logo for the product you are providing.
  • End User License Agreement (EULA) URL — Your product must have a EULA, and you must provide a link to it for customers to read and review on your product’s AWS Marketplace page.
  • Product registration (SaaS fulfilment) URL — This URL is where customers are sent after subscribing to your product in AWS Marketplace (cf. Landing Page Flow afterward).
  • Metadata about your product — You provide the metadata in the product creation wizard of the AWS Marketplace Management Portal.
  • Support information for your product — This includes email addresses and URLs for your product’s support channels.

Once you’re prepared, proceed with the subsequent steps:

  1. Sign in to your AWS Marketplace Management Portal account.
  2. Click on “Add a Product” in the top right corner of the screen.
  3. Choose “SaaS” as the product type — or go directly here.
  4. Fill out the “Product Information” section, which includes the product name, description, and pricing information.
  5. Fill out the “Support” section, which includes contact information for customer support.
  6. Fill out the “Technical Details” section, which includes information about your product’s deployment options, requirements, and availability.
  7. Fill out the “SaaS Contract” section, which includes details about the SaaS contract terms and conditions.
  8. Upload images and logos that represent your product.
  9. Review and publish your product page.
  10. Once your product page is published, you can make updates to it at any time by signing in to your AWS Marketplace Management Portal account and editing the listing.

First milestone achieved: The AWS Marketplace Operations team publishes your product as a limited product that is visible to you and any AWS accounts you have allowed to view the product.

Configure your SQS

Once summit, the AWS MP Ops team will publish your submission as a limited product page visible to you and any AWS accounts you have requested to be whitelisted. Prices will be temporarily reduced to enable you to test the purchase flow without incurring high charges.

The Ops team will send you the following via email to enable this testing:

  • Product code (or Offer ID)
  • SNS topic(s)
  • Product page URL

To handle your SNS message effectively, I suggest deploying an SQS queue and subscribing it to your SNS topic.

Here some link in order to help you with SQS:

Integrate with your SaaS Solution

Each client is identified with these informations: CustomerIdentifier, CustomerAWSAccountID, and ProductCode (OfferID).

The final stage involves integrating your SaaS solution with AWS Marketplace. This entails addressing two significant use cases you have to cover:

  • Accepting New Customers (landing page flow)
  • Monitoring for Subscription Changes (updates & notifications)
SaaS Contract Integration Diagram

If required, here are some reference sources that might be useful:

Accepting New Customers (landing page flow):

When a customer subscribes to your product, they are redirected to your registration URL, which is an HTTP POST request with a temporary x-amzn-marketplace-token token. Respond to this request in the following ways:

  1. Exchange the token for a CustomerIdentifier, CustomerAWSAccountId, and ProductCode by calling the ResolveCustomer API operation in the AWS Marketplace Metering Service.
  2. Verify the subscription and quantity (if applicable) the customer has access to by calling the GetEntitlements API operation in the AWS Marketplace Entitlement Service.
  3. Persist the CustomerIdentifier, CustomerAWSAccountId, and ProductCode in your system for future calls. Store whether the customer has a valid subscription, along with whatever information you need about the customer.
  4. As a response to the request, you must show your user’s first use experience (as applicable for your service).

References:

Monitoring for Subscription Changes (updates & notifications):

The following Amazon SNS topics are available to software as a service (SaaS) products:

  • Amazon SNS topic: aws-mp-entitlement-notification — This topic notifies you when buyers create a new contract, upgrade it, renew it, or it expires. This is only available for products with pricing models that include a contract (also known as SaaS Contracts and SaaS Contracts with Consumption (Overages)).

Each message in the aws-mp-entitlement-notification topic has the following format:

1{
2 "action": "<action-name>",
3 "customer-identifier": " X01EXAMPLEX",
4 "product-code": "n0123EXAMPLEXXXXXXXXXXXX",
5}

The <action-name> will always be entitlement-updated.

For entitlement messages, regardless of the action (new, upgrade, renewal, or expired), the message is the same. A subsequent call to GetEntitlement is required to discover the content of the update and receive the new dimension value — if none entitlement is return, meaning the client subscription is no longer active.

Test your offer

To test your own offer, you need to complete the final two steps:

  • Users who need to add the purchase order number to a purchase must have the aws-marketplace:Subscribe permission :
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"aws-marketplace:ViewSubscriptions",
"aws-marketplace:Subscribe",
"aws-marketplace:Unsubscribe"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"aws-marketplace:CreatePrivateMarketplaceRequests",
"aws-marketplace:ListPrivateMarketplaceRequests",
"aws-marketplace:DescribePrivateMarketplaceRequests"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
  • Creating a service-linked role for AWS Marketplace : To use purchase order support for SaaS contract or professional service products, you must first give AWS Marketplace access to make changes to AWS Billing and Cost Management on your behalf. For information about how to give AWS Marketplace these permissions, see Creating a service-linked role for AWS Marketplace. For AWS accounts that are part of AWS Organizations, this integration must happen from the management account, and the purchase order support is for all accounts in the organization.
Creating a service-linked role for AWS Marketplace

After you acquire your own offer, you can expect to receive the following email:

Offers: New offer accepted!

Now prepare your communication! Inspiration from Saas product:

--

--

Alexandre Bergere
datalex
Editor for

Data Architect & Solution Architect independent ☁️ Delta & openLineage lover.