Skip to main content
POST
Add a bank account

Authorizations

Authorization
string
header
required

Short-lived access token minted by POST /v1/oauth/token.

Body

application/json

Add an ACH bank account for a borrower on an account. The routing and account numbers are verified, then stored encrypted; responses only ever expose the last four digits.

account_id
string
required

String, required. ID of the account the borrower is on. Must be reachable by the calling access token.

Minimum string length: 1
routing_number
string
required

String, required. ABA routing number: exactly 9 digits, and it must pass the ABA checksum.

Pattern: ^[0-9]{9}$
account_number
string
required

String, required. Bank account number: 4 to 17 digits.

Pattern: ^[0-9]{4,17}$
account_type
enum<string>
required

String, required. One of checking or savings.

Available options:
checking,
savings
party_id
string | null

String, optional. The borrower who owns the bank account. When omitted, the account's primary borrower is used. When given, it must be an active borrower on the account.

Minimum string length: 1
name_on_account
string | null

String, optional, at most 255 characters. Account holder name as it appears at the bank.

Maximum string length: 255
bank_name
string | null

String, optional, at most 255 characters. Bank name for display.

Maximum string length: 255
nickname
string | null

String, optional, at most 100 characters. Borrower-chosen label for this payment method.

Maximum string length: 100
set_default
boolean
default:false

Boolean, optional, default false. Make this the borrower's default payment method. A borrower's first payment method becomes the default regardless.

Response

Bank account saved. validation_status is validated, or pending_giact when it is saved but verification is pending.

A stored payment instrument (card, bank account, or wallet) belonging to a borrower. Carries display-safe metadata only — never full card or account numbers.

id
string
required
party_id
string
required

The person (borrower) this payment method belongs to.

instrument_type
string
required

Kind of instrument. One of: card, bank_account, wallet.

is_active
boolean
required

False once the payment method has been removed. Inactive methods cannot be attached to autopay or payments.

last_four
string
required

Last four digits of the card or account number.

created_at
string<date-time>
required
updated_at
string<date-time>
required
holder_name
string | null

Name of the card or account holder.

nickname
string | null

Borrower-chosen label for this payment method.

card_brand
string | null

Card network (e.g. visa, mastercard). Cards only.

card_exp_month
integer | null

Card expiration month (1-12). Cards only.

card_exp_year
integer | null

Card expiration year (four digits). Cards only.

bank_name
string | null

Bank name. Bank accounts only.

bank_account_type
string | null

Bank account type (e.g. checking, savings). Bank accounts only.

wallet_type
string | null

Wallet provider (e.g. apple_pay, google_pay). Wallets only.

validation_status
string | null

Bank-account verification state. validated: the account passed verification. pending_giact: the account is saved but verification could not complete yet and is pending. Null for instruments that are not verified this way.