Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp
Overview
Versioning
Changelog
Upgrade your API version
Upgrade your SDK version
Essentials
SDKs
    Overview
    Server-side SDKs
    Web
    ES Module Stripe.js
    React Stripe.js
    Stripe.js testing assistant
    Mobile
    iOS SDK
    Android SDK
    React Native SDK
    Migrate to iOS SDK 25
    Migrate to Android SDK 22
    Terminal
    iOS SDK
    Android SDK
    React Native SDK
    Community
    Community SDKs
API
Testing
Stripe CLI
Sample projects
Tools
Stripe Dashboard
Workbench
Developers Dashboard
Stripe Shell
Stripe for Visual Studio Code
Features
Workflows
Event Destinations
Stripe health alertsFile uploads
AI solutions
Agent toolkit
Model Context ProtocolBuild agentic AI SaaS Billing workflows
Security and privacy
Security
Stripebot web crawler
Privacy
Extend Stripe
Build Stripe apps
Use apps from Stripe
Partners
Partner ecosystem
Partner certification
United States
English (United Kingdom)
HomeDeveloper resourcesSDKs

Migrate to Stripe Android SDK 22

Migrate your Kotlin apps to our latest Android SDK major version.

This migration guide helps you update your iOS app to use the latest Stripe SDK.

Requirements

  • Android 5.0 (API level 21) and above

v22

Migration instructions can be found here.

v21

PaymentSheet

PaymentSheet displays payment methods in either a vertical or horizontal layout. Prior to this major version, PaymentSheet defaulted to a horizontal layout. Now, Stripe optimises the layout automatically. To set a specific layout instead, set the PaymentSheet.Configuration.paymentMethodLayout property to either .horizontal or .vertical.

This example code sets the layout back to horizontal, the previous default.

Kotlin
Java
No results
PaymentSheet.Configuration.Builder("Example, Inc.") .paymentMethodLayout(PaymentSheet.PaymentMethodLayout.Horizontal) .build() )

Basic integration

We no longer support our legacy Basic Integration for collecting credit card and wallet payments.

If your app relies on any of the following APIs, it uses the Basic Integration. Migrate to the Mobile Payment Element, by following this migration guide.

  • CustomerSession
  • PaymentSession
  • PaymentMethodsActivity
  • AddPaymentMethodActivity
  • PaymentFlowActivity

v20

The following list of classes’ package names are changed from com.stripe.android to com.stripe.android.core:

  • AppInfo
  • StripeFile
  • StripeFileParams
  • StripeFilePurpose
  • AuthenticationException
  • PermissionException
  • RateLimitException
Before
After
import com.stripe.android.AppInfo import com.stripe.android.StripeFile import com.stripe.android.StripeFileParams import com.stripe.android.StripeFilePurpose import com.stripe.android.AuthenticationException import com.stripe.android.PermissionException import com.stripe.android.RateLimitException
import com.stripe.android.core.AppInfo import com.stripe.android.core.StripeFile import com.stripe.android.core.StripeFileParams import com.stripe.android.core.StripeFilePurpose import com.stripe.android.core.AuthenticationException import com.stripe.android.core.PermissionException import com.stripe.android.core.RateLimitException

v19

The following list of classes’ package names are changed from com.stripe.android to com.stripe.android.core:

  • StripeModel
  • StripeError
  • StripeException
  • APIException
  • APIConnectionException
  • InvalidRequestException
Before
After
import com.stripe.android.StripeModel import com.stripe.android.StripeError import com.stripe.android.StripeException import com.stripe.android.ApiException import com.stripe.android.APIConnectionException import com.stripe.android.InvalidRequestException
import com.stripe.android.core.StripeModel import com.stripe.android.core.StripeError import com.stripe.android.core.StripeException import com.stripe.android.core.ApiException import com.stripe.android.core.APIConnectionException import com.stripe.android.core.InvalidRequestException
Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc