question

cdcilley avatar image
cdcilley asked cdcilley commented

Install Merchant-specific on Clover Station

I'm writing a custom Clover Station app for a Merchant. It has a bunch of integration to their database, so it would be 100% useless for any other Merchant.

My development is getting close to moving to "live" testing with them - Sandbox with my test Merchant working fine.

How best to get this app on their devices? I'm guessing I could put it in the Marketplace, however it is written to only work with a specific merchant.
Clover Android SDKApp MarketClover StationDevKit
10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Raymond Lee avatar image
Raymond Lee Deactivated answered cdcilley commented
Hi @cdcilley,

Unfortunately we expect Apps developed for our Clover platform to be general enough to be published on our Clover App Market and able to be installed and used by any Merchant.

This is outlined in our Developer Agreement page found here (can be navigated to from here):

12.2 Clover hereby grants to you a non-exclusive, non-transferable, non-sublicensable and revocable license:

to use the Clover API solely on computers owned or controlled by you; and to use the Clover API solely to integrate your Apps with the Clover 
Platform to enable your Apps to be Published and installed in the 
Territory via the App Market; and

If the app is something that other Merchants can benefit from, it is recommended you generalize the app to be publishable on the Clover App Market.
7 comments
10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Bryanne Vega avatar image Bryanne Vega commented ·

The integration is a based on custom hardware, which hardly 3 out of all Clover's merchant have. This is the reason behind our question.

0 Likes 0 ·
cdcilley avatar image cdcilley commented ·

The customer has their own back-end Invoice/Inventory/Accounting database. My app is basically an order-entry front-end that talks to their back-end via web services (API). The app then hands off the Clover to process the payment.

It is useful to any other Merchant that implements the web service endpoints. If I have a complete write-up of the API and make it clear on the App Market page that the app needs those endpoints, would that suffice?

0 Likes 0 ·
cdcilley avatar image cdcilley commented ·

Raymond, you helpfully answered another question for me, Printed receipt line numbering a few weeks ago. In your answer, you suggested a work-around using the Clover REST API.

I'm curious... Could I create an android app that does not have any Clover SDK integration. Instead, the app would use the REST APIs to create the order (as you laid out in the receipt answer), call Intents.ACTION_CLOVER_PAY and then collect payment information (for saving in the client database).

That's the core of what this client needs. I'd lose being able to determine which employee was signed into the Clover Station, which, if I'm going to use the REST API, is the only piece I'd be using from the SDK : CloverAccount/EmployeeConnector.

In this way I don't have to go through the Clover App Market. Does this make sense as another option?

Oh darn... After writing this I looked closer at the sample code. Still uses the SDK : CloverAuth.AuthResult authResult = CloverAuth.authenticate(activity, cloverAccount);

0 Likes 0 ·
Raymond Lee avatar image Raymond Lee cdcilley commented ·

Unfortunately that will not work, as using the Clover REST API requires you provide an API token in the Authorization header, as specified here. For API token retrieval outside of Clover devices, this is done through the OAuth process, found here. However, in order to retrieve the API token, the Merchant has to have your App installed, as the API token retrieved will be specific to the Merchant's current installation of your App. This is represented by the client_id required in the OAuth process, which identifies your app in the Clover App Market.

On the Clover device, the reason why you were able to make REST API calls from the Clover Android SDK, is that that the API token used in the Authorization header was retrieved directly from the Merchant's Account tied to the Clover device. In order to retrieve this API token from the Clover device, your app would have to be installed on the Clover device. Installation of apps onto Clover devices can only be done through the Clover App Market.

0 Likes 0 ·
Raymond Lee avatar image Raymond Lee cdcilley commented ·

Edit: I just saw your edit, but I will leave my answer up in case there are others with the same question.

0 Likes 0 ·
lilly avatar image lilly commented ·

@Bryanne Vega and @cdcilley - Regardless of what you are trying to do, your app must adhere to our developers guidelines and pass the app approval process.

It will not be acceptable to make a merchant implement custom APIs to use your app based on this. If this is required, your app will need to walk them through this process for them (in terms that any normal merchant could follow) or implement for them. As with any other app, all payment processing must be done through Clover/First Data and any service fees or app fees charged for this app must be billed through Clover App Market. The merchant should be able to download and start using your app with limited "get started" support required.

0 Likes 0 ·
cdcilley avatar image cdcilley commented ·

Ok, seems "no can do". I would still *strongly* recommend Clover figure out how to let customers build merchant-specific apps and not require them to be "vanilla" for everyone, but that's a business decision Clover needs to consider.

@Lilly in a support email made a reference to making a web-only app. I have some questions about doing that, which I'll post in a new question. Hopefully @Lilly or @Raymond Lee will be able to help me there.

0 Likes 0 ·
Raymond Lee avatar image
Raymond Lee Deactivated answered
If the reason you do not want to publish your App is due to custom hardware requirements, then it is recommended to go through the process of publishing your App on our Clover App Market; with a clear indication that the custom hardware is a requirement to use your App. You can have this requirement displayed on your App's App Market page; optionally you can provide a guide / method / purchase link to merchants on obtaining this custom hardware.
10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Welcome to the
Clover Developer Community