Adding tip after payment

198 views
Skip to first unread message

Paul Dailly

unread,
Jul 19, 2021, 9:42:48 AM7/19/21
to Stripe API Discussion
Hi there,

I have the following use case and I'm not sure how best to achieve it using the Stripe Payment Intents API. I need to allow a customer to pay for a service (either online or in person using Stripe terminal), and then some time later, ask if they wish to leave a tip for the service that they just received. If they choose to leave a tip, ideally we would only create one charge for both their service and tip amounts. This use case would be very similar to the Uber payment flow, where you pay for your ride when being dropped off, but some time later are asked if you'd like to add a tip.

There are a couple of options I can see for how to achieve this:

Option 1: As we have the customer's payment method(s) stored and setup for off-session usage, we could just wait and confirm the payment intent once the tip amount is known. The downside to this is that if they don't have the funds available for the service, we won't know that until it's too late.

Option 2: We pre-authorise for the amount of the service prior to them receiving the service. Then, if they do decide to add a tip later, we create 2nd pre-auth for the new amount (service + tip) and cancel the first authorised intent. The downside to this is we have to create 2 intents, even if one is cancelled. Not sure how this would appear on customer statement and if it would look like we were trying to charge them twice?

Option 3: We just process the payment for the service and the payment for the tip as 2 separate intents. The downside to this is that the tip amount will be small relative to the service amount, and we'll get hit with the flat fee portion of the Stripe fee on both payments. This will impact how much of the tip we can pass on to the service provider. It will also cause 2 entries to appear on their bank statement.

If anyone has experience tackling this scenario, your advice would be very much appreciated.

Thanks,

Paul


Remi J.

unread,
Jul 19, 2021, 10:20:34 AM7/19/21
to Stripe API Discussion
Hello Paul,

We're currently working on shipping support for tipping on transactions made via Terminal which would directly solve your current needs. It's in private beta right now so we don't have a firm timeline for shipping this publicly just yet but we're planning for it. 

In the meantime, the options you outlined are the ones we usually recommend today! My preferred approach is Option #3 currently as it allows you to have the original authorization as a card_present transaction (with its own lower pricing and liability shift) without risking a double authorization on the card or potentially losing the funds.

I hope this helps!
Remi



--
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss...@lists.stripe.com.

Paul Dailly

unread,
Jul 19, 2021, 1:55:56 PM7/19/21
to Stripe API Discussion, re...@stripe.com
Hi Remi,

Thanks for taking the time to respond and for the advice - much appreciated!

Reply all
Reply to author
Forward
0 new messages