Good evening, I’m making this post because for a few days I’m stuck on an error and I really don’t understand how to fix it. In fact when I activate Stripe Connect integration with my API etc, in “test” mode, everything works fine, sellers can create accounts etc. But when I switch to production mode with the stripe Live API key, 3/4 of the sellers can’t create accounts and I get an http 500 error “this site cannot currently process this request.”
HTTP ERROR 500
I have no errors in the stripe api logs though.
My second question is about connected stripe accounts, I would like to know if it is possible to modify the settings/code of hivepress so that the accounts are created as standard and not Express, is this possible?
Thank you for your answer, I was able to use the debugging log to find the bug etc.
I would have a second question though, I could see that the incoming funds were coming directly to the platform’s account then once the order was marked as “completed”, the order amount is transferred directly to the seller. I would like to know if the order amount minus the commission is frozen and therefore cannot be transferred to the company’s bank account (since I see that it is counted as part of the next transfer when the money should go back to the seller and therefore if the money is transferred to our account before the order is finished, there will be a problem).
This is related to Stripe payment terms, currently WooCommerce just accepts payments via Stripe and after some time they appear on the Stripe Connect balance, and HivePress triggers a transfer from this balance to a linked vendor’s Stripe balance when the order is Completed - the rest is managed by Stripe. Also, HivePress references the source payment (made via WooCommerce) when triggering a transfer, this allows Stripe to process a transfer even if the source payment didn’t reach the Stripe Connect balance yet.
Okay I see, but the problem is that since the payments are all mixed into the main account balance, if a transfer to the administrator’s bank account is initiated automatically for example, well the funds that were supposed to go to the seller will be transferred with it and by the time the order is completed, there won’t be enough funds to make the transfer.
To avoid this, I would like to know how I could modify the code so that the transfer is initiated as soon as an order has the status “in progress” and not “completed” ?
Sorry, there’s no simple snippet to change this but the issue you described is fixed in the recent Marketplace update - even if the main Stripe Connect balance doesn’t have enough funds, the transfer will still work since it references the source transaction in the code (the one accepted via WooCommerce). This way Stripe allows a transfer since it detects a linked transaction which is still pending (the one that takes a couple of days to appear on the Stripe Connect balance).
I don’t understand well because if the balance of the main account is 0, how even if the code retrieves the source_transaction, the transfer of funds can take place? It means that in any case the order amount is still in “pending” on stripe until the order is “completed”?
Yes, even if the balance is zero, Stripe trusts the source_transaction parameter since it references the payment that’s still being processed (and may be processed for a few days), so it allows to make a payout in advance Creating separate charges and transfers | Stripe Documentation Vendors will not be able to withdraw this payout to their bank though, until the source_transaction is processed.
Please check the linked Stripe docs, they allow making a transfer if it references pending payment (the one made by the customer which takes a couple of days to appear on Stripe Connect balance), this way sellers get a payout transfer even if the order payment is still processing, but they can’t withdraw it from Stripe until the referenced payment is processed.
And as I thought, the transfer is well done to the seller’s account thanks to the Source transaction, however, the funds can be transferred to the seller’s bank account only if the funds from the platform are sufficient. However, if a customer places an order for 115€, 115€ are cashed on the platform’s Stripe account, time passes, the 31st of the month arrives and the seller still hasn’t finished the order so the order is still “pending”. However, on the 31st of the month, all the funds in the platform’s Stripe account are transferred to the bank account. So, 115€ are transferred to the bank account of the platform. A few days later, the service is finished, the transfer is initiated but the funds are no longer available. What should we do?
Please let me know if Stripe automatically withdraws funds at the end of the months for all the linked vendor accounts or it’s something optional, can vendors decide when to withdraw funds to their bank account?
Yes, vendors can’t withdraw funds until the source transaction is processed, but transfer can be maid and you can avoid the “payout failed” error this way, e.g. if the order is marked as completed on your site before the source transaction is processed by Stripe.
The administrator’s account is configured to have an automatic transfer of funds from its balance every 31st of the month, the sellers are configured on a delayed transfer of 7 days by default (transfer after a transfer has taken place).
So the tranfers schedule (payouts to the vendor’s bank account) is defined in the main admin’s Stripe Connect account? Maybe vendors have some settings to adjust this for their sub-accounts separately?
Please try testing this with sandbox payments, maybe Stripe will simply skip those transfers that are still waiting for the source transaction to be processed. If they have this source_transaction parameter they probably have some specific exceptions for such transfers for payouts.