The unique identifier for the bank account
Example:550e8400-e29b-41d4-a716-446655440000
Operations for managing bank accounts
Returns a single bank account by ID. The number field contains the full account number — use this endpoint when you need the complete value for payment processing or verification. For reconciliation use cases where only the last four digits are sufficient, prefer GET /v2/bank-accounts which returns all accounts with numbers masked to ****<last4>.
Returns 404 if the bank account does not exist or is not visible to the authenticated customer. A 403 is returned only when the caller’s token lacks the required scope; cross-customer access returns 404, not 403.
The unique identifier for the bank account
Example:550e8400-e29b-41d4-a716-446655440000
Bank account retrieved successfully.
Bank account resource returned by the single-resource GET endpoint. The number field contains the full account number. In all other endpoints number is masked to ****<last4>.
The unique identifier for the bank account.
Example:550e8400-e29b-41d4-a716-446655440000
The type of bank account
Allowed values:SAVINGSCHECKING
Example:CHECKING
Name of the account holder.
Example:Jane Doe
Full bank account number.
Example:1234567890
Bank routing number.
Example:021000021
Name of the bank.
Example:Chase Bank
Optional nickname for the bank account.
Example:Main
Indicates if this is the primary bank account.
Example:true
RFC3339 UTC timestamp when the bank account was created.
Example:2024-01-15T10:30:00Z
RFC3339 UTC timestamp when the bank account was last updated.
Example:2024-01-15T14:45:00Z
Permanently deletes a bank account. Returns 404 if the bank account does not exist or is not accessible to the caller.
The unique identifier for the bank account
Example:550e8400-e29b-41d4-a716-446655440000
Bank account deleted successfully
Updates an existing bank account scoped to the authenticated customer. Returns the updated record with the account number masked.
The unique identifier for the bank account
Example:550e8400-e29b-41d4-a716-446655440000
The type of bank account
Allowed values:SAVINGSCHECKING
Example:CHECKING
Name of the account holder
Example:Jane Doe
Bank account number (4-17 digits)
Match pattern:^\d{4,17}$
>= 4 characters<= 17 characters
Example:9876543210
Bank routing number (exactly 9 digits)
Match pattern:^\d{9}$
>= 9 characters<= 9 characters
Example:021000021
Name of the bank
Example:Wells Fargo
Optional nickname for the bank account
Example:Secondary
Whether this should become the owner’s primary bank account. Setting true demotes any existing primary for the same owner. An existing primary account cannot be demoted directly by omitting or setting this to false — set another account as primary instead. null is treated the same as omitted.
Default:false
Example:false
Bank account updated successfully
The unique identifier for the bank account
Example:550e8400-e29b-41d4-a716-446655440000
The type of bank account
Allowed values:SAVINGSCHECKING
Example:CHECKING
Name of the account holder
Example:Jane Doe
Masked bank account number (last 4 digits visible)
Example:****7890
Bank routing number
Example:021000021
Name of the bank
Example:Chase Bank
Optional nickname for the bank account
Example:Main
Indicates if this is the primary bank account
Example:true
Timestamp when the bank account was created
Example:2024-01-15T10:30:00Z
Timestamp when the bank account was last updated
Example:2024-01-15T14:45:00Z
Returns every bank account (person-owned or firm-owned) visible to the authenticated customer, paginated by opaque continuation token. Use this endpoint to reconcile bank accounts across all producers in a customer’s account without iterating known producer IDs. Account numbers are masked to ****; the unmasked value is reachable only via GET /v2/bank-accounts/{id} behind an elevated scope.
Opaque continuation token returned by the previous response’s page.nextToken. Omit on the first request. Format is server-controlled and may change without an API version bump.
Requested number of items in the response. Defaults to 25 when omitted; values outside [1, 250] are rejected with 400 (not clamped). The actual size returned is reflected in page.size and may be smaller (last page or empty result).
Default:25
>= 1<= 250
RFC3339 UTC timestamp (e.g. 2026-05-21T12:00:00Z). When supplied, filters to bank accounts whose underlying record was modified at or after this instant.
Example:2026-05-01T00:00:00Z
A page of bank accounts visible to the authenticated customer.
Per-row shape returned by V2 bank-account list endpoints. Carries owner context (personId or firmId, plus the producer NPN where known) for reconciliation use cases. The account number is always masked here; the unmasked value is reachable only via GET /v2/bank-accounts/{id} behind an elevated scope.
Page metadata for a token-based list response.