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
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.
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?
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);
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.
Edit: I just saw your edit, but I will leave my answer up in case there are others with the same question.
@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.
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.
2 People are following this question.