#chukd-payout-fail
1 messages · Page 1 of 1 (latest)
I would think that, but when I get the webhook back the destination ID for the bank doesn;t match with the external bank account Stripe created in the Connect page. Your support staff is telling me this is expected!!?
I don't understand what you mean I'm sorry
I used the 'no_account' numbers to create a Stripe Connect bank account to test. Once the Stripe account was created, I issued 2 transfers to it from my platform, then I issued a payout. I received a payout.failed webhook, which was expected given the test numbers, I looked at the destination ID in the webhook to track it back to the Stripe external account, but the destination ID in the webhook doesn't exist.
If this doesn't make any sense I can take a image of the email I was sent for you to look at?
Yeah unfortunately it doesn't make sense. It's lacking real concrete examples with exact object ids which would be a lot easier. But you're already talking to our support team you should keep talking to them. It's a bit weird how you go to support, ask things, come here, ask the same, then back to support etc.
I'm happy to help but I need more specific information to help you debug
Because it seems like the support staff is completely incompetent and unknowledgeable about how things work. Most of the time they just refer me back to the docs page or provide me with a response that makes little or no sense.
I'm sorry to hear that but we're mostly focusing on code here and less on a lot of the manual testing flows
but let's ignore that for a sec. Can you ask the same question but focused on a real exact example with all the relevant ids of what you see, where you see it and what you expected instead?
ok give me a couple minutes to write it up.
Ok, I'll try and write out some more specific details here. I created a Connect account and included a bank account with the 'no_account' test numbers '...1116'. Stripe created an external account ID of 'ba_...XiAC'. So far so good. I issue a transfer from my platform to this account and now I wait for the payout.failed webhook. When I receive the 'payout.failed' webhook I need to look at it and determine what Stripe account it's coming from and the way I'm doing that is by looking at the external account destination ID in the webhook. The problem for me is when I look at the payout.failed webhook it shows a destination ID of 'ba_...V35x' which is different than 'ba_...XiAC', which is the ID of the external account Stripe created for that Connect account. So now I feel like I'm stuff not knowing how to track which account had the failed payout.
*stuck not knowing
I can't really do anything to help here, you redacted all the useful ids, you didn't give exact event id or payout id, etc. I'm sorry but without that information I can't look
I can include them I didn't know you needed the whole ID. Give me a sec
I need all ids please, exact Payout id, Event id, account id, bank account id. Really hard to debug otherwise
Here is the account ID "acct_1KRPGDQgywmY56O2" where I used the test numbers "110000000" and "000111111116" which gives me the 'no_account' payout.failed. The external account ID created by Stripe is "ba_1KRPGDQgywmY56O2FkL2XiAC". When I received the payout.failed event "evt_1KRRGKQgywmY56O2GlFA7wJz" the destination ID is "ba_1KRRGJQgywmY56O2MOdSV35x". The two destination ID's "ba_XiAC" and "ba_V35x" are not the same.
Perfect thanks, that;'s a lot easier!
what Stripe account it's coming from and the way I'm doing that is by looking at the external account destination ID in the webhook.
that's not how you should do this. When you receive the event, it has theaccountproperty explicitly set to the id of the account the event is coming from: https://stripe.com/docs/api/events/object#event_object-account
You can see this on that event which starts with { "id": "evt_1KRRGKQgywmY56O2GlFA7wJz", "object": "event", "account": "acct_1KRPGDQgywmY56O2", "api_version": "2020-08-27", "created": 1644455756, "data": { "object": { "id": "po_1KRRGJQgywmY56O2WDnZfWsG", overall and so you know which account it is from
Looking at the bank account ids discrepancy now though since that seems like a bug, give me a few minutes!
and yeah okay
you're not writing code for this, that's the problem
you're using the dashboard to create the Payout manually, and the Dashboard uses a hack to just trigger a failed payout
you can see this if you look at the Payout creation request log, it explicitly ignores the existing bank account and passes destination: "btok_us_verified_noAccount", which basically creates a fake bank account for it
it's... really confusing, I agree, that's why I basically recommend devs like you to write basic simple scripts to test those things, wayyyy easier
I can also include (attachment) the email I received from Stripe with their explanation. If you want? FYI - my "payout.failed" event doesn't have the account ID in it. Just the destination ID. I'm inlcuding a image as an attachment
I would do a script in minutes that does
1/ Create a Custom account
2/ Add an external account for the failed one
3/ Transfer funds to it
4/ Create a Payout
5/ Loop until you get the payout.failed event
would take a few minutes at most and you'd be done 🙂
Wait! So you're saying I have this problem because I used the API to create the account but the dashboard to send the payout? And because of this mismatch Stripe does some funny stuff that will, and did confuse me?
not really. I'm saying you have the problem because you use the Dashboard to create the failed payout. That's all. Don't do that beyond just debugging basic things
Ok, I think that's what I meant to say..So what your suggesting is if I want to test something like this. Use the API 100% and don't use the dashboard?
It's fine to use the Dashboard, but you have to be aware of its quirks. You just hit that one so now you'll know, it wouldn't happen in production either
gotcha! thanks for the help!
of course!