# Get transfer by ID

Retrieves the details of a specific transfer by its ID.

Endpoint: GET /v1/collections/transfers/{transfer_id}
Version: 1.0.0
Security: Bearer

## Security:

  - `Bearer` (unknown)
    http bearer JWT

## Path parameters:

  - `transfer_id` (string, required)
    Unique identifier of the transfer to retrieve

## Response 200:

  - `200` (unknown)
    Successful response

## Response 200 fields (application/json):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

## Response 401:

  - `401` (unknown)
    Unauthorized - Invalid or missing authentication

## Response 401 fields (application/json):

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

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

## Response 404:

  - `404` (unknown)
    Not Found - Transfer does not exist

## Response 404 fields (application/json):

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

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

## Response 500:

  - `500` (unknown)
    Internal server error

## Response 500 fields (application/json):

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

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

