#Kekox123-requires_confirmation-payments

1 messages ยท Page 1 of 1 (latest)

hearty onyx
#

hello, do you have an example of a PaymentIntent that was in requires_confirmation after Invoice failing?

west sierra
#

Let me see ๐Ÿ‘€

#

This invoice is now pending, but it was failed because of the payment intent requires confirmation

#

in_1LdqL1KNEK8dUItShK88oGWk

hearty onyx
#

piecing it together, be a bit more

#

For that Invoice, the first time Stripe's systems tried to pay the recurring Invoice, that failed since there were no mandate's on the ACH Bank Account. So the PaymentIntent stayed in requires_confirmation

It stayed in that status till you manually paid the Invoice via the Dashboard

Checking on something else

west sierra
#

Hmmm I see. This one also failed for the same reason and also the payment method is ACH. in_1LdqL3KNEK8dUItS71oMb8Ke

hearty onyx
#

ok so synced with a colleague. The reason you're seeing this is due to what you mentioned above: the customer.default_source vs the customer.invoice_settings.default_payment_method field

basically, the second option means you're doing the newer version of ACH which requires Mandate collection.

In your Customers, you had customer.default_source set which was the legacy way of doing things and that worked. Except you also set the second field in this API request: https://dashboard.stripe.com/logs/req_X7RtrEWv7BZ1fz

that means that any payments collected on this newer ACH integration (using payment_method: ) mean you have to collect Mandate.

So there are two options:
1/ you either stick to the legacy approach of only using default_source
2/ or you run a script to create and confirm SetupIntent for those Bank Accounts that you're using as PaymentMethods and pass the previously collected Mandate Data as explained here: https://stripe.com/docs/payments/ach-debit/migrations#migrate-payment-processor

west sierra
#

Oh thats so helpful thank you so much.

#

If I create a script in my app that go trough all the accounts and set the customer.invoice_settings.default_payment_method property in Stripe.

#

That would work too?

#

Or the only way to set this property it's trough the migration you shared above.

#
that means that any payments collected on this newer ACH integration (using payment_method: ) mean you have to collect Mandate. 
```
I don't know if I understood correctly. So the issue is that I'm using the legacy version for ACH payments? or That I'm not using it?.
#

Or the issue is that I'm using for some customers the legacy version and for other the new one? ๐Ÿค”

fading field
#

If I create a script in my app that go trough all the accounts and set the customer.invoice_settings.default_payment_method property in Stripe.
That would work too?
No. This wouldn't work.

#

I don't know if I understood correctly. So the issue is that I'm using the legacy version for ACH payments? or That I'm not using it?.
Or the issue is that I'm using for some customers the legacy version and for other the new one? ๐Ÿค”
It looks like you are using a legacy version of ACH. I'm unsure if you have both legacy and modern integrations for ACH. You would need to check how ACH is accepted through your integration and figure that out for yourself, unfortunately

west sierra
#

Well we accept card payments too.

#

So for card payments, we set customer.invoice_settings.default_payment_method

#

After a setup_intent

#

which I think is the "new version"on how to set payment methods

#

but for ACH we use Plaid for verification, which at the end gives us a btok to register the payment in Stripe.

#

that's the legacy version I think.

#

Do you know if with the Plaid integration I can register the ACH payment method as customer.invoice_settings.default_payment_method?

fluid pewter
#

๐Ÿ‘‹ stepping in as two-shoes needed to step away

#

Catching up

#

You don't need to collect the bank account details again here