Search code examples
phppayment-gatewaystripe-paymentspayment

Insufficient fund in stripe account


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?


Solution

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