Skip to main content
GET
/
accounts
/
{account_id}
/
transfers
Get all transfers for a given account
curl --request GET \
  --url https://api.brale.xyz/accounts/{account_id}/transfers \
  --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.

Filters

You can narrow results by appending query parameters. All filters use exact match and are case-sensitive. When you combine multiple filters they apply with AND semantics — only transfers matching every supplied filter are returned. If no transfers match the filters, the API returns 200 with an empty transfers array and a pagination object.
ParameterFilters byFormatExample
automation_idAutomation that created the transferKSUID (26-char string)2MhCCIHuK4TGVgT9a4loQzJx1rj
value_typeCurrency / token on source or destinationCanonical API id (case-sensitive)USDC, SBC, usd
transfer_typePayment rail / chain on source or destinationCanonical API id (case-sensitive)polygon, wire, solana
transaction_idOn-chain transaction hash or off-chain payment referenceString (exact match, case-sensitive)0xdd5646ea…
value_type and transfer_type use canonical API identifiers. See Value types and Transfer types for the full list of valid values.

Filtering by transaction_id

Pass the full on-chain transaction hash or off-chain payment reference to find transfers that match on either the source or destination leg. The filter is exact match and case-sensitive. If no transfer matches, the API returns 200 with an empty transfers array. You can combine transaction_id with other filters — multiple filters use AND semantics.

Pagination

ParameterDescriptionDefault
page[size]Number of transfers per page (1–100)25
page[after]Cursor for forward pagination
page[prev]Cursor from pagination.prev in a previous response
Only one of page[after] or page[prev] may be present per request. Filters persist across pages — you do not need to resend them when paging. Use the pagination.next value from the previous response as the page[after] query parameter in the next request.

Examples

Filter by transaction_id

curl "https://api.brale.xyz/accounts/${ACCOUNT_ID}/transfers?transaction_id=0xdd5646ea..." \
  -H "Authorization: Bearer ${AUTH_TOKEN}"

Filter by automation_id

curl "https://api.brale.xyz/accounts/${ACCOUNT_ID}/transfers?automation_id=2MhCCIHuK4TGVgT9a4loQzJx1rj" \
  -H "Authorization: Bearer ${AUTH_TOKEN}"

Filter by value_type

curl "https://api.brale.xyz/accounts/${ACCOUNT_ID}/transfers?value_type=USDC" \
  -H "Authorization: Bearer ${AUTH_TOKEN}"

Filter by transfer_type

curl "https://api.brale.xyz/accounts/${ACCOUNT_ID}/transfers?transfer_type=polygon" \
  -H "Authorization: Bearer ${AUTH_TOKEN}"

Combined filters

Return only Polygon USDC transfers created by a specific Automation, 10 per page:
curl "https://api.brale.xyz/accounts/${ACCOUNT_ID}/transfers?automation_id=2MhCCIHuK4TGVgT9a4loQzJx1rj&value_type=USDC&transfer_type=polygon&page[size]=10" \
  -H "Authorization: Bearer ${AUTH_TOKEN}"

Response schema

A successful response returns 200 with the following structure:
Response
{
  "pagination": {
    "next": "g3QAAAABdw...",
    "page_size": 25
  },
  "transfers": [
    {
      "id": "30NoY6R1Ns2tRBcx1Kb16SnuXOW",
      "status": "complete",
      "amount": {
        "value": "100.00",
        "currency": "USD"
      },
      "created_at": "2025-07-25T21:03:55.364134Z",
      "updated_at": "2025-07-25T21:05:07.779018Z",
      "source": {
        "address_id": "2MhCCIHuK4TGVgT9a4loQzJx1rj",
        "value_type": "USDC",
        "transfer_type": "polygon",
        "transaction_id": "0xdd5646ea…"
      },
      "destination": {
        "address_id": "2O6asmNK4TGVgT9a4loQzJx1rj",
        "value_type": "USDC",
        "transfer_type": "polygon",
        "transaction_id": "0xdd5646ea…"
      },
      "note": null
    },
    {
      "id": "3C0QcbwVywOGyU2HBSenljm5dhU",
      "status": "complete",
      "failure": null,
      "amount": {
        "value": "102.0",
        "currency": "USD"
      },
      "created_at": "2026-04-07T00:01:27.756775Z",
      "updated_at": "2026-04-07T00:01:44.824834Z",
      "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"
      },
      "note": null,
      "automation_id": "3AjRnDClEzwuCKlRioG3OXMS4pH"
    },
    {
      "id": "3D1RcbwVywOGyU2HBSenljm5dhV",
      "status": "complete",
      "amount": {
        "value": "100.00",
        "currency": "USD"
      },
      "created_at": "2026-04-07T00:01:27.756775Z",
      "updated_at": "2026-04-07T00:05:12.102000Z",
      "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"
        }
      },
      "note": null
    }
  ]
}

source.payment_details

source.payment_details appears when Brale has underlying payment metadata to expose for the source leg of a transfer. This is primarily relevant for inbound fiat-funded transfers. The object is optional and is not present on all transfers. Wire transfers typically include the full 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.
See Transfers — source.payment_details for full details.

destination.payment_details

destination.payment_details appears when Brale has underlying payment metadata to expose for the destination leg of a transfer. This is primarily relevant for outbound wire transfers. The object is optional and may be absent immediately after a transfer is created; for outbound wires, Brale populates it later once the IMAD is available from the sending bank.
FieldTypeDescription
imadstring | nullWire IMAD / tracking identifier for the outbound wire, when available
See Transfers — destination.payment_details for full details.

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"

Query Parameters

automation_id
string<ksuid>

Filter transfers to only those created by the specified Automation. Must be a valid KSUID. Exact match.

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

"2VcUIIsgARwVbEGlIYbhg6fGG57"

value_type
string

Filter transfers by currency or token identifier. Matches transfers where the source or destination value_type equals this value. Case-sensitive. Use canonical API ids from the Coverage page.

transfer_type
string

Filter transfers by payment rail or chain identifier. Matches transfers where the source or destination transfer_type equals this value. Case-sensitive. Use canonical API ids from the Coverage page.

transaction_id
string

Filter transfers by on-chain transaction hash or off-chain payment reference. Exact match against the transaction_id field on either the source or destination leg.

page[size]
integer

The number of transfers to return per page (1–100, default 25).

Required range: 1 <= x <= 100
page[next]
string

Cursor for the next page (value returned in pagination.next)

page[prev]
string

Cursor for the previous page (value returned in pagination.prev)

Response

200 - */*

A list of transfers

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