aws marketplace saas listing process & integration guide · aws marketplace saas guide / saas...
Post on 20-May-2020
86 Views
Preview:
TRANSCRIPT
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Marketplace
SaaS Listing Process &
Integration Guide
1
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
1. Register as a seller and submit tax & banking information. This step is required before you can request to list a
paid product.
2. Become familiar with the AWS Marketplace Management Portal (AMMP). This is the tool that you use to
register as a seller and manage the products that you sell on AWS Marketplace.
3. Learn about tools available to you as an AWS Marketplace seller.
4. Determine your product s pricing model. SaaS products can be created with one of three pricing options:
Contract, Contract with Consumption, or Subscription.
AWS Marketplace SaaS Guide / About this guide
About this guide
Audience
This guide is for independent software vendors (ISVs), selling SaaS products in AWS Marketplace. We have included
essential information to help you navigate each step of the listing process and understand what s required to
integrate with AWS Marketplace. In this guide, you will find integration diagrams for each pricing model, code
examples for interacting with our APIs, a list of frequently asked seller questions, and links to external resources that
help you deep dive into the concepts presented throughout. Thank you for choosing to list with us and we look
forward to welcoming you to AWS Marketplace!
Contents
2
SaaS Contract (upfront billing) Code examples
Frequently Asked Questions (FAQs)
External resources
Listing process & integration requirements
Integration diagram
SaaS Contract with Consumption
Listing process & integration requirements
Integration diagram
SaaS Subscription (pay-as-you-go)
Listing process & integration requirements
Integration diagram
ResolveCustomer
GetEntitlement
BatchMeterUsage
Before Getting Started
There are some prerequisites you ll need to complete before submitting your SaaS product and reviewing this guide:
Click here to learn more about Contract pricing Click here to learn more about Subscription pricing
Click here to learn how to register & submit tax and banking information.
Click here to learn about AMMP.
Click here for your seller toolkit.
(or)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS ContractListing process &
integration requirements
Integration diagram
AWS Marketplace SaaS Guide / SaaS Contract
3
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
1
2
3
Collect AssetsBefore submitting a product, you will need to provide:
Product logo URL
End User License Agreement (EULA) URL
SaaS fulfillment URL (redirect page customers will be sent to after subscribing)
Metadata
Support information
Submit via Management PortalCreate a product page using a seller account that has access to the AWS Marketplace
Management Portal (AMMP).
Product Page Published to LimitedThe 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
SNS topic(s)
Product page URL
4 Validate New CustomersAfter a customer subscribes to your product, they will be redirected to the fulfillment URL.
The redirect is a POST request & includes a temporary token. Your app then needs to:
Exchange the token for a customerID by calling ResolveCustomer in the AWS
Marketplace Metering Service.
After obtaining a customerID, persist it in your application for future calls.
With the customerID, call GetEntitlement in the AWS Marketplace Entitlement Service
to verify which dimension the customer is subscribed to and the quantity, if applicable.
Onboard New CustomersAfter successfully verifying a customer s subscription, onboard them onto your
application. For example, have them fill out a form to create a new user account. Or,
provide them with next steps to get access to the application.
5
AWS Marketplace SaaS Guide / SaaS Contract / Listing Process & Integration Requirements
Listing Process
4
Integration Requirements
SaaS Contract
Monitor for ChangesSetup an SQS queue and subscribe to your product s SNS topic. This topic provides
notifications about changes to customers subscription and entitlement statuses. This
enables you to know when to provide and revoke access for specific customers. Possible
scenarios include: unsubscribes, upgrades, renewals, & failed subscription.
7
Handle No Entitlement ScenariosIf no entitlement is returned from GetEntitlement, either during onboarding or
ongoing verification, determine how to manage access & their experience.
6
Listing Process (continued after completion of integration)
End-to-end testing with AWS MarketplaceAfter you have completed all the integration requirements and tested the solution,
notify the AWS Marketplace Ops team. They will then test the solution by verifying you
have successfully called GetEntitlement and sufficiently onboard new customers.
After end-to-end testing is complete, you will have the chance to review the product
page with the original prices. After giving approval, the AWS Marketplace Ops team will
make the product page live in the public catalog.
8
Note: Each item refers to a step in the diagram (see next page)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Verifying
Customers
Decide to List
SaaS Product
Review SaaS Seller Guide
Determine
pricing & offer
type
Collect Assets
Submit
Product
via
AMMP
AWS MP
Publishes
Product to
Limited
SaaS
Integration
AWS MP End-
to-End
Testing
Product Live
12 3
Accepting New
Customers
Accept HTTP POST
request
x-amzn-marketplace-
token
MS
ES
= Seller (ISV) Action
= AWS Marketplace Entitlement Service API
Key:
= AWS Marketplace Metering Service API
= AWS Marketplace Ops Team Action
Grant access to
product based on
dimensions returned
in entitlement
New customers in
onboarding workflow
Existing customers
already using product
DB
Listen for:
Call
ResolveCustomer
MS
Store CustomerIDSetup new
queue in SQS
If no entitlement returned
Handle each scenario
If active entitlement
Call GetEntitlement
to verify active
subscriptionES
Check customer s
entitlement
entitlement-updated
message
With CustomerID
Subscribe
to:
Entitlement
SNS topic
4X = Code example (see code example pages)
A
B
= AWS Service
X = Steps (see previous page)
5
AWS Marketplace SaaS Guide / SaaS Contract / Integration Diagram
8
Monitoring for
Subscription Changes
SaaS Contract (cont.)
Example SNS Topic
arn:aws:sns:us-east-1:287250355862:aws-mp-
entitlement-notification-PRODUCTCODE
5
7
6
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS Contract
with ConsumptionListing process &
Integration requirements
Integration diagram
AWS Marketplace SaaS Guide / SaaS Contract with Consumption
6
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
1
2
3
Collect AssetsBefore submitting a product, you will need to provide:
Product logo URL
End User License Agreement (EULA) URL
SaaS fulfillment URL (redirect page customers will be sent to after subscribing)
Metadata
Support information
Submit via Management PortalCreate a product page using a seller account that has access to the AWS Marketplace
Management Portal (AMMP).
4 Validate New CustomersAfter a customer subscribes to your product, they will be redirected to the fulfillment URL.
The redirect is a POST request & includes a temporary token. Your app then needs to:
Exchange the token for a customerID by calling ResolveCustomer in the AWS
Marketplace Metering Service.
After obtaining a customerID, persist it in your application for future calls.
With the customerID, call GetEntitlement in the AWS Marketplace Entitlement Service
to verify which dimension the customer is subscribed to and the quantity, if applicable.
Onboard New CustomersAfter successfully verifying a customer s subscription, onboard them onto your
application. For example, have them fill out a form to create a new user account. Or,
provide them with next steps to get access to the application.
5
AWS Marketplace SaaS Guide / SaaS Contract with Consumption / Listing Process & Integration Requirements
Listing Process
7
Integration Requirements
SaaS Contract with Consumption
Sending Metering RecordsYou use the BatchMeterUsage operation in the AWS Marketplace Metering Service to
deliver metering records to AWS on behalf of your customers. We recommend using
CloudTrail to monitor activity to ensure that billing information is being sent to AWS
Marketplace. Keep in mind when sending metering records:
Marketplace de-duplicates metering requests on the hour
Records sent every hour are cumulative
Best practice is to send records every hour, even if quantity is 0
7
Handle No Entitlement ScenariosIf no entitlement is returned from GetEntitlement, either during onboarding or
ongoing verification, determine how to manage access & their experience.
6
Listing Process (continued after completion of integration)
End-to-end testing with AWS MarketplaceAfter you have completed all the integration requirements and tested the solution,
notify the AWS Marketplace Ops team. They will then test the solution by verifying you
have successfully called GetEntitlement and sufficiently onboard new customers.
They will also verify you have successfully sent metered records via BatchMeterUsage.
After end-to-end testing is complete, you will have the chance to review the product
page with the original prices. After giving approval, the AWS Marketplace Ops team will
make the product page live in the public catalog.
9
Monitor for ChangesSetup an SQS queue and subscribe to your product s SNS topics. These topics provide
notifications about changes to customers subscription and entitlement statuses. This
enables you to know when to provide and revoke access for specific customers. Possible
scenarios include: unsubscribes, upgrades, renewals, & failed subscription.
8
Note: Each item refers to a step in the diagram (see next page)
Product Page Published to LimitedThe 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
SNS topic(s)
Product page URL
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Verifying
Customers
Decide to List
SaaS Product
Review SaaS Seller Guide
Determine
pricing & offer
type
Collect Assets
Submit
Product
via
AMMP
AWS MP
Publishes
Product to
Limited
SaaS
Integration
AWS MP End-
to-End
Testing
Product Live
Accepting New
Customers
Accept HTTP POST
request
x-amzn-marketplace-
token
Grant access to
product based on
dimensions returned
in entitlement
New customers in
onboarding workflow
Existing customers
already using product
DB
Listen for:
Call
ResolveCustomer
MS
Store CustomerIDSetup new
queue in SQS
If no entitlement returned
Handle each scenario
If active entitlement
Call GetEntitlement
to verify active
subscriptionES
Check customer s
entitlement
entitlement-updated
message
With CustomerID
Subscribe
to:
Entitlement
SNS topic
4
A
B
8
AWS Marketplace SaaS Guide / SaaS Contract with Consumption / Integration Diagram
Monitoring for
Subscription Changes
SaaS Contract with Consumption (cont.)
Example Entitlement SNS Topic
arn:aws:sns:us-east-1:287250355862:aws-mp-
entitlement-notification-PRODUCTCODE
5
6
12 3 9
Metering Send
Reporting
Metered Records
Send record to
BatchMeterUsage
Log API calls to
CloudWatch
C
7
Listen for and handle each scenario:
Subscribe
to:
Subscription
SNS topic
MS
ES
= Seller (ISV) Action
= AWS Marketplace Entitlement Service API
Key:
= AWS Marketplace Metering Service API
= AWS Marketplace Ops Team Action
X = Code example (see code example pages)
= AWS Service
X = Steps (see previous page)
Example Subscription SNS Topic
arn:aws:sns:us-east-1:287250355862:aws-mp-
subscription-notification-PRODUCTCODE
unsubscribe-success
message
subscribe-fail
message
unsubscribe-pending
message
subscribe-success
message
8
8
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SaaS SubscriptionListing process &
Integration requirements
Integration diagram
AWS Marketplace SaaS Guide / SaaS Subscription
9
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
1
2
3
Collect AssetsBefore submitting a product, you will need to provide:
Product logo URL
End User License Agreement (EULA) URL
SaaS fulfillment URL (redirect page customers will be sent to after subscribing)
Metadata
Support information
Submit via Management PortalCreate a product page using a seller account that has access to the AWS Marketplace
Management Portal (AMMP).
4 Validate New CustomersAfter a customer subscribes to your product, they will be redirected to the fulfillment URL.
The redirect is a POST request & includes a temporary token. Your app then needs to:
Exchange the token for a customerID by calling ResolveCustomer in the AWS
Marketplace Metering Service.
After obtaining a customerID, persist it in your application for future calls.
Onboard New CustomersAfter successfully verifying a customer, onboard them onto your application. For
example, have them fill out a form to create a new user account. Or, provide them with
next steps to get access to the application.
5
AWS Marketplace SaaS Guide / SaaS Subscription / Listing Process & Integration Requirements
Listing Process
10
Integration Requirements
SaaS Subscription
Sending Metering RecordsYou use the BatchMeterUsage operation in the AWS Marketplace Metering Service to
deliver metering records to AWS on behalf of your customers. We recommend using
CloudTrail to monitor activity to ensure that billing information is being sent to AWS
Marketplace. Keep in mind when sending metering records:
Marketplace de-duplicates metering requests on the hour
Records sent every hour are cumulative
Best practice is to send records every hour, even if quantity is 0
6
Verify Successful SubscriptionAfter you receive a subscription notification with subscribe-success, the customer
account is ready for metering. Records that you send before this notification aren't
metered. Additionally, we recommend waiting for this message before launching
resources on behalf of a customer.
8
Listing Process (continued after completion of integration)
End-to-end testing with AWS MarketplaceAfter you have completed all the integration requirements and tested the solution,
notify the AWS Marketplace Ops team. They will then test the solution by verifying you
have successfully sent metered records via BatchMeterUsage and sufficiently onboard
new customers.
After end-to-end testing is complete, you will have the chance to review the product
page with the original prices. After giving approval, the AWS Marketplace Ops team will
make the product page live in the public catalog.
9
Monitor for ChangesSetup an SQS queue and subscribe to your product s SNS topic. This topic provides
notifications about changes to customers subscription. This enables you to know when
to provide and revoke access for specific customers. Possible scenarios include:
unsubscribes, successful subscription, & failed subscription.
7
Note: Each item refers to a step in the diagram (see next page)
Product Page Published to LimitedThe 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
SNS topic(s)
Product page URL
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Verifying
Customers
Decide to List
SaaS Product
Review SaaS Seller Guide
Determine
pricing & offer
type
Collect Assets
Submit
Product
via
AMMP
AWS MP
Publishes
Product to
Limited
SaaS
Integration
AWS MP End-
to-End
Testing
Product Live
Accepting New
Customers
Accept HTTP POST
request
x-amzn-marketplace-
token
Grant access to
product
DB
Call
ResolveCustomer
MS
Store CustomerIDSetup new
queue in SQS
4
A
11
AWS Marketplace SaaS Guide / SaaS Subscription / Integration Diagram
Monitoring for
Subscription Changes
SaaS Subscription (cont.)
5
7
12 3 9
Metering Send
Reporting
Metered Records
Send record to
BatchMeterUsage
Log API calls to
CloudWatch
C
6
Listen for and handle each scenario:
Subscribe
to:
Subscription
SNS topic
MS
= Seller (ISV) Action
Key:
= AWS Marketplace Metering Service API
= AWS Marketplace Ops Team Action
X = Code example (see code example pages)
= AWS Service
X = Steps (see previous page)
Example Subscription SNS Topic
arn:aws:sns:us-east-1:287250355862:aws-mp-
subscription-notification-PRODUCTCODE
unsubscribe-success
message
subscribe-fail
message
unsubscribe-pending
message
subscribe-success
message
Verify you receive subscribe-success
before spinning up resources on behalf of customers
8
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Code ExamplesResolveCustomer
GetEntitlement
BatchMeterUsage
AWS Marketplace SaaS Guide / Code Examples
12
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Marketplace SaaS Guide / Code Examples / A - ResolveCustomer
ResolveCustomerA
PurposeExchanging x-amzn-marketplace-token for customerID.
Example (Python)
Referencehttps://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/meteringmarketplace.html#MarketplaceMetering.Client.resolve_customer
Response from ResolveCustomer
13
Pricing ModelsThis code example is relevant for all pricing models (i.e. Contract, Contract with Consumption, & Subscription).
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Marketplace SaaS Guide / Code Examples / B - GetEntitlement
GetEntitlementB
PurposeVerify that a customer has an active entitlement. Identify which dimension(s) that customer is subscribed to.
Example (Python)
Referencehttps://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/marketplace-entitlement.html#MarketplaceEntitlementService.Client.get_entitlements
Response from GetEntitlementNote: the Value returned will correspond to the API dimensions created when
setting up the product in the AWS Marketplace Management Portal (AMMP)
14
Pricing ModelsThis code example is relevant for SaaS Contract & Contract with Consumption.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Marketplace SaaS Guide / Code Examples / C - BatchMeterUsage
BatchMeterUsageC
PurposeSend a metering record to AWS Marketplace.
Example (Python)
Referencehttps://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/meteringmarketplace.html#MarketplaceMetering.Client.batch_meter_usage
Response from BatchMeterUsage
15
Pricing ModelsThis code example is relevant for SaaS Subscription & Contract with Consumption.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Marketplace SaaS Guide / Frequently Asked Questions (FAQs)
Frequently Asked Questions (FAQs)
EntitlementsHow can I audit my existing entitlements?
You can create a job to periodically call GetEntitlements for all customer identifiers in your database. AWS
throttles your call volume to 10 TPS.
Should I revoke access on the expiration date indicated in the entitlement document if I don t
receive a notification that the entitlement document has been updated?
No. Your product should wait for an entitlement update or periodically check GetEntitlements to verify that the
allocation should be revoked. Use the expiration field only to notify customers of a possible loss in allocated
resources. Don't use the information in this field to limit functionality. Amazon SNS notifications are delivered with
best effort, so your product should check GetEntitlements before revoking access.
CancellationsHow do I handle cancellations?Customers cancel SaaS subscription products through their AWS account. When a customer cancels a subscription,
you receive a notification, and you have 1 hour to send a final metering record for the customer. 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.
For SaaS contract products, customers can request a cancellation and refund within 48 hours through AWS Support.
When a customer cancels a contract, you receive a notification, and have 1 hour to send a final metering record for
the customer for any additional usage charges.
Customer ExperienceCan a customer downgrade their contract?
No. Customers can only upgrade 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.
Testing Your Integration
What should I test when integrating my product with AWS Marketplace?We recommend you test: new customer registration, existing customer registration, duplicate accounts,
unsubscriptions, metering records successfully sent (SaaS subscription only), and metering records captured by AWS
CloudTrail (SaaS subscription only). Click here for more details about testing.
How do I subscribe to my product while testing?During the onboarding process, we recommend you create a second AWS account ID for testing. During the listing
process, you can whitelist this additional account. Only accounts that are whitelisted can view and subscribe to the
product. You sign in to the test account to view your SaaS product on AWS Marketplace and use it to verify the
metering and billing process on an ongoing basis.
Private OffersHow do I transact with private offers for SaaS-based products?
Before transacting with a private offer, your SaaS product must have a publicly available dimension similar to the
service you intend to include in the private offer. Additionally, the offer must match durations already enabled in
your product. Private offers augment the public offering (pricing, dimension and EULA) but do not change the
technical integration. Click here to read more about getting started with private offers.
16
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Marketplace SaaS Guide / External resources
External Resources
17
Below are resources to help get you started as a SaaS seller. Click each link to open the resource in your browser.
AWS Marketplace Seller Guide
Software-as-a-Service Overview
SaaS Purchase Flow
Testing Your SaaS Product
Reporting
Blog Articles
How to Best Architect Your AWS Marketplace SaaS Subscription Across Multiple AWS Accounts
7 Tips to Successfully Submit Your Product Listing in AWS Marketplace
Going to Market with SaaS Subscriptions and Contracts in AWS Marketplace
Tutorials
Delegate Access Across AWS Accounts Using IAM Roles
Sending Amazon SNS Messages to an Amazon SQS Queue in a Different Account
Creating an Amazon SQS Queue
Subscribing an Amazon SQS Queue to an Amazon SNS Topic
Developers
AWS Marketplace Metering Service API Reference
AWS Marketplace Entitlement Service API Reference
IAM Policy for SaaS Products
AWS SDKs
Private Offers
Seller Private Offers Overview
AWS Marketplace Enhanced Data Sharing Program
top related