2
votes

So I have this React application where users can buy gift cards online, and I'm using Stripe Payments. So far, the users can pay the money, except it will go to me(through Stripe), not to the merchant selling the Gift Cards on my app.

Is there a way with Stripe to send money to a bank account? Keep in mind that the bank account will be different for each Gift Card any users can buy. For example, one person selling the gift cards will be the one earning the money through a different bank account than another person.

If there is a way, please tell me how to implement it, and thank you very much in advance.

1
No, stripe cannot do this. You need to talk to your bank to have access to money transfer API. Most business accounts have access to this feature but it depends. In my country banks will not talk to your company unless you are really doing a lot of transfers on a daily basis. But what we do have is most banks provide excel/csv upload services to business accounts to do things like pay employee salary etc. Most startups have their backend generate a csv file in the correct format daily and someone will login and upload it to the company's bank account. That is my country, yours may be different - slebetman
I would recommend reaching out to Stripe's support team to discuss your exact business model: support.stripe.com/contact - koopajah
check stripe connect there we have payout feature stripe.com/docs/connect - Rahul Kumar

1 Answers

5
votes

I finally figured how to do this. You have to follow these steps:

1: Integrate Stripe Checkout

2: Integrate Stripe Onboarding for express accounts

These two steps are the fundamental steps in doing this.

How To Integrate Stripe Checkout:

You can get stripe checkout by using the

stripe.checkout.sessions.create

method. You can then pass in arguments like:

payment_method_types: ["card"],
locale: locale,
line_items: [
  {
    name: `${Name}`,
    images: ["Images"],
    quantity: 1,
    currency: usd,
    amount: price, // Keep the
    // amount on the server to prevent customers
    // from manipulating on client
  },
],
payment_intent_data: {
  transfer_data: {
    destination: product.id,
  },
},
success_url: `success`,
cancel_url: `cancel`,

What this will do is create a new checkout session to use.

Next Step, Onboard the businesses

All you have to do for this is to go to a URL:

const url = `https://connect.stripe.com/express/oauth/authorize?${args.toString()}

where args is this:

const state = uuid();

const args = new URLSearchParams({
  state,
  client_id: process.env.STRIPE_CLIENT_ID,
});

Send this data to your frontend and you will get a good looking form that onboard users and creates express accounts for them.

The basic concept is simple, you onboard the businesses, which creates a stripe account for them. Then with the checkout form, you send the money to that created stripe account. This account will automatically deliver to the businesses bank or debit account, thus making customer to merchant payments.

Here are some helpful documentation I used to solve the problem:

I hope this helps!