Add in-app purchases to your KMP app

Integrate in-app purchases on iOS and Android using Adapty’s KMP SDK. Handle receipts, track subscription status, and remove the need to build a backend. All the power in a single integration.
import com.adapty.kmp.Adapty
import com.adapty.kmp.models.AdaptyConfig
 
val config = AdaptyConfig
    .Builder("PUBLIC_SDK_KEY")
    .build()
 
Adapty.activate(configuration = config)
    .onSuccess {
        Log.d("Adapty", "SDK initialised")
    }
    .onError { error ->
        Log.e("Adapty", "Adapty init error: ${error.message}")
    }

You don’t need to build a backend for KMP in-app purchases

Schedule a demo

Why choose Adapty SDK?

Track subscription status across platforms

You’ll always know if the user has an active subscription across iOS and Android.

Validate receipts on the backend

No need to build your own validation as Adapty takes care of it.

Handle all kinds of subscription states

Free trials, upgrades, promo offers, family sharing, renewals, and more.

Scale on a enterprise-grade core

We ship updates often, keep the SDK stable, and run on >99.99% SLA.
Configuring platforms
Installing Adapty SDK
await adapty.activate(
'PUBLIC_SDK_KEY',
{
customerUserId: 'YOUR_USER_ID',
}
);
Processing purchasing events

Easy integration for KMP

Use 5 SDK methods to handle KMP IAP

import com.adapty.kmp.Adapty
import com.adapty.kmp.models.AdaptyPurchaseResult
 
Adapty.makePurchase(product = product).onSuccess { purchaseResult ->
    when (purchaseResult) {
        is AdaptyPurchaseResult.Success -> {
            val profile = purchaseResult.profile
            if (profile.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive == true) {
                // Grant access to the paid features
            }
        }
        is AdaptyPurchaseResult.UserCanceled -> {
            // Handle the case where the user canceled the purchase
        }
        is AdaptyPurchaseResult.Pending -> {
            // Handle deferred purchases (e.g., the user will pay offline with cash)
        }
    }
}.onError { error ->
    // Handle the error
}
import com.adapty.kmp.Adapty
 
Adapty.restorePurchases().onSuccess { profile ->
    if (profile.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive == true) {
        // successful access restore
    }
}.onError { error ->
    // handle the error
}
 
 
 
 
 
 
 
 
 
 
 
 
import com.adapty.kmp.Adapty
 
Adapty.identify("YOUR_USER_ID") // Unique for each user
    .onSuccess {
        // successful identify
    }
    .onError { error ->
        // handle the error
    }
 
 
 
 
 
 
 
 
 
 
 
 
import com.adapty.kmp.Adapty
import com.adapty.kmp.models.AdaptyProfile
import com.adapty.kmp.models.AdaptyProfileParameters
 
val builder = AdaptyProfileParameters.Builder()
    .withEmail("[email protected]")
    .withPhoneNumber("+18888888888")
    .withFirstName("John")
    .withLastName("Appleseed")
    .withGender(AdaptyProfile.Gender.FEMALE)
    .withBirthday(AdaptyProfile.Date(1970, 1, 3))
  
Adapty.updateProfile(builder.build())
    .onSuccess {
        // profile updated successfully
    }
    .onError { error ->
        // handle the error
    }
    
    
import com.adapty.kmp.models.AdaptyProfileParameters
 
val builder = AdaptyProfileParameters.Builder()
 
// You can set your own custom attributes:
builder.withCustomAttribute("key1", "value1")
 
// To remove existing key, use .withRemovedCustomAttribute() method:
builder.withRemovedCustomAttribute("key2")
 
 
 
 
 
 
 
 
 
 
 
 
Start for free

Adapty powers apps at every stage from indie to top publishers

Cem Ortabas, Co-founder and CEO of HubX
“Migrating off RevenueCat was not an easy decision for us. We’ve chosen Adapty because we believe they are a better partner as we grow. Looking back it was the right call. Despite some hiccups, the Adapty team was always there to help us during the migration and afterward, and their support is top-notch. I recommend Adapty as a reliable partner.”
Cem Ortabas
Co-founder and CEO, HubX
HUBX
Chris Bick, Founder and CEO of Bickster
“We’ve been working with Adapty since 2021 and I couldn’t be happier about it. We’ve tried other subscription management platforms in the past so I can compare. Adapty introduced numerous features over the years and constantly helped us grow. They have the best analytics on the market and all the integrations you can think of. If you looking to boost the revenue of your app, I definitely recommend Adapty.”
Chris Bick
Founder and CEO, Bickster
Bickster
Yalçın Özdemir, Founder & CEO of AppNation
“We chose Adapty for its powerful paywall A/B testing capabilities, which helped us optimize our monetization strategy effectively. The user-friendly platform, flexible pricing, and exceptional customer support make Adapty a superior choice over competitors.”
Yalçın Özdemir
Founder & CEO, AppNation
AppNation
Kyle Smith, Head of data at Smitten Dating
"Adapty's platform makes it easy for non-developers to create and manage A/B tests, paywalls, product mix and pricing structure. They have a great external API that makes it easy to pass related events to other analytics tools like Amplitude and Mixpanel."
Kyle Smith
Head of data at Smitten Dating
Smitten
Roi Mulia, Founder & CEO of SocialKit
“We’ve tested more than three hundred paywalls in the space of four months. Adapty allows testing basically any element of the paywall, and we took advantage of that. We’ve tested them all: products, title text, CTA buttons, images, videos etc. With Adapty’s A/B testing, we managed to double our monthly revenue. I wasn’t sure if one instrument could make such an impact, but I witnessed it myself.”
Roi Mulia
Founder & CEO, SocialKit
SocialKit

Everything you need to grow your app — already in the KMP SDK

Paywall A/B testing

Increase subscription revenue without app releases

Manage, target, localize and personalize paywalls without leaving your browser.
Increase app revenue

Cut refund rate by 40%

Stop losing revenue on refunds – Adapty automatically shares user activity data with Apple for refund requests and reduces it.
Set up Refund Saver
Refund Rate
App Monetization Strategies

Know your subscription numbers at any moment

Measure your in-app economy from trials to refunds with a ready-to-go, real-time subscription BI.
See subscription BI

No-code paywall builder

Build beautiful native paywalls for iOS, Android, React Native, Flutter, FlutterFlow, KMP and Capacitor without a dev team.
Create paywalls within minutes
No Code Paywall Builder

Trusted for usability and customer service

Based on 500+ reviews
G2 Award: Best Results, winter 2025
G2 Award: High Performer, winter 2025
G2 Award: Best Usability, winter 2025
G2 Award: Best Relationship, winter 2025
G2 Award: Most Implementable, winter 2025