Platform Docs

Uploading & Testing APKs

Upload your first APK

Before you can test your app, you must upload an APK to install on your test device.

  1. First, expand the App Type > Android app for Clover devices heading on the Edit App page. The first APK you upload will set the package name for your app. This is the same as the package attribute in your AndroidManifest.xml.


Once you upload an APK, the package name for your app cannot be changed. Check the package attribute in your manifest file carefully before uploading your first APK.

  1. Next, click the Manage APKs button.


Using Android Studio's APK analyzer (or a similar tool), make sure your APK meets the following requirements before attempting to upload it:

  • The package name does not begin with com.clover. (this indicates an app owned by Clover).
  • The android:minSdkVersion attribute in your AndroidManifest.xml has a value of 17 or less.
  • The android:targetSdkVersion attribute in your AndroidManifest.xml has a value of 25 or less.
  • The android:versionCode attribute in your AndroidManifest.xml is greater than the version code of any APK you've already uploaded.
  • The APK is signed with the same key you used to sign the first APK you uploaded.
  • The APK is signed in release mode.
  • The APK is signed with only the V1 signature scheme (Jar Signature). The V2 signature scheme is not supported.
  • The signature file is saved as META-INF/CERT.RSA.
  • The size of the APK file does not exceed 50 MB.

Keep your keystore and private key in a safe and secure place, and make sure to back them up. If you create an Android app on Clover and then lose the key you used to sign its initial APK, you will not be able to upload any new versions of your app, since you must always sign all versions of your app with the same key.


If you are using the Generate Signed APK Wizard in Android Studio to sign your app, the signature file will automatically be saved as META-INF/CERT.RSA. If you are signing your app manually, make sure to use cert as the value for the -alias argument to the keytool command when generating your private key. The alias_name argument to the jarsigner command must use the same value.

  1. Select Choose File, then locate the APK you wish to upload. Finally, click the Upload New APK button to upload the APK as a version of your app.

You can install/reinstall your app on your test device once your APK is uploaded, and all of the app's permissions will be set. You may sideload over your app from this point on, and the permissions will remain intact. Note that any app with an uploaded APK must have the APK approved by Clover before it can be published.

Edit app settings & pricing options

From the Edit App page, you will also be able to upload an icon for your app, set the permissions related to merchant data and/or services, declare your privacy policy, and more. Declare the permissions you need here; this will set the Clover APIs your app is authorized to use.

An app requires at least one pricing option before merchants will be able to install and launch the app (including your own test merchants). From the Developer Dashboard, click on the Edit Pricing link to launch and complete this step.

Sideload your APK

Use adb install to sideload your APK onto your development device. You can now use any of the Clover Services, or use the access token from the Account Authenticator to make Web API requests.

Test the debug version of your app

When you've finished developing your app, click on the Clover App Market Preview link to test how it appears in the Clover App Market.


The only merchant accounts that will be able to see your unpublished app in the Clover App Market are the ones that were created under your developer account.

Select your app, then click Install App. Note that any permissions you have set are shown here for the merchant to accept, as well as any subscription levels. Your app will now be able to access this merchant's data, as well as receive their subscription information.

Uploading & Testing APKs

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.