#duydtdev-connect
1 messages · Page 1 of 1 (latest)
@radiant crescent depends what type of account it is and how you created it! can you share the acct_xxxx ID so I can look?
@snow shadow acct_1KIwHf2E0ModQhgv
Please help me check!
ok that's a Custom account so you need to finish onboarding it.
Easiest way is to create an AccountLink to redirect the owner of the account to a hosted page to collect what's needed. https://stripe.com/docs/connect/connect-onboarding
Can I ask why you are using Custom accounts by the way? If you read the docs, Express or Standard accounts are highly recommended instead unless you are already a large development team with experience in the area.
@snow shadow There is no special reason, I use the Custom account to make Payouts to VISA in Japan. Currently, I can not make a payout, I'm facing with error "Cannot create payouts: this account has requirements that need to be collected.. Please provide those fields to re-enable payouts." How can I fix it?
yes, that is the answer to the question you asked!
I use the Custom account to make Payouts to VISA in Japan
yep but you could use Express accounts instead. There are full guides for this which I'd recommend using, i.e. https://stripe.com/docs/connect/collect-then-transfer-guide .
@snow shadow When I use Express account, I'm facing with this error "Instant payouts are not available for platforms based in Japan." Could you tell me why?
it's just how it is!
https://stripe.com/docs/connect/instant-payouts
Instant Payouts is generally available in Canada, Singapore, the United Kingdom, and the United States. If your platform account is based in a different country but you would like to get access to Instant Payouts for Connected Accounts based in these countries, please get in touch.
@snow shadow could you help me focus on my question? first, you advise me that use an Express account for payout to VISA in Japan. And now I'm facing with above message, what should I do now?
@radiant crescent you should not use Instant Payouts because you can't. You can do normal payouts instead!
which means, you have to add a bank account to the connected account for their payouts, and not a debit card
because debit cards are only supported for instant payouts, and instant payouts are not available to you as a platform in Japan
does that help?
what is your mean? currently, I added a debit to custom account.
in the past, I've also asked here, and another supporter advises me to use Instant Payout. Why have a difference between you and that supporter?
yes, but it only works if the card being used also supports instant payouts, if it doesn't, then you get an error when creating the Account, which is what you've seen
I guess they were wrong or confused! nobody's perfect, sorry.
Thank you!
@snow shadow Sorry for misunderstood! That mean now I need use Payout instead Instant Payout?
I'm implementing payout via API. Could you help me share documentation?
do you specifically want manual payouts?
depends what you're building! The default is the account gets payouts daily automatically of any money they have.
@snow shadow Same as this is not suitable with our current business.
I want to share with you my business idea. We are building a freelance website.
The website has two roles (freelancers, customers)
- The customer will create a job and post it on our website.
- The freelancer can deal with this job with the customer
- If the customer agrees with the deal, the customer must pay all money for this job first (This time, money will transfer to our company stripe account. Our company will hold this money). In this step: We will use Instant Payment. Have any wrong?
- When the freelancer finished the job. Our company will transfer money to freelancer banking. In this step, we will use Payout. But currently, I'm facing the above error when using Payout.
Our company will transfer money to freelancer banking. In this step, we will use Payout. But currently, I'm facing the above error when using Payout.
yep then just don't use Instant Payouts, use non-instant ones.
https://stripe.com/docs/connect/manual-payouts#regular-payouts (same API call as for Instant Payouts, just don't pass method"="instant" )
@snow shadow I've tried it! But I still got this error "Instant payouts are not available for platforms based in Japan."
you have to add a bank account to the connected account for their payouts, and not a debit card
it only works if the card being used also supports instant payouts, if it doesn't, then you get an error when creating the Account, which is what you've seen
@snow shadow I'm using a testing card from Stripe documentation.
6011981111111113
Have any wrong?
- If the customer agrees with the deal, the customer must pay all money for this job first (This time, money will transfer to our company stripe account. Our company will hold this money). In this step: We will use Instant Payment. Have any wrong?
@snow shadow with this step, we are using Instant Payment. have any wrong with this approach?
that's a a debit card and like I said, I believe you can't use that, you have to use bank accounts for your payouts, not debit cards. https://stripe.com/docs/connect/testing#account-numbers is what you would use to create a BankAccount Token.
I answered you above!
@snow shadow sorry for this inconvenience, but could you confirm this?
I think I did. Can you rephrase the question? What am I confirming exactly?
@snow shadow sorry! first, please help re-read the 4 steps which I listed above.
In step 3, I'm using Instant Payment to implement sending money from customers to our stripe account. Have any wrong?
@snow shadow my mean is Payment Instents API
https://stripe.com/docs/payments/payment-intents
then that sound good, yes, entirely normal. That is how you do payments with the Stripe API to charge an end-customer.
Thank you! I'm implementing payment as your suggestion.
@snow shadow I still got this error
How can I fix it? "message" => "Cannot create payouts: this account has requirements that need to be collected.. Please provide those fields to re-enable payouts."
The second question:
We are using this information for setting (Japan 1100000 0001234 Payout succeeds.)
But in the reality, how can I get "Routing" and "Account" numbers?
$bankAccountStripe = $stripe->accounts->create(
[
'country' => 'JP',
'type' => 'express',
'email' => 'testing@gmail.com',
'capabilities' => [
'card_payments' => [
'requested' => true
],
'transfers' => [
'requested' => true
]
],
]
);
$stripeCard = $stripe->accounts->createExternalAccount(
$bankAccountStripe->id,
[
'external_account' => [
'object' =>'bank_account',
'country' => "JP",
'currency' => 'jpy',
'routing_number' => '1100000',
'account_number' => '0001234',
'default_for_currency' => true,
'account_holder_name' => 'aaaa'
]
]);
$payout = $stripe->payouts->create([
'amount' => 1000,
'currency' => 'jpy',
'method' => 'instant',
], [
'stripe_account' => $stripeCard->account,
]);```
did you do this ?
Easiest way is to create an AccountLink to redirect the owner of the account to a hosted page to collect what's needed. https://stripe.com/docs/connect/connect-onboarding
But in the reality, how can I get "Routing" and "Account" numbers?
you ask the end-user for them in your frontend when you onboard them.
or just use Express, it collects everything for you!
Currently I'm using Express account, please help see my code
then instead of using $stripe->accounts->createExternalAccount you should let the hosted pages collect everything.
@snow shadow Yes! I also created as you suggestion.
$bankAccountStripe = $stripe->accounts->create(
[
'country' => 'JP',
'type' => 'express',
'email' => 'hoangthach2503@gmail.com',
]
);
$stripeCard = $stripe->accounts->createExternalAccount(
$bankAccountStripe->id,
[
'external_account' => [
'object' =>'bank_account',
'country' => "JP",
'currency' => 'jpy',
'routing_number' => '1100000',
'account_number' => '0001234',
'default_for_currency' => true,
'account_holder_name' => 'aaaa'
]
]);
$stripe->accountLinks->create(
[
'account' => $stripeCard->account,
'refresh_url' => 'https://example.com/reauth',
'return_url' => 'https://example.com/return',
'type' => 'account_onboarding',
]
);
$payout = $stripe->payouts->create([
'amount' => 1000,
'currency' => 'jpy',
], [
'stripe_account' => $stripeCard->account,
]);```
But still got that errors "Cannot create payouts: this account has requirements that need to be collected.. Please provide those fields to re-enable payouts."
did you visit the link?
again I'm sorry, but you need to read the full docs.
you create the link and then you redirect to that link. That is a hosted onboarding page where the user adds all their information,
there is so much more to this flow than just 3 API calls like you're doing there, I'm sorry. Connect is a complex integration
@snow shadow this isn't able, because it does not familiar with our current UI design. You are understanding our logic, have any simpler implementation to resolve?
so you refuse to redirect to a Stripe-hosted page for the onboarding?
we need the simplest implementation, the freelancer just adds their banking account or their debit card, then we will payout money to their account. they do not need to do anything.
that's fine — then you should use Custom, and work with large experienced development team on building your own KYC onboarding forms to collect personal information from the end-user and supply it to our API. If you don't have those development resources you should use Express.
simplest implementation is https://stripe.com/docs/connect/collect-then-transfer-guide as I've linked.
i.e. use Express and have it do the onboarding. Information is required from the user to prove their identity for legal reasons.
@snow shadow thank you, I will try tomorrow, It's too late now. In tomorrow, can I continue to chat in this thread?