#benk-connectonboarding-error
1 messages · Page 1 of 1 (latest)
@lofty scaffold asked for the generated URL yesterday. It's https://connect.stripe.com/setup/s/acct_1NkXhICkgiYRvFCR/72FIN1EnVGyq
Can you do me a favor and create one more link but don't paste it here? Pasting those links into slack invalidate them 😦
yes, one moment pls
https://connect.stripe.com/setup/s/acct_1NkXhICkgiYRvFCR/Wc8sz8hbkoHa
One other thing which is a bit odd. If the merchant closes the account and then I generate an accountLink, it still retains the login and asks the merchant to log in.
Sorry just to be super clear - don't paste in the link here at all. Just generate the link on your end and I can pull it from my end 👍
Oh wow. It invalidated it? Strange
one sec
done
wait. I think it will also be invalidated since I open it in WebView
one moment
ok try now
looking!
hmmm so strange - something is still invalidating those links
let's take a different approach
Is this something you're able to replicate every single time? is it happenign on all browsers? do you also see it happening in incognito/private browsing mode?
I havn't tried to open the link in a brwser. I'm opening it inside a React Native app with WebView, so my options of selecting the browser are limited
My function call ends with
const accountLink = await stripe.accountLinks.create({
account: accountID,
refresh_url: 'https://dineden.com/app/stripe-refresh-test',
return_url: 'https://dineden.com/app/stripe-refresh-test',
type: `account_onboarding`
});
console.log("accountLink", accountLink)
return accountLink.url
Then in the app I print the url with
const onboardingURL = response.data.stripeUpdateMerchantAccount;
console.log({ onboardingURL });
Not sure why it gets invalidated. Maybe a time constraint?
let's see if you can open it right after I generate it?
sure we can try that, but it may be more productive for us to go through some of the other questions I asked
Is this something you're able to replicate every single time? - yes
is it happenign on all browsers? - don't know
do you also see it happening in incognito/private browsing mode? - I haven't yet tried
Let me try on my end. One sec
yes. I was able to open in incognito (chrome) and I'm seeing the same thing. However, this time it shows the email address in there
So most likely it's WebView and styles
I wonder if we can debug it... I think I may be able to. One sec, I'll check
hmm, still not finding a way to debug the UI in Chrome...
Sorry, yeah, I cannot really debug it because the app runs inside a custom dev client. Not simulator
And I couldn't find a way to connect and inspect elements on the screen in chrome
Can you also try a completely different browser (like safari or firefox) and confirm if you're seeing the same thing?
yeah, Safari is not good.
so yes, it's probably just css
I'll let you guys figure this one out. But what about the closed account question? The merchant closes their account, but I can still generate an accountLink for that account which then the merchant can use and sees their email and can log into their closed account
Let me dig into that one...
Quick question though - when you asy "closed" account how are you replicated this in a test? Are you talking about a deleted account, or sometihng else?
Hang on, let me give more info
Deleted that message since I don't want those details out here in a public channel
You're closing the account through the big red "Close Account" button on the dashboard right?
No, I'm just making sure we're on the same page 🙂
Based on https://support.stripe.com/questions/close-a-stripe-account I think waht you're describing is expected - specifically this section
If the Stripe account was created through a third-party application, closing it via your Stripe Dashboard will not close your account with the third-party. Similarly, deleting an account with a third-party application also does not delete the Stripe account connected to it. The only way to close a Stripe account is from the Stripe Dashboard as outlined above.
So if I delete from the dashboard with "Close account" and delete from connected accounts, then this account should be permanently gone?
somehow I doubt it
I think you can only delete connected accounts in very specific situations (like the balance is zero) https://stripe.com/docs/api/accounts/delete
Still, the bottom line is that once created, even if deleted by the merchant, the account remains. I have a feeling it's illegal. Also, if an account was previously created for the merchant, sending props in stripe.accounts.create gets ignored.
Yeah at this point if we're getting into the legality of account closures/how they work you'll want to talk to support - https://support.stripe.com/contact
true
One last thing - I am going through the onboarding right now for creating a "company" and there's no way to pass basic info with stripe.accounts.create. For example - first name, last name of the company representative, who is our user (merchant) along with email, phone number, etc.
if the business is "individual" then yes
but I am not seeing how to pass data to company
You'd use the Persons API for this: https://stripe.com/docs/api/persons/create#create_person-relationship-representative
For example, with relationship[representative]=true
benkass - connect api
testing
ok, so I did a bit of testing. So now I
- Create an account with await stripe.accounts.create
- Create a person:
const representative = await stripe.accounts.createPerson(accountID, {
first_name,
last_name,
phone,
relationship: {
representative: true
}
})
- Create an accountLink
It all passes.
Then I open the account link and log in (with a SMS verification). As soon as I do, I get "This account doesn't have required persmissions" or something like that and it throws me out. - This is a problem
I can log in via a web browser
When I do and go to https://dashboard.stripe.com/account/onboarding/representative I don't see the person I created. Only the email address exists
If I try to create a new accountLink and visit it, after logging in via web, it lets me.
So as soon as you input the SMS code, you get kicked out?
Do you have the screenshot of the message?
Yes. It flashes “session expired” and then logs me out. I will send you a secreenshot in a minute
Can you send me the account ID for your platform account? (acct_1234)
I can try making the same requests and see if I get this error. Apologies server was a bit too busy for me to try to repro properly before
No worries and thank you for the ID. Trying to reproduce this...
gonna run some tests here too
Yeah. if I add stripe.accounts.createPerson it throws me out. Without it, it doesn't
thanks for the video. Why aren't you doing this full screen? Are you using some weird webview or iframe in your overall setup? Can you reproduce on a web browser on your computer to look at the JS console and lots and such?
benk-connectonboarding-error
haha. Weird WebView 😄 why is it so weird? By using WebView, we keep the user in the app. Also, who knows what they have going on with their default web browser
This product is designed to be loaded full screen in a browser and not really truncated like this in your app/webview. It also makes debugging errors a lot harder in this case.
But I think the next step is a simple repro on the web so that we can figure out what error is thrown
It's not truncated. It is the same width because WebView is 100% width, and it's scrollable. Anyway, I will try to see if I can open it in a default browser instead for the purpose of testing
yeah let me know since that is the missing piece. We tried similar code without an error but it could be something on your account or similar and once you get the JS console we hopefully can see the error and then I can trace back to what happens from that
Also are you using Custom, Express or Standard accounts?
Standard
OK, tested when opening the default browser and it worked. So maybe it was indeed the issue with the webview
That feels super weird to me that it'd be webview specific though we usually don't support that kind of flow. I also would recommend not pre-filling a Person on a Standard account since as a platform you won't have access to that information once they onboard and we collect all the data from them
OK, I'll remove it. I was trying to spare them the agony of filling out repetitive data
I will also stick to your preferred flow of using the default browser
yeah I definitely understand if you have the info. It's quite rare to get detailed information about a business and its owners/representatives as a platform while using Standard accounts
I was only adding first and last name, and phone.
So yeah, in this case I am saving them very little agony
yeah and I can't think of a reason why prefilling those would error
The permission error was my bad. I was creating a person even when the account was created.
As for expiring the session - no idea
Regardless, I'll stick to your flow
sounds good!
thanks for testing with me! OK to close this for now