Insufficient fund in stripe account
Solution 1
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.
Solution 2
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.
Solution 3
\Stripe\Stripe::setApiKey("sk_test_vKA2W1UsnAfPfDsA1dfdK04n3dfr6");
\Stripe\Charge::create(array(
'currency' => 'USD',
'amount' => 10000,
'card' => 4000000000000077
));
You can use this code and add balance for make transfer operation for your test account.
Solution 4
If you are getting Insufficient funds error then you can use the below card number to transfer the payment in Test mode. Card Number : 4000000000000077
![Pathik Vejani](https://i.stack.imgur.com/jd3T1.jpg?s=256&g=1)
Comments
-
Pathik Vejani about 2 years
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?
-
Sujal Patel over 6 yearshey, Manish, I'm trying but still, show zero balance and in the transfer, API shows insufficient balance error.
-
lasec0203 almost 6 yearsA link to the docs showing why
4000000000000077
is the magic card number would be helpful -
Mahesh Yadav almost 6 yearsShowing error as below No Such Token:4000000000000077
-
Adrian over 5 yearsHere is the doc: stripe.com/docs/testing Scroll down to this part: Testing for specific responses and errors
-
sequielo over 4 yearsYou must use the associated card token, not the card number. For example, that card has a token
tok_bypassPending
. So you must use'source' => 'tok_bypassPending'
Source: stripe.com/docs/testing#cards-responses -
TharakaNirmana over 2 yearsThis solution worked for me in the testing environment. What happens in the live environment?