question

nmonroehlk avatar image
nmonroehlk asked alyx commented

Integration with non-POS system (server-to-server)

We have a request from a client to create an integration with their Clover account that creates new customers based on a simple web form.

From my experience with integrating with Clover and the REST API so far, I am able to make a connection using the OAuth 2.0 flow and get the auth token that is needed.

In the case of authenticating with Clover in the first step of the OAuth 2.0 process, it is always redirected to a web-based login form that may or may not ask for a merchant choice, depending on if they have multiple merchants defined.

I am also able to create an app in Clover that is used to complete the OAuth 2.0 flow.


My question: Does Clover allow connections via the REST API and OAuth 2.0 that do not require a physical device or login dialog? We do not wish to bypass this step, just looking for a server-to-server solution where there is no user interface, but proper credentials and merchant ID could still be provided to complete the authorization.


I have spent a good amount of this week pouring over the Clover documentation, so am familiar with a lot of what is there. I did see similar requests for this behavior in the Clover Community forum, but not much in the way of a clear explanation if and how this is made possible.

Thank you for any information regarding this workflow.

REST APIsemi-integrationsOAuthAuthaccess token
1 comment
10 |2000

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

alyx avatar image alyx commented ·

how have to implemented server to server solution

0 Likes 0 ·
David Marginian avatar image
David Marginian Deactivated answered David Marginian Deactivated edited

This sounds like the same question you have been asking, perhaps I am misunderstanding? The first step of the OAuth flow is merchant authorization - https://docs.clover.com/docs/using-oauth-20#step-1-request-merchant-authorization. This step MUST be performed by the merchant as they must AUTHORIZE your app access to their data. The merchant MUST login to their dashboard and install your web-app from their dashboard to complete this step. In order for this to work 1) You must have a Clover web-app. 2) The app must go through our approval process and get published into the Clover App Market. Is there something that is not clear about this?

Now, as I have previously stated, if your solution is for a single Clover merchant only, then you can have the merchant generate an API token (with the correct permissions) and provide it to you. You don't need a Clover web-app and you can just pass that token with your API calls. The merchant has already "authorized" you by providing you with their access token.

3 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.

nmonroehlk avatar image nmonroehlk commented ·

As of right now, the client does have only one merchant defined in their system. I was able to generate an API Token from the merchant to use, however, it is stated in the documentation that this is not allowed in a production environment.

I created a new question because I am seeking a solution that does not need to be published in the App Market. This is a private integration for this merchant only and should not be available to the Clover community, in general. The website that this integration will exist on is owned by the merchant.

If we are able to use the API Token generated at the merchant level in a production environment, then I think this issue is solved.

The way I understand your explanation, then, is that there is no other way to handle the user login (i.e. in code, given the proper credentials from the merchant) than having them use the Clover login form at the time of authentication request.

0 Likes 0 ·
David Marginian avatar image David Marginian ♦♦ nmonroehlk commented ·
I created a new question because I am seeking a solution that does not need to be published in the App Market. This is a private integration for this merchant only and should not be available to the Clover community, in general. The website that this integration will exist on is owned by the merchant.

In this case, I think it is acceptable to use a merchant API token. The language you are referring to is meant for app developers that are building apps for use by multiple merchants.

Your other option is what we call a "private" app. Private apps still go through our approval process (which can be very long). Once approved we install the app on the merchant's behalf at your request. The merchant would still need to login to their dashboard and "click" your app to initiate the OAuth flow the first time (then you would obtain the token and store it).

You may want to email appmarketbusiness@clover.com and tell them about your integration (it may take awhile to get a response). I generally answer technical questions and I am not an expert on the app approval process.

0 Likes 0 ·
nmonroehlk avatar image nmonroehlk David Marginian ♦♦ commented ·

Thank you for all for all of your input. This does help clarify some things.

0 Likes 0 ·
jerry4322 avatar image
jerry4322 answered jerry4322 published

Integrating a non-POS system with a POS system can involve a few different steps, depending on the specific requirements of the integration. Generally, the integration process involves setting up an API for the non-POS system to communicate with the POS system, as well as data mapping to ensure that the data from the non-POS system is properly understood by the POS system of Capcut mod apk download. Additionally, the integration may include setting up a middleware layer to process the data from the non-POS system before sending it to the POS system. Depending on the complexity of the integration, additional steps may be necessary, such as configuring authentication and authorization protocols and testing the integration to ensure that it works as expected.

10 |2000

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

miandrew avatar image
miandrew answered miandrew published

Based on my understanding of Clover's documentation and capabilities, it seems that the platform does not directly support server-to-server connections via the REST API and OAuth 2.0 without involving a physical device or login dialog. Clover's API is primarily designed to enable interactions between the Clover devices and the Clover web dashboard, which usually require user authentication and authorization through the login dialog.


However, I understand that your requirement is to have a server-to-server solution without a user interface, and you want to provide proper credentials and merchant ID for authorization. In this case, you might need to explore alternative approaches to achieve your desired workflow.


One potential workaround could be to set up a background process on your server that simulates the authentication flow. This process could handle the OAuth 2.0 authentication using the provided credentials programmatically, without the need for a user interface. Keep in mind that this approach may involve some security considerations and might not be officially supported by Clover.


To get a clear and definitive answer about the feasibility of this workflow and whether it aligns with Clover's terms of service, I recommend reaching out to Clover's technical support or developer community. They would be the best source of information regarding any undocumented or advanced features that could meet your requirements. Additionally, participating in Clover's developer forums or contacting their support team directly may yield more insights from experienced developers who have encountered similar challenges.


Please note that attempting to bypass authentication mechanisms without proper authorization from Clover may violate their terms of service and security policies, so it's crucial to ensure your approach aligns with their guidelines check here.

10 |2000

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

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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