#jason_ach-deprecation
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/1468299771146932255
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- jason_ach-deprecation, 3 days ago, 18 messages
Hi there, I'll be right with you
thank you
Okay so
If we never collected a mandate from the customer, does that mean we have to email them letting them know we intend to use their ACH account for offline payments? Or do we need to get explicit permission?
I don't know - I can help with the technical aspects of this migration; what you're doing in the API and so forth
When you say you didn't collect a mandate; do you mean that you didn't collect any sort of agreement to charge them in the future when they gave you their bank details (via Stripe)?
correct
Okay, I don't know what the proper remediation for that is. We have a support team that are trained on questions related to this topic specifically and I think you need to reach out to them.
I suspect the answer may be that you need to bring them online and collect a mandate from them and recollect payment instrument details but I am not certain.
Or, just collect the mandate, rather
at the end of this conversation, if you could share that with me, that would be awesome! Some more technical questions....I noticed when you create the mandate via the /setup_intents endpoint, it creates it in an active state. I'm guessing we need to save the mandate ID of this active mandate so that when we process the offline payments, we pass the active mandate ID along wit the payment intent?
No, it isn't necessary to pass the mandate when creating a new payment; it is associated with the Payment Method.
For reasons I still don't understand, we don't expose the mandate on the Payment Method object, though; it is only exposed on the SetupIntent. However, later, if the mandate changes, we emit a webhook event mandate.updated that tells you what changed
This usually happens when a mandate is deactivated, in which case the Payment Method is useless and you need to bring the customer online and recollect payment method details
so, when you say payment method, you're referring to objects that have an ID of pm_, correct? Would this still hold true for legacy payment sources, with an ID of ba_?
I am not certain but I suspect so because in that case the ba_123 is being used as a Payment Method, and you have to provide mandate data to confirm a PaymentIntent with the ba_123 in the first place
I could be mistaken, but in testing, when I performed the mandate migration, it created a mandate attached to the legacy payment source ba_ and the mandate had an active state with an id of 123, then, I attempted to process an offline payment without attaching the mandate ID, and the mandate on the charge.pending event showed a different mandate ID 456, and this mandate had a status of inactive. If it was attached to the payment method, I would have expected to see the mandate with the id of 123
I'm searching the logs now so I can provide some IDs
Sure thing
Setup Intent ID creating the active mandate: seti_1SwmBJFh7O2P26Tz9s6dbBsP
Mandate that was created in the active state: mandate_1SwmBJFh7O2P26Tze7n9FG5n
ACH account ID the mandate should be associated with: ba_1SwluYFh7O2P26TznSkTrDcN
Payment Intent ID for offline payment: pi_3SwmDtFh7O2P26Tz0DNDxnwV
Mandate that was created in the inactive state for the offline payment: mandate_1SwmDtFh7O2P26Tzx62myKFC
Hi koopajah!
The Mandate started as active and then became inactive. See https://dashboard.stripe.com/acct_1RvmU6Fh7O2P26Tz/test/events/evt_1SwmE9Fh7O2P26TzecVJKwVN
how did you test? Is this bank account specifically used to fail payments (which makes the Mandate inactive)?
hmmm no it's the 6789 so likely not a failure. Looking further
I do see that it started as active and became inactive. I created the payment source using the /sources API endpoint to reproduce an account we'd have in production. The mandate ending in KFC was created on the offline payment intent. I thought it was because I did not pass the mandate ID for the G5n one, which was active
ahhhhh
yeah if you pass mandate_data: { customer_acceptance: { type: "offline", }, }, on PaymentIntent creation/confirmation it will create a new Mandate.
And that one was single use so it's expected it becomes inactive
If you already have a Mandate, don't pass mandate_data at all
ahhh, so we do the mandate migration, get the ID of the active mandate, store this value so that when the customer processes an offline payment, we pass the mandate ID, and leave off the mandate_data?
or, as palamedes said, once the mandate is associated with the payment source, don't pass the mandate ID and just leave off the mandate_data section on the payment intent?
I'm about to hop in a meeting, I may be slow to respond
yeah you don't need to pass anything and it will just work and pick the active Mandate
you "just" need to keep track of having an active Mandate and listen for mandate.updated Event to know if one becomes inactive and you have none left
excellent! last question, earlier, I was asking palamedes about how to proceed because prior to the payment intent upgrade, we did not collect a written or formal communication from the customer asking for their permission to use their account for offline payments. palamedes said there was a special Stripe team we would need to contact to remedy this situation?
you just talk to support https://support.stripe.com/contact and they'll route you to the right place!
thanks again koopajah!