Bank Accounts
A bank account is an account held at a bank or other financial institution held on behalf of your company or customers.
Bank accounts are owned by your customers or application. They can be used as the source
or destination
in the creation of transfers.
Sphere verifies every bankAccounts on creation. On creation bankAccounts
will have a pending status
until verified by Sphere. They will move to a status
of active once verified.
Supported Currencies
The following table shows the supported currencies for bank accounts based on use case:
Currency | B2B | B2C | C2C |
---|---|---|---|
๐บ๐ธ USD | โ | โ | โ |
๐ช๐บ EUR | โ | โ | โ |
๐ง๐ท BRL | โ | โ | โ |
๐ฒ๐ฝ MXN | โ | โ | โ |
๐ต๐ญ PHP | โ | โ | โ |
๐จ๐ด COP | โ | โ | Coming Soon |
๐ฌ๐ง GBP | โ | โ | Coming Soon |
๐ฎ๐ณ INR | โ | โ | Coming Soon |
๐ธ๐ฌ SGD | โ | โ | Coming Soon |
๐ป๐ณ VND | โ | โ | Coming Soon |
๐น๐ญ THB | โ | โ | Coming Soon |
๐ฎ๐ฉ IDR | โ | โ | Coming Soon |
The Bank Account object
The following is the json object representation of a Sphere bank-account.
Properties
- Name
id
- Type
- string
- Description
A unique identifier assigned to the bank account object, which allows it to be distinctly recognized within the system.
- Name
status
- Type
- string
- Description
Indicates the current state of the bank account:
pending
: The account is awaiting verification by Sphere. This is the default status upon creation.active
: The account has been successfully verified and is operational.inactive
: The account has been deactivated or soft-deleted by Sphere.invalid
: The account did not pass validation due to incorrect or incomplete information.
- Name
customer
- Type
- string
- Description
Represents the unique
id
of the customer associated with the bank account.- Name
currency
- Type
- enum
- Description
Defines the operating currency for the bank account.
- Name
accountDetails
- Type
- object
- Description
Contains detailed information about the user's bank account, varying based on the selected currency.
- Name
bankName
- Type
- string
- Description
Specifies the name of the bank associated with the account, such as "Bank of America."
- Name
accountHolderName
- Type
- string
- Description
The full name of the individual or entity that owns the bank account.
- Name
accountName
- Type
- string
- Description
The name or alias of the account used for identification purposes.
- Name
accountNumber
- Type
- string
- Description
The unique number identifying the bank account (masked in retrieval operations).
- Name
routingNumber
- Type
- string
- Description
The nine-digit routing number used to identify the bank and process transactions within the United States.
- Name
accountType
- Type
- enum
- Description
Specifies the type of bank account. Valid values are
checking
orsavings
.
- Name
lookupKey
- Type
- string
- Description
A unique key that allows for quick retrieval of resources associated with the bank account.
- Name
meta
- Type
- object
- Description
A JSON object containing additional custom information about the bank account in key-value pairs.
- Name
beneficiaryAddress
- Type
- object
- Description
Contains the address details of the account's beneficiary.
-
- Name
line1
- Type
- string
- Description
The first line of the address, such as the street name, PO Box, or company name.
-
- Name
line2
- Type
- string
- Description
The second line of the address, such as the apartment, suite, or unit number.
-
- Name
city
- Type
- string
- Description
The city, district, suburb, or town where the beneficiary resides.
-
- Name
postalCode
- Type
- string
- Description
The ZIP or postal code of the beneficiary's address.
-
- Name
state
- Type
- string
- Description
The two-letter state or province code, following the ISO-3166 subdivision code.
-
- Name
country
- Type
- string
- Description
The three-letter country code of the beneficiary's address, adhering to ISO-3166-1 alpha-3.
-
- Name
updated
- Type
- string
- Description
The timestamp of the last update made to the bank account, formatted as an ISO 8601 string.
- Name
created
- Type
- string
- Description
The timestamp of when the bank account was first created, formatted as an ISO 8601 string.
- Name
deleted
- Type
- string
- Description
The timestamp of when the bank account was deactivated or deleted. Deletion is performed as a soft delete, setting the account status to
inactive
.
BankAccount Object
{
"id": "bankAccount_123e4567-e89b-12d3-a456-426614174000",
"status": "active",
"customer": "cus_abc123",
"currency": "usd",
"accountDetails": {
"bankName": "Bank of America",
"accountHolderName": "John Doe",
"accountName": "Primary Checking Account",
"accountNumber": "****5678",
"routingNumber": "123456789",
"accountType": "checking"
},
"lookupKey": "b9a34cf6004a4e8383492c50d56a375b",
"meta": {
"purpose": "Payroll Account",
"notes": "Main bank account for business transactions"
},
"beneficiaryAddress": {
"line1": "123 Elm Street",
"line2": "Suite 500",
"city": "San Francisco",
"postalCode": "94107",
"state": "CA",
"country": "USA"
},
"updated": "2025-01-24T12:34:56Z",
"created": "2025-01-01T09:00:00Z",
"deleted": null
}
Create a bank account
Parameters
- Name
bankName
- Type
- string
- Required
- Required
- Description
The name of the financial institution where the bank account is held.
- Name
accountName
- Type
- string
- Required
- Required
- Description
A descriptive or user-defined name for the bank account, often used for identification purposes.
- Name
currency
- Type
- enum
- Required
- Required
- Description
The currency in which the bank account operates, defined as an ISO 4217 currency code.
- Name
beneficiaryAddress
- Type
- object
- Required
- Required
- Description
Contains the physical address details of the account's beneficiary.
-
- Name
line1
- Type
- string
- Description
The primary address line, such as a street name, PO Box, or building name.
-
- Name
line2
- Type
- string
- Description
Additional address details, such as an apartment, suite, or unit number.
-
- Name
city
- Type
- string
- Description
The name of the city, town, or municipality where the beneficiary resides.
-
- Name
postalCode
- Type
- string
- Description
The postal or ZIP code for the beneficiary's address.
-
- Name
state
- Type
- string
- Description
A two-letter state or province code following the ISO-3166 subdivision standard.
-
- Name
country
- Type
- string
- Description
A three-letter ISO-3166 country code representing the beneficiary's location.
-
- Name
meta
- Type
- object
- Description
A customizable set of key-value pairs that allows additional metadata to be stored about the bank account.
- Name
lookupKey
- Type
- string
- Description
A unique identifier used to query or retrieve resources linked to a specific bank account.
- Name
thirdPartyBeneficiaryInfo
- Type
- object
- Description
Details about a third-party beneficiary, which vary depending on whether they are an individual or a business.
- Name
accountDetails
- Type
- object
- Required
- Required
- Description
Contains detailed attributes of the bank account, tailored to the specified currency.
- Name
accountNumber
- Type
- string
- Description
The unique number identifying the bank account (masked in retrieval operations for security).
- Name
routingNumber
- Type
- string
- Description
The nine-digit routing number for identifying banks and processing domestic transactions in the United States.
- Name
accountType
- Type
- enum
- Description
Specifies the type of account, with valid values being
checking
orsavings
.
Request
curl https://api.spherepay.co/v2/customers/:id/bank-account \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"accountName": "John Doe Savings",
"bankName": "Bank of America",
"currency": "USD",
"beneficiaryAddress": {
"line1": "123 Elm Street,
"line2": "suite 456",
"city": "New York",
"postalCode": "10001",
"state": "NY",
"country": "USA"
},
"meta": {
"purpose": "Payroll Account",
"notes": "Main account for business transactions"
}
"lookupKey": "10000000001",
"accountDetails": {
"accountType": "checking",
"accountNumber": "123456789",
"routingNumber": "987654321"
}
}'
Response
{
"ok": true,
"object": "object",
"statusCode": 200,
"error": null,
"message": "success",
"data": {
"bankAccount": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"status": "active",
"customer": "cus_abc123",
"currency": "usd",
"accountDetails": {
"bankName": "Bank of America",
"accountHolderName": "John Doe",
"accountName": "Primary Checking Account",
"accountNumber": "****5678",
"routingNumber": "123456789",
"accountType": "checking"
},
"lookupKey": "b9a34cf6004a4e8383492c50d56a375b",
"meta": {
"purpose": "Payroll Account",
"notes": "Main bank account for business transactions"
},
"beneficiaryAddress": {
"line1": "123 Elm Street",
"line2": "Suite 500",
"city": "San Francisco",
"postalCode": "94107",
"state": "CA",
"country": "USA"
},
"updated": "2025-01-24T12:34:56Z",
"created": "2025-01-01T09:00:00Z",
"deleted": null
}
},
"ts": "2024-08-12T21:29:34.683Z",
"request": "request_286ec04fadcf439fa1294317417b7e6d"
}
Retrieve a bank account
Request
curl https://api.spherepay.co/v2/customers/:id/bank-account/:id \
-H "Authorization: Bearer {token}"
Response
{
"ok": true,
"object": "object",
"statusCode": 200,
"error": null,
"message": "success",
"data": {
"bankAccount": {
"bankAccount": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"status": "active",
"customer": "cus_abc123",
"currency": "usd",
"accountDetails": {
"bankName": "Bank of America",
"accountHolderName": "John Doe",
"accountName": "Primary Checking Account",
"accountNumber": "****5678",
"routingNumber": "123456789",
"accountType": "checking"
},
"lookupKey": "b9a34cf6004a4e8383492c50d56a375b",
"meta": {
"purpose": "Payroll Account",
"notes": "Main bank account for business transactions"
},
"beneficiaryAddress": {
"line1": "123 Elm Street",
"line2": "Suite 500",
"city": "San Francisco",
"postalCode": "94107",
"state": "CA",
"country": "USA"
},
"updated": "2025-01-24T12:34:56Z",
"created": "2025-01-01T09:00:00Z",
"deleted": null
}
}
},
"ts": "2024-08-12T21:41:54.167Z",
"request": "request_1315a2d4288e4eb98827a8d90cdf99fe"
}
List bank accounts
This endpoint allows you to retrieve a paginated list of all your contacts. By default, a maximum of ten contacts are shown per page.
Parameters
- Name
lookupKey
- Type
- string
- Description
List transfers from a given lookup key.
- Name
limit
- Type
- number
- Description
Limit the number of bank accounts returned. The maximum value per query is 200. Defaults to 25.
- Name
startDate
- Type
- string
- Description
The start datetime of the bank accounts to retrieve.
- Name
endDate
- Type
- string
- Description
The end datetime of the bank accounts to retrieve.
Request
curl -G https://api.spherepay.co/v2/customers/:id/bank-account \
-H "Authorization: Bearer {token}" \
-d limit=2
Response
{
"ok": true,
"object": "object",
"statusCode": 200,
"error": null,
"message": "success",
"data": {
"bankAccounts": [
{
"id": "bankAccount_123e4567-e89b-12d3-a456-426614174000",
"status": "active",
"customer": "cus_abc123",
"currency": "usd",
"accountDetails": {
"bankName": "Bank of America",
"accountHolderName": "John Doe",
"accountName": "Primary Checking Account",
"accountNumber": "****5678",
"routingNumber": "123456789",
"accountType": "checking"
},
"lookupKey": "b9a34cf6004a4e8383492c50d56a375b",
"meta": {
"purpose": "Payroll Account",
"notes": "Main bank account for business transactions"
},
"beneficiaryAddress": {
"line1": "123 Elm Street",
"line2": "Suite 500",
"city": "San Francisco",
"postalCode": "94107",
"state": "CA",
"country": "USA"
},
"updated": "2025-01-24T12:34:56Z",
"created": "2025-01-01T09:00:00Z",
"deleted": null
},
{
"id": "bankAccount_d6b206dc878a43da850049dc8d925f88",
// ...
}
]
},
"ts": "2024-08-12T21:35:19.018Z",
"request": "request_4c42d2abf8644090a3954aa94fec900b"
}
Delete a bankAccount
This endpoint allows you to delete a bank account by its id
. Deleting a bank account sets its status to inactive
. You can not fetch a deleted bank account.
Request
curl -X DELETE https://api.spherepay.co/v2/customers/:id/bank-account/:id \
-H "Authorization: Bearer {token}"
Response
{
"ok": true,
"object": "object",
"statusCode": 200,
"error": null,
"message": "success",
"data": {
"bankAccount": {
"id": "bankAccount_123e4567-e89b-12d3-a456-426614174000",
"status": "active",
"customer": "cus_abc123",
"currency": "usd",
"accountDetails": {
"bankName": "Bank of America",
"accountHolderName": "John Doe",
"accountName": "Primary Checking Account",
"accountNumber": "****5678",
"routingNumber": "123456789",
"accountType": "checking"
},
"lookupKey": "b9a34cf6004a4e8383492c50d56a375b",
"meta": {
"purpose": "Payroll Account",
"notes": "Main bank account for business transactions"
},
"beneficiaryAddress": {
"line1": "123 Elm Street",
"line2": "Suite 500",
"city": "San Francisco",
"postalCode": "94107",
"state": "CA",
"country": "USA"
},
"updated": "2025-01-24T12:34:56Z",
"created": "2025-01-01T09:00:00Z",
"deleted": "2025-01-04T09:00:00Z"
}
},
"ts": "2024-08-12T21:42:52.896Z",
"request": "request_28e5a85abec74e0f8b4683f156b2b0de"
}