#mikejacobson_unexpected
1 messages · Page 1 of 1 (latest)
đź‘‹ Welcome to your new thread!
⏲️ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
⏱️ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
đź”— This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1331764422791921674
📝 Have more to share? Add more details, code, screenshots, videos, etc. below.
hiya đź‘‹ looking into this now!
unfortunately with the JS driven integration we don't get access to much of the logging here on our end so i might need your help getting visibility into what's happening. are you able to reproduce the issue? if so it would be helpful if you can add logging to show the configuration object that's being passed in when the tip option doesn't show
even better if we can get logs of both the success and failure scenario
Here's an example of the configuration object passed when no tips were shown:
{
"tip_configuration": {
"options": [
{
"amount": 15,
"label": "15"
},
{
"amount": 18,
"label": "18"
},
{
"amount": 20,
"label": "20"
}
],
"hide_custom_amount": false
},
"config_override": {
"skip_tipping": false,
"update_payment_intent": true,
"payment_intent_id": "pi_3QiPOnBb9dNaU75s10QyHb7I",
"tipping": {
"eligible_amount": 8895
}
}
}
do you have an example from a successful run for comparison purposes?
also which version are you on?
We're using SDK v0.13.0. Here's an example config object from a successful run—it's exactly the same except for the payment_intent_id:
{
"tip_configuration": {
"options": [
{
"amount": 10,
"label": "10"
},
{
"amount": 15,
"label": "15"
},
{
"amount": 20,
"label": "20"
}
],
"hide_custom_amount": false
},
"config_override": {
"skip_tipping": false,
"update_payment_intent": true,
"payment_intent_id": "pi_3QkDaUBb9dNaU75s0PnuOeUw",
"tipping": {
"eligible_amount": 8895
}
}
}
can you share what it looks like in the code where you're actually calling collectPaymentMethod? the configuration object doesn't look very familiar to me based on our docs and how i've set this up in the past. are you doing anything to manipulate this configuration object before passing it to collectPaymentMethod? i don't see any references to the tip_configuration for example in the reference docs i'm looking at:
https://docs.stripe.com/terminal/references/api/js-sdk#collect-payment-method
here's an example of what it looks like in my extremely simple integration on my end:
tipping: {
usd: {
'percentages': [15,20,25]
}
}
})```
In the documentation (the link you provided), the only option available on the tipping object is eligible_amount.
The object I posted is exactly what we pass to collectPaymentMethod. This is from the SDK typings file (terminal.d.ts):
request: PaymentIntentClientSecret,
options?: {
tip_configuration?: ITipConfiguration;
config_override?: ICollectConfig;
}
): Promise<
| ErrorResponse
| {
paymentIntent: ISdkManagedPaymentIntent;
}
>;
I suspect it has something to do with the communication between Stripe and the terminal. I actually experienced it with my terminal some time ago (maybe a year ago) where the tips would not show. But then I uninstalled the terminal from our system and then reinstalled it, and the tips started showing. I made no changes to the tip config object.
And we've had merchants experience something similar, where the tips just suddenly start showing, with no changes on our end.
hmmmm, that definitely could be the case. do you mind testing a few scenarios real quick though? i'm noticing the only major difference between the two cases you shared is that the amount is higher than the eligible_amount in the first case. any chance you can run some quick tests to see if that's consistent on your end? e.g. if you re-run another test with a PaymentIntent amount: 9295 do you see the same thing? what happens if you change the eligible_amount to 9295?
I ran it with a total ticket amount of 9295 and a tip-eligible amount of 8895, and it worked—it prompted for tip. Here's the config object:
{
"tip_configuration": {
"options": [
{
"amount": 10,
"label": "10"
},
{
"amount": 15,
"label": "15"
},
{
"amount": 20,
"label": "20"
}
],
"hide_custom_amount": false
},
"config_override": {
"skip_tipping": false,
"update_payment_intent": true,
"payment_intent_id": "pi_3QkE94Bb9dNaU75s1pATXEvo",
"tipping": {
"eligible_amount": 8895
}
}
}
I changed the eligible amount to 9295 and it worked again. Here's that one:
{
"tip_configuration": {
"options": [
{
"amount": 10,
"label": "10"
},
{
"amount": 15,
"label": "15"
},
{
"amount": 20,
"label": "20"
}
],
"hide_custom_amount": false
},
"config_override": {
"skip_tipping": false,
"update_payment_intent": true,
"payment_intent_id": "pi_3QkECpBb9dNaU75s0PVa341F",
"tipping": {
"eligible_amount": 9295
}
}
}
awesome, appreciate you giving that a go for me
when you're able to reproduce it on your end is it happening more with a specific reader? do you have a serial number you can share? again would be good to have a good case and a bad case
I'm not able to repro with my terminal. It's just some of our merchants who are having the issue.
Here are some serial numbers that are having the issue:
WSC513221039371
WSC513221041686
WSC513221039694
WSC513208041779
WSC513208041780
Here's mine, which is working fine:
WSC513151020814
And it's not necessarily a specific reader, it seems more like a specific merchant. For example, one merchant has 7 locations, each with its own terminal, and all 7 are not showing tips.
Another merchant has 1 location with 2 terminals, and both terminals do not show tips.
can you try updating the tipping percentage you're passing in real quick? i'm wondering if maybe something is getting confused between what you're passing from your JS integration to the terminal and the tipping configuration you've saved to the readers / accounts
e.g. what happens if you change it to
...
{
"amount": 1,
"label": "1"
},
{
"amount": 2,
"label": "2"
},
{
"amount": 3,
"label": "3"
}
],
...
The reader still showed 10%, 15%, and 20% options.
{
"tip_configuration": {
"options": [
{
"amount": 1,
"label": "1"
},
{
"amount": 2,
"label": "2"
},
{
"amount": 3,
"label": "3"
}
],
"hide_custom_amount": false
},
"config_override": {
"skip_tipping": false,
"update_payment_intent": true,
"payment_intent_id": "pi_3QkEgqBb9dNaU75s0n7MaSg6",
"tipping": {
"eligible_amount": 8895
}
}
}
ok, so that makes me suspect that the config you're passing in is maybe just getting ignored entirely and we're using the configs saved to the respective merchant accounts
which would be... annoying
Ha! Yes, I have heard that, though—that it uses the config defined in Stripe's system.
I can't find that config, though. For example, how do I see the tip config for this reader:
https://dashboard.stripe.com/terminal/readers/tmr_F4c1tg59VAauoF
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
đź‘‹ catching up here. To summarize, this happens on some specific Connected Accounts, and the issue is either not showing the tip, or the tip is showed incorrectly?
For some specific accounts, tip options are just not showing—the reader goes directly to prompting for payment.
Can you share some example accounts? Which countries are they?
And could you give example of the account which is working?
Here's one I assume is working, as they are not complaining:
https://dashboard.stripe.com/connect/accounts/acct_1QDV9OPdrKDPjL45/activity
https://dashboard.stripe.com/terminal/locations/tml_Fz8SxA6k4XmuNV
I noticed that the one NOT working has fixed tip amounts rather than percentages. I wonder if that might be an issue?
Um you mentioned
Here's an example config object from a successful run—it's exactly the same except for the payment_intent_id
so I thought not working and working terminals are only different on Stripe Account?
Right, I confirmed that our system was calling the terminal correctly, so the issue appears to be something with the Stripe accounts.
One of the failing ones I mentioned earlier has serial number WSC513221041686:
https://dashboard.stripe.com/terminal/locations/tml_F4N9Iwz7QESXfv
It looks to me like that location ("Studio 2", in Canada) does not have a tip config defined. Can you confirm that?
I was told by my folks that all locations had tip configs, so maybe I'm not looking in the right place?
It looks to me like that location ("Studio 2", in Canada) does not have a tip config defined. Can you confirm that?
Which Id (tml_xxx) is this?
tml_F4N9Iwz7QESXfv
Yes this seems doesn't have a config
tml_F35JNgkTPdVdJn has the config on fixed amount, though
Umm sorry, this looks complicated than we thought. Could you write in and mention this Discord thread, with a summarize of
- List of Location and Accounts which are not working
- List of Location and Accounts which are working
- Your code when you can reproduce it, and a video capture the screen.
We would need some more time to investigate, and will continue there