#dev-travis_error
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/1431274106711703617
📝 Have more to share? Add more details, code, screenshots, videos, etc. below.
Hi there! Just to clarify, are you saying that you don't know which specific failed with that error? Can you share your account ID so I can investigate?
there’s no related record or event visible in the Stripe Dashboard for that specific time — meaning the request doesn’t seem to reach or get logged by Stripe.
We’d like to understand what exactly causes this error and under which conditions it occurs.
Got it. Can you share your device serial number? I may be able to access the logs that way
The serial number is on the device, we have this guide to find the serial number for various devices
https://support.stripe.com/questions/find-the-serial-number-for-a-stripe-terminal-card-reader-device
It looks like your device isn't on this list, but it should be somewhere on the device in a similar fashion
Find help and support for Stripe. Our support site provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
We’re using a supported device, as listed in the Stripe documentation.
Yes, it should be supported. Can you find the serial number on the physical device?
any updates?
Sorry, I tried pulling up logs for that serial number but nothing came up on my side. Looking for other ways to investigate
Hello
With Tap to Pay Readers, the Serial number works a bit differently.
The serial number of the Tap to Pay device would be shown if you log out Terminal.connectedReader() or some similar function
Ah that's not a function for React Native SDK, my bad
For RN, you'd include connectedReader from useStripeTerminal hoook
Hello @meager kelp , I hope you doing well
the main question is not how to get serial number
the main question is :
In some cases, we receive the following error:
PAYMENT_ERROR.DECLINED_BY_STRIPE_API
However, when this happens, there’s no corresponding record or event in the Stripe Dashboard for that specific time — it seems the request never reaches Stripe’s servers.
We need to look at logs on our end to figure out what's going on and for that serial number is essential since the logs are tied to that
do you have a PaymentIntent ID where you saw this error?
the problem is no PaymentIntent ID create for this trasnactions
as I check with our backend Team
We’ve double-checked and confirmed that we’re on the correct Stripe account.
I mean that's not possible really. You can't really accept a payment using Tap to Pay flow without a PaymentIntent so there's likely some mix up
After reviewing the documentation, I suspect the issue might be related to connection tokens.
As far as I understand, the SDK is supposed to manage the connection token’s lifecycle automatically, but maybe in some edge cases the token expires or isn’t refreshed properly before initiating a payment.
Could be but so far we have no evidence to support that theory. Like we need concrete examples along with logs to be on the same page first.
const res = await axios.post(
__DEV__ ? CONNECTION_TOKEN_TEST_API : CONNECTION_TOKEN_API,
{},
{
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`,
},
},
);
return res.data.secret;
}, [token]);
<>
{isAuthorized ? (
<StripeTerminalProvider
logLevel="verbose"
tokenProvider={fetchTokenProvider}>
<Navigation />
</StripeTerminalProvider>
) : (
<AuthStack />
)}
</>
);
It's work fine when app run but may this token expire after long time app running?
{
reader,
locationId: businessesData?.[0].terminalLocationId ?? '',
autoReconnectOnUnexpectedDisconnect: true,
merchantDisplayName: businessesData?.[0].businessName,
},
DISCOVERY_METHOD,
);
When the token expires, the SDK would retrieve a new one automatically. And if you had an expired token then the error message would be different. So it's not that.
Please focus on grabbing an example PaymentIntent and a serial number of the Tap to Pay reader so I can look internally. Right now we're just going in circles without any real investigation
Okay, I think I can find a payment intent related to this shop and device, and its status is successful. Would that be helpful to you?
Not really. We need the exact one where you saw the decline because Tap to Pay serial numbers are generated randomly as far as I know so they change over time
Do you mean the serial number of the Tap to Pay module or the device itself?
From what I understood based on what you and your colleague mentioned earlier, it seems that it comes from the device.
With Tap to Pay Readers, the SDK generates a unique serial number that's specific to that Reader object
https://stripe.dev/stripe-terminal-react-native/api-reference/types/Reader.Type.html#:~:text=%3A LocationStatus%3B-,serialNumber,-%3A string%3B
It's not the same thing as your Android tablet's serial number
Could you please tell me what error is shown when a connection token expires?
Don't remember the exact message but something similar to
Stripe Terminal ConnectionToken has already been redeemed. Please generate a new one
Okay, is there any documentation that explains the possible reasons for the error:
"PAYMENT_ERROR.DECLINED_BY_STRIPE_API"?
We don't have any docs for that, no. But this is returned when you receive a decline upon PaymentIntent confirmation
we call this for check Payment intent via methadata
GET /v1/payment_intents/pi.......
but this tranascations not logged any where
We don't store responses returned to GET requests so GET requests are hidden in the request log on the dashboard by default.
So, how can we check the reason for this transaction failure?
It’s not logged in the Stripe Dashboard, and in this version we also don’t log connectedReader?.serialNumber.
Is there any way to track or debug this issue?
You can't self-serve it if you don't already have explicit logging in your application which is why I've been asking for the PaymentIntent ID so that we can look internally and see if there's anything available on our end 🙂
If you're able to reproduce the issue easily then I'd recommend making necessary changes in your application to log out the serial number as well as the PaymentIntent ID whenever you receive the error.
If you're unable to reproduce the issue then you'd need to still make the above changes and circle back to us with the necessary info required to look deeper into this.
General recommendation when you receive such error is to have the customer retry the payment and if the payment keeps declining then they should try a different payment method