# Troubleshooting & FAQ (/limited-release/paypal-mobile-checkout/troubleshoot-faq)



#### General

### What is PayPal Mobile Checkout SDK? [#what-is-paypal-mobile-checkout-sdk]

PayPal Mobile Checkout SDK is a framework that allows you to provide a native PayPal checkout experience from within your mobile app. Your users will be able to purchase items, select shipping options, payment methods, perform one time payments and set up recurring payments, among other features. The SDK requires just a few lines of code in your app to start working.

### What functionalities does the SDK support? [#what-functionalities-does-the-sdk-support]

The SDK currently provides native support for the following functionalities:

* One Time Payment
* Recurring Payments
* Adding Billing and Shipping Addresses
* Adding Payment Methods (e.g. Bank Accounts, Credit Cards, Cryptocurrency)

### What countries does the SDK support? [#what-countries-does-the-sdk-support]

The SDK will provide a native experience as long as the merchant and the user are both located in the US, Canada, Europe, and the UK. For users in other countries, their checkout flow will fallback to a web experience.

### What PayPal APIs does the SDK work with? [#what-paypal-apis-does-the-sdk-work-with]

The SDK works with the following PayPal APIs:

* One time payment:
  * [Orders v2](/api/orders/v2) - recommended
  * [Payments v1](/api/deprecated/payments/v1) - deprecated
  * [NVP/SOAP](/api/nvp-soap/) - legacy
* Recurring payments:
  * [Billing Agreements v1](/api/deprecated/payments/v1)
  * [Vault v2](/limited-release/vault-payment-methods/) - not currently supported natively, it will fallback to web

### What UI elements can be customized in the native checkout appearance? [#what-ui-elements-can-be-customized-in-the-native-checkout-appearance]

You can tweak the payment buttons' appearance (label, color, edges, and size). For more information, check out our docs on [Customizing Payment Button Container](/limited-release/paypal-mobile-checkout/launch-sdk/).

### Why do some of my users see a web experience instead of a native one? [#why-do-some-of-my-users-see-a-web-experience-instead-of-a-native-one]

If a user is ineligible for the native checkout experience for any reason, they will fallback to a web experience by default. Some of the reasons why a user might be ineligible are:

* Merchant's or buyer's country is not supported.
* The checkout experience uses certain features that are not currently supported natively.
* The user doesn't have any financial instruments.
* The merchant and buyer for a transaction are both using the same account or email. This can occur while building or testing the integration. This results in a `CANNOT_PAY_SELF` error that will be reported in the logs.

If possible, search the application's logs for the tag `nxoInstrumentationFallback`. The log with that tag may provide a reason and error message.

### Who can I reach out to for other questions? [#who-can-i-reach-out-to-for-other-questions]

If you have more questions, please reach us at [PayPal Support](https://www.paypal-support.com/).

#### iOS

### What iOS versions is the SDK compatible with? [#what-ios-versions-is-the-sdk-compatible-with]

The SDK works with iOS 13.0 or newer.

### How can I integrate the SDK in my app? [#how-can-i-integrate-the-sdk-in-my-app]

Integrating the SDK can be done through any of the three most popular iOS dependency managers: Cocoapods, Carthage and Swift Package Manager. You can also download the `.xcframework`directly from our [public github](https://github.com/paypal/paypalcheckout-ios/releases).

### What programming languages does the SDK work with? [#what-programming-languages-does-the-sdk-work-with]

The iOS SDK works with both Swift and Objective-C.

#### Android

### What Android versions does the SDK compatible with? [#what-android-versions-does-the-sdk-compatible-with]

The SDK will compile for apps that have a SDK version of Android 5.0 (API level 21). However, to launch the PayPal checkout flow, you must programmatically check if the user's device is Android 6.0 (API level 23) or higher.

### How can I integrate the SDK in my app? [#how-can-i-integrate-the-sdk-in-my-app-1]

Our [public GitHub](https://github.com/paypal/android-checkout-sdk/) provides examples and sample code.

### What programming languages does the SDK work with? [#what-programming-languages-does-the-sdk-work-with-1]

The Android SDK works with both Kotlin and Java.
