

# SaaS product pricing in AWS Marketplace
<a name="saas-pricing-models"></a>

After a buyer purchases your software as a service (SaaS) product on AWS Marketplace, AWS Marketplace provides you with their billing identiﬁer. You use the billing identifier to call the AWS Marketplace Entitlement Service and the AWS Marketplace Metering Service. Then, customers access the product in your AWS environment or through a virtual private cloud (VPC) endpoint connection that you create. This topic provides a list of SaaS pricing models for AWS Marketplace.

**Note**  
All SaaS pricing models support free trials. For more information, see [SaaS free trials](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-free-trials.html).


**SaaS pricing models**  

| Pricing model | Description | 
| --- | --- | 
| SaaS subscriptions | A pay-as-you-go model where we bill buyers for their hourly usage of your SaaS product. For more information, see [Pricing for SaaS subscriptions](saas-subscriptions.md). | 
| SaaS contracts | Buyers are either billed in advance for the use of your software, or you can offer them a flexible payment schedule. Customers can also pay for additional usage above their contract. For more information, see [Pricing for SaaS contracts](saas-contracts.md). | 
| SaaS contracts with pay-as-you-go |  Buyers are either billed in advance for the use of your software, or you can offer them a flexible payment schedule. Buyers are also billed an additional metered rate for usage on top of the contract price. For more information, see [Pricing for SaaS contracts](saas-contracts.md). | 
| SaaS free | A free pricing model where customers can use your SaaS product at no cost. All pricing dimensions must be set to \$10.00. | 

**Note**  
Once you create your listing and publish it to limited, you can't change the pricing model.

To make your SaaS product available on AWS Marketplace, decide whether you want to offer the [SaaS subscriptions pricing model](saas-subscriptions.md) or the [SaaS contracts pricing model](saas-contracts.md).

# Pricing for SaaS subscriptions
<a name="saas-subscriptions"></a>

For software as a service (SaaS) subscriptions, AWS Marketplace bills your customers based on the metering records that you send to us. All charges must be measured and reported every hour from the software deployed in the customer's account. All usage is then calculated monthly and billed monthly using the same mechanism as AMI based AWS Marketplace offerings. Our ability to bill customers for usage of your product is dependent upon receiving metering records from you. You are responsible for ensuring that your product’s metering records are successfully transmitted and received. 

Before you can publish a SaaS product with subscription pricing, you must do the following:

1. Create a new SaaS product in the AWS Marketplace Management Portal, choose **New SaaS Subscription**.

1. Complete the fields in the **General** tab with the necessary information. Make a note of the product code.

1. On the **Pricing** tab, under **Set Pricing**, select the **Category** that describes your product’s pricing most accurately. The pricing category appears to customers on the AWS Marketplace website. You can choose from **Bandwidth** (GBps, MBps), **Data** (GB, MB, TB), **Hosts** (hours), **Requests**, or **Users** (hours). If none of the predefined categories fit your needs, you can choose the more generic **Units** category.

   Next, define your Pricing Dimensions. Each Pricing Dimension represents a feature or service that you can set a per-unit price for. Examples of dimensions include users, hosts scanned, and GB of logs ingested. You can define a maximum of 200 dimensions. For each dimension you define, you must add the following information: 
   + **Dimension API Name** – The API name used when sending metering records to the [AWS Marketplace Metering Service](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/Welcome.html). This name indicates which dimension your customer used. This name is visible in billing reports. The name doesn't need to be reader-friendly because you're the only one with access to your reports. After you set the name, you can't change it. 
   + **Dimension Description** – The customer-facing statement that describes the dimension for the product. The description can be no more than 70 characters and should be user-friendly. Examples of descriptions are Administrators per hour, and Per Mbps bandwidth provisioned. After the product is published, you can change this description. 
   + **Dimension Rate** – The software charge per FCP unit for this product, in USD. This ﬁeld supports eight decimal places. 

## When a SaaS subscription ends
<a name="saas-subscription-ends"></a>

**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).

 A customer can unsubscribe from your SaaS subscription product through the AWS Management Console. Key points of the SaaS subscription ending process include the following: 

1. Your default Amazon EventBridge bus will receive a purchase agreement ended event for that customer.

1.  You have one hour to meter any remaining usage for the customer. 

1. After this hour, you receive a license deprovisioned - manufacturer event. At this point, you can no longer send metering records for this customer. 

 It’s up to you to decide how you want to disable functionality in your SaaS product for unsubscribed customers. For example, your product might complete the customer's existing work but prevent them from creating work. You might want to display a message to the customer that their usage has been disabled. Customers can resubscribe to your product through AWS Marketplace. 

## When a SaaS subscription is cancelled
<a name="saas-subscription-cancellations"></a>

Key points of the SaaS subscription cancellation process include the following: 

1. A customer can cancel their subscription to your SaaS subscription product the **Your Marketplace Software** page of the AWS Marketplace website. 

   Your default Amazon EventBridge bus will receive a purchase agreement ended event for that customer.

1.  You have one hour to meter any remaining usage for the customer. 

1. You notify the customer from your product that the cancellation is in progress. If a customer indicates that they want to cancel through your product, direct the customer to AWS Marketplace. To guarantee that there will be no future charges, customers should conﬁrm the cancellation with AWS Marketplace. 

# Pricing for SaaS contracts
<a name="saas-contracts"></a>

SaaS contracts allow customers to purchase your software through an upfront agreement. Under the agreement, customers are entitled to a specified quantity of use of your SaaS product. You define the usage categories, dimensions, and the length of the contract. AWS Marketplace bills your customers upfront or by the payment schedule that you define. For additional usage above their contract, your software reports the usage through the AWS Marketplace Metering Service (AWS Marketplace Metering Service).

When using the SaaS Contract pricing model, your application never sends metering records. Instead, it verifies entitlement by calling the AWS Marketplace Entitlement Service (AWS Marketplace Entitlement Service). AWS Marketplace communicates these entitlements to your SaaS application.

## Creating a SaaS contract product
<a name="creating-saas-contract-product"></a>

Before you can publish a SaaS product with contract pricing, you must do the following:

1. Create a new SaaS product in the AWS Marketplace Management Portal, and choose **New SaaS contract**.

1. Complete the fields in the **General** tab with the necessary information. Make a note of the product code.

1. On the **Pricing** tab:

   1. For **Set pricing**, choose the **Contract duration** you want to offer customers. You can enter different prices for each contract duration. You can select one or more of the following options: **Monthly**, **1 year**, **2 years**, and **3 years**. If you are creating a private offer, you can choose a custom duration in months (up to 60 months). 

   1. For **Choose the contract type you want to offer**, choose how you want customers to be able to purchase your product from the following options: 
      +  **Buyer can choose one or more options offered** – Customers can select a quantity for each pricing dimension you offer.
      +  **Buyer can choose one tier from multiple tiers offered** – Customers choose a tier from options that include different sets of features, services, and usage amounts. 

   1.  Choose the usage unit category that describes your product’s pricing most accurately. The pricing category appears to customers on the AWS Marketplace website. You can choose from **Bandwidth** (GBps, MBps), **Data** (GB, MB, TB), **Hosts** (hours), **Requests**, or **Users** (hours). If none of the predefined categories fit your needs, you can choose the more generic **Units** category.

1. Define your pricing dimensions. Each dimension represents a feature or service that you want to price separately. For detailed information about pricing dimensions and the required fields, see [Understanding SaaS contract pricing dimensions](#understanding-saas-contract-pricing-dimensions).

## Understanding SaaS contract pricing dimensions
<a name="understanding-saas-contract-pricing-dimensions"></a>

Each pricing dimension represents a feature or service that you can set a per unit price for. Examples of dimensions are users, hosts scanned, and GB of logs ingested. For each dimension you define, you add a name, a description, a price, and an API name. The name, price, and description are displayed to customers. You use the API name for tracking and reporting with AWS Marketplace as follows:
+ Calling the [AWS Marketplace Entitlement Service](https://docs.aws.amazon.com/marketplaceentitlement/latest/APIReference/Welcome.html) to retrieve the dimensions your customers have purchased.
+ Calling the [AWS Marketplace Metering Service](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/Welcome.html) to indicate which dimensions customers used.

For each pricing dimension in your contract, you can choose to let customers pay as they go for additional usage of that dimension above their contract. You can also add additional dimensions without contract prices that customers only consume by paying as they go.

When using the wizard to create the contracts for your SaaS product, you must define the following fields for your pricing dimensions:

**Dimension API name**  
The name used when calling the Entitlements API. This name is visible in billing reports and reports that aren't external-facing. The maximum length for the API name is 15 characters. After you set the name, it can't be changed.

**Dimension display name**  
The customer-facing name of a dimension. This name should help the customer understand the dimension for the product. The name should be user-friendly, and its maximum length is 24 characters. This value can be changed.

**Dimension description**  
The customer-facing description of a dimension that provides additional information about the dimension for the product. The maximum length for the description is 70 characters.

**Dimension - monthly price**  
The software charge per unit for the 1-month option for this dimension. This field supports three decimal places.

**Dimension - 1-year price**  
The software charge per unit for the 12-month option for this dimension. This field supports three decimal places. It's not a monthly charge. The price must reflect the 12-month one-time charge price.

**Dimension - 2-year price**  
The software charge per unit for the 24-month option for this dimension. This field supports three decimal places.

**Dimension - 3-year price**  
The software charge per unit for the 36-month option for this dimension. This field supports three decimal places.


**Example: Data storage application**  

|   | Monthly price  | 12-month price  | 24-month price  | Pay-as-you-go price for additional usage  | 
| --- | --- | --- | --- | --- | 
|  Unencrypted data (GB)  |  \$11.50/GB  |  \$116.00/GB  |  \$130.00/GB  |  \$10.1/GB per hour  | 
|  Encrypted data (GB)  |  \$11.55/GB  |  \$116.60/GB  |  \$131.20/GB  |  \$10.11/GB per hour  | 


**Example: Log monitoring product**  

|   | Monthly price  | 12-month price  | Pay-as-you-go price for additional usage  | 
| --- | --- | --- | --- | 
|  Basic (10 hosts monitored, 5 containers monitored)  |  \$1100  |  \$11000  |   | 
|  Standard (20 hosts monitored, 10 containers monitored)  |  \$1200  |  \$12000  |   | 
|  Pro (40 hosts monitored, 20 containers monitored)  |  \$1400  |  \$14000  |   | 
|  Additional hosts monitored per hour  |   |   |  \$10.1  | 
|  Additional containers monitored per hour  |   |   |  \$10.2  | 

**Note**  
The prices can be for the following durations: 1 month, 12 months, 24 months, or 36 months. You can choose to offer one or more of these options for your product. The durations must be the same across each dimension. For example, assume that you have `ReadOnlyUsers` and `AdminUsers` dimensions. If you offer a yearly price for `ReadOnlyUsers`, you must offer a yearly price for `AdminUsers`, too.

## SaaS contract upgrades
<a name="upgrades"></a>

 Customers can upgrade a contract to one of a higher value except for longer durations. For example, they can upgrade to higher quantities or higher-value entitlements. Customers are given a prorated credit for their existing contract. Customers can't decrease the size of their existing contract. They can only decrease the size at renewal, or cancel their renewal.

 Entitlements are veriﬁed by your SaaS product, which makes calls to the AWS Marketplace Entitlement Service. 

## Automatic renewals
<a name="automatic-renewals"></a>

 When a customer purchases your product through AWS Marketplace using SaaS contracts, they can agree to automatic renewal of the contract terms. The customer continues to pay for the entitlements every month or for 1, 2, or 3 years. The customer always has the option to modify the renewal settings. They can cancel the renewal or renew the contract for different quantities and durations. 

## When a SaaS contract ends
<a name="saas-contract-ends"></a>

A SaaS contract product has a contract expiry. When a contract ends, the following events occur: 

1.  Your SaaS product receives an `entitlement-updated` notification indicating the buyer's entitlement has changed. The AWS Marketplace Entitlement Service returns an empty response. 

1.  You have 1 hour to meter any remaining usage for the customer. After this time has elapsed, you can no longer send metering records for this customer. 

## When a SaaS contract is canceled
<a name="saas-contract-cancellations"></a>

Key points of the SaaS contract cancellation process include the following: 

1. Customers can request a cancellation and refund for SaaS contract products though AWS Support.

   Customers must request refunds within 48 hours through AWS Support. 

   The full or prorated refund is typically granted in 3–5 business days. 

1. Your SaaS product receives notification through Amazon EventBridge events for that customer.

1. You have one hour to send a ﬁnal metering record for the customer for any additional usage charges. 

1. You notify the customer from your product that the cancellation is in progress. If a customer indicates that they want to cancel through your product, direct the customer to AWS Marketplace. To guarantee that there will be no future charges, customers should conﬁrm the cancellation with AWS Marketplace. 