#dev-travis_error

1 messages · Page 1 of 1 (latest)

crystal stumpBOT
#

đź‘‹ 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.

sweet river
#

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?

hard pecan
#

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.

sweet river
#

Got it. Can you share your device serial number? I may be able to access the logs that way

hard pecan
#

we use IMIN swift 2 pro

#

How can get device serial number?

sweet river
#

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

hard pecan
#

We’re using a supported device, as listed in the Stripe documentation.

sweet river
#

Yes, it should be supported. Can you find the serial number on the physical device?

hard pecan
#

yes one secound

crystal stumpBOT
hard pecan
#

any updates?

sweet river
#

Sorry, I tried pulling up logs for that serial number but nothing came up on my side. Looking for other ways to investigate

silk fable
#

I'm getting help from a teammate who has more expertise that I do here.

#

Hang tight

meager kelp
#

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

hard pecan
#

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.

meager kelp
#

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?

hard pecan
#

the problem is no PaymentIntent ID create for this trasnactions

#

as I check with our backend Team

meager kelp
#

Are you using Stripe Connect?

#

You might be looking at the wrong account

hard pecan
#

We’ve double-checked and confirmed that we’re on the correct Stripe account.

meager kelp
#

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

hard pecan
#

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.

meager kelp
#

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.

hard pecan
#
    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,
      );
meager kelp
#

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

hard pecan
#

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?

meager kelp
#

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

hard pecan
#

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.

meager kelp
hard pecan
#

Could you please tell me what error is shown when a connection token expires?

meager kelp
#

Don't remember the exact message but something similar to

Stripe Terminal ConnectionToken has already been redeemed. Please generate a new one

hard pecan
#

Okay, is there any documentation that explains the possible reasons for the error:
"PAYMENT_ERROR.DECLINED_BY_STRIPE_API"?

meager kelp
#

We don't have any docs for that, no. But this is returned when you receive a decline upon PaymentIntent confirmation

hard pecan
#

we call this for check Payment intent via methadata

GET /v1/payment_intents/pi.......

but this tranascations not logged any where

meager kelp
#

We don't store responses returned to GET requests so GET requests are hidden in the request log on the dashboard by default.

hard pecan
#

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?

meager kelp
#

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