My stripe account has following balance in test mode:
$958,395.72
Available balance
$2,659.48
Pending balance
$3,010,474.35
Total volume (HKD)
This balance is in HKD.
Now I have to transfer money in USD.
If I try to transfer USD $4.25 then it gives me following error:
Type: Stripe\Error\InvalidRequest
Message: Insufficient funds in Stripe account. In test mode, you can add funds to your available balance (bypassing your pending balance) by creating a charge with 4000 0000 0000 0077 as the card number. You can use the the /v1/balance endpoint to view your Stripe balance (for more details, see stripe.com/docs/api#balance).
Transfer Code:
$check_balnace = \Stripe\Balance::retrieve();
$balanceArr = $check_balnace->__toArray(true);
$available_amount = $balanceArr['available']['0']['amount'];
echo $available_amount; // $958,395.72
$amount = 4.25*100;
$amount = 425;
\Stripe\Transfer::create(array("amount" => $amount, "currency" => "usd", "destination" => 'stripr_uid', "description" => 'test'));
Why this error is occurring even I have enough balance?
If a connected account balance is negative, Stripe debits their external account on file. Stripe will attempt to debit up to the maximum attempts allowed.
Your available Stripe balance may go into the negative if the cost of refunds or disputes is greater than the existing balance. Adding funds directly… Your available Stripe balance may go into the negative if the cost of refunds, disputes or Stripe fees is greater than the existing balance.
There are three possible reasons why a credit card payment might fail: Payments declined by card issuers. Blocked payments. Invalid API calls.
Stripe can withhold payment funds from sellers for several reasons. Merchants signing up with Stripe must sign a contract that states they understand that Stripe reserves the right to temporarily freeze, delay, or hold funds.
You can do one more thing to add funds to your test account.
Just login into your stripe account and go to Payments
and click on Create your first payment
or new payment
button.
When you click on it you can see a popup window that opens, here you can fill your amount.
Just remember to use card number: 4000000000000077
and click on Create payment
button.
Your payment will be added directly (bypassing the pending state) and you can make transfers with your stripe testing account.
Your Stripe account only has a HKD bank account, and thus it only has a HKD balance. You can't create transfers in USD because your account doesn't have a USD balance.
In order for your account to have a USD balance, you'd need to link a USD bank account to it. However, at this time, HK Stripe accounts can only have HKD bank accounts, as noted here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With