

# Getting started with SaaS products on AWS Marketplace
Getting started with SaaS products

As an AWS Marketplace seller, you can add your software as a service (SaaS) product to AWS Marketplace. This includes integrating your SaaS product with the appropriate AWS Marketplace API operations, based on the SaaS product's billing model. This topic provides an overview of the process for creating and configuring SaaS products, starting with the necessary prerequisites that you need to get started.

## Prerequisites


Before you get started, you must complete the following prerequisites:

1. Access and use the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management/). This is the tool that you use to register as a seller and manage the products that you sell in AWS Marketplace. For more information, see [AWS Marketplace Management Portal](user-guide-for-sellers.md#aws-marketplace-management-portal).

1. Register as a seller, and submit your tax and banking information. For more information, see [Registration process](registration-process.md).

1. Plan how you'll create and integrate your SaaS product in AWS Marketplace. For more information, see [Planning your SaaS product](saas-prepare.md). 

## Next steps


After you complete the required prerequisites, you can create and configure your SaaS product.

**Topics**
+ [

## Prerequisites
](#saas-prereqs)
+ [

## Next steps
](#saas-next-steps)
+ [

# SaaS product lifecycle in AWS Marketplace
](saas-product-lifecycle.md)
+ [

# Creating a SaaS product in AWS Marketplace
](saas-create-product.md)
+ [

# Creating an initial SaaS product page on AWS Marketplace
](saas-create-product-page.md)
+ [

# Configuring SaaS product settings in AWS Marketplace
](saas-product-settings.md)
+ [

# Integrating your SaaS subscription or Pay-As-You-Go product with AWS Marketplace
](saas-integrate-subscription.md)
+ [

# Integrating your SaaS contract product with AWS Marketplace
](saas-integrate-contract.md)
+ [

# Integrating your SaaS contract-based product with AWS Marketplace
](saas-integrate-contract-with-pay.md)
+ [

# Deploying a serverless SaaS integration
](deploy-serverless-saas.md)

# SaaS product lifecycle in AWS Marketplace
SaaS product lifecycle

When you create a software as a service (SaaS) product in AWS Marketplace, it's initially published with limited visibility so that only your account can access it. When you're ready, you can publish it to the AWS Marketplace catalog to allow buyers to subscribe and purchase your product. The following topic provides information about the SaaS product lifecycle. For more information about creating a SaaS product, see [Creating a SaaS product in AWS Marketplace](saas-create-product.md),

On the SaaS product page, you can view the list of your products. Depending on its stage in the product lifecycle, the product will have one of the following statuses:
+ **Staging** – An incomplete product for which you're still adding information. At the first **Save and exit** from the self-service experience, the successful change request creates an unpublished product with information from the completed steps that you submitted. From this status, you can continue adding information to the product or change already submitted details through change requests.
+ **Limited** – A product is complete after it is submitted to the system and passes all validation in the system. Then the product is released to a **Limited** status. At this point, the product has a detail page that is only accessible to your account and whoever you have allowlisted. You can test your product through the detail page. For more information or help, contact the [AWS Marketplace Seller Operations](https://aws.amazon.com/marketplace/management/contact-us/) team.
+ **Public** – When you're ready to publish the product so that buyers can view and subscribe to the product, you use the **Update visibility** change request. This request initiates a workflow for the AWS Marketplace Seller Operations team to review and audit your product against AWS policies. After the product is approved and the change request is processed, the product is moved from a status of **Limited** to **Public**. For information about AWS guidelines, see [SaaS product guidelines](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-guidelines.html).
+ **Restricted** – If you want to stop new users from subscribing to your product, you can restrict the product by using the **Update visibility** change request. A **Restricted** status means that existing users can continue to use the product. However, the product will no longer be visible to the public or be available to new users.

You can update your product at the **Staging**, **Limited**, and **Public** statuses. For more information, see [Updating product information](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-product-settings.html#update-product-information).

# Creating a SaaS product in AWS Marketplace
Creating a SaaS product

As an AWS Marketplace seller, you can add your software as a service (SaaS) product to AWS Marketplace. This includes creating your SaaS product and integrating it with the appropriate AWS Marketplace API operations, based on your billing model. To sell software as a SaaS products in AWS Marketplace, you follow these broad steps:
+ Create the SaaS product in AWS Marketplace.
+ Integrate the SaaS [subscription](saas-integrate-subscription.md), [contract](saas-integrate-contract.md), or [contract with pay-as-you-go](saas-integrate-contract-with-pay.md) product with AWS Marketplace. 
+ Test the [subscription](saas-integrate-subscription.md#saas-subscription-integration-testing), [contract](saas-integrate-contract.md#saas-contract-integration-testing), or [contract with pay-as-you-go](saas-integrate-contract-with-pay.md#saas-contract-consumption-integration-testing) product's integration with AWS Marketplace.
+ Submit your product for launch.

The following procedure shows you how to create a SaaS product in AWS Marketplace.

## Create a SaaS product


**To create a SaaS product**

1. **Decide to list a SaaS product**

   Have a SaaS product that you would like to sell in AWS Marketplace. Review and understand how to [Planning your SaaS product](saas-prepare.md).

1. **Determine pricing and offer type**

   There are three offer types for SaaS products: subscriptions, contracts, and contracts with pay-as-you-go. Your choice of offer type affects how you integrate your SaaS product with AWS Marketplace. For more information, see [Plan your pricing](saas-prepare.md#plan-pricing).

1. **Collect assets**

   Collect the assets needed to submit your product. Assets include:
   + Product logo URL – A publicly accessible Amazon S3 URL that contains a clear image of the logo for the product that you're providing.
   + End User License Agreement (EULA) URL – Your product must have a EULA that's available as a PDF file. You must provide a link to an Amazon S3 bucket where customers can review the EULA on your product's AWS Marketplace page.
   + Product registration URL – This is the URL where buyers are redirected after successfully subscribing to your product in AWS Marketplace.
   + 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 information includes email addresses and URLs for your product's support channels.

1. **Submit your product for integration**

   Use your seller account and the AWS Marketplace Management Portal to [Creating an initial SaaS product page on AWS Marketplace](saas-create-product-page.md). AWS Marketplace will publish your product as a limited product, which means that it's only available to use for integration and testing. Your product code and Amazon EventBridge event configuration will be available to you on the product overview page.
**Note**  
Your product must remain at a reduced price so you and the AWS Marketplace Seller Operations team can test your product without incurring a large cost. We'll ask you for the product’s actual price when you request public visibility for your product.

1. **Integrate with AWS Marketplace**

   Your product must support customers onboarding and using your product, including validating their subscription before giving them access, and, in some cases, metering for their usage. How you integrate with AWS Marketplace depends on the offer type you're using for your product. For more information about integration, based on offer type, see the following topics:
   + [ Subscription integration](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-integrate-subscription.html)
   + [ Contract integration](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-integrate-contract.html)
   + [ Contract with pay-as-you-go integration](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-integrate-contract-with-pay.html)

   The final step of integrating your product with AWS Marketplace is to test it to ensure that the integration works properly.

1. **Product testing and contract cancellation**

   After you have completed the integration process, we recommend that you subscribe to your own product to evaluate and confirm the customer experience. Creating a test subscription allows you to:
   + Review product information
   + Examine available purchase options
   + Process test payments
   + Verify links to your own product website
**Important**  
Cancel your pay-as-you-go subscription before changing your product's visibility from limited to public by following the instructions at [Canceling your SaaS subscription](https://docs.aws.amazon.com/marketplace/latest/buyerguide/cancel-subscription.html#cancel-saas-subscription). To cancel contract, contact the AWS Marketplace Seller Operations team by [submitting a support ticket](https://aws.amazon.com/marketplace/management/contact-us/).

1. **Submit your product for launch**

   After you verify your integration and you’re ready for the product to be live, choose **Update visibility**. The AWS Marketplace Seller Operations team will review your product and update the price before the visibility can be updated to Public.
**Note**  
AWS Marketplace Seller Operations uses a manual process to verify and update SaaS products. The process takes 7–10 business days to update visibility to public, and longer if the team finds errors. For more information about timing, see [Timing and expectations](https://docs.aws.amazon.com/marketplace/latest/userguide/product-submission.html#timing-and-expectations) in this guide.

# Creating an initial SaaS product page on AWS Marketplace
Creating an initial SaaS product page

You can use your software as a service (SaaS) application metadata to create an initial SaaS product page in the AWS Marketplace catalog, using the AWS Marketplace Management Portal. You can then also add product information, product deployment details, and public offer details. Optionally, you can add accounts to the allowlist to test the product. For more information see the following procedure.

**To create an initial SaaS product page**

1. Sign in to the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management/homepage).

1. Choose **Create SaaS product**, and then choose **SaaS product**.

1. Generate a SaaS product ID and code. You can also add optional tags to support tag-based authorization.
**Note**  
For information about tag-based authorization, see [Controlling access to AWS resources using tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources) in the *AWS Identity and Access Management User Guide*.

1. Use the self-service experience to create the AWS Marketplace listing. Add product information, product deployment details, and public offer details. Optionally, you can also add accounts to the allowlist to test the product.
**Note**  
If you need to end your session before finishing the steps, choose the **Save and exit** option to save your current selections to the staging area. This option creates a request to validate the information that you provided. While your request is being validated, you can't edit the product. If your request is successful, you can continue creating your product by choosing **Resume product creation**.  
If your request isn't successful, it's because of a validation error, which is visible on the product request log. Select the request to view the error, and choose **Copy to new** under **Actions** to correct the error and resubmit the request. To update previous steps, open the product detail page and submit a change request.
**Note**  
For products using non-free pricing models (contract, usage, or contract with consumption), your price will default to \$10.001 per dimension during testing. This price allows you to test your product in the **Limited** state without incurring a large bill. For products using the Free pricing model, dimensions will default to \$10.00. For non-free pricing models, you'll provide your actual price when making your product public. Note that if all dimensions are set to \$10.00, the product will automatically convert to the Free pricing model.

1. Choose **Submit**. Then, AWS Marketplace validates the information. If the validation succeeds, AWS Marketplace releases the product in a **Limited** status. After the validation succeeds, you can preview, integrate, and test your product.
**Note**  
While the validation is in progress, you can't edit the product. When your product is initially published, it's only accessible for the AWS account used to create the product and the AWS Marketplace Seller Operations team's test account. If you view the product from the **SaaS products** page, you can choose **View on AWS Marketplace** to view the product details as they will appear in AWS Marketplace for buyers. This detail listing isn't visible to other AWS Marketplace users. 

# Configuring SaaS product settings in AWS Marketplace
Configuring SaaS product settings

After you [create a software as a service (SaaS) product](saas-create-product.md) in AWS Marketplace, you can modify many of the product settings. The following sections show you how to submit change requests and modify product settings, such as updating pricing details, product visibility, and other settings.

**Topics**
+ [

## Manage change requests
](#create-change-request)
+ [

## Update product information
](#update-product-information)
+ [

## Update architecture details
](#updating-architecture-details)
+ [

## Update the allowlist of AWS account IDs
](#update-allowlist)
+ [

## Update product visibility
](#saas-update-visibility)
+ [

## Update pricing terms
](#saas-update-pricing-terms)
+ [

## Add pricing dimensions
](#saas-add-pricing-dimensions)
+ [

## Update pricing dimensions
](#saas-update-dimension)
+ [

## Restrict pricing dimensions
](#restrict-pricing-dimensions)
+ [

## Determine how buyers will access your product
](#configure-product-access)
+ [

## Configure Quick Launch
](#saas-quick-launch)
+ [

## Update availability by country
](#saas-availability-by-country)
+ [

## Update the refund policy of a product
](#update-refund-policy)
+ [

## Update the end user license agreement (EULA)
](#saas-update-eula)

## Manage change requests


In a [self-service listing](saas-create-product.md#saas-creating-self-service), you use a *change request* to make changes to your product. Your current requests can be found on the AWS Marketplace Management Portal on the [**Requests** tab](https://aws.amazon.com/marketplace/management/requests). You can make new requests through the **Request changes** dropdown list that is located under the navigation bar.

**To create a change request for a SaaS product**

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management), and sign in to your seller account.

1. From the **Products** tab, select **SaaS** from the dropdown list.

1. After the request is submitted, it begins processing. The change request goes through the following statuses: **Under review**, **Preparing changes**, and **Applying changes**.

1. When the request's processing is completed, its status changes to one of the following values: 
   + **Succeeded** – This status indicates that your requested change was processed and changes are reflected in the system.
   + **Failed** – This status indicates that something went wrong with the request and the changes were not processed. If the status is **Failed**, you can select the request to find **Error Codes** that provide recommendations on how to correct the issue. You can troubleshoot the errors and create a new request for the change. To make the process faster, you can use a **Copy to new request** function which copies the details of the **Failed** request. You can make needed changes and resubmit the request.

Change requests that start with an update will load the current details of the project. Then, you can make updates, which overwrite the existing details. Add and restrict request pairs are specifically for updates that are provisioned after each request succeeds (after you choose **Save and exit** and **Submit** actions in the self-service experience). This means existing subscribers can continue to use the product until their subscription or contract ends. However, no new subscribers can be added to a product that is in a **Restricted** status.

## Update product information


After you create your product, you might want to change the information associated with it in AWS Marketplace. 

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management), and sign in to your seller account.

1. From the [SaaS Products](https://aws.amazon.com/marketplace/management/products/saas) page, on the **SaaS products** tab, select the product that you want to modify. 

1. From the **Request changes** dropdown list, choose **Update product information**.

1. Update any of the following fields that you want to change:
   + **Product title**
   + **SKU**
   + **Short description**
   + **Long description**
   + **Product logo URL**
   + **Highlights**
   + **Product categories**
   + **Keywords**
   + **Product video URL**
   + **Resources**
   + **Support information**
**Note**  
For details about the logo format, see [Company and product logo requirements](https://docs.aws.amazon.com/marketplace/latest/userguide/product-submission.html#seller-and-product-logos).

1. To update the product information, choose **Submit**.

1. Verify that the request appears on the **Requests** tab with the **Under review** status. You might need to refresh the page to see your new request.

## Update architecture details


To receive the special designation that your product is deployed on AWS, update your product's architecture details in the AWS Marketplace Management Portal (AMMP) by selecting a hosting pattern and uploading an architecture diagram. For list of hosting patterns that AWS considers deployed on AWS, see [Guidelines](saas-guidelines.md#march-saas-guidelines). 

**To update architecture details**

1. Sign into the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management).

1. On the **Products** menu, choose **SaaS**.

1. In the **SaaS products** table, choose your product.

1. For **Request changes**, choose **Update architecture details**.

1. Choose a hosting pattern. If you select a hosting pattern that AWS Marketplace considers deployed on AWS, complete the following two additional steps. For more information about patterns considered deployed on AWS, see [Guidelines](saas-guidelines.md#march-saas-guidelines), previously in this guide.

   1. If prompted, in the **Architecture diagram** section, choose **Choose file** to upload your architecture diagram in PNG or JPG format. For more information about diagrams, see [Creating architecture diagrams](saas-guidelines.md#arch-diagram). 

   1. If prompted, in the **Application plane**, choose where your application runs. For more information, see [Control plane vs. application plane](https://docs.aws.amazon.com//whitepapers/latest/saas-architecture-fundamentals/control-plane-vs.-application-plane.html).

1. Choose **Update architecuture details**.

Once the request completes, **Request status** changes to **Succeeded**. To check request status, choose your product in the **SaaS products** table and choose the **Request log** tab.

To view your assessment results, choose your product in the **SaaS products** table and choose the **Architecture details** tab.

## Update the allowlist of AWS account IDs


You can change the list of AWS account IDs that can view your product in a limited state. 

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management), and sign in to your seller account.

1. From the [SaaS products](https://aws.amazon.com/marketplace/management/products/saas) page, on the **SaaS products** tab, select the product that you want to modify.

1. From the **Request changes** dropdown list, select **Update allowlist**. A list shows the AWS account IDs that are currently allowlisted.

1. In the **Allowlisted AWS accounts** field, enter the AWS account IDs and separate them using a comma.

1. To update the allowlist of AWS account IDs, choose **Submit**.

## Update product visibility


To change which buyers can view your Quick Launch experience in AWS Marketplace, you can use **Update visibility**. 

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management), and sign in to your seller account.

1. From the [SaaS products](https://console.aws.amazon.com/marketplace/latest/userguide/saas-guidelines.html) page, select the product that you want to modify.

1. From the **Request changes** dropdown, choose **Update visibility**.
**Note**  
You can request that the product be moved from a **Limited** status to a **Public** status by using this change request. However, the change request must go through an AWS Marketplace Seller Operations team approval process to be moved to **Public**.

1. When you publish to public, you'll provide the actual price for your product. This price will be applied after your listing is approved for public visibility.

1. To submit your request for review, choose **Submit**.

1. Verify that the **Requests** tab shows the **Request status** as **Under review**. When the request completes, the status becomes **Succeeded**.

## Update pricing terms


To change the pricing per dimension on your SaaS product, use **Update pricing terms**.

**Note**  
A pricing increase for any dimension results in the pricing update option being unavailable for at least the next 90 days. If updating both a price decrease and an increase, update the price decrease first. 

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management) and sign in to your seller account.

1. From the [SaaS Products](https://aws.amazon.com/marketplace/management/products/saas) page, on the **SaaS products** tab, select the product that you want to modify. 

1. From the **Request changes** dropdown list, select **Update public offers**, and then select **Update pricing terms**.

1. Current pricing is pre-filled in the fields. You can delete the current price, and then add your new price.

1. To submit your request for review, choose **Submit**.

1. Verify that the **Requests** tab shows the **Request status** as **Under review**. When the request completes, the status will update to **Succeeded** or **Failed**.

## Add pricing dimensions


You can add a dimension that you want to use to charge your product. A dimension is the foundational unit of measure that your buyer is charged for when using your product.

**Note**  
To update the name or description of an existing pricing dimension, see [Update pricing dimensions](#saas-update-dimension). 

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management), and sign in to your seller account.

1. From the [SaaS Products](https://aws.amazon.com/marketplace/management/products/saas) tab, select the product that you want to modify.

1. From the **Request changes** dropdown, choose **Update pricing dimensions** and then **Add pricing dimensions**.

1. Provide a dimension API identifier, display name, and description to add a new dimension to your product, and then choose **Next**.
**Note**  
The API identifier and name must be unique across all dimensions. You can't change the API identifier and unit after the dimension is created.

1. Define the prices for each dimension you've added, and then choose **Next** to review your changes.
**Note**  
You can only add dimensions for the pricing model selected for your product (for example, contract, usage, contract with consumption, or Free). For limited products using non-free pricing models, the prices for the newly added dimensions are set to \$10.01. For products using the Free pricing model, newly added dimensions must be set to \$10.00. For non-free pricing models, you can update the prices when the product is ready for public visibility. If all dimensions are set to \$10.00, the product will automatically convert to the Free pricing model.

1. Choose **Submit** to submit your request for review.

1. In the **Requests** tab, verify that the request status is **Under review**. When the request is complete, the status changes to **Succeeded**.

## Update pricing dimensions


You can update a dimension that you want to use to charge your product. A dimension is the foundational unit of measure that your buyer is charged for when using your product.

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management), and sign in to your seller account.

1. From the [SaaS Products](https://aws.amazon.com/marketplace/management/products/saas) tab, select the product that you want to modify.

1. From the **Request changes** dropdown, choose **Update pricing dimensions** and then **Update dimension information**.

1. Find the dimension you want to update, and then choose the name or description.

1. Provide the new name or description, and then choose the **checkmark** to confirm your update. The dimension name must be unique.

1. Choose **Submit** to submit your request for review.

1. In the **Requests** tab, verify that the request status is **Under review**. When the request is complete, the status will change to **Succeeded**.

## Restrict pricing dimensions


You can restrict a dimension that is currently listed in the product. This request removes the selected dimension from the product. 

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management), and sign in to your seller account.

1. From the [SaaS Products](https://aws.amazon.com/marketplace/management/products/saas) tab, select the product that you want to modify.

1. From the **Request changes** dropdown, choose **Update pricing dimensions** and then **Restrict pricing dimensions**.

1. For limited and public products, you'll be prompted to contact the AWS Marketplace Seller Operations team using the **[Contact Us](https://aws.amazon.com/marketplace/management/contact-us/)** button. Using the form, provide details for the dimensions you want to remove from your product listing.
**Note**  
Operations may not always be able to restrict pricing dimensions.

## Determine how buyers will access your product


You can choose one of the following options for how customers can access your product:
+ [Update the SaaS URL fulfillment option](#update-fulfillment-options) – Customers use a URL for the site that they are redirected to after subscribing to your product in AWS Marketplace.
+ [Configure Quick Launch](#saas-quick-launch) – Customers use a simplified process to configure and launch your product. You can complete this configuration for existing products with either Limited or Public visibility.

### Update the SaaS URL fulfillment option


To update the URL that is used to fulfill your SaaS product, use the **Update fulfillment options** tab.

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management), and sign in to your seller account.

1. From the [SaaS Products](https://aws.amazon.com/marketplace/management/products/saas) page, on the **SaaS products** tab, choose the product that you want to modify.

1. From the **Request changes** dropdown list, choose **Update fulfillment options**, and then choose **Edit default fulfillment URL**.

1. In the **Fulfillment URL** field, enter the new URL for the SaaS product fulfillment option. 

1. To submit your request for review, choose **Submit**.

1. Verify that the **Requests** tab shows the **Request status** as **Under review**. When the request completes, the status will update to **Succeeded** or **Failed**.

## Configure Quick Launch


SaaS products listed in AWS Marketplace often require AWS resources to be deployed in the subscribing buyer's account (for example, IAM roles). Quick Launch allows you to provide your buyers with guided, step-by-step instructions and resource deployment using CloudFormation templates. Buyers use the CloudFormation templates to configure and launch products. To learn more about the Quick Launch configuration process, see the [Enable SaaS Quick Launch](https://catalog.workshops.aws/mpseller/en-US/saas/quick-launch-integration) lab.

To configure a Quick Launch experience that customers can use to launch your SaaS product, use the **Fulfillment options** tab.

1. From the [SaaS Products](https://aws.amazon.com/marketplace/management/products/saas) page, on the **SaaS products** tab, select the product that you want to modify.
**Note**  
To configure the Quick Launch experience, the product must have either Limited or Public visibility.

1. On the product detail page, choose the **Fulfillment options** tab.

1. For **Quick Launch**, choose the **Activate and configure** button.

1. For **Account login details**, provide a URL for your site where the buyer can log in or create an account. This URL opens a new tab in the buyer experience. Buyers then log in or create an account and return to AWS Marketplace to launch the template.

1. Create an CloudFormation template.
**Tip**  
Follow the AWS Well-Architected Framework when creating your AWS CloudFormation template that deploys resources into the buyer's AWS account. For more information and resources, [AWS Well-Architected](https://aws.amazon.com/architecture/well-architected/) and read the [AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html).

   For **CloudFormation template**, choose the **Add CloudFormation template** button and provide the following information:
   + **Title** – Provide the name of your CloudFormation deployment.
   + **Description** – Provide a description of the template.
   + **Stack name** – Provide a name for the stack. This name is the stack name for the buyer in CloudFormation.
   + **CloudFormation template URL** – Provide the Amazon Simple Storage Service will review this template.
**Note**  
To simplify the launch process for your customers, we suggest minimizing the number of templates that are associated with your configuration process. Ideally, you want one template that deploys the resources needed to use the product. For questions related to your CloudFormation template, contact your AWS Marketplace business development partner or the [AWS Marketplace Seller Operations](https://aws.amazon.com/marketplace/management/contact-us/) team.
   + **Required IAM permissions** – Provide the permissions that are required to deploy the CloudFormation template. If you want to share deployment parameters, which are stored as secrets in [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) for the buyer, your policy must include the following actions:
     + `secretsManager:ListSecrets`
     + `secretsManager:DescribeSecret`
     + `secretsManager:ReplicateSecretToRegions`
     + `secretsManager:GetSecretValue`
**Note**  
If your product requires seller-provided CloudFormation deployment parameters (for example, API keys and [external IDs](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)), use the `PutDeploymentParameter` operation to share the parameter with your customers. For more information, see [https://docs.aws.amazon.com/marketplace-deployment/latest/api-reference/API_PutDeploymentParameter.html](https://docs.aws.amazon.com/marketplace-deployment/latest/api-reference/API_PutDeploymentParameter.html) in the *AWS Marketplace Deployment Service API Reference*.

1. (Optional) For **Manual configuration instructions**, provide instructions for buyers who want to configure your product manually. Consider including links to your product's onboarding guide and documentation.

1. For **Launch details**, provide the URL where buyers will access the product after the CloudFormation stack has been deployed.

1. (Optional) For **Allowlisted accounts for Quick Launch**, provide a comma-separated list of AWS accounts that can view the Quick Launch experience with Limited visibility.

1. Choose the **Submit** button. The Quick Launch experience will have Limited visibility, meaning it will only be visible to your account and allowlisted accounts. With Limited visibility, you can test your configuration using the **Configure and launch** page after subscribing to your product and choosing the **Set up your account** button.
   + To preview the page from the buyer's perspective, choose **Preview**. Your configuration changes will reflect on the preview while both pages are open.

1. When you're ready, you can publish the Quick Launch experience in the AWS Marketplace catalog. Use the **Update Quick Launch visibility** button on the **Fulfillment options** tab on the product detail page.

   When you change the visibility to Public, the AWS Marketplace Seller Operations team will review the configuration, conduct buyer testing, and publish the experience.
**Note**  
If you need support as you enable the Quick Launch experience, contact the [AWS Marketplace Seller Operations](https://aws.amazon.com/marketplace/management/contact-us/) team.

## Update availability by country


You can define the countries in which your product can be offered.

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management), and sign in to your seller account.

1. From the [SaaS Products](https://aws.amazon.com/marketplace/management/products/saas) tab, select the product that you want to modify.

1. From the **Request changes** dropdown, select **Update public offer** and then choose **Update availability by country**.

1. Choose one of the following options:
   + All countries – Available in all supported countries.
   + All countries with exclusions – Available in all supported countries except in selected countries.
   + Allowlisted countries only – Specific list of countries where the product is available.

1. Choose **Submit** to submit your request for review.

1. In the **Requests** tab, verify that the request status is **Under review**. When the request is complete, the status will change to **Succeeded**.

## Update the refund policy of a product


You can update the refund policy for your product by using **Update refund policy**.

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management), and sign in to your seller account.

1. From the [SaaS Products](https://aws.amazon.com/marketplace/management/products/saas) page, on the **SaaS products** tab, select the product that you want to modify. 

1. From the **Request changes** dropdown list, select **Update public offer**, and then select **Update refund policy**.

1. The current refund policy details are provided in the text box. Review and modify the details as you want. Submitting the request overwrites the current refund policy.

1. To submit your request for review, choose **Submit**.

1. Verify that the **Requests** tab shows the **Request status** as **Under review**. When the request completes, the status will update to **Succeeded** or **Failed**.

## Update the end user license agreement (EULA)


You can update your EULA for new users subscribing to your product.

1. Open the [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management), and sign in to your seller account.

1. From the [SaaS Products](https://aws.amazon.com/marketplace/management/products/saas) tab, select the product that you want to modify.

1. From the **Request changes** dropdown, choose **Update public offer** and then **Update EULA**.

1. You can choose the [Standard Contract for AWS Marketplace (SCMP)](https://docs.aws.amazon.com/marketplace/latest/userguide/standardized-license-terms.html) or submit a custom EULA. For a custom EULA, you must provide an Amazon Simple Storage Service (Amazon S3) URL for the contract. Your Amazon S3 bucket must be publicly accessible.

1. Choose **Submit** to submit your request for review.

1. In the **Requests** tab, verify that the request status is **Under review**. When the request is complete, the status will change to **Succeeded**.

# Integrating your SaaS subscription or Pay-As-You-Go product with AWS Marketplace
Integrating your SaaS subscription or Pay-As-You-Go product

**Integration requirements changing June 1, 2026 for new SaaS products**  
AWS Marketplace is introducing support for Concurrent Agreements, enabling multiple purchases of the same product on a single AWS account during the same agreement period. Starting June 1, 2026, all new SaaS products will be required to support updated integration requirements. [Review the new integration for Concurrent Agreements](https://catalog.workshops.aws/mpseller/en-US/saas/integration-for-concurrent-agreements).

Integrating your product with AWS Marketplace is one step in [Creating a SaaS product in AWS Marketplace](saas-create-product.md). To integrate your software as a service (SaaS) subscription product with AWS Marketplace, you must write code and demonstrate that it can respond successfully to several customer scenarios. The following sections show you how to integrate your SaaS subscription model with AWS Marketplace.

**Important**  
This guide is for *Pay-As-You-Go (PAYG)* SaaS products. If you are implementing a *contract-based* SaaS product, use [Integrating your SaaS contract-based product with AWS Marketplace](saas-integrate-contract-with-pay.md) instead. PAYG products do not use entitlement SNS topics or the GetEntitlements API.

**Note**  
Before you begin, make sure you've chosen the right pricing model for your software-as-a-service (SaaS) product in AWS Marketplace. For more information, see [Planning your SaaS product](saas-prepare.md). 

**Topics**
+ [

## Scenario: Your service validates new customers
](#saas-subscription-validate-customer)
+ [

## Scenario: Meter usage
](#saas-subscription-meter-usage)
+ [

## Scenario: Monitor changes to user subscriptions
](#saas-subscription-monitor-changes)
+ [

## Scenario: Verify customer subscription
](#saas-subscription-verify-subscriptions)
+ [

## Testing your SaaS subscription product integration
](#saas-subscription-integration-testing)

## Scenario: Your service validates new customers


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`, `LicenseArn`, and `ProductCode` by calling the `[ResolveCustomer](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_ResolveCustomer.html)` API operation in the AWS Marketplace Metering Service.

1. Persist the `CustomerIdentifier`, `CustomerAWSAccountId`, `LicenseArn`, and `ProductCode` in your system for future calls. You must store whether the customer has a valid subscription, along with whatever information you need about the customer.

1. As a response to the request, you must show your user's first use experience (as applicable for your service).

## Scenario: Meter usage


When the customer starts to use your service, you must send metering records hourly. For details on how to meter, see [Configuring metering for usage with SaaS subscriptions](metering-for-usage.md).

We recommend that you use AWS CloudTrail to monitor activity to ensure that billing information is being sent to AWS. Keep the following in mind when sending metering records:
+ Metering requests are de-duplicated on the hour.
+ Records sent every hour are cumulative.
+ We strongly recommend as a best practice that, even if there were no records in the last hour, you send metering records every hour, with usage of 0.

## Scenario: Monitor changes to user subscriptions


Set up an Amazon Simple Queue Service (Amazon SQS) queue, and subscribe to your product's Amazon SNS topic. Your SNS topic information was included in the email message that you received from the AWS Marketplace Seller Operations team when you created your product. For more information, see [Creating a SaaS product in AWS Marketplace](saas-create-product.md). By subscribing to your SNS topic, you receive notifications about changes to customer subscriptions, including providing or revoking access for specific customers.

**Note**  
An Amazon SNS topic Amazon Resource Name (ARN) looks like `arn:aws:sns:us-east-1:<account id>:aws-mp-subscription-notification-<product code>`.

The notifications that you must respond to are:
+ `subscribe-success` – The customer is subscribed, and you can successfully meter against their customer ID.
+ `unsubscribe-pending` – The customer is in the process of unsubscribing. You should send any last metering records.
+ `unsubscribe-success` – The customer has unsubscribed. Metering records for the customer will no longer be accepted. Follow your practices for shutting down customer resources, adhering to your retention policies.
+ `subscribe-fail` – The customer subscription failed. You should not meter against their customer ID or create resources on behalf of the customer.

## Scenario: Verify customer subscription


Before creating resources on the customer's behalf, verify that the customer should have access to your product. Store the latest status of the customer from the notifications you receive via Amazon SQS to know if the customer has access.

## Testing your SaaS subscription product integration


After you've integrated your SaaS subscription product with AWS Marketplace, you must conduct in-depth testing to ensure that the integration is successful. The following procedure outlines the steps to verify your product integration.

**Note**  
Use your own accounts to subscribe to your product and test that the integration is successful. Prices can be temporarily reduced so that you can test the purchase flow without incurring high charges in those accounts. For more information about temporarily reducing the prices or allowing additional test accounts to access your product, contact the [AWS Marketplace Seller Operations](https://aws.amazon.com/marketplace/management/contact-us/) team.  
After your product is launched, the service must continue to respond to these scenarios for new customers.

1. Use an allowed account to test the customer experience by subscribing to your product. 

1. After you've subscribed with the allowed account, ensure that the account is redirected to the registration URL, and that the redirect is a POST request that includes a temporary token. Make sure that your application persists the customer ID for future calls. This tests part of [Scenario: Your service validates new customers](#saas-subscription-validate-customer).

1. After verifying the test account in the previous step, onboard the account into your application. For example, you can have the test customer fill out a form to create a new user. Or, provide them with other next steps to get access to your SaaS application. This tests part of [Scenario: Your service validates new customers](#saas-subscription-validate-customer).

1. After the test customer is onboarded, make requests that will send metering records to AWS for billing purposes by using the `BatchMeterUsage` API operation in the AWS Marketplace Metering Service. This tests [Scenario: Meter usage](#saas-subscription-meter-usage).

1. Test for subscription changes. Possible scenarios include unsubscribes, successful subscriptions, and failed subscriptions. This tests [Scenario: Monitor changes to user subscriptions](#saas-subscription-monitor-changes).

1. Verify a successful subscription. After you receive an Amazon SNS notification for your test account with a successful subscription message, metering can begin. Records that are sent to the AWS Marketplace Metering Service before you receive the Amazon SNS notification aren't metered. This tests [Scenario: Verify customer subscription](#saas-subscription-verify-subscriptions).
**Note**  
To prevent billing issues, we strongly recommend programmatically waiting for this notification before launching resources on behalf of your customers.

1. After you have completed all of the integration requirements and tested the solution, notify the AWS Marketplace Seller Operations team. They will run a series of final tests on the solution by verifying that you have successfully sent metered records with the `BatchMeterUsage` API operation.

After your integration and testing is complete, you can perform a final review and list your product on the public AWS Marketplace. For more information, see [Creating a SaaS product in AWS Marketplace](saas-create-product.md).

# Integrating your SaaS contract product with AWS Marketplace
Integrating your SaaS contract product

**Integration requirements changing June 1, 2026 for new SaaS products**  
AWS Marketplace is introducing support for Concurrent Agreements, enabling multiple purchases of the same product on a single AWS account during the same agreement period. Starting June 1, 2026, all new SaaS products will be required to support updated integration requirements. [Review the new integration for Concurrent Agreements](https://catalog.workshops.aws/mpseller/en-US/saas/integration-for-concurrent-agreements).

Integrating your software as a service (SaaS) contract product with AWS Marketplace is one step in [Creating a SaaS product in AWS Marketplace](saas-create-product.md). To integrate your software as a service (SaaS) contract product with AWS Marketplace, you must write code and demonstrate that it can respond successfully to several customer scenarios. The following sections describe these scenarios, explain how to respond to them, and provide an overview of testing your integration.

**Note**  
Before you begin, make sure you've chosen the right pricing model for your software as a service (SaaS) product in AWS Marketplace. For more information, see [Planning your SaaS product](saas-prepare.md). 

**Topics**
+ [

## Scenario: Your service validates new customers
](#saas-contract-validate-customer)
+ [

## Scenario: Your service handles customer requests
](#saas-contract-customer-requests)
+ [

## Scenario: Monitor changes to user subscriptions
](#saas-contract-monitor-changes)
+ [

## Testing your SaaS contract product integration
](#saas-contract-integration-testing)

## Scenario: Your service validates new customers


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`, `LicenseArn`, and `ProductCode` by calling the `[ ResolveCustomer](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_ResolveCustomer.html)` API operation in the AWS Marketplace Metering Service**.

1. Verify the subscription and quantity (if applicable) the customer has access to by calling the `[ GetEntitlements](https://docs.aws.amazon.com/marketplaceentitlement/latest/APIReference/API_GetEntitlements.html)` API operation in the AWS Marketplace Entitlement Service.

1. Persist the `CustomerIdentifier`, `CustomerAWSAccountId`, `LicenseArn`, 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.

1. As a response to the request, you must show your user's first use experience (as applicable for your service).

## Scenario: Your service handles customer requests


When a customer makes a request to your service, you must respond to the following scenarios with appropriate actions or messaging:
+ They don't have a customer ID in your system. This means that they have not yet subscribed. You should tell the user how to subscribe.
+ They have a customer ID, and the `GetEntitlements` API operation returns an appropriate entitlement. In this scenario, you should fulfill the request.
+ They do have a customer ID, but the `GetEntitlements` API operation returns no entitlement, or not enough quantity to fulfill the request. In this scenario, you must determine how to handle access and manage their experience.

## Scenario: Monitor changes to user subscriptions


**Important**  
SNS notifications for AWS Marketplace SaaS products are being replaced with Amazon EventBridge notifications. If you have existing SaaS products integrated with SNS, they will continue to function. New listings will eventually transition to using Amazon EventBridge instead of SNS. For more information, see [Managing SaaS subscription events with Amazon EventBridge](saas-eventbridge-integration.md).

Set up an Amazon Simple Queue Service (Amazon SQS) queue as a target for your Amazon EventBridge rules to receive events about changes to customer entitlements. Your Amazon EventBridge event configuration was provided when you created your product. For more information, see [Creating a SaaS product in AWS Marketplace](saas-create-product.md). By configuring Amazon EventBridge rules, you receive events about changes to customer entitlements, including providing or revoking access for specific customers.

The only notification that you must respond to is:
+ License Updated Amazon EventBridge events – The customer entitlement has changed, and you must call the `GetEntitlements` API operation to see the new status. Update your customer store, and, if applicable (for example, the customer's contract has lapsed), follow your practices for shutting down customer resources, adhering to your retention policies.

**Note**  
For additional information, see [Checking entitlements using the AWS Marketplace Entitlement Service](checking-entitlements.md).

## Testing your SaaS contract product integration


After you've integrated your SaaS contract product with AWS Marketplace, you must conduct in-depth testing to ensure that the integration is successful. The following procedure outlines the steps to verify your product integration.

**Note**  
Use your own accounts to subscribe to your product and test that the integration is successful. Prices can be temporarily reduced so that you can test the purchase flow without incurring high charges in those accounts. For more information about temporarily reducing the prices or allowing additional test accounts to access your product, [contact us](https://aws.amazon.com/marketplace/management/contact-us/).  
After your product is launched, the service must continue to respond to these scenarios for new customers.

1. Use an allowed account to test the customer experience by getting a contract for your product. 

1. After the account has the contract, ensure that the account is redirected to the registration URL, and that the redirect is a POST request that includes a temporary token. Make sure that your application persists the customer ID for future calls and correctly handles the entitlement the customer has. This tests part of [Scenario: Your service validates new customers](#saas-contract-validate-customer).

1. After verifying the test account in the previous step, onboard the account into your application. For example, you can have the test customer fill out a form to create a new user. Or, provide them with other next steps to get access to your SaaS application. This tests part of [Scenario: Your service validates new customers](#saas-contract-validate-customer).

1. If no entitlement is returned from the `GetEntitlements` API operation, either during onboarding or in your ongoing verification passes, your application must correctly manage access and the experience for users who are not entitled. This tests [Scenario: Your service handles customer requests](#saas-contract-customer-requests).

1. Test for subscription changes. Verify that your application correctly handles unsubscribes, successful subscription, and failed subscription scenarios. This tests [Scenario: Monitor changes to user subscriptions](#saas-contract-monitor-changes).

1. After you have completed all the integration requirements and tested the solution, notify the AWS Marketplace Operations team. They will then test the solution by verifying that you have successfully called the `GetEntitlements` API operation and sufficiently onboarded new customers.

After your integration and testing is complete, you can perform a final review and list your product on the public AWS Marketplace. For more information, see [Creating a SaaS product in AWS Marketplace](saas-create-product.md). You can also cancel your test subscription by completing a Refund Request Form. For more information on cancelling a subscription, see the [Requesting a billing adjustment (refund)](refunds.md#refund-process). 

# Integrating your SaaS contract-based product with AWS Marketplace
Integrating your SaaS contract-based product

**Integration requirements changing June 1, 2026 for new SaaS products**  
AWS Marketplace is introducing support for Concurrent Agreements, enabling multiple purchases of the same product on a single AWS account during the same agreement period. Starting June 1, 2026, all new SaaS products will be required to support updated integration requirements. [Review the new integration for Concurrent Agreements](https://catalog.workshops.aws/mpseller/en-US/saas/integration-for-concurrent-agreements).

Integrating your product with AWS Marketplace is one step in [Creating a SaaS product in AWS Marketplace](saas-create-product.md). To integrate your software as a service (SaaS) contract product with AWS Marketplace, you must write code and demonstrate that it can respond successfully to several customer scenarios. The following sections describe these scenarios, explain how to respond to them, and provide an overview of testing your integration.

**Note**  
This guide is for *contract-based* SaaS products only. If you are implementing a *Pay-As-You-Go (PAYG)* SaaS product, use [Integrating your SaaS subscription or Pay-As-You-Go product with AWS Marketplace](saas-integrate-subscription.md) instead. PAYG products do not use entitlement SNS topics or the GetEntitlements API.  
Before you begin, make sure you've chosen the right pricing model for your software as a service (SaaS) product in AWS Marketplace. For more information, see [Planning your SaaS product](saas-prepare.md). 

**Topics**
+ [

## Scenario: Your service validates new customers
](#saas-contract-with-pay-validate-customer)
+ [

## Scenario: Your service handles customer requests
](#saas-contract-with-pay-customer-requests)
+ [

## Scenario: Meter usage
](#saas-contract-with-pay-meter-usage)
+ [

## Scenario: Monitor changes to user entitlements
](#saas-contract-with-pay-monitor-changes)
+ [

## Testing your SaaS contract with pay-as-you-go integration
](#saas-contract-consumption-integration-testing)

## Scenario: Your service validates new customers


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`, `LicenseArn`, and `ProductCode` by calling the `[ ResolveCustomer](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_ResolveCustomer.html)` API operation in the AWS Marketplace Metering Service.

1. Verify the subscription and quantity (if applicable) the customer has access to by calling the `[ GetEntitlements](https://docs.aws.amazon.com/marketplaceentitlement/latest/APIReference/API_GetEntitlements.html)` action in the AWS Marketplace Entitlement Service.

1. Persist the `CustomerIdentifier`, `CustomerAWSAccountId`, `LicenseArn`, 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.

1. As a response to the request, you must show your user's first use experience (as applicable for your service).

## Scenario: Your service handles customer requests


When a customer makes a request to your service, you must respond to the following scenarios with appropriate actions or messaging:
+ They don't have a customer ID in your system. This means that they have not yet subscribed. You should give them messaging describing how to subscribe.
+ They have a customer ID, and the `GetEntitlements` API operation returns an appropriate entitlement. In this scenario, you should fulfill the request.
+ They do have a customer ID, but the `GetEntitlements` API operation returns no entitlement, or not enough quantity to fulfill the request. In this scenario, you must determine how to handle access and manage their experience.

## Scenario: Meter usage


When the customer starts to use your service, you must send metering records hourly. For details on how to meter, see [Configuring metering for usage with SaaS subscriptions](metering-for-usage.md).

We recommend that you use AWS CloudTrail to monitor activity to ensure that billing information is being sent to AWS. Keep the following in mind when sending metering records:
+ Metering requests are de-duplicated on the hour.
+ Records sent every hour are cumulative.
+ We strongly recommend as a best practice that, even if there were no records in the last hour, you send metering records every hour, with usage of 0.

## Scenario: Monitor changes to user entitlements


Set up an Amazon Simple Queue Service (Amazon SQS) queue, and subscribe to your product's Amazon SNS topics—there are two SNS topics, one for entitlement changes and one for subscription changes. Your topic information was included in the email message that you received from the AWS Marketplace Seller Operations team when you created your product. For more information, see [Creating a SaaS product in AWS Marketplace](saas-create-product.md). By subscribing to your SNS topics, you receive notifications about changes to customer subscriptions, including providing or revoking access for specific customers.

**Note**  
An SNS topic Amazon Resource Name (ARN) for a subscription change looks like `arn:aws:sns:us-east-1:<account id>:aws-mp-subscription-notification-<product code>`. An SNS topic ARN for entitlement changes looks like `arn:aws:sns:us-east-1:<account id>:aws-mp-entitlement-notification-<product code>`.

The notifications that you must respond to are as follows:
+ `entitlement-updated` (in the entitlement SNS topic)– The customer entitlement has changed, and you must call the `GetEntitlements` API operation to see the new status. Update your customer store, and, if applicable (for example, the customer's contract has lapsed), follow your practices for shutting down customer resources, adhering to your retention policies.
+ `subscribe-success` (in the subscription SNS topic) – The customer is subscribed, and you can successfully meter against their customer ID.
+ `unsubscribe-pending` (in the subscription SNS topic) – The customer is in the process of unsubscribing. You should send any last metering records.
+ `unsubscribe-success` (in the subscription SNS topic) – The customer has unsubscribed. Metering records for the customer will no longer be accepted. Follow your practices for shutting down customer resources, adhering to your retention policies.
+ `subscribe-fail` (in the subscription SNS topic) – The customer subscription failed. You should not meter against their customer ID or enable resources on behalf of the customer.

**Note**  
For additional information, see [Checking entitlements using the AWS Marketplace Entitlement Service](checking-entitlements.md).

## Testing your SaaS contract with pay-as-you-go integration


After you've integrated your contract with pay-as-you-go product with AWS Marketplace, you must conduct in-depth testing to ensure that the integration is successful. The following procedure outlines the steps to verify your product integration.

**Note**  
Use your own accounts to subscribe to your product and test that the integration is successful. Prices can be temporarily reduced so that you can test the purchase flow without incurring high charges in those accounts. For more information about temporarily reducing the prices or allowing additional test accounts to access your product, contact the [AWS Marketplace Seller Operations](https://aws.amazon.com/marketplace/management/contact-us/) team.  
After your product is launched, the service must continue to respond to these scenarios for new customers.

1. Use an allowed account to test the customer experience by getting a contract for your product. 

1. After the account has the contract, ensure that the account is redirected to the registration URL, and that the redirect is a POST request that includes a temporary token. Make sure that your application persists the customer ID for future calls and correctly handles the entitlement the customer has. This tests part of [Scenario: Your service validates new customers](#saas-contract-with-pay-validate-customer).

1. After verifying the test account in the previous step, onboard the account into your application. For example, you can have the test customer fill out a form to create a new user. Or, provide them with other next steps to get access to your SaaS application. This tests part of [Scenario: Your service validates new customers](#saas-contract-with-pay-validate-customer).

1. If no entitlement is returned from the `GetEntitlements` API operation, either during onboarding or in your ongoing verification passes, your application must correctly manage access and the experience for users who are not entitled. This tests [Scenario: Your service handles customer requests](#saas-contract-with-pay-customer-requests).

1. After the test customer is onboarded, make requests that will send metering records to AWS for billing purposes by using the `BatchMeterUsage` API operation in the AWS Marketplace Metering Service. This tests [Scenario: Meter usage](#saas-contract-with-pay-meter-usage).

1. Test for subscription changes. Verify that your application correctly handles unsubscribes, successful subscription, and failed subscription scenarios. This tests [Scenario: Monitor changes to user entitlements](#saas-contract-with-pay-monitor-changes).

1. After you have completed all the integration requirements and tested the solution, notify the AWS Marketplace Seller Operations team. They will then test the solution by verifying that you have successfully called the `GetEntitlements` API operation and sufficiently onboarded new customers. They will also verify that you have successfully sent metered records with the `BatchMeterUsage` API operation.

After your integration and testing is complete, you can perform a final review and list your product on the public AWS Marketplace. For more information, see [Creating a SaaS product in AWS Marketplace](saas-create-product.md).

# Deploying a serverless SaaS integration


When you have a SaaS solution that you want to integrate with AWS Marketplace, you can use various architectural approaches for the integration.

To help you understand SaaS integration concepts, AWS provides a reference lab that demonstrates one approach using serverless architecture.

Access the reference lab: [Integrate your SaaS with the Serverless SaaS Integration reference](https://aws.amazon.com/quickstart/architecture/aws-marketplace-saas/)

**Note**  
This reference implementation is provided for learning and demonstration purposes only. It is not production-ready and should not be used as-is in production environments. Before implementing a similar solution in production, ensure you address security, scalability, monitoring, and compliance requirements specific to your use case.