Skip to main content
GET
/
accounts
/
{account_id}
/
transfers
/
{id}
Retrieve a single transfer
curl --request GET \
  --url https://api.brale.xyz/accounts/{account_id}/transfers/{id} \
  --header 'Authorization: Bearer <token>'
{
  "status": "pending",
  "amount": {
    "value": "11234.88",
    "currency": "USD"
  },
  "created_at": "2025-02-05T19:39:14.316Z",
  "updated_at": "2025-02-05T19:39:14.316Z",
  "source": {
    "value_type": "USD",
    "transfer_type": "wire",
    "address_id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
    "transaction_id": "0xdd5646ea…"
  },
  "destination": {
    "value_type": "USD",
    "transfer_type": "wire",
    "address_id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
    "transaction_id": "0xdd5646ea…"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.brale.xyz/llms.txt

Use this file to discover all available pages before exploring further.

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.
FieldTypeDescription
received_atstring (ISO 8601)When the underlying payment was received or posted
sender_namestring | nullName of the originating sender, when available
sender_bank_namestring | nullOriginating bank name, when available
sender_bank_routing_numberstring | nullOriginating bank routing number, when available
payment_referencestring | nullSender-provided payment reference or memo, when available
imadstring | nullWire IMAD / tracking identifier, when available
trace_numberstring | nullACH trace identifier for the underlying payment, when available. Primarily relevant for inbound ACH-funded transfers.

Example: wire-funded transfer

Response
{
  "id": "3C0QcbwVywOGyU2HBSenljm5dhU",
  "status": "complete",
  "failure": null,
  "source": {
    "transfer_type": "wire",
    "financial_institution_id": "3AjRnbvj9Mq6crkviJv08d0KLB2",
    "value_type": "USD",
    "payment_details": {
      "received_at": "2026-04-07T00:01:24.514000Z",
      "sender_name": "Originator Name",
      "sender_bank_name": "JPMorgan Chase Bank",
      "sender_bank_routing_number": "000000123",
      "payment_reference": "Simulated Wire",
      "imad": "20260406XOIZJDPP953495"
    }
  },
  "destination": {
    "transaction_id": "0x41c66f1d059dad7a55a854e157a1b5b938780c77ba5296e434a02dfb1727fe5e",
    "transfer_type": "base",
    "address_id": "3ARaM0I93ObWOIFDIztsTx4TAsp",
    "value_type": "ARB"
  },
  "updated_at": "2026-04-07T00:01:44.824834Z",
  "created_at": "2026-04-07T00:01:27.756775Z",
  "note": null,
  "amount": {
    "value": "102.0",
    "currency": "USD"
  },
  "automation_id": "3AjRnDClEzwuCKlRioG3OXMS4pH"
}

Example: ACH-funded transfer (payment_details excerpt)

Response (source excerpt)
{
  "source": {
    "transfer_type": "ach_debit",
    "value_type": "USD",
    "payment_details": {
      "received_at": "2026-04-07T02:10:06.921000Z",
      "sender_name": "Test ACH Sender",
      "sender_bank_name": null,
      "sender_bank_routing_number": "721160232",
      "payment_reference": null,
      "imad": null,
      "trace_number": "021000029876543"
    }
  }
}
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.
FieldTypeDescription
imadstring | nullWire 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

Response
{
  "id": "3D1RcbwVywOGyU2HBSenljm5dhV",
  "status": "complete",
  "source": {
    "address_id": "2VcUIonJeVQzFoBuC7LdFT0dRe4",
    "value_type": "SBC",
    "transfer_type": "solana",
    "transaction_id": "5K8…"
  },
  "destination": {
    "address_id": "34yGFQf7tP1HJCPAWNGaN4rh4nX",
    "value_type": "USD",
    "transfer_type": "wire",
    "wire_memo": "Invoice 1048",
    "payment_details": {
      "imad": "20260406XOIZJDPP953495"
    }
  },
  "updated_at": "2026-04-07T00:05:12.102000Z",
  "created_at": "2026-04-07T00:01:27.756775Z",
  "amount": {
    "value": "100.00",
    "currency": "USD"
  },
  "note": null
}
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.

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

status
enum<string>

Lifecycle stage of the transfer

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

"pending"

amount
Amount · object

Monetary value with explicit currency

created_at
string<date-time>
Example:

"2025-02-05T19:39:14.316Z"

updated_at
string<date-time>
Example:

"2025-02-05T19:39:14.316Z"

source
TransferEndpoint · object
destination
TransferEndpoint · object