Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

No such external account on stripe when trying to payout to bank_account

I'm trying to make a payout using stripe, So the first thing i did is to check my available balance using

curl https://api.stripe.com/v1/balance
-u sk_test_MkyVP8GpUk______:

it returns this:

{
  "object": "balance",
  "available": [
    {
      "currency": "usd",
      "amount": 6004,
      "source_types": {
      "card": 52,
      "bank_account": 5952
    }  
 }
],
  "connect_reserved": [
    {
      "currency": "usd",
      "amount": 0
    }
  ],
  "livemode": false,
  "pending": [
    {
      "currency": "usd",
      "amount": 6351,
      "source_types": {
      "card": 12303,
      "bank_account": -5952
     }
   }
 ]
}

All i understand from this response is that avaiable[card] = 52 it means that if i want to make a payout to a credit card it should be a sufficient amount of money on it, Now there is $59,52 in avaiable[bank_account], So i decided to make a payout to an external account of an account on stripe, using their API docs i used this:

curl https://api.stripe.com/v1/payouts \
-u sk_test_MkyVP8GpUkur______: \
-d amount=400 \
-d currency=usd \
-d destination=ba_1B3jVULjo5______ \
-H "Stripe-Account: acct_1B0T___"

This destination (ba_1B3jVULjo5____) is an external account of that account ID, the problems is when i process this curl it gives me:

{
  "error": {
    "type": "invalid_request_error",
    "message": "You have insufficient funds in your Stripe account for this transfer. Your card balance is too low.  You can use the the /v1/balance endpoint to view your Stripe balance (for more details, see stripe.com/docs/api#balance).",
    "param": "destination"
  }
}

How can i fix this?, is my understanding to the type_source in avaiable balance is correctly?

I make sure that there is an external account to the account with that id too.

Thanks in advance.

like image 506
Amr Adel Avatar asked Dec 21 '17 08:12

Amr Adel


People also ask

How do I enable payout on Stripe?

Log into your Stripe Dashboard and go to Balance → Payouts. Click “Pay out funds instantly” Enter an amount to pay out and select the debit card to which you wish to transfer funds. If you do not have an eligible debit card linked to your account, enter your Visa or MasterCard debit card details.

Do I need a Stripe account to receive money?

If you do not have a bank account on file in Stripe, you will need to add one before you're able to receive payouts. To add a bank account Log into… Bank account details can be updated directly from the Stripe Dashboard: From the Stripe dashboard side menu, click on Settings and then click on Bank…

Can Stripe payout to different accounts?

Each additional account can use a separate bank account for payouts (although you can use the same bank account if you wish).

Does Stripe go directly to bank account?

For you to receive funds, Stripe (or your platform) makes payouts to your bank account.


1 Answers

Try including the source_type parameter in your payout creation request:

curl https://api.stripe.com/v1/payouts \
  -u sk_test_...: \
  -H "Stripe-Account: acct_..." \
  -d amount=400 \
  -d currency=usd \
  -d destination=ba_... \
  -d source_type=bank_account

Note that you can omit the destination parameter entirely unless there are multiple bank accounts for the currency and you want to send the funds to a non-default bank account.

like image 130
Ywain Avatar answered Nov 30 '22 08:11

Ywain