Applies to: Bank Accounts API
Use the Bank Accounts API to retrieve information about the bank accounts linked to a Square account.
Sellers can link bank accounts to their Square accounts in the Square Dashboard or Square app. A seller needs to link a bank account in order to transfer money into or out of Square.
When a seller links a bank account in their dashboard, Square generates a BankAccount
object. A BankAccount
represents the connected account.
With the Bank Accounts API, you can:
- Retrieve a list of all of a seller’s linked bank accounts with a call to ListBankAccounts
- Retrieve a specific connected bank account with a call to GetBankAccount
These endpoints are useful if you want to display a seller’s bank account information in your application.
- OAuth applications must have
BANK_ACCOUNTS_READ
permissions to use the Bank Accounts API
Square generates a BankAccount
object when a seller links a bank account to their Square account. Calls to ListBankAccounts and GetBankAccount return BankAccount
objects. The BankAccount
represents the linked account.
The below example BankAccount
represents a US bank account linked to a seller’s US Square account.
{
"bank_account": {
"id": "w3yRgCGYQnwmdl0R3GB",
"account_number_suffix": "971",
"country": "US",
"currency": "USD",
"account_type": "CHECKING",
"holder_name": "Jane Doe",
"primary_bank_identification_number": "112200303",
"location_id": "MER9ST0SUIQ9W",
"status": "VERIFIED",
"creditable": true,
"debitable": true,
"version": 3,
"bank_name": "Checking and Savings Bank"
}
}
Note
For comprehensive details about every BankAccount
field, see the BankAccount reference.
The primary_bank_identification_number
and optional secondary_bank_identification_number
field formats vary depending on the country where the bank is located, as detailed in the following table.
Country of the bank | ISO country code | primary_bank_identification_number | secondary_bank_identification_number |
---|---|---|---|
United States | US | Routing number | N/A |
Japan | JP | Bank code | Branch code |
United Kingdom | GB | Sort code | N/A |
Canada | CA | Institution number | Transit number |
Australia | AU | BSB code | N/A |
SEPA countries | Country code of the BIC | Swift BIC | N/A |
See International Development for more information about building Square applications that support sellers in multiple countries.
You can execute the following operations with the Bank Accounts API:
- ListBankAccounts: Retrieve a list of a seller’s linked bank accounts.
- GetBankAccount: Retrieve a specific connected bank account.
You can subscribe to the following webhooks to get notified when there are changes to a BankAccount
:
Event | Permission | Description |
---|---|---|
bank_account.disabled | BANK_ACCOUNTS_READ | Published when Square sets the status of a bank account to DISABLED. |
bank_account.verified | BANK_ACCOUNTS_READ | Published when Square sets the status of a bank account to VERIFIED. |
bank_account.created | BANK_ACCOUNTS_READ | Published when you link a seller's or buyer's bank account to a Square account. Square sets the initial status to VERIFICATION_IN_PROGRESS and publishes the event. |
The BankAccount.version
field is useful when processing webhook events. The version is assigned when the BankAccount
is created, and increments every time the BankAccount.status
changes. The status changes when Square makes any update to the BankAccount
, including when Square verifies, disables, or reenables the BankAccount
.
See Square Webhooks for more information about using webhooks with Square, and the Webhook Events Reference for a list of all supported webhooks.