With Stripe, can I have two charges from two different stripe accounts on one form? ie) Have the setup fee be sent Company A and the product fee sent to Company B...
I am creating a subscription based website however, I need to charge consumers a fee for their transaction as well as send the payment directly to the company. Example: The consumer will be charge a transaction fee of $5, which will go to my company. Furthermore, the price of the product will go to the company that posts the product. Therefore, I get the transaction fee and the company gets the money for their product.
Is there a way to do this with Stripe?
Yes, you'd need to use Stripe Connect to accept payments on behalf of other accounts, and optionally take a cut.
In your case, your account would be the platform's account and the company that ships the product would be a connected account.
You could then accept charges on behalf of this company, and specify your own application fee: https://stripe.com/docs/connect/payments-fees
Related
Pretty new to Stripe, we're building an online marketplace. Each user can buy assets from any other user. We also take fees for each payment.
We go with connected accounts. Seller goes through the onboarding flow (create connected account, create account link etc), while buyer is registered as a customer of our platform on Stripe.
Now, whenever buyer makes a payment we create a payment intent to pay to us (amount + 20% fee via):
stripe.paymentIntents.create(params)
Then we create new payout to seller (amount) using source transaction from payment intent above:
await stripe.transfers.create({
amount: payment.amount * 100,
currency: payment.currency,
destination: seller.stripeAccountId,
source_transaction: sourceTransaction,
});
Is this the preferred and best way of handling this? In terms of time, we need first to wait for payment to settle to our bank account to be able to payout seller?
Is there any better way of doing this instead of manual payouts?
Is there a way to make direct transfer to connected account when user does payment?
I tried with payment intent, specifying connected account id in request, but API is complaining that customer id is on our platform but account id is specified, so it's not possible obviously.
Also, manual payouts would come handy to simulate payment escrow/deposit. When user create a request for some asset, we would immediately transfer certain amount to our account, like reserving that amount. And if the seller accepts the offer, we would do a payout. If seller rejects the offer, we would do payout to the buyer, giving him back his money.
Does this make sense?
Thanks in advance
You don't need Payout (yet) in your use case. You are doing Separate Charges and Transfers, and fund simply moves from your Account's balance to Connected Account's balance. It hasn't been out of your Connected Account's balance to your Connected Account's bank account yet, which is called "Payout".
In another word, Payout is separated process than Charges and Transfers. Charges and Transfers can happen immediately, and Payouts normally happen later on a daily basis or manually.
Find more explanation on Connect Balance.
There is also Destination Charge which is simpler than Separate Charges and Transfers. I recommend Destination Charge unless you have specific reason to use Separate Charges and Transfers, ie. you need to transfer to multiple Connected Accounts on one payment.
I'm launching a marketplace where some professionals offer their services and customers can book and pay them online. I take percentage fees in the process and I use stripe direct charges for that. So when a customer proceed to a stripe payment though my website the professional (the connected account) gets paid and automatically pays me (the platform account) the application fees percentage that I set.
I've searched on stripe website and couldn't find an answer: Is it possible to generate automatically some invoices from my platform account to the connected account that would be related to the application fees ?
For example if the professional's price is 10$ and the application fees that I set is 10% how could I generate the 1$ invoice to the professional ?
I only found how to build or generate invoices for connected account to their customers but not invoices involving the platform account and the connected account.
It seems like what you are looking for is an application_fee[1] . As the diagram[2] displays, the professional (Connected account) charges the customer directly but your application fee is collected and deposited in your account during the funds flow of the Connected account.
This does not provide any invoice to the professional since the application_fee is sent to your account at the same time as the remaining funds are transferred to the Connected account. This process allows you to have a set percentage based application fee you charge the professionals on your marketplace.
The application_fee approach is the recommended way of collection a fee as part of a direct charge. This will not generate an invoice to your Connected accounts automatically but you could always generate one of your own (outside of Stripe) as a record of the fee for those accounts.
https://stripe.com/docs/connect/direct-charges#collecting-fees
https://stripe.com/docs/connect/direct-charges#flow-of-funds-with-fees
Normally when using stripe I can create products and add tax rates, shipping rates. After the payment I can create invoice. I want to do the same thing when using connected account. In my app I want users to create stores and this stores' product will be saved to their connected stripe account. Stores in my app will set shipping rates and tax rates. Then I can automatically invoice the payment. That's what I want to do. Is it possible to do with stripe? Because I read the documents but I could not understand the invoicing on connected accounts. Because when invoicing the connected account only customer id required. That confused me.
Invoice connected accounts document
I'm not sure you'll be able to do things exactly how you describe but I'd suggest you reach out to Support to talk about this further: https://support.stripe.com/contact/email
I have account B connected to account A (both are standard accounts).
What I'm trying to do: accept a payment through A and send the full amount to B, which then gets charged the corresponding Stripe fees.
What I did: Created a webhook that fires on charge.succeeded and does a transfer to the connected account (B), using the charge id in source_transaction (As per https://stripe.com/docs/connect/charges-transfers)
What happens: The connected account (B) seems to get the full payment, without fees, the fees seem to be charged to account A
Could it be that it's because in test mode? The idea is to use account A to send/split a payment between other accounts (1 or more), as in a marketplace.
You'd usually simply use a Direct Charge — https://stripe.com/docs/connect/direct-charges. That's exactly how you platform A makes an API call on connected account B to facilitate a payment, and the fees are paid by B.
The link you posted is for a more advanced integration where the platform processes the payment(and therefore pays the Stripe processing fees) and then transfers money to a connected account(like a company like Lyft charging a rider, then transferring some of the money to the driver).
The idea is to use account A to send/split a payment between other accounts (1 or more), as in a marketplace
You can't use Direct Charges to split a single payment between multiple connected accounts such that they all pay the fees separately. The most you could do is make multiple separate charges — like take the card from the customer, clone it to each individual account involved, and do N separate charges (https://stripe.com/docs/connect/cloning-customers-across-accounts) on each of them. I wouldn't really recommend that since it likely leads to more declines and disputes(it's weird to have a shopping cart with 5 items from 5 sellers and get charged by the actual 5 sellers, I would expect to be charged once by the company that runs the marketplace).
If you really need to do this type of business model where you take a single payment and then split between multiple sellers then you do need to take the approach you linked to, and have the platform pay the fees, that's the only way, it's specifically discussed at https://stripe.com/docs/connect/charges#types in detail.
I'm trying to work out the correct method of attributing payments on invoices that are automatically created after a user purchases something on site, payment handled by Stripe (or other payment gateway). Here is the current flow from user action to Xero interaction (all working fine):
User purchases membership on site
Payment is processed by Stripe on-site
If payment is successful, an Invoice is generated in Xero (and a contact if it doesn't exist)
Payment is added to the invoice immediately after it is generated, and it's status is set to Paid.
Paid invoice is emailed to new member from Xero
Stripe deposits money in nominated business account each day
I have two questions about this workflow
What is the normal practise for dealing with PaymentAccount when applying a payment? Should we create a new payment account just for Stripe? A new "Bank" account for Stripe? The context of this question is selecting the correct PaymentAccount ID for the payment when creating the invoice.
Will reconciliation still be possible for these paid invoices when Stripe sends payments (assuming they send itemised payments)? Even if the money is deposited in a different (Real) account integrated in Xero?
Thanks
Your questions about stripe are more appropriate in Xero forums, since they are bookkeeping questions not API qestions.
Stripe can provide a bank feed to Xero, and you should set this up.
This means you have a Stripe bank account, which is the therefore the payment account. Payment reconcilations are easy (but can't be done via API).
The actual deposit of real money into a real bank account will be a consolidated amount typically called a 'settlement', typically one day of transactions, less fees, refunds and possible timing issues etc. The Stripe bank feed will have an entry for this. It is reconciled by a Xero user as a bank transfer between the Stripe bank and the real bank, and is nothing to do with the payment on the invoice.