Skip to main content
POST
Add a bank account

Authorizations

Authorization
string
header
required

User bearer credential: either a Cognito JWT or an ak_ user API key. Backend integrators using HMAC must include the user API key alongside the three HMAC headers on user-scoped endpoints.

Body

Create a bank account. The type field determines the required fields.

Create a bank account. The type field determines the required fields.

type
enum<string>
required

US bank account type

Available options:
us
ownership
enum<string>
required

Who owns this bank account. "personal" = the authenticated user (holder info inferred from profile). "thirdParty" = someone else (requires accountHolder).

Available options:
personal,
thirdParty
Example:

"personal"

routingNumber
string
required

9-digit ABA routing number

Pattern: ^[0-9]{9}$
Example:

"021000021"

accountNumber
string
required

Bank account number

Example:

"123456789"

accountHolder
object

Account holder details. Required when ownership is "thirdParty".

accountSubtype
enum<string>

Type of bank account (checking or savings)

Available options:
checking,
savings
Example:

"checking"

label
string

Friendly name for the account

Example:

"Primary Checking"

Response

Bank account details. The type field indicates the account variant.

Bank account details. The type field indicates the account variant.

id
string
required

Unique identifier for the bank account

Example:

"ba_abc123"

status
enum<string>
required

Whether the account can receive payouts. active is the only payable state; every other value means the account cannot be paid, and statusReason says why. Treat any value that is not active as unpayable rather than switching on the full list — new states may be added and will always follow that rule.

Available options:
active,
inactive
Example:

"active"

statusReason
enum<string> | null
required

Why the account cannot receive payouts. Always present when status is not active, and always null when it is.

  • account_invalid — the receiving bank does not recognise the account details.
  • account_closed — the account has been closed at the bank.
  • account_blocked — the bank will not accept credits to this account.
  • not_supported — Spritz cannot pay accounts of this type or region.

All four are terminal: the account will not recover, so prompt the user to add a different one.

Available options:
account_invalid,
account_closed,
account_blocked,
not_supported,
null
Example:

"account_invalid"

accountHolderName
string
required

Display name recorded on the user's bank account. This is not an ownership-match or eligibility decision.

Example:

"John Doe"

supportedRails
enum<string>[]
required

Payment rails available for this account

Fiat delivery rail.

  • ach_standard: ACH bank transfer, next business day.
  • ach_same_day: ACH same-day transfer, delivered same business day.
  • rtp: Real-time payment, seconds, 24/7.
  • wire: Wire transfer, same/next day.
  • eft: Electronic funds transfer, 1-2 business days.
  • sepa: SEPA transfer (EU), 1-2 business days.
  • faster_payments: UK Faster Payments, near-instant.
  • push_to_card: Push to debit card, minutes.
  • bill_pay: Bill payment rail.
  • card_deposit: Deposit to crypto card.
Available options:
ach_standard,
ach_same_day,
rtp,
wire,
eft,
sepa,
faster_payments,
push_to_card,
bill_pay,
card_deposit
Example:
createdAt
string<date-time>
required

When the account was created

fundingSourceId
string | null
required

Associated opaque public funding source identifier, or null when no funding source exists for this bank account.

type
enum<string>
required
Available options:
us
currency
enum<string>
required
Available options:
USD
accountNumberLast4
string
required

Last 4 digits of account number

Example:

"6789"

routingNumberLast4
string
required

Last 4 digits of routing number

Example:

"0021"

institution
object

Financial institution details

label
string

Friendly name for the account

Example:

"Primary Checking"

accountSubtype
enum<string>

Type of bank account (checking or savings)

Available options:
checking,
savings
Example:

"checking"