#rafaelbaptista - express account onboarding
1 messages ยท Page 1 of 1 (latest)
Hello! Just starting a thread for you -- I'll review and respond as soon as I can ๐
You don't -- you use connect account authentication instead
What kind of request are you trying to make?
There is no need for you to have API keys for your connected express accounts, you already can make requests for them as a platform
on the previusly flow oauth when a account was onboarded (stripe connect not express), then we would make a call to "https://connect.stripe.com/oauth/token in order to get the private and public key of the account
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
what you mean by this? you mean using the stripe Account header?
If you wanted to make direct requests for the account, yes, but you probably should not do that for express accounts in most cases.
What are you trying to do?
like i said on the top, trying to get the api keys from the connected account when onboarded in order to store them on my database
just want to know what this the approach that i should follow when onboarding an account since the old approach was like i described and i need to store the private and public key of the connected account in my db , when the onboarding was done
i think you are right, because when using express all the call are made by the platform but rlly want to confirm this so i can know how i should procced after a connected account finishes the onboarding
That is not provided, and not the way this works. You don't need them. Why do you want to store this, what is your end goal?
i think i'm not explaning well, we are migration from stripe connect to the express, on the connect we needed the keys in order to perform calls on the express like you are telling me i only need the account id of the connected account
i'm not saying that i need them i'm trying to understand what was the info that i needed to collect after an onboarding finishes
Aside from some requests like setting payout settings and creating payouts, it's not recommended to make most calls directly on an express account. Most operations should be on the platform with the Express account as a destination for some or all of the payment, etc.
Can you describe an example payment scenario where you would want to use the keys you're asking about? Say for an account acct_1234.
yes, exacly what i'm doing .. so the only thing that i need to save is the connect account id
im using destination charges
so i need the account id for the destination account
like i mention, i'm not performing calls was connected account, only when listing payments i pass the stripe account header
i simply was trying to understand if on the express was the need of storing the keys, witch by what we talked theres not
so saying this my question is how can i check if the account finish the onboarding?
Well you already have the account id from when you created the account, before redirecting to onboarding, right?
You get the actual account in the response to the create call
yes, i already have that and im already storing this, my question is on how to hanlde the return url to check if the account completed the onboarding or not
As explained here, you can retrieve the account and check charges_enabled and details_submitted to see if they've provided everything:
https://stripe.com/docs/connect/express-accounts#handle-users-not-completed-onboarding
It's the last step in the guide
alright thanks for clarying so i just need to check if that two values are set to true
do stripe attach any params to the return_url?
No but you can include them if you want, a reference or unique id etc, when you create the account link, and stripe wtll include whatever you set up
NP!
also have another question on this topic,
do the return_url / refresh_url need to be added to the whitelist url on my stripe settings?
The express settings?
No, that's only related to oauth -- not account links after creating express accounts via the API
ok thanks for claryfing
NP!
do stripe have test emails that we can use to test the onboarding when using test keys?
Any email can be entered - its not used for anything
test@example.com is what i always use
but then stripe requires to login with that email
so needs to be an email registed on stripe
No in test mode it shouldnt
for me is allways presenting the login screen
Oh, if you're test this, make sure to open the account link onboarding URL in an incognito window
this is getting confused with your logged in platform dashboard account
Can you share your account link creation request id?
Yes just give me a seccond
For some reason when i go to logs im ONLY seeing the requests of yeaterday
Hi ๐ I"m stepping in for @lofty plover
I just created a custom account and an account link. When i used the account_link.url it took me straight to the forms without a login. I think this is why we're curious to see your request IDs so we can check the syntax of how you create the account link.
im trying to get that request id
req_lTqITKTxHnW1nx
that is the last request for createlink
do you need more information?
Nope, just need to take a look
okok
The syntax looks correct. Can you recreate this account link and try it again? Each URL is only good for one test
yap will do it now 1sec
required me to login again
on the first step of onboarding i iused the test phone number and then enter that email
when i click continue, the onboarding asks me to login
And you're using the URL in the response from Stripe?: url: "https://connect.stripe.com/express/onboarding/f6koy5p8Mtj5"
Sorry I don't mean to imply anything this is just pretty confusing
Yeah, it's a dead link now. They're only good for one visit
do you want to generate the link again without enter and send to you?
Even if you paste it in here the "link preview" feature will consume it and make it unusable.
so how can we figured out why on test mode is requiring me to login
Can you try coding the Account LInk creation process and then not use any redirect but copy/paste into your browser?
yes 1sec
In an Incognito window, to avoid any caching or cookies tricks
yap that worked
You got in, no login required?
yes
๐
Those account links are pretty finnicky (to prevent fraud, etc.). So you have to be pretty careful about your redirect strategy
so how do i redirect the user?
without using redirect("url") that seems to be causing that problem
Can you try loading the URL in an anchor tag? <a href="stripe_url">? And see if a user clicking on that will get there?
i'm doing this redirect serverside so cannot do it with that a tag
if (isset($createLink["url"])) {
redirect($createLink["url"]);
}
Interesting. When I look into how to redirect using PHP I see a lot of examples like this
$redirect = "https://www.example.com/redirect.php";
header("Location: $redirect");
Is the redirect function something native or from a framework?
i was about to suggest what replace the redirect with the header
im using codeigniter
I'm wondering, since it's a helper function, if it is doing anything with the URL prior to updating the window location
i will try that one
just solved that using header
ob_start();
header("Location: " . $createLink["url"]);
exit();
Nice!
have a question i just onboarded the account but the account dont have card_payments active
why is that, tought that was true by default
this is the account id: acct_1KwUBy2EX2aGJsot
are you there? @left frost
Yeah I'm still looking
oh sorry
I have always created my accounts using
capabilities={
...: "card_payments": {"requested": True},
I'm not seeing anything in the API docs that suggest any of the capabilities are on by default
i tought by default the card_payments where true
when im creating the account im only passing type => express
so for express account what capabilties should i pass?
that are not setted by default
Well if you just want the basics then I'd use the code snippet from our API docs, replacing the values for those that don't match.
$stripe->accounts->create([
'type' => 'custom',
'country' => 'US',
'email' => 'jenny.rosen@example.com',
'capabilities' => [
'card_payments' => ['requested' => true],
'transfers' => ['requested' => true],
],
]);
should i also include the country and email? or can i ommit that params?
country optional DEFAULT IS YOUR OWN COUNTRY
email optional
ok thanks, will try this,
the example that you provided is for type => custom, for the expresss the default capabilities are the same?
I would not assume any capabilities are default and always specify
right, what i meant was what are reccomend to be setted
card payments and transfers are a good set to use
ok, thank you so much for the help
just also to confirm my approach , an account is only fully onboarded if the this properties are true
$res["charges_enabled"]
$res["details_submitted"]
right?
To check if an account is fully onboarded you will want to examine the requirements proprety.
This will flag what is still required by the account to be fully onboarded.
on the the doc says that i should check for that two valuues
https://stripe.com/docs/connect/express-accounts
https://stripe.com/docs/connect/express-accounts#handle-users-not-completed-onboarding
can you confirm this?
Okay in this case, for Express, I believe you are correct.
sorry i tought i had mentioned that i was onboarding express accounts
so my approach is correct?
Yes, sorry I forgot it was Express. So many little differences. I think your approach is solid