# Confirm a transfer

Confirms a PENDING transfer so the funds move. For a cross-currency transfer this locks
in the quoted rate; same-currency transfers move at par. Pass an Idempotency-Key header
to safely retry the same confirmation.

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

## Path parameters:

  - `transfer_id` (string, required)
    Unique identifier of the transfer to confirm
    Example: "6f3e9c2a-1b4d-47f0-9e3a-2c6b8d1f5a7e"

## 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"

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

  - `market_rate` (object, required)

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

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

  - `market_rate.rate` (string)
    Example: "5.25"

  - `exchange_rate` (object, required)

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

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

  - `exchange_rate.rate` (string)
    Example: "5.20"

  - `fees` (object, required)

  - `fees.transaction_fee` (object)

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

  - `fees.transaction_fee.currency` (string)
    Example: "BRL"

  - `reason` (string,null)

  - `expires_at` (string, required)
    Example: "2025-09-18T23:09:00.542Z"

  - `created_at` (string, required)
    Example: "2025-09-18T22:54:00.542Z"

  - `updated_at` (string, required)
    Example: "2025-09-18T22:55:00.542Z"

## Response 401 fields (application/json):

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

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


