Update a bank account 

Updates the metadata, account holder name, account holder type of a bank account belonging to a connected account and optionally sets it as the default for its currency. Other bank account details are not editable by design.

You can only update bank accounts when account.controller.requirement_collection is application, which includes Custom accounts.

You can re-enable a disabled bank account by performing an update call without providing any arguments or changes.

Parameters

  • default_for_currencyboolean

    When set to true, this becomes the default external account for its currency.

  • metadataobject

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

More parameters

  • account_holder_namestring

  • account_holder_typestring

  • account_typestring

  • documentsobject

Returns

Returns the bank account object.

POST /v1/accounts/:id/external_accounts/:id
curl https://api.stripe.com/v1/accounts/acct_1032D82eZvKYlo2C/external_accounts/ba_1NAiwl2eZvKYlo2CRdCLZSxO \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-d "metadata[order_id]"=6735
Response
{
"id": "ba_1NAiwl2eZvKYlo2CRdCLZSxO",
"object": "bank_account",
"account_holder_name": "Jane Austen",
"account_holder_type": "company",
"account_type": null,
"bank_name": "STRIPE TEST BANK",
"country": "US",
"currency": "usd",
"fingerprint": "1JWtPxqbdX5Gamtc",
"last4": "6789",
"metadata": {
"order_id": "6735"
},
"routing_number": "110000000",
"status": "new",
"account": "acct_1032D82eZvKYlo2C"
}

Retrieve a bank account 

By default, you can see the 10 most recent external accounts stored on a connected account directly on the object. You can also retrieve details about a specific bank account stored on the account.

Parameters

  • idstringRequired

    Unique identifier for the external account to be retrieved.

Returns

Returns the bank account object.

GET /v1/accounts/:id/external_accounts/:id
curl https://api.stripe.com/v1/accounts/acct_1032D82eZvKYlo2C/external_accounts/ba_1NAinX2eZvKYlo2CpFGcuuEG \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:"
Response
{
"id": "ba_1NAinX2eZvKYlo2CpFGcuuEG",
"object": "bank_account",
"account_holder_name": "Jane Austen",
"account_holder_type": "company",
"account_type": null,
"bank_name": "STRIPE TEST BANK",
"country": "US",
"currency": "usd",
"customer": null,
"fingerprint": "1JWtPxqbdX5Gamtc",
"last4": "6789",
"metadata": {},
"routing_number": "110000000",
"status": "new"
}

List all bank accounts 

You can see a list of the bank accounts that belong to a connected account. Note that the 10 most recent external accounts are always available by default on the corresponding Stripe object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional bank accounts.

Parameters

No parameters.

More parameters

  • ending_beforestring

  • limitinteger

  • objectstring

  • starting_afterstring

Returns

Returns a list of the bank accounts stored on the account.

GET /v1/accounts/:id/external_accounts
curl -G https://api.stripe.com/v1/accounts/acct_1032D82eZvKYlo2C/external_accounts \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-d object=bank_account
Response
{
"object": "list",
"url": "/v1/accounts/acct_1032D82eZvKYlo2C/external_accounts",
"has_more": false,
"data": [
{
"id": "ba_1NB1IV2eZvKYlo2CByiLrMWv",
"object": "bank_account",
"account_holder_name": "Jane Austen",
"account_holder_type": "company",
"account_type": null,
"bank_name": "STRIPE TEST BANK",
"country": "US",
"currency": "usd",
"fingerprint": "1JWtPxqbdX5Gamtc",
"last4": "6789",
"metadata": {},
"routing_number": "110000000",
"status": "new",
"account": "acct_1032D82eZvKYlo2C"
}
]
}

Delete a bank account 

You can delete destination bank accounts from a connected account where account.controller.requirement_collection is application (includes Custom accounts).

There are restrictions for deleting a bank account with default_for_currency set to true. You cannot delete a bank account if any of the following apply:

  • The bank account’s currency is the same as the connected account’s default_currency.
  • There is another external account (card or bank account) with the same currency as the bank account.

To delete a bank account, you must first replace the default external account by setting default_for_currency with another external account in the same currency.

Parameters

  • idstringRequired

    Unique identifier for the external account to be deleted.

Returns

Returns the deleted bank account object.

DELETE /v1/accounts/:id/external_accounts/:id
curl -X DELETE https://api.stripe.com/v1/accounts/acct_1032D82eZvKYlo2C/external_accounts/ba_1NAz2w2eZvKYlo2CgeR2w6yU \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:"
Response
{
"id": "ba_1NAz2w2eZvKYlo2CgeR2w6yU",
"object": "bank_account",
"deleted": true
}

External Account Cards 

External account cards are debit cards associated with a Stripe platform’s connected accounts for the purpose of transferring funds to or from the connected accounts Stripe balance.

This API is only available for users enrolled in the public preview for Accounts v2 on Stripe Connect. If you are not in this preview, please use the Accounts v1 API to manage your connected accounts’ external bank accounts instead.