Skip to main content
POST

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

payee_id
string<uuid>
required

Query Parameters

user_id
string<uuid>
required

The unique ID of the user who owns this payee.

Example:

"b3a9b622-cc63-4d3c-aad6-2d8e29e6f9d4"

Body

application/json

Request body for adding a bank account to a payee.

Every field is optional, but the combination must describe either:

  • A US domestic account — set bank_account_number and routing_number (a 9-digit US ABA-valid routing number); or
  • An international account — set bank_account_number and bank_country (the ISO 3166-1 alpha-2 destination country). The corridor's routing identifier — bank_branch (IFSC / CLABE / SWIFT-BIC / …) and the numeric payout_branch_id — is optional: some corridors (e.g. UAE) need only the account number, and where a branch is required it is resolved at payout time.

The endpoint rejects requests that satisfy neither case.

nickname
string | null

Optional short label your user gave this bank account (for example, "Acme — Chase Checking").

Maximum string length: 120
account_holder_name
string | null

The name on the bank account, exactly as the bank has it.

Maximum string length: 120
bank_name
string | null

The bank's name. Useful for international accounts.

Maximum string length: 120
bank_country
string | null

ISO 3166-1 alpha-2 country code of the bank (e.g. US, GB, DE).

Required string length: 2
currency
string | null

ISO 4217 three-letter currency code (e.g. USD, EUR, GBP). Defaults to USD when not provided.

Required string length: 3
bank_account_number
string | null

The bank account number where money will be deposited.

Required string length: 4 - 34
routing_number
string | null

US-only: the 9-digit ABA routing number of the bank.

Maximum string length: 9
account_type
string | null

Account type — "checking"/"savings" for US ACH, or a corridor account-type code (AHO/CTE/NON) for international.

Maximum string length: 30
purpose_of_payment
string | null

Optional: a short description of why the money is being sent (some corridors require it).

Maximum string length: 120
recipient_type
string | null

Optional: either "individual" or "business".

bank_branch
string | null

The receiving bank's routing identifier for an international payout. A single field that carries whatever the destination country uses — e.g. IFSC for India, CLABE for Mexico, or the SWIFT/BIC code elsewhere.

Maximum string length: 50
bank_document
string | null

Recipient bank document (e.g. CPF / CNPJ / RFC), where the corridor needs it.

Maximum string length: 100
payout_branch_id
integer | null

Optional numeric payout branch id for an international payout. If omitted, it is resolved at payout time from the destination's corridor (country + currency), so the account can be registered with just the routing code in bank_branch.

Response

The saved bank account (sensitive numbers masked).

status_code
integer
required

HTTP status code for the response.

data
PayeeBankAccountRead · object
required

Payload or error details.

query_generated_time
integer
required

UTC timestamp (milliseconds since epoch) when response was generated.