Skip to main content
POST
Add a bank account
Needs a live key. For a platform acting on a business it manages, ask us to open bank accounts by API for your platform first; until then the call gets 403 bank_accounts_by_api_closed. Where the bank offers a name check, it runs at once: a clear mismatch is saved but never paid, and payableReason says so; partial and unknown are paid. Every account added through a platform’s key is emailed to the platform’s owner and to the business’s owner. We keep the last four digits and a hash, never the number.

Bank accounts by API

The flow end to end, with the SDK.

Build a platform

Managing businesses, start to finish.

Authorizations

x-api-key
string
header
required

Your secret key, from app.agentaos.ai -> Settings -> Developers -> API Keys. The key's prefix is both its identity and its environment: sk_test_... (sandbox, free, no verification) or sk_live_... (real money, requires business verification). A missing or invalid key returns 401.

Body

application/json
currency
string
required

The payout currency. EUR and USD are supported.

type
string
required

The account type from the requirements: iban, sort_code, aba.

accountHolderName
string
required

The name on the bank account, as the bank holds it. A clear mismatch is saved but not paid.

Available options:
PRIVATE,
BUSINESS
details
object
required

The fields the requirements asked for, for example { "IBAN": "DE89…" }. Never stored: we keep the last four characters and a hash.

Response

The saved account, as a thin reference.

A bank account as we keep it: a thin reference. The account number itself stays with our bank partner.

id
string<uuid>
required
currency
string
required

Upper-case, EUR or USD.

account_type
string
required

The corridor: iban, sort_code, aba.

account_identifier_last4
string
required

The last four characters of the account number.

account_holder_name
string
required
Available options:
PRIVATE,
BUSINESS
name_match_status
enum<string>
required

How the holder name compared with the name the bank holds, where the bank offers that check (not for every currency). failed is never paid; partial and unknown are paid.

Available options:
success,
partial,
failed,
unknown
active
boolean
required
payable
boolean
required

Can the next payout go to this account right now: active, and the name check did not fail.

payableReason
string | null
required

When payable is false: why, in a sentence for the merchant.