#chung-yi_best-practices

1 messages ยท Page 1 of 1 (latest)

frozen fjordBOT
#

๐Ÿ‘‹ 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/1448681779790610585

๐Ÿ“ Have more to share? Add more details, code, screenshots, videos, etc. below.

lavish rover
#

btw we only enabled bank transfer in test mode, not in production yet.

forest sable
#

hi there, are you using Payment Intents with the Payment Element? if so, can you send me the ID of one where you expected bank transfer to show up?

timber wedge
#

noice

lavish rover
#

No. We use the Payment Element without an intent approach.

timber wedge
#

hello denton and Chung-Yi

forest sable
#

@timber wedge this isn't your thread, please leave and create a new one using the guidelines in #help

timber wedge
#

what

forest sable
#

@lavish rover got it, can you share the code you're using to initialize the payment element?

lavish rover
#

yes, give me one moment.

forest sable
lavish rover
#
const options: StripeElementsOptions = {
  mode: "payment",
  appearance: {
    // ...
  },
  amount: totalForPayment.minor,
  currency: totalForPayment.currencyCode.toLowerCase(),
}

return (
  <Elements stripe={stripe} options={options}>
    <PaymentFormContent order={orderData} me={meData} />
  </Elements>
)
#

PaymentFormContent is our component that wraps PaymentElement. and the options are

  const paymentElementOptions: StripePaymentElementOptions = {
    layout: {
      type: "accordion",
      spacedAccordionItems: true,
      defaultCollapsed: true,
      radios: false,
    },
    business: { name: "..." },
  }
forest sable
#

thank you! if you add the following to your stripe options, does bank transfer appear?

payment_method_types: ["customer_balance"],
  payment_method_options: {
    customer_balance: {
      bank_transfer: {
        type: "us_bank_transfer"
      },
      funding_type: "bank_transfer"
    }
  }
lavish rover
#

trying...

#

ohhh it shows up now!

#

hmm does specifying payment_method_types basically disable dynamic payment method from the stripe dashboard?

forest sable
#

yes it will. I'm also seeing that dynamic payment methods won't show bank transfer on my test integration, which is interesting. let me do some digging to see if this is expected, one moment

lavish rover
#

thank you!! appreciate it.

#

and just to make sure this is what i'd expect to see it appear in payment element.

forest sable
lavish rover
#

i have that turned on in test mode (and it's what I'm testing against locally), but not in live mode.

#

It seems to require me to do some id verification when I tried to turn it on in live mode. could that be required?

forest sable
#

ok, I found the reason. bank transfer payments require an association with a Customer. this cannot be provided with the deferred intent flow, so the Payment Element automatically filters bank transfer out as a payment method

#

so unfortunately this isn't compatible with both the deferred intent flow and dynamic payment methods. I'm going to talk to our internal teams about documenting this properly, as it's fairly confusing

lavish rover
#

interesting. but would using payment_method_types with deferred intent flow (like the screenshot above) work?

forest sable
#

I'm trying that out now, one moment

lavish rover
#

thank you!

forest sable
#

yes, it will work as long as you provide a customer ID when you eventually create the Payment Intent

lavish rover
#

thanks! we are migrating to deferred intent flow + dynamic payment methods, without knowing the limitation. this is good to know. if you can help me verify my understanding of the options:

forest sable
#

unfortunately no, customerSessionClientSecret is used for retrieving saved payment methods on the customer. it won't enable Bank Transfer payments to work with a deferred intent + dynamic payment methods

#

deferred intent flow + dynamic payment methods with Bank Transfer just isn't supported at the moment, currently. I will be asking our internal teams to update our documentation to make this more clear in the future

lavish rover
#

got it. that's a bummer.

#

thank you for helping improve the documentation!

#

Also, I can't find the customer_balance payment type and options in the js doc. Is it documented somewhere?

frozen fjordBOT
forest sable
lavish rover
#

thank you! yeah, I can't easily find the reference of customer_balance type. So it's the payment method type for bank transfer, right?

brittle vortex
#

Hi there ๐Ÿ‘‹ jumping in as my teammate needs to step away soon. Yup, customer_balance = Bank Transfers

lavish rover
#

I'd like to test bank transfer payment end-to-end fully in test mode. Would that be doable?

brittle vortex
#

Yup

#

Well, you have to fake the part about the customer adding funds, since there isn't a real customer or bank account to use when testing. But the instructions for that part are in the doc you just referenced.

lavish rover
#

Sounds good! Thank you!

#

Final question: we previously integrated ACH debit (with instant verification), and only realized in real world, banks are not really investing in that side of products. The feature ended up feeling not very reliable. Customers ran into many different issues, likely outside of Stripe. Curious if there would be real-world issues we'll be running into with Bank Transfer that you guys are aware of since the launch of the feature.

brittle vortex
#

That's not something my teammates and I have much exposure to, since we focus more on the integration side of things. The only things coming to mind that I've heard of, are what I would consider "typical" bank wire issues. Like the customer sending you the wrong amount, or sending it to the wrong account.

lavish rover
#

Got it. That makes sense and I think the doc points that out too.

#

Thank you and @forest sable for the help! That's all my questions so far. Excited to give it a try!