#bassem-planity_terminal-tipping-config
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/1354816718458982622
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
Can you explain a bit more about what you're trying to do? What are you expecting to happen and what are you observing actually happening instead?
When sending a payment request to the stripe terminal, we expect the terminal to NOT suggest tips, instead it's suggesting tips.
It was ok a month ago or so. Since then, it is suggesting tips only on our German businesses. We don't have an issue on our French businesses.
Is it the default behavior ? Did you update anything on that matter ? We haven't found any changes in our code for it to change this behavior.
Are you using server driven requests or local reader control via SDK?
We call an aws lambda to init our stripe terminal, create payment intent, etc....
we are using this library: "stripe": "^10.0.0"
in the front end we use '@stripe/terminal-js'; to collectPaymentMethod for example
using the client_secret and paymentIntentId we got from the back end
this is our Front end:
const { id: paymentIntentId, client_secret } = yield call(
invokeLambda,
'stripeTpe',
{
token,
businessId,
// needed for stripe customer creation (if no account yet)
countryCode,
type: 'stripeTpe.createPaymentIntent',
amount,
customer: customer && customer.toJS(),
tpeType
}
);
// collect payment method for the connected reader to wait for a card
const { paymentIntent: collectedPaymentIntent, error: errorCollect } =
yield terminal.collectPaymentMethod(client_secret, {
config_override: {
skip_tipping: skipTips
}
});
So, any idea ?
๐ stepping in as synthrider had to step away
Catching up
Can you provide a PaymentIntent ID where you see tipping taking place?
Why would you need that ?
Im not doing any payment. The terminal is suggesting tips when it should not. It used to work well until a month or so.
this part here is my concern:
https://docs.stripe.com/terminal/features/collecting-tips/on-reader#skip-tipping
but here is one i just did:
pi_3R7HVOE7ePEuIRmR0pITztWK
Can you reproduce this in test mode?
And can you complete a test payment where it shows tipping and provide that PaymentIntent ID?
I need to see where/why it might be getting set.
So that's why I need the object
ok ill try that one moment
Thanks
this is a test one, but i dont have the issue in test mode ๐ฆ
pi_3R7HbGE7ePEuIRmR1qDiqyOg
Hmm that's strange.
on this one tho, i do have an issue, this is not a test mode, production
https://dashboard.stripe.com/events/evt_3R7HVOE7ePEuIRmR0Fv4lDKc
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
Are you positive you are using the same code as prod?
yes
That one you just shared from prod wasn't completed though
So I can't see anything about the client
ok ill complete it then wait
pi_3R7HfkE7ePEuIRmR1H6lkG55
there this is a real payment
Thanks, looking.
While I'm looking, what version of the Terminal JS SDK are you using?
"@stripe/react-stripe-js": "^2.8.0",
"@stripe/stripe-js": "^4.3.0",
"@stripe/terminal-js": "^0.10.1"
Thanks
Still looking for our relevant logs here and the server is busy so helping other folks as well. In the meantime, have you hardcoded your skipTips variable in your prod code and set it to true. Or have you added a log immediately before collectPaymentMethod to log that variable?
Yeah i did both, didn't work, that why i contacted you
Gotcha thanks.
Alrighty well I know you stated that you checked this but our logs do show that you passed skipTipping: false for that example PaymentIntent.
So next step is going to be to do some more debugging on your side, especially since you can't reproduce this in test mode.
ok let me see what i can do
German Business: { paymentIntentId: "pi_3R7II2E7ePEuIRmR1OG9vxvK", skipTips: false } => suggesting tips
French Business: { paymentIntentId: "pi_3R7IKdA69XfgDO9E1VbrCNIQ", skipTips: false }=> NOT suggesting tips
I didnt finish the payment, i have two readers next to each other, one is suggesting, the other is not
both have skipTips as false
this is production of course
and this is the code just in case:
console.log({ paymentIntentId, skipTips }); // collect payment method for the connected reader to wait for a card const { paymentIntent: collectedPaymentIntent, error: errorCollect } = yield terminal.collectPaymentMethod(client_secret, { config_override: { skip_tipping: skipTips } });
Just for 100% certainty can you log the client_secret instead of the PaymentIntent ID?
yes
DE: { paymentIntentId: "pi_3R7IR9E7ePEuIRmR01zXUpFH", skipTips: false, client_secret: "pi_3R7IR9E7ePEuIRmR01zXUpFH_secret_JmyajbkdZR1LoXEsWyhqGq2mD", countryCode: "DE" }
FR: { paymentIntentId: "pi_3R7IRkA69XfgDO9E1lqcCyIt", skipTips: false, client_secret: "pi_3R7IRkA69XfgDO9E1lqcCyIt_secret_Z3C6qGQ1cbfHB5a4OqVv8b2ih", countryCode: "FR" }
Alright I'm asking a colleague if they have any further ideas here. I'm stumped...
Thanks !
We were stumped too here at planity ๐
Hello ๐
Jumping in to help out here
Are the readers registered to different location?
Can you share the location IDs? tml_xxx
the readers ? like the terminal ?
Yes
well i can interchange them, still have the issue
Right but can you share the location IDs? Just want to check if the configuration is overriding the parameters you're passing in or not
the business i'm using now is my test business in production. WE are in france. The issue is from a business in Germany
ok hold on
locationId: "tml_FD6PwE0BJ1IGyw", countryCode: "DE"
locationId: "tml_FVvzAn1DGusYlF", countryCode: "FR"
there
country code is the business country code ๐ช
And it works fine in FR meaning the issue is with tml_FD6PwE0BJ1IGyw
?
Any reader registered to tml_FD6PwE0BJ1IGyw shows tipping screen even when you pass skipTipping ?
Sorry i may have confused your colleague earlier on that point, if i pass skipTipping to true, it doesnt suggest tips anymore to any reader
but, as you can see earlier, i have both skipTipping to false, one is suggesting (DE) and the other is not (FR)
and yes it works fine in FR
And to be clear, you're saying "one is suggesting" - you mean DE reader shows tipping automatically and FR does not (which is expected given your terminal configuration doesn't have any tipping specific config)
YES
My colleague suggested i send you this too:
async function main() {
const configuration = await stripe.terminal.configurations.retrieve(
'tmc_61SGLXq0BYdjGLSG041E7ePEuIRmR8Ce'
);
console.log(configuration);
const location = await stripe.terminal.locations.retrieve(
'tml_FD6PwE0BJ1IGyw'
)
console.log(location);
}
{
id: 'tmc_61SGLXq0BYdjGLSG041E7ePEuIRmR8Ce',
object: 'terminal.configuration',
bbpos_wisepos_e: { splashscreen: 'file_1R6xaSE7ePEuIRmRIie53EZO' },
is_account_default: false,
livemode: true,
name: ''
}
{
id: 'tml_FD6PwE0BJ1IGyw',
object: 'terminal.location',
address: {
city: 'Berlin',
country: 'DE',
line1: 'Hauptstraรe 1',
line2: '',
postal_code: '10827',
state: ''
},
configuration_overrides: 'tmc_61SGLXq0BYdjGLSG041E7ePEuIRmR8Ce',
display_name: 'Planity Berlin',
livemode: true,
metadata: { businessId: '-MxiDG_b7xEivhzHVwhO' }
}
Can you try listing your account's default configuration? https://docs.stripe.com/api/terminal/configuration/list#list_configuration-is_account_default
Does that have tipping options defined? and if so, does that match what you're seeing on the reader?
CONFIG FOR DE STRIPE
{
"object": "list",
"data": [
{
"id": "tmc_61SGbepmqHKfKwdKf41E7ePEuIRmRMu0",
"object": "terminal.configuration",
"bbpos_wisepos_e": {
"splashscreen": "file_1R7DhQE7ePEuIRmRp0suKGSo"
},
"is_account_default": false,
"livemode": true,
"name": "",
"tipping": {
"eur": {
"fixed_amounts": [
100,
200,
500
]
}
}
},
{
"id": "tmc_61SGbVy7nStyCzigZ41E7ePEuIRmRDiC",
"object": "terminal.configuration",
"bbpos_wisepos_e": {
"splashscreen": "file_1R7DYaE7ePEuIRmRzQBZCX2u"
},
"is_account_default": false,
"livemode": true,
"name": "",
"tipping": {
"eur": {
"fixed_amounts": [
100,
200,
500
]
}
}
},
{
"id": "tmc_61SGMvkNys3EuY7pX41E7ePEuIRmRUdU",
"object": "terminal.configuration",
"bbpos_wisepos_e": {
"splashscreen": "file_1R6yyME7ePEuIRmR0Acw8emm"
},
"is_account_default": false,
"livemode": true,
"name": ""
}
],
"has_more": true,
"url": "/v1/terminal/configurations"
}
ok
{
"object": "list",
"data": [
{
"id": "tmc_E3RgngJt1eJ8fJ",
"object": "terminal.configuration",
"is_account_default": true,
"livemode": true,
"name": "DEFAULT",
"tipping": {
"eur": {
"percentages": [
10,
12,
15
]
}
}
}
],
"has_more": false,
"url": "/v1/terminal/configurations"
}
does that match the tipping screen you're seeing on the reader?
yes
the config default for FR is different :
CONFIG FOR FR STRIPE
{
"object": "list",
"data": [
{
"id": "uc_cb7c5501-0680-4c42-b9d9-e55bd17f69fb",
"object": "terminal.configuration",
"is_account_default": true,
"livemode": true,
"name": "DEFAULT"
}
],
"has_more": false,
"url": "/v1/terminal/configurations"
}
this is the reason ?
I see. Looks like for some reason your DE location's configuration is getting overridden by your account's default config.
Try this -
1/ Create a new configuration without tipping stuff
https://docs.stripe.com/api/terminal/configuration/create
2/ Update the DE location's configuration_overrides with the newly created configuration
https://docs.stripe.com/api/terminal/locations/update
3/ Delete & Re-register the reader to DE location
(you can do that via the dashboard)
In the meantime, I'll try to dig into what's going on with configurations here
Thank you so much, i'll try that
Do you have info on when was the default configuration changed, updated, created, recreated or something like that : tmc_E3RgngJt1eJ8fJ
We are confused about this. ๐คฏ
Based on our internal logs - it was created on 2022-11-18 14:56:34 UTC and was recently updated 2025-03-18 11:25:51 UTC
We likely don't keep any other logs so can't share more
NP! are you seeing tipping screen with a new configuration?
We didn't do the steps above yet, we will do them soon or tomorrow
or you did something from your side ?
and also, is there an interface on stripe to change the default configuration ?
I've flagged it internally to our Terminal team just to make sure nothing is broken..
and also, is there an interface on stripe to change the default configuration ?
Hmm I don't believe you can change this via the API but let me see if there's anything on the dashboard
Thank you ๐
NP! Happy to help.. Sorry for the trouble.