Bank details for a custom stripe connect account - stripe-payments

When dealing with Stripe's custom connect accounts, do I need to enter the bank information manually using their API or is it possible to get the bank information as part of the onboarding process that Stripe offers for custom accounts?
I am using the following onboarding to allow Stripe to handle the entire verification process for my custom connect accounts:
https://stripe.com/docs/connect/connect-onboarding

The hosted onboarding does not collect bank account details as part of the flow, by design(it only handles identity verification). This is information you'd need to collect from the user in your own onboarding forms and then pass to the API to create the payout destination via the ExternalAccount APIs https://stripe.com/docs/api/external_accounts
For example, as part of your onboarding flow, you might build a page that collects some basic information from the user like their email address, uses stripe.js to collect bank account details, and then submit to your server to create the Account object and then send the user through the hosted identity verification flow.

Related

I have an issue with using stripe API for send payments to my customers bank account

I want to send payments to my customers bank account using stripe API.
I have used createExternalAccount API. Please help me out from this situation.
Error I got below:
The provided key 'sk_live_oj**********************' does not have the
required permissions for this endpoint on account 'acct_************'.
Having more permissions would allow this request to continue.

Stripe Onboarding and external accounts

I am using Stripe Onboarding on my marketplace to ease the process of getting my customers info (custom accounts). But it does not ask the user his external (bank) account information so payouts stay disabled. Is it normal ?
I am using:
type: 'custom_account_verification',
collect: 'eventually_due',
using the other type does not change anything
Stripe does not collect external account information (bank account or debit card) today in the Hosted Onboarding page. They focus on collecting personal information about the owner(s) of the account/company.
Today, you need to collect this information separately on your website. The easiest solution is to collect bank account details and tokenize this client-side with Stripe.js and then create an external account server-side via the API.
Just for reference Stripe is partnering with Plaid for this.
https://stripe.com/docs/ach#using-plaid
https://plaid.com/docs/stripe/

Store data in Stripe to be sent back as part of web hook data?

I am working for the first time with Stripe. I am using stand alone accounts. I have a platform account also. In my web site a number of people with different Stripe accounts will be opening up campaigns for which money can be donated by various donors. Each campaign owner has a separate stripe account and the platform will be charging through the campaign owner's stripe account.
So what it amounts to is the platform account will be charging for a number of campaigns through each campaign owner's Stripe account. My problem is related to web hooks. One point to remember is each campaign has an id associated with it in the database and I am storing the API key of each campaign owner's stripe account and associating it with this id. To get Stripe data from the web hook in the web hook end point I have to set the API key of the connected account with a statement like:
\Stripe\Stripe::setApiKey("api key of stand alone account");
$input = #file_get_contents("php://input");
The trouble with this is there is one web hook end point for a number of Stripe accounts. I cannot hard-code the API key in the above statement. I have to fetch the appropriate API key from my database using the id.
But when Stripe invokes the web hook end point I simply do not have the campaign id with me in order to fetch the appropriate API key and set the API key. Is there any solution around this?
You don't need to store each account's API key. The only information you need to store is the account ID ("acct_..."). With standalone accounts, your integration will receive the account ID in the last step of the OAuth flow, in the stripe_user_id parameter.
You can then issue API requests on behalf of this account by using your own (the platform's) API key, and the Stripe-Account header.
Regarding webhooks specifically, events sent to your server via a "Connect" endpoint will include a user_id field with the account ID. So you can do something like this:
\Stripe\Stripe::setApiKey("PLATFORM_API_KEY");
$input = #file_get_contents("php://input");
$event_json = json_decode($input);
$user_id = $event_json->user_id;
// if you need to send an API request on behalf of this account,
// for example if you want to verify the event by fetching it from
// Stripe, you can use the Stripe-Account header:
$event = \Stripe\Event::retrieve(
$event_json->id,
array("stripe_account" => $user_id)
);

PayPal API Rest & Merchant e-mail account

this is my question:
Is it possible to use the PayPal API Rest with my API-KEY, but with different merchant e-mail account for accept a payment?
I need to allow the users of my web application to connect their paypal account to receive payments on their paypal account. So can i set the target merchant e-mail of a payment using API REST or CLASSIC API?
Thanks in advance
Unfortunately REST API does not have this functionality at this time. To do this you can use Adaptive Payments to be the caller of the API and supply receiver email addresses, or Permissions API to make Classic API calls for other users.

User to user payment on stripe

My requirement is, from my application I want my user to transfer the amount to another user of my application. Assume that both user have stripe account. I have gone through stripe docs, and I understood that in order to do transfer from one user account to another I need to use stripe connect. I could able to do authentication and I'm getting access token successfully for the sender. How can I make a transfer to a recipient ? I have only recipient's email id with me. Should I need to create a recipient through code and do the transfer using that recipient id returns from stripe ?
Im using php. Please help me.
Stripe Connect doesn't work like that. Instead, Connect allows an application to make card charges on behalf of a user and take a portion of the amount. The rest is automatically and immediately put into the user's Stripe account, where it's subject to the normal bank account transfer rules (2-7 day rolling transfers or API-driven manual transfers).
Another way to do this is using Stripe Recipients and Transfers. For example, your application charges a customer $10. You create a Recipient for your user using their bank account information (account number and routing number). Then, you can create a Transfer from your Stripe account to their bank account. Note that this only works for US bank accounts as of today.
If you really want to do user to user transfers, unfortunately Stripe isn't the platform for you. You could use PayPal or you could possibly use Balanced Payments, although again you can only transfer money to and from US bank accounts.

Resources