#mikejacobson_unexpected

1 messages · Page 1 of 1 (latest)

wheat kiteBOT
#

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

formal citrus
#

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

spiral cedar
#

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
    }
  }
}
formal citrus
#

do you have an example from a successful run for comparison purposes?

#

also which version are you on?

spiral cedar
#

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
}
}
}

formal citrus
#

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]
          }
        }
      })```
spiral cedar
#

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.

formal citrus
#

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?

spiral cedar
#

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
    }
  }
}
formal citrus
#

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

spiral cedar
#

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.

formal citrus
#

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"
      }
    ],
...
spiral cedar
#

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
    }
  }
}

formal citrus
#

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

spiral cedar
#

Ha! Yes, I have heard that, though—that it uses the config defined in Stripe's system.

wheat kiteBOT
stuck rapids
#

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

spiral cedar
#

For some specific accounts, tip options are just not showing—the reader goes directly to prompting for payment.

stuck rapids
#

Can you share some example accounts? Which countries are they?

stuck rapids
#

And could you give example of the account which is working?

spiral cedar
#

I noticed that the one NOT working has fixed tip amounts rather than percentages. I wonder if that might be an issue?

stuck rapids
#

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?

spiral cedar
#

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?

stuck rapids
#

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?

spiral cedar
#

tml_F4N9Iwz7QESXfv

stuck rapids
#

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

  1. List of Location and Accounts which are not working
  2. List of Location and Accounts which are working
  3. 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