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?
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.