Skip to main content
GET
Retrieve a single transfer
Use the playground below to try this endpoint directly, or review the OpenAPI details in the right panel.

source.payment_details

Transfer responses may include an optional source.payment_details object when Brale has underlying payment metadata to expose for the source leg of a transfer. This is primarily relevant for inbound fiat-funded transfers (wire, ACH). Wire transfers typically include the fuller set of fields. ACH transfers may include only a subset — fields may be null or omitted depending on available rail metadata.

Example: wire-funded transfer

Response

Example: ACH-funded transfer (payment_details excerpt)

Response (source excerpt)
See Transfers — source.payment_details for full details.

destination.payment_details

Transfer responses may include an optional destination.payment_details object when Brale has underlying payment metadata to expose for the destination leg of a transfer. This is primarily relevant for outbound wire transfers (stablecoin-to-fiat offramps and wire payouts). The object is optional and may be absent immediately after a transfer is created. For outbound wires, the IMAD is assigned by the sending bank and may not be available until after the wire has been submitted; Brale populates this field later when the underlying bank metadata arrives.
destination.payment_details is a response-only field. It is not accepted as input when creating a transfer. Do not confuse it with destination.wire_memo, which remains a request field for outbound wire transfers.

Example: outbound wire transfer

Response
See Transfers — destination.payment_details for full details.

transaction_id

The transaction_id field appears on the source and destination objects in the response. It contains the on-chain transaction hash or off-chain payment reference once the leg has been submitted to the network. You can also use transaction_id as a query-parameter filter on the List transfers endpoint to find transfers by their on-chain hash without needing to know the transfer id first.

failure

Every transfer response includes a failure field.
  • failure is usually null.
  • failure is populated when status is failed and Brale has structured failure details. It is especially relevant for ACH returns and other rail/provider failures.
  • Clients should not assume failure is always present for every failed transfer — check for null before reading nested fields.

Example: failed ACH transfer

Response (failure excerpt)

Authorizations

Authorization
string
header
required

Use the Bearer token returned from the Auth endpoint via OAuth2 client_credentials flow. Include the token in the "Authorization: Bearer " header.

Path Parameters

account_id
string<ksuid>
required

The ID of the account

Pattern: ^[a-zA-Z0-9]{26}$
Example:

"2VcUIIsgARwVbEGlIYbhg6fGG57"

id
string<ksuid>
required

The ID of the transfer (KSUID)

Pattern: ^[a-zA-Z0-9]{26}$
Example:

"2VcUIIsgARwVbEGlIYbhg6fGG57"

Response

200 - */*

A single transfer object

A money movement between a source and a destination. Returned by the create, get, and list transfer endpoints. The same shape is used everywhere a Transfer is exposed to API consumers.

id
string<ksuid>
Pattern: ^[a-zA-Z0-9]{26}$
Example:

"2VcUIIsgARwVbEGlIYbhg6fGG57"

status
enum<string>

Lifecycle stage of the transfer

Available options:
pending,
processing,
complete,
canceled,
failed
Example:

"pending"

failure
TransferFailure · object | null

Structured failure details for a failed transfer. Usually null. Populated when status is failed and Brale has structured failure details for the transfer — most commonly for ACH returns and other rail/provider failures. Clients should not assume failure is always present for every failed transfer; check for null before reading nested fields.

Example:

null

source
TransferEndpoint · object

One side (source or destination) of a Transfer. The same shape is used in create requests and in responses. Response-only fields like transaction_id and payment_details are populated by Brale as the underlying leg settles.

destination
TransferEndpoint · object

One side (source or destination) of a Transfer. The same shape is used in create requests and in responses. Response-only fields like transaction_id and payment_details are populated by Brale as the underlying leg settles.

amount
Amount · object

Monetary value with explicit currency

note
string | null

Optional free-form note attached to the transfer.

Example:

null

automation_id
string<ksuid> | null

ID of the Automation that created this transfer, when applicable. Omitted for transfers created directly via the API.

Pattern: ^[a-zA-Z0-9]{26}$
Example:

"2VcUIIsgARwVbEGlIYbhg6fGG57"

funding_simulated
boolean

Set to true when the source funding for this transfer was simulated in a test environment rather than coming from a real payment. Not present for production transfers.

created_at
string<date-time>
Example:

"2026-01-01T00:00:00Z"

updated_at
string<date-time>
Example:

"2026-01-01T00:00:00Z"