Developer Console

In-App Purchasing Overview

In-App Purchasing (IAP) allows your app to present, process, and fulfill purchases of digital content and subscriptions within your Android app. The Amazon Appstore offers two solutions for in-app purchasing, the Appstore SDK and the Appstore Billing Compatibility SDK. To see a comparison between the Appstore SDK and the Appstore Billing Compatibility SDK, see Comparison of Amazon's IAP solutions.

To use IAP in Web Apps, use the older IAP v2.0. For details, see IAP API for Web Apps.

What is In-App Purchasing (IAP)?

With In-App Purchasing (IAP), your app's users can purchase various types of digital items within your app, such as extra lives for a game or a subscription to premium content.

The following scenarios describe potential use cases for IAP:

  • Create a "freemium" model for your app where the app itself is free, but you charge a premium for advanced services or functionality.
  • Allow your customers to purchase items to enhance their gaming experience, such as currency, extra moves, or lives.
  • Unlock bonus levels or mini-games by allowing customers to purchase access to this content.
  • Enable customers to subscribe to content available within your app.

The IAP API handles details about purchase flow, payment processing, providing a receipt to your app, and managing rights to the purchasable content, so that you do not have to code these things yourself.

Amazon's role in IAP

The Amazon Appstore plays an integral part of the IAP API workflow. Amazon runs the purchase workflow, starting when the customer decides to purchase an item and ending when Amazon provides the app either a receipt for the purchase or a status code, in the case of a failed purchase. You do not need to provide purchase dialogs, transaction timeout logic, or "Thank You" dialogs. The Amazon Appstore provides all of these pieces of a transaction.

Once a user initiates a purchase, the Amazon Appstore client app surfaces and presents an Amazon-branded user interface to complete the transaction. This app presents the user interface for all aspects of the purchase workflow:

  • Logic to display the purchasable item.
  • Perform the purchase.
  • Handle any preconditions or error scenarios.

If a purchase is unsuccessful, the Amazon Appstore presents the relevant messaging to the customer; your app should not message the customer. For example, if the customer does not have a valid credit card on file, the Amazon Appstore redirects the customer to a page where they can update their payment information. Do not provide a confirmation or other interstitial dialog to the customer regarding the purchase flow.

The following table summarizes the separation of responsibility between your app and the Amazon Appstore when implementing IAP:

Responsibility
Your App
Amazon
Presents the catalog of in-app items to the customer for purchase.
Unlocks purchasable functionality.
Manages the purchase flow.
Performs payment processing.
Handles secure communication with the Amazon platform, including payment security.
Verifies entitlements and validates purchase receipts.
Manages billing for auto-renewing subscriptions.
Manages billing for revoking of entitlements.
Verifies receipts for subscriptions and entitlements before providing content to user.
Downloads remotely delivered content.
Displays and uses downloaded digital goods.
Tracks customer purchases and consumable inventory.

IAP solutions

For IAP, the Amazon Appstore offers two solutions, the Appstore SDK and the Appstore Billing Compatibility SDK. To see a comparison between the Appstore SDK and the Appstore Billing Compatibility SDK, see Comparison of Amazon's IAP solutions.

IAP components

If you are new to working with IAP, familiarize yourself with the following components, which are all involved in implementing this feature:

Name Description
IAP API Your app uses the IAP API to implement and fulfill in-app purchases.

Documentation for available solutions:
IAP API reference Lists and descriptions of IAP APIs.

Documentation for available solutions:
Amazon Appstore Handles payment processing, alerts, fulfillment, and other back-end functionality.
App Tester Test your app locally before publishing to the Amazon Appstore.
Not supported in Appstore Billing Compatibility SDK
Receipt Verification Service (RVS) Verify the validity of transaction receipts. RVS supports a sandbox environment and a production environment.
Live App Testing Beta test your app with a select group of users in a production environment.

SKUs

A SKU (technically a stock-keeping unit) is a unique identifier for each distinct purchasable item. It is unique to you (specifically your developer account registered on the developer portal), and is a (up to) 150-character length string of arbitrary structure that can contain the characters a-z, A-Z, 0-9, underscores, periods, and dashes, and is case-sensitive. Purchasable items and SKUs have a 1:1 mapping. Your app will pass the SKU value to the client. The SKU is how the client knows what the customer is trying to purchase, and will manage the purchase flow accordingly.

You need to ensure that every purchasable item you define has a unique SKU. The SKUs are unique across your developer account. When you submit SKUs for multiple apps you need to ensure that there is no overlap.

Before a SKU can be used, it must be configured in the Developer Console. For information on how to configure SKUs, see In-App Purchasing FAQ.

For information about types of purchases, see Types of Purchases.

App submission process

You need to create and submit the in-app items for your IAP-integrated app before you submit the app to the Appstore. The Amazon Appstore will not test your app until both the app and your in-app items are submitted.

Use the Developer Console to create and manage the app's catalog of purchasable items. See Submit Single In-App Items.

You can also create or modify multiple in-app items at the same time. See CSV Files for IAP Batch Submission.

If you decide to add or edit your purchasable items after submitting your app, you will need to re-submit both the new/changed items and the app itself to the Amazon Appstore.


Last updated: May 22, 2024