Successfully testing your SaaS listing in AWS Marketplace
AWS Marketplace is a curated digital catalog that makes it easy for customers to find, test, buy, and deploy third-party software, data products, and services that customers need to build solutions and run their businesses.
My AWS Marketplace sellers don’t always have a clear visibility of which types of testing their SaaS products should undergo before they can be approved by AWS Marketplace Operations Catalog (MCO) team.
In this blog post, Stuart and I show how to successfully test your SaaS product in AWS Marketplace. The scope includes SaaS contract, SaaS contract with consumption, and SaaS subscription. Whether you have completed the API integration using AWS Marketplace Serverless SaaS Integration on AWS or using your own API Integration setup, the end-to-end experience should be similar and must meet the requirements outlined in the following sections.
To follow this tutorial, you must have registered as a seller in AWS Marketplace. If you have not, review the AWS Marketplace blog post, 7 Tips to Successfully Submit Your Product Listing in AWS Marketplace. You should also review Best practices guide to successfully list your SaaS contract solution in AWS Marketplace.
Out of scope for this post is API integration with AWS Marketplace, which SaaS products in AWS Marketplace require.
SaaS listing requirements
When submitting your listing request, ensure that your product adheres to the following product setup, architecture, and product usage guidelines:
- At least one pricing dimension must have a price greater than $0.00.
- All pricing dimensions must relate to actual software and cannot include any other products or services unrelated to the software.
- SaaS products offered exclusively in the AWS GovCloud (US) Regions must include GovCloud somewhere in the product title.
- A portion of your application must be hosted in an AWS account that you own.
- All application components should be hosted in infrastructure you manage.
- Additional guidelines the product must adhere to are included in SaaS product guidelines.
After SaaS API integration
After subscribing to your SaaS listing SNS Topics, you must confirm your subscription with the email address you provided. If you used AWS Marketplace Serverless SaaS Integration on AWS, that process creates a new Amazon Simple Notification Service (SNS) topic.
To receive email notifications via that email, you must confirm the subscription to the newly created SNS topic.
- After completing the integration, you should receive a notification email to confirm your subscription with a confirmation link.
- Choose the confirmation link and confirm your subscription. If you can’t find the notification mail, you can request a new subscription confirmation email by completing the following steps:
- Sign in to the Amazon SNS console using the seller account you used to complete the API integration. In the left navigation pane, choose Subscriptions. On the Subscriptions page, choose Create subscription.
- To see a list of the topics in your seller AWS account, on the Create subscription page, choose the Topic ARN field. Choose the topic that you created for your SaaS product.
- For Protocol, choose Email.
- For Endpoint, enter an email address that can receive notifications from Amazon SNS.
- Choose Create subscription. The console opens the new subscription’s Details page. Check your email inbox and choose Confirm subscription in the email from AWS Notifications. The sender ID is usually firstname.lastname@example.org.
- Amazon SNS opens your web browser and displays a subscription confirmation with your subscription ID.
The AWS Marketplace MCO team conducts testing on products to ensure products meet a high bar experience for our customers. However, when you publish your listing, you must complete customer end-to-end subscription flow integration, including API integration to resolve customers and complete registration and onboarding. The AWS Marketplace MCO Team will complete customer onboarding testing by confirming the following experiences:
- Subscribing to the listing via AWS Marketplace.
- Completing the customer registration flow, which is customer onboarding or customer registration confirmation email.
- Following any next steps to access your listing experience, including subscription confirmation and credentials provisioning for the customer to access the SaaS software. If your listing is provisioned on a tenant basis and will take extra time to provision, communicate this directly with customers in your customer registration confirmation email.
- Reviewing and assessing the product following our SaaS guidelines.
- Successfully calling GetEntitlement and/or BatchMeterUsage API(s).
AWS Marketplace Entitlement Service determines the entitlement of a customer to a given product. An entitlement represents capacity in a product owned by the customer.
Entitlement only applies for SaaS contract and SaaS contract with consumption. To check your entitlements, do the following:
- Verify customer entitlements by calling AWS Marketplace Entitlement Service using Checking entitlements in order to successfully pass entitlement-related testing.
- In response, the AWS Marketplace MCO team will validate if you have successfully called AWS Marketplace Entitlement Service API from your seller account using the product code for your SaaS listing.
Metering record check
Setting up metering
To set up metering, you must integrate with the AWS Marketplace Metering Services using BatchMeterUsage API. For an example of using BatchMeterUsage, see BatchMeterUsage code example in the AWS Marketplace Seller Guide.
For SaaS contract with consumption, you only meter the usage beyond the customer’s contract entitlements. The usage quantity that you submit to AWS Marketplace for each customer must be associated with the dimensions defined when you created your listing. We recommend you submit the customer’s metering records on an hourly basis to provide customers granular visibility on their consumption.
SaaS subscription products and SaaS contract with subscriptions must complete a metering check. For a metering check, you submit your metering records to AWS Marketplace. AWS Marketplace must then verify metering records can be received from your seller account to ensure frictionless billing for the SaaS software usage by customer.
Setting up a metering check: If using AWS Marketplace Serverless SaaS Integration on AWS
If you are using the AWS SaaS Quick Start, to submit your metering record for review, follow the steps outlined in How to meter usage for subscriptions when using SaaS Quick Start.
Setting up a metering check: If you are using your own API setup and not using AWS Marketplace Serverless SaaS Integration on AWS
If you are not using AWS Marketplace Serverless SaaS Integration on AWS, you must ensure you are sending metering records to AWS Marketplace Metering Services To do this, follow these steps outlined in BatchMeterUsage code example in the AWS Marketplace Seller Guide. This is relevant for SaaS subscription and SaaS contract with consumption pricing models.
- create_timestamp: The accepted time stamp.
- customerIdentifier: must be valid from an actual customer subscribed to your listing and can be obtained in the subscriber database after a successful registration of a buyer.
- dimension: The API key of the dimension you defined when creating your product.
- value or quantity: must be any integer that represents the metering quantity to send the AWS Marketplace Metering services for the billing.
SaaS guideline checks
The AWS MCO team will review your listing to ensure it follows the SaaS guidelines and AWS Marketplace policies. To ensure your listing is approved quickly, review the SaaS guidelines and verify your listing meets them.
If your SaaS solution is a tenant-based solution, notify the AWS Marketplace MCO team that there will be a delay in provisioning the environment for the testing review. The MCO team will confirm that:
- you are not encouraging the buyer to purchase the product through another channel.
- you are not offering a free trial outside of AWS Marketplace Free Trials. Find out more about SaaS free trials from the blog post, How to create a free trial offer for SaaS contract products in AWS Marketplace.
- you don’t collect customer payment information for your SaaS product at any time, including credit card and bank account information.
In this blog post, Stuart and I clarified the steps AWS Marketplace MCO team takes to review and test your listing in AWS Marketplace. We also showed how to perform an entitlements check as well as a metering records check using both SaaS QuickStart and your own API integration. And we showed the SaaS guideline check your product will be verified against. If you follow the steps outlined in this blog post, your SaaS product can now be successfully listed in AWS Marketplace.
About the authors
Lisungu Oteko Tresor is a Technical Account Manager focusing on seller operations for AWS Marketplace and is passionate about Machine Learning applications, Cloud technology, Telecommunications and cybersecurity. He is currently pursuing his PhD in Electronic and Electrical Engineering at University of Johannesburg. Outside of work he enjoys playing with his kids, solving Sudoku, and playing chess.
Stuart Davies is a Senior Support Engineer focusing on seller operations for AWS Marketplace, helping scale EMEA since Day 1! His interests include unicorn start-ups, scaling operations with efficiencies, and all things AWS architecture. Outside of work, you’ll find him training at Gracie Juijitsu, studying, hiking, and cooking for his family. He also enjoys the occasional video game (PC).