question

Sukhbir Singh avatar image
Sukhbir Singh asked Jeffrey Blattman commented

Call custom tender directly from the app without open ACTION_SECURE_PAY

Hi David Marginian,

Can you please suggest to us that how can we call the custom tender from the clover android app which initialized this custom tender (without using ACTION_SECURE_PAY)?

Actually, we are creating an app that initialized a custom tender to make the payment by using the QR code. Custom tender is showing on the ACTION_SECURE_PAY screen and working as expected. But I don't want to use ACTION_SECURE_PAY between our process. I want that I will click on a button which is in my clover application and on the click of it I want to make the payment by using custom tender. and after the response wants to print the receipt for the same. Will clover allow it?

Please suggest.


Thanks.



Clover Android SDKsemi-integrationsMerchant
10 |2000

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

1 Answer

Jeffrey Blattman avatar image
Jeffrey Blattman answered Jeffrey Blattman commented

Here's an overview of how custom tenders work: you implement an activity that responds to a well-defined intent action. When the merchant clicks your tender in the Payments app (or Sale, or Secure Payments, if it's a customer-facing tender) it calls your activity. What your activity does to process the payment is completely up to it to decide. At the end it returns a result that is "yep, I processed it" or "nope, processing canceled".

Secure Payments isn't really involved, other than being an additional place where merchants can choose your tender (if it's a customer facing tender, as opposed to merchant facing).

If you haven't, please communicate w/ appmarketbusiness@clover.com to discuss your plans. There are some restrictions on what sort of external payment methods we allow.

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

Jeffrey Blattman avatar image Jeffrey Blattman ♦♦ commented ·

Sounds like you want to be the client of your own custom tender. Payments should go through our Payments app (ACTION_CLOVER_PAY). I see your problem though you want the merchant to be forced to use your tender. Maybe if they started your app directly it could just instruct them how to use your tender during normal payment flows.

If that web API exists and is published you can use it. We don't have any samples or documentation for other than what you see There are a lot of gotchas when it comes to creating payments. Specifically taxes. I'm having deja-vu here I've either said the same thing to you or someone else recently. I do not recommend you use that web API.

1 Like 1 ·
Sukhbir Singh avatar image Sukhbir Singh Jeffrey Blattman ♦♦ commented ·

Thanks for your response, Yes, As you say that "If that web API exists and is published you can use it" is really a good approach because as per our analysis currently, Web API is only the solution to set a custom tender payment on an order to generate Clover payment id and record transaction on clover's server. But as you say "I do not recommend you use that web API" then how can we achieve the same thing. Do you have other recommendations?

0 Likes 0 ·
Jeffrey Blattman avatar image Jeffrey Blattman ♦♦ Sukhbir Singh commented ·
Do you have other recommendations?

I do not. Ideally CLOVER_PAY would allow you to force your tender but that's not supported today. I filed an internal issue but I can't comment as to if it will receive any attention.

0 Likes 0 ·
Sukhbir Singh avatar image Sukhbir Singh commented ·

Hi Jeffrey Blattman,

Thanks for the information. During integration, I faced a challenge that if Customer uses ACTION_SECURE_PAY and select my custom tender to make the payment, in my application's implemented activity received the following useful parameters:

Amount, Currency, TaxAmount, List of Taxable Amounts, Service Charge Amount, OrderId, Employee Id, Merchant Id, Tender, Tip Amount, Order, Note

After the successful payment, my application's implemented activity returns a result with the parameters Intents.EXTRA_AMOUNT, Intents.EXTRA_CLIENT_ID, Intents.EXTRA_NOTE.

And after receiving the result, ACTION_SECURE_PAY returns many values including the PAYMENT_ID. Can you please confirm that if customer will not use ACTION_SECURE_PAY and open customer facing activity directly from the application then how can application will generate the PAYMENT_ID and some other values(like application can get in the response if customer will use ACTION_SECURE_PAY)?

0 Likes 0 ·
Jeffrey Blattman avatar image Jeffrey Blattman ♦♦ Sukhbir Singh commented ·

Sorry, I'm lost as to what flow you are trying to implement. You say you had an issue, but I don't see you explain what it was.

Can you clearly explain the flow for your application now, and what you want it to be? E.g., 1. merchant opens payments app 2. merchant selects our tender ... etc.

Please make sure you differentiate between the actors in your flow. You seem to be using "we" above to indicate both the user and your your application.

0 Likes 0 ·
Sukhbir Singh avatar image Sukhbir Singh Jeffrey Blattman ♦♦ commented ·

Hi Jeffrey, I have shared our expected flow as a private reply to you. Do you have anything for the same?

0 Likes 0 ·

Welcome to the
Clover Developer Community