Services Plugins FAQs

Need help with Stripe Marketplace Express Transfer of Funds

As of right now, I am using the Stripe Marketplace Express plugin to signup sellers on my platform as Express accounts. I am also using it to collect payments from users (athletes), collect a platform fee, and then transfer the remaining funds to these sellers (instructors). Screenshot below:

This transfer of funds happens as soon as the athletes submit their payment. However, I would like the transfer to happen after their lesson (what the athlete is paying for) occurs.

I know in the plugin I can create a pre-authorization, but it also states that un-captured charges expire in 7 days. My problem is that these lessons can be booked very far in advanced if wanted (i.e weeks, months, etc…) and I don’t want the instructor to be able to collect those funds until after the lesson takes place. I also saw in stripe I can setup delayed transfers but if I remember correctly, they were automated options such as every Friday, or every other Friday. The other option I saw was manual transfers, but does this mean that I would have to initiate the transfer every time - if so, this does not seem scalable. If not, is there a way I can setup these manual transfers to be scheduled per the lesson’s date?

Otherwise, is there a way to setup the transfers as I’ve described above?

Thanks in advance!

Hello, @anthony.woodard91
Thanks for describing your use case here.

Allow me to propose you the next flow for this case, which should be created with the Backend Workflow:

  1. Create an API Workflow:

  2. Schedule the specific date and time for proceeding with the payment:

The second option for your scenario - is manual payouts, which you already mentioned above. Please check the additional documentation for this feature: https://stripe.com/docs/payouts#payout-schedule

Hope it will help you.
Best regards,

@Ecaterina

Thanks for the reply.

With option 1 above (api workflow), do you have any suggestions for mitigating the risk of when an athlete user makes a payment but their card information does not go through? For example, if I went to make a payment but my card isn’t being charged until next month but my credit card expires in that month, how would I know that my payment didn’t go through?

As for option 2 (manual payouts), I’ve taken a look at the documentation you sent me and it looks like I was mistaken about what this means. According to the documentation, it sounds like this is the payout schedule for funds from my account to be sent to my bank account. However, I’m looking for control over when to send funds to an instructors account that I’ve collected through the platform. Thoughts?

Alternatively, I’ve been looking into a 3rd option possibly that I’m hoping you could help me with. I see when users create their express accounts, I can assign the “transfers” capability to them instead of the “card_payments” capability. However, if I change this, during the checkout process, I get the below error which I believe is due to the current checkout process I’ve created based on the “card_payments” capability. Can you let me know if “transfers” would suite my use case better, and if so, what needs to be updated to use it?

Thanks

Hello, @anthony.woodard91
Thanks for your response.

f you turn off automatic payouts in the Dashboard, you must manually send funds to your bank account. You can do this either in the Payouts section of the Dashboard or by creating payouts using the API.
If you are creating a manual payout on a Stripe account that uses multiple payment source types, you’ll need to specify the source type balance that the payout should draw from. The balance object details available and pending amounts by source type: Stripe API reference – Create a payout – curl

Please note that all transactions and their status are displayed in the Stripe Dashboard. In case of an unsuccessful transaction, you will see a notification about it.

The capabilities you choose for a connected account determine the information you need to collect for that account. To reduce onboarding effort, only request the capabilities you need. The more capabilities you request, the more information you must collect.


Please make sure that all these capabilities are enabled within your Stripe account.

Please check here more details about the capabilities for the accounts: Account capabilities | Stripe Documentation
Using Connect with Express accounts | Stripe Documentation

Please check these links in order to define more about capabilities and let me know about the result.
Best regards,

@Ecaterina Can we take a step back as I feel that your last reply lost sight of what my use case is.

To summarize, I have users charge other users for their services that can be done in the future. I would like to utilize this plugin to collect the funds and then transfer them to the charging user after they have provided the service.

I have the “card_payments” capability added to the above field as that also covers having “transfers” enabled for these express account users. Also, it doesn’t sound like manual payments should be something I’m focused on as Idc when they money is transfered from stripe to my bank, I only care about the timing of the transfer of funds from my stripe account to these other express user accounts that I’ve onboarded.

Can you let me know what the best way to do this with the stripe marketplace express plugin?

Thanks,

Hello, @anthony.woodard91
I completely understand your request :pray:

As it was mentioned earlier, there are 2 ways to implement approximate workflow for this case.

So, the best way is to schedule the specific date for transferring the amount for performed service.
The administrator of the platform will know the schedule of each coach, so it can be used within the Stripe platform.

Unfortunately, there is no other mechanism for playing around with scheduling the payments (except for charging manually after each service provided).

Hope it will be useful for you.
Best regards,

@Ecaterina Thanks for reiterating.

As I was looking into all of the plugin’s options, I came across “create a transfer.” Can you help me understand what this option does?

Hello, @anthony.woodard91
I apologize if my answer was not helpful enough for you :pray:

For Express and Custom accounts, Stripe recommends that you create separate charges and transfers if destination charges (Creating destination charges on your platform | Stripe Documentation) don’t meet your business needs. With this charge type you will be able to proceed with the next actions:

  • You create a charge on your platform’s account and also transfer funds to your user’s account. The payment appears as a charge on your account and there’s also a transfer to a connected account (amount determined by you), which is withdrawn from your account balance.
  • You can transfer funds to multiple connected accounts.
  • Your account balance will be debited for the cost of the Stripe fees, refunds, and chargebacks.

Very important is to note that Separate charges and transfers are supported only if both your platform and the connected account are in the same region. For example, both in Europe or both in the U.S.

Please check this official documentation regarding the Transfers within the Stripe platform:

Please let me know if provided information was enough for you and you have any additional questions for your use case?
I will be happy to assist you.
Best regards,