A comprehensive Kotlin Multiplatform library for in-app purchases on Android and iOS platforms that conforms to the Open IAP specification
Visit the documentation site for installation guides, API reference, and examples:
kmp-iap provides AI-friendly documentation for Cursor, GitHub Copilot, Claude, and ChatGPT.
Quick links:
- llms.txt - Quick reference (~300 lines)
- llms-full.txt - Full API reference (~1000 lines)
dependencies {
implementation("io.github.hyochan:kmp-iap:1.3.0")
}import io.github.hyochan.kmpiap.kmpIapInstance
import io.github.hyochan.kmpiap.*
// Use the global singleton instance
kmpIapInstance.initConnection()
// Get products - DSL API in v1.0.0-rc.2
val products = kmpIapInstance.fetchProducts {
skus = listOf("product_id")
type = ProductQueryType.InApp
}
// Request purchase - DSL API with platform-specific options
val purchase = kmpIapInstance.requestPurchase {
ios {
sku = "product_id"
quantity = 1
}
android {
skus = listOf("product_id")
}
}
// Or just for one platform
val iosPurchase = kmpIapInstance.requestPurchase {
ios {
sku = "product_id"
}
}
// Finish transaction (after server-side validation)
kmpIapInstance.finishTransaction(
purchase = purchase.toPurchaseInput(),
isConsumable = true // true for consumables, false for subscriptions
)import io.github.hyochan.kmpiap.KmpIAP
import io.github.hyochan.kmpiap.*
// Create your own instance
val kmpIAP = KmpIAP()
// Initialize connection
kmpIAP.initConnection()
// Get products - DSL API in v1.0.0-rc.2
val products = kmpIAP.fetchProducts {
skus = listOf("product_id")
type = ProductQueryType.InApp
}
// Request purchase - DSL API with platform-specific options
val purchase = kmpIAP.requestPurchase {
ios {
sku = "product_id"
quantity = 1
}
android {
skus = listOf("product_id")
}
}
// Or just for one platform
val androidPurchase = kmpIAP.requestPurchase {
android {
skus = listOf("product_id")
}
}
// Finish transaction (after server-side validation)
kmpIAP.finishTransaction(
purchase = purchase.toPurchaseInput(),
isConsumable = true // true for consumables, false for subscriptions
)MIT License - see LICENSE file for details.