Retrieve a single transfer
Returns details for a specific transfer.
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.
| Field | Type | Description |
|---|---|---|
received_at | string (ISO 8601) | When the underlying payment was received or posted |
sender_name | string | null | Name of the originating sender, when available |
sender_bank_name | string | null | Originating bank name, when available |
sender_bank_routing_number | string | null | Originating bank routing number, when available |
payment_reference | string | null | Sender-provided payment reference or memo, when available |
imad | string | null | Wire IMAD / tracking identifier, when available |
trace_number | string | null | ACH trace identifier for the underlying payment, when available. Primarily relevant for inbound ACH-funded transfers. |
Example: wire-funded transfer
Example: ACH-funded transfer (payment_details excerpt)
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.
| Field | Type | Description |
|---|---|---|
imad | string | null | Wire IMAD / tracking identifier for the outbound wire, when available |
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
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.
failureis usuallynull.failureis populated whenstatusisfailedand Brale has structured failure details. It is especially relevant for ACH returns and other rail/provider failures.- Clients should not assume
failureis always present for every failed transfer — check fornullbefore reading nested fields.
| Field | Type | Description |
|---|---|---|
type | string | Error classification for the failure (e.g. ach_return). |
occurred_at | string (ISO 8601) | When the failure occurred. |
retriable | boolean | Whether the failure is considered retriable. Note: spelled retriable, not retryable. |
ach_return | object | null | ACH-only return details. Present for ACH return failures; not set for on-chain or other rail failures. |
ach_return.code | string | ACH return code (e.g. R01 — Insufficient Funds). |
ach_return.reason | string | Human-readable description of the ACH return reason. |
ach_return.category | string | One of administrative, unauthorized, or general. |
Example: failed ACH transfer
Authorizations
Use the Bearer token returned from the Auth endpoint via OAuth2 client_credentials flow. Include the token in the "Authorization: Bearer " header.
Path Parameters
The ID of the account
^[a-zA-Z0-9]{26}$"2VcUIIsgARwVbEGlIYbhg6fGG57"
The ID of the transfer (KSUID)
^[a-zA-Z0-9]{26}$"2VcUIIsgARwVbEGlIYbhg6fGG57"
Response
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.
^[a-zA-Z0-9]{26}$"2VcUIIsgARwVbEGlIYbhg6fGG57"
Lifecycle stage of the transfer
pending, processing, complete, canceled, failed "pending"
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.
null
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.
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.
Monetary value with explicit currency
Optional free-form note attached to the transfer.
null
ID of the Automation that created this transfer, when applicable. Omitted for transfers created directly via the API.
^[a-zA-Z0-9]{26}$"2VcUIIsgARwVbEGlIYbhg6fGG57"
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.
"2026-01-01T00:00:00Z"
"2026-01-01T00:00:00Z"