> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daya.co/llms.txt
> Use this file to discover all available pages before exploring further.

# List balance transfers

> List collection-to-withdrawal balance transfer history

## Overview

Lists the history of collection-to-withdrawal balance transfers for the authenticated merchant. This is the audit trail for balance moves executed via [`POST /v1/merchant/balance/transfer`](/api-reference/merchant-balance/transfer-merchant-balance).

<Info>
  This endpoint returns the history of balance moves. To execute a new balance transfer, use [`POST /v1/merchant/balance/transfer`](/api-reference/merchant-balance/transfer-merchant-balance), which returns the updated balances immediately.
</Info>

## Authentication

<ParamField header="X-Api-Key" type="string" required>
  Your merchant API key
</ParamField>

## Query Parameters

<ParamField query="limit" type="integer">
  Number of results per page (default: 50)
</ParamField>

<ParamField query="page" type="integer">
  Page number (default: 1)
</ParamField>

<ParamField query="status" type="string">
  Filter by transfer status

  **Allowed values:** `PENDING` | `COMPLETED` | `FAILED`
</ParamField>

## Request Example

<CodeGroup>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://api.daya.co/v1/merchant/balance/transfers?limit=50&page=1' \
    --header 'X-Api-Key: YOUR_API_KEY'
  ```
</CodeGroup>

## Response

<ResponseField name="data" type="array" required>
  Array of balance transfer records.

  <Expandable title="balance transfer properties">
    <ResponseField name="data[].id" type="string">
      Unique transfer identifier (UUID)
    </ResponseField>

    <ResponseField name="data[].amount_usd" type="string">
      Amount transferred in USD
    </ResponseField>

    <ResponseField name="data[].status" type="string">
      Transfer status: `PENDING`, `COMPLETED`, or `FAILED`
    </ResponseField>

    <ResponseField name="data[].collection_balance_before_usd" type="string">
      Collection balance before the transfer
    </ResponseField>

    <ResponseField name="data[].collection_balance_after_usd" type="string">
      Collection balance after the transfer
    </ResponseField>

    <ResponseField name="data[].withdrawal_balance_before_usd" type="string">
      Withdrawal balance before the transfer
    </ResponseField>

    <ResponseField name="data[].withdrawal_balance_after_usd" type="string">
      Withdrawal balance after the transfer
    </ResponseField>

    <ResponseField name="data[].failure_message" type="string">
      Human-readable failure detail (present when status is `FAILED`)
    </ResponseField>

    <ResponseField name="data[].created_at" type="string">
      When the transfer was created (ISO 8601)
    </ResponseField>

    <ResponseField name="data[].updated_at" type="string">
      When the transfer was last updated (ISO 8601)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="page" type="integer" required>
  Current page number
</ResponseField>

<ResponseField name="limit" type="integer" required>
  Results per page
</ResponseField>

<ResponseField name="total" type="integer" required>
  Total number of balance transfers
</ResponseField>

<ResponseField name="total_pages" type="integer" required>
  Total number of pages
</ResponseField>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "data": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "amount_usd": "100.0000",
        "status": "COMPLETED",
        "collection_balance_before_usd": "500.0000",
        "collection_balance_after_usd": "400.0000",
        "withdrawal_balance_before_usd": "200.0000",
        "withdrawal_balance_after_usd": "300.0000",
        "failure_message": null,
        "created_at": "2026-01-05T15:04:05Z",
        "updated_at": "2026-01-05T15:04:05Z"
      }
    ],
    "page": 1,
    "limit": 50,
    "total": 1,
    "total_pages": 1
  }
  ```
</ResponseExample>
