---
page_source: https://juspay.io/in/docs/ec-headless/cordova/resources/faqs
page_title: FAQs
---


# FAQs




### **PreFetch** 



**Does pre-fetch increases the app load time?** No pre-fetch is an asynchronous call so it has no impact on app load time.

**What is the latency?** Latency for prefetch is dependent on assets being updated but usually we use s3 asset files with hash comparison which keeps latency dependent on responses from aws.


### **Proguard Rules** 



**What Proguard rules should be added in my proguard file?** Add the below line to your Proguard file: `-keep class in.juspay.** {*;}`


### **SDK Permissions** 



**What are the SDK permissions required for Hyper SDK 2.0?** Hyper SDK (Android) requires some permissions for seamless function of some of its features (for enhancing payment conversion rates).


| PERMISSION | REASON |
|---|---|
| READ_PHONE_STATE | For UPI user onboarding and registration functionality, we use this to check if the phone has Dual SIM.  The READ_PHONE_STATE permission is used for both the above categories. We use it for analytics to get the DEVICE_ID and MAC_ADDRESS (such information will be hashed and logged for data security reasons) parameters of the phone for uniquely fingerprint the customers as that will help with analytics. |
| ACCESS_NETWORK_STATE | This allows the use of ConnectivityManager API. We use this API to detect whenever network change happens, and to see when a user is connected to a data connection. |
| INTERNET | This permission is mandatory to do any API call (for analytics logging, transaction APIs etc.,) |


**How to selectively restrict Hyper SDK from using specific permissions, while continuing to use them in other parts of the application?** You can add a payload parameter named disallowedPermissions to the initiate call with an array of permissions you wish Hyper SDK to not use.

**NOTE:** This feature is available only on the latest version of Hyper SDK.


### **SMS Permissions** 



**Does HyperSDK request for SMS permission?** HyperSDK no longer requests for SMS permission. It has been completely removed from the SDK.

**How can I add SMS permissions in my application?** You may add SMS permissions in your application by adding below code snippet to your app’s manifest file.

* `uses-permission android:name="android.permission.RECEIVE_SMS"`
* `uses-permission android:name="android.permission.READ_SMS"`

**Why cannot Hyper SDK use SMS retriever API to auto-read OTP?** 

* The [SMS Retriever API](https://developers.google.com/identity/sms-retriever/overview) can be used if the OTP is being sent and read by the same entity.
* In the case of Financial transactions, the SMS is triggered and read by different entities ( OTP is triggered by the bank, however read by Juspay SDK / merchant app) and hence retriever cannot be used.

**How to apply on Google Play console to grant SMS permission for my application?** Please follow the below steps.

![Image](https://dth95m2xtyv8v.cloudfront.net/tesseract/assets/ec-headless/1.png)
*Step 1*



![Image](https://dth95m2xtyv8v.cloudfront.net/tesseract/assets/ec-headless/2.png)
*Step 2*




### **Minimum SDK Fix** 



**What is the minimum SDK API level required for HyperSDK 2.0?** Hyper SDK is compatible with Android version "19" or higher. Hence, your Android app must have a minimum SDK version 19 or higher.

**How can I override the minimum SDK version?** If you want to support devices below API level 19, you must override minSDK version, by adding the below code snippet in your Android Manifest file.

* `<uses-sdk android:targetSdkVersion="<MerchantsVersion>" android:minSdkVersion="<MerchantsVersion>" tools:overrideLibrary="in.juspay">`


### **CloudFront URLs** 



**What are the CloudFront URLs?** Cloudfront URLs are the CDN resource management system and are used to download assets.

**Why are the CloudFront URLs public?** URLs are public since these assets are common and contain non-sensitive information. Think of them similar to an image URL exposed to the internet.

**Do you validate public data?** All config files are signed and the same is validated before consuming any file received from CloudFront URLs. Any change in the file structure will lead to a signature mismatch and subsequent rejection of the bundle (v1-config.zip).


### **Strict Mode** 



**What is strict mode and how does Juspay SDK handle strict mode violations?** 

* Strict mode is a high-bar quality check enabled only during the development cycle of android apps which detects things you might be doing wrong accidentally and brings them to your notice
* Google developer docs says _"But don't feel compelled to fix everything that StrictMode finds"_ . Even many widely used Android Libraries also have multiple strict mode violations which are not fixed
* In line with Google's best practices, we haven't fixed every Strict Mode violation. However, we ensure that this has no impact on performance of Juspay SDK

