# List transfers

Retrieves a list of transfers, filterable by query parameters.

Endpoint: GET /v1/collections/transfers
Version: 1.0.0
Security: Bearer

## Query parameters:

  - `source_account_id` (string)
    Filter transfers by source account identifier

  - `destination_account_id` (string)
    Filter transfers by destination account identifier

  - `status` (string)
    Filter transfers by status
    Enum: "PENDING", "PROCESSING", "COMPLETED", "EXPIRED", "FAILED", "CANCELLED"

  - `type` (string)
    Filter transfers by type: TRADE for cross-currency transfers, TRANSACTION for same-currency transfers. Used only as a filter; not returned on the transfer itself.
    Enum: "TRADE", "TRANSACTION"

  - `since` (string)
    ISO 8601 timestamp after transfer was created

  - `until` (string)
    ISO 8601 timestamp before transfer was created

  - `page` (integer)
    Page number (zero-indexed, starts at 0)

  - `size` (integer)
    Page size (items per page)
    Example: 10

  - `sort_by` (string)
    Field to sort results by
    Enum: "CREATED_AT", "UPDATED_AT", "STATUS", "TYPE", "EXPIRES_AT"

  - `direction` (string)
    Sort direction
    Enum: "asc", "desc"

## Response 200 fields (application/json):

  - `content` (array)

  - `content.id` (string, required)
    Unique identifier for the transfer
    Example: "6f3e9c2a-1b4d-47f0-9e3a-2c6b8d1f5a7e"

  - `content.status` (string, required)
    Status of the transfer
    Enum: "PENDING", "PROCESSING", "COMPLETED", "EXPIRED", "FAILED", "CANCELLED"

  - `content.source` (object, required)
    Account and amount moved on one side of a transfer

  - `content.source.account_id` (string)
    Unique identifier of the account
    Example: "b2c3d4e5-f6a7-8901-bcde-f12345678901"

  - `content.source.currency` (string)
    Currency of the account
    Example: "USD"

  - `content.source.amount` (string)
    Amount moved, as a string to preserve precision
    Example: "1000.00"

  - `content.destination` (object, required)
    Account and amount moved on one side of a transfer

  - `content.market_rate` (object, required)
    Market exchange rate at the time the transfer's quote was created. Base=counter=1 for same-currency transfers.

  - `content.market_rate.base` (string)
    Example: "USD"

  - `content.market_rate.counter` (string)
    Example: "BRL"

  - `content.market_rate.rate` (string)
    Market rate as a string to preserve precision
    Example: "5.25"

  - `content.exchange_rate` (object, required)
    Quoted exchange rate applied to this transfer, including spread. Base=counter=1 for same-currency transfers.

  - `content.exchange_rate.base` (string)
    Example: "USD"

  - `content.exchange_rate.counter` (string)
    Example: "BRL"

  - `content.exchange_rate.rate` (string)
    Quoted rate as a string to preserve precision
    Example: "5.20"

  - `content.fees` (object, required)
    Fees charged on this transfer

  - `content.fees.transaction_fee` (object)
    Spread between market_rate and exchange_rate, applied to the source amount. Zero for same-currency transfers.

  - `content.fees.transaction_fee.amount` (string)
    Example: "50.00"

  - `content.fees.transaction_fee.currency` (string)
    Currency the fee is denominated in (always the destination currency)
    Example: "BRL"

  - `content.reason` (string,null)
    Reason for the current status, populated on terminal FAILED status (if applicable)

  - `content.expires_at` (string, required)
    ISO 8601 timestamp after which a PENDING transfer can no longer be confirmed
    Example: "2025-09-18T23:09:00.542Z"

  - `content.created_at` (string, required)
    ISO 8601 timestamp when the transfer was created
    Example: "2025-09-18T22:54:00.542Z"

  - `content.updated_at` (string, required)
    ISO 8601 timestamp when the transfer was last updated
    Example: "2025-09-18T22:54:00.542Z"

  - `page` (object)
    Pagination metadata.

  - `page.page` (integer, required)

  - `page.size` (integer, required)
    Example: 10

  - `page.total_elements` (integer, required)
    Example: 100

  - `page.total_pages` (integer, required)
    Example: 10

## Response 400 fields (application/json):

  - `code` (string, required)
    Error code identifying the type of error

  - `reason` (string, required)
    Human-readable error message


